Recurrent Neural Network
- one to one 모델
- one to many 모델
- 입력은 이미지와 같은 단일 입력이지만 출력은 가변 출력
- many to one 모델
- 가변입력(ex. 문장), 가변 출력
- many to many 모델
Reccurent Neural Network 동작방식
- 일반적으로 RNN은 작은 recurrent core cell을 가지고 입력이 RNN으로 들어가면 내부의 hidden state가 입력이 발생할 때마다 업데이트 된다.
- hidden state는 모델에 feed back 되고 입력을 받아들인다.
- 파라미터 w를 가진 함수 f가 있다.
- 함수 f는 이전 상태의 hidden state인 h_t-1과 현재 상태의 입력인 x_t를 입력으로 받고, h_t(다음 상태의 hidden state)를 출력한다.
- 다음 단계에서는 h_t와 x_t+1이 입력된다.
- 출력 y를 가지려면 h_t를 입력으로 하는 FC-Layer를 추가해야 한다.
- FC-Layer는 h_t기반
- 파라미터 W는 매 스탭 동일하다.
Sequence to Sequence(many to one + one to many)
- encoder + decoder
- Output sentence의 각 losses를 합해서 Backprob 진행
- 각 글자는 하나의 벡터로 표현(해당 글자 위치만 1로 표시)
- y_t는 어떤 문자가 h 다음에 나올 것 같은지를 예측한 값(이 예제에서는 h 다음에 e를 예측해야 정답)
- 실제로는 많은 연산량 때문에 one hot 사용
- 이런 모델의 경우 시퀀스 스텝마다 출력값이 존재, Backpropagation through time 발생(이 출력값들의 Loss를 계산해 final loss를 얻는 것)
Attention(모델)
- Caption을 생성할 때 이미지의 다양한 부분을 집중해서(attention) 볼 수 있다.
- CNN으로 grid of vector를 만들고 forward pass 시 매 스탭 vocabulary에서 샘플링할 때 모델이 이미지에서 보고싶은 위치에 대한 분포도 만든다(attention)
- 첫번째 hidden state는 이미지의 위치에 대한 분포를 계산하고 이 분포를 다시 벡터집합과 연산하여 이미지 attention을 생성한다.
- 이 요약된 벡터(z1)은 Neural network의 다음 스텝의 입력으로 들어간다.
- 그러면 voca의 각 단어들의 분포와 이미지 위치에 대한 분포 두가지 출력이 생성된다.
- soft attention의 경우에는 "모든 특징"과 "모든 이미지 위치"간의 weighted combination을 취하는 경우
- hard attention의 경우에는 모델이 각 타임 스텝마다 단 한 곳만 보도록 강제한 경우
- 모델 전체가 미분 가능하기 때문에 soft attention 또한 backprob이 가능하다.
RNN + Attention(모델)
'데이터 > 딥러닝' 카테고리의 다른 글
CS231n_Lecture9:CNN Architectures (0) | 2022.12.27 |
---|---|
CS231n_Lecture8:Deep Learning Software (0) | 2022.11.15 |
CS231n_Lecture7:Training Neural Networks (0) | 2022.11.08 |
CS231n_Lecture6:Training Neural Networks (0) | 2022.11.08 |
CS231n_Lecture5:Convolutional Neural Networks (0) | 2022.11.01 |