-
Notifications
You must be signed in to change notification settings - Fork 3
RNN
BIBI edited this page Sep 14, 2019
·
5 revisions
기존의 인공신경망은 순차적인 정보가 담긴 데이터를 처리하는 것에 어려움이 있다.
- Sequence data를 모델링하기 위해 등장
- 다른 NN과는 다르게 hidden state를 가지고 있음 (기억. 지금까지 입력된 데이터의 요약된 집합)
- 새로 입력이 들어오면 네트워크는 자신의 hidden state를 수정
- 입력을 모두 처리하고 난 네트워크의 hidden state는 sequence 전체를 요약하는 정보가 됨

- 빨강 : 입력 / 노랑 : hidden state(기억) / 파랑 : 출력
- 첫번째 입력이 들어오면 첫번째 hidden state가 만들어짊
- 두번째 입력이 들어오면 첫번째 hidden state를 참고하여 두번째 hidden state가 만들어짊
- 순차적인 정보가 담긴 데이터(Sequence data)를 처리하는 데 용이
- 이전 상태의 hidden layers의 결과가 다음 순서의 hidden layers의 입력으로 들어가도록 설계
- 이전 상태를 보존하면서 새로운 상태를 받아들이기 때문에 입력값의 시간 순서를 기억
- 순차적인 데이터 입력에 따라 문맥 정보 파악이 가능
- 이론적으론 긴 Sequence Data를 처리할 수 있지만, 실제로는 비교적 짧은 Sequence Data만 효과적으로 처리한다 : 장기 의존성 문제
- RNN은 입력 값 크기의 제한이 존재하지 않는다. 그래서 길이의 제한이 없는 텍스트나 음성 분석에 많이 사용된다.
: Unfold 형태로 바라본 RNN
- RNN은 Backprpagation과는 조금 다르게 학습시켜야 한다.
- RNN에선 현재 step과 이전 step이 연결되어 있기 때문에 시간을 거슬러 올라가며 backpropagation 진행
- 사용되는 함수
- Softmax
- 값의 분포에 따른 출현 확률
- Cross-Entropy
- 두 개의 확률 분포의 비슷한 정도를 나타내는 지표
- 0에 가까울 수록 확률 분포가 비슷하다
- softmax를 통해 나오는 예측값이 확률 분포이므로, 오차함수는 Cross-Entropy를 사용한다
- Softmax
- 수학적 관점으로 보는 BPTT
- backpropagation through time에서, step의 길이가 길어질수록 편도함수 값이 0에 수렴하는 문제이다.
- Truncated BPTT (단기 BPTT)
- 모든 시간에 대한 은닉층의 값을 저장하는 것 : 현실적으로 불가능
- 기준 길이보다 오래된 값은 반영하지 않도록 한다
- 해결 방법
- LSTM, GRU : RNN의 구조를 변형하여 문제 해결 (link)
- Bidirectional Recurrent Neural Networks (BRNNs): 데이터를 RNN 모델에 넣을 때 정방향/역방향의 두 방향으로 넣는다.
-
one to one
- 고정 input, 고정 output
- perceptron. 신경망의 기본적인 구조
- 순환적인 부분이 없기 때문에 rnn이 아니다.
-
one to many
- 고정 input, 시퀀스 output
- image captioning : 이미지를 가지고 Sequence of words 생산
- 이미지 -> 들판 위에 구름이 낀 하늘이 있다.
-
many to one
- 시퀀스 input, 고정 output
- Sentiment analysis
- sequence of words -> sentiment
- 주어진 문장의 감정 상태를 분석한다 (afinn, vader)
-
many to many
- 시퀀스 input, 시퀀스 output
- Machine Translation
- sequence of words -> sequence of words
- 번역기 : encoder to decoder라고도 한다
-
many to many
- 동기화된 시퀀스 input, 시퀀스 output
- Search term autocomplete
- sequence of words -> sequence o words
- 자동 완성 검색어
RNN은 입력된지 시간이 오래 지난 데이터는 잘 보존하지 못하는 문제가 있다. 이 문제를 해결하기 위해 LSTM이 개발되었다.
- RNN과 LSTM을 이해해보자!
- BRNN : 이후의 정보도 기억하는 BRNN
- RNN 이해하기