본문 바로가기

목록104

42.[RNN기초] RNN(many to one) 역전파 구현(실습) 저번시간에 RNN 역전파를 BPTT(Backpropagation Through Time)로 구현하였다. 이번 시간은 이를 코드로 구현해 보자. 40차시에서 진행했던 코드를 참고하자.(https://toyourlight.tistory.com/67) 39.[RNN기초] RNN 순전파 구현(이론) 이전시간에 자연어 데이터를 이용하기 위해 문장을 의미 있는 단위로 구별(토크나이징)하고 구별한 토큰을 컴퓨터가 이해할 수 있는 데이터로 변환(워드 임베딩)을 실시하였다. 그리고 데이터 toyourlight.tistory.com 일단 데이터 전처리와 입력값, 목표값을 생성하자. import numpy as np from itertools import * np.random.seed(230907) dataset = ["a.. 2023. 9. 20.
41.[RNN기초] RNN(many to one) 역전파 구현(이론) 저번시간에 RNN의 순전파의 이론적 배경을 알아보고 코드로 구현하였다. 그렇다면 어떻게 역전파를 진행하여 가중치를 훈련할 수 있을까? 먼저 필요한 변수값을 다시 확인하자 time steps(t.s) → 3 (문장을 구성하는 토큰의 개수) sequence length(s.l) → 2 (데이터 전체의 토큰 개수) hidden node(h.n) → 3 (본인이 설정하는 값) output feature → 1 (출력 특성) 그리고 가중치의 크기를 확인하자. Wxh = ( sequence length(2), hidden node(3) ) → ( 2, 3 ) Whh = ( hidden node(3), hidden node(3) ) → ( 3, 3 ) Bh = (1, 1) Wy = ( hidden node(3), o.. 2023. 9. 19.
40.[RNN기초] RNN(many to one) 순전파 구현(실습) 이전시간에 아래의 순환 셀과 분류기(fc)에 대하여 각 가중치는 아래와 같음을 증명하였다. Wxh = ( sequence length(2), hidden node(3) ) → ( 2, 3 ) Whh = ( hidden node(3), hidden node(3) ) → ( 3, 3 ) Bh = (1, 1) Wy = ( hidden node(3), output feature(1) ) → ( 3, 1 ) By = (1, 1) 순전파를 코드로 구현해 보자. 1. 데이터 전처리 38차시에서 실시했던 전처리 코드이다. 그대로 시행하면 된다. import numpy as np from itertools import * np.random.seed(230907) dataset = ["as", "soon", "as"] d.. 2023. 9. 13.
39.[RNN기초] RNN(many to one) 순전파 구현(이론) 이전시간에 자연어 데이터를 이용하기 위해 문장을 의미 있는 단위로 구별(토크나이징)하고 구별한 토큰을 컴퓨터가 이해할 수 있는 데이터로 변환(워드 임베딩)을 실시하였다. 그리고 데이터를 직렬로 이어 붙이면 순서에 의미가 없는 데이터가 되므로 병렬로 쌓아 (batch, time steps, sequence length) 형태로 전처리함을 이야기하였다. as, soon의 문자에 대해 순서대로 ('as', 'as', 'soon'), ('soon', 'as', 'as'), ('as', 'soon', 'as') 이고 as → [1. 0.], soon → [0. 1.] 일 때 데이터 전처리 결과는 [ [ [1. 0.] [1. 0.] [0. 1.] ] [ [0. 1.] [1. 0.] [1. 0.] ] [ [1. 0... 2023. 9. 12.