해당 글은 자연어 처리 바이블 (임희석 저) 에서 참고하여 작성되었음을 알려 드립니다.
목차
1. 배경, 특징, 학습 과정
2. 응용 순환 신경망
1. 배경, 특징, 학습과정
배경
- 시간 개념을 반영하는 인공신경망이 필요 해짐
- 이를 해결하기 위해 노드간 연결이 시간 순서에 따라 방향 그래프를 형성하는 RNN을 제안
MLP와의 비교
MLP => 입력값 x와 파라미터θ를 통해 결과값 y^를 반환
RNN => 출력값 y^를 다음 연산을 위해 은닉 상태(hidden state)로써 ht를 다음 셀로 전달
- 입력값x와 은닉 상태 ht−1을 입력 받아 파라미터 θ를 통해 결과값 y와 은닉상태 ht를 반환
특징
1. 노드는 일반적으로 하나의 인공신경망 셀(cell)을 의미, 시간 순서상 이전 셀에서 다음 셀로 정보가 전달되는 연결이 존재
-
적은 파라미터 수와 순환적인 구조에 의해 제한 없이 정보를 처리할 수 있음
-
과거의 정보를 기억한 채로 현재 입력값에 대한 처리를 진행하기 때문에 문맥 정보를 반영할 수 있다는 장점이 있다.
학습 과정
구조

기본적인 계산 방법
- 식
yt^=ht=f(ht−1,xt;θ)=tanh(Whhht−1+Wxhxt+bn)
- 각 스텝에 적용되는 기울기를 모두 계산해야 함.
back-propagation through time(BPTT)
- 시간 스텝에 따라 펼쳐진 RNN을 학습시킨다고 해 붙여진 이름
- RNN의 구조상 입력된 시간 스텝의 수는 피드포워드 인공신경망이 거치는 층의 수와 같기 떄문에 FNN과 동일한 방식으로 역전파 계산을 할 수 있음
단점
- 여러층을 거치며 곱셈 연산을 반복할 경우 전달되는 값의 크기는 점차 작아지며, 이는 기울기 소실 문제로 이어진다.
2. 응용 순환 신경망
LSTM
-
장기 의존성을 학습 할 수 있는 RNN의 특별한 종류
-
구조

-
표준 RNN의 단일셀과 다르게 LSTM 셀에서는 독특한 상호작용이 있다.
-
LSTM의 핵심은 은닉상태(hidden state)를 조절하는 셀 상태(cell state)의 존재다.
- 셀 상태는 약간의 선형 연산만으로 망각 게이트(forget gate)에서 정보를 망각하거나 인풋 게이트(Input gate)에서 정보를 추가해가며 기억할 정보를 조절한다.
- LSTM 은 주로 두 종류의 활성 함수가 사용되는데, 주된 정보는 tanh를 통하고, 주된 정보를 조정하기 위한 값은 sigmoid를 통한다.
- 0~1의 값을 반환하고, sigmoid 함수에 의해 결정
- 0에 근사하면 어떤 값도 통과하지 못함. 1에 근사하면 모든 값이 통과
-
LSTM의 망각 게이트(forget gate)는 전달 받은 정보를 셀 상태로부터 제거할 것인지 결정
- 0~1 사이의 값을 반환하고 sigmoid 함수에 의해 결정
- 0은 완전히 버리는 것 1은 완전히 유지하는 것
-
LSTM의 입력 게이트(Input gate)는 셀 상태에 어떤 정보를 새롭게 추가할지를 결정
- 우선 sigmoid 층을 통해 어떤 값을 업데이트 할지 결정.
- tanh층으로 새로운 후보 값들의 벡터인 Ctˉ를 만들어 낸다.
- 위에 언급된 두부분에 대한 곱 연산을 수행하면 상태에 대한 업데이트가 만들어진다.
-
출력 게이트는 sigmoid 층을 통해 셀 상태의 어떤 부분을 출력할지 결정한다.
GRU
- LSTM과 달리 별도의 셀상태가 존재하지 않고 2개의 게이트만을 갖는다.