Part4-45. 순환 신경망(RNN) - 03. (STEP 1) 심화 순환 신경망
기울기 소실문제
Vanilla RNN을 잘 안쓰는 이유
시점이 차이가 많이 날 경우 학습능력이 저하됨
Vanilla RNN

다른형태로 표현하면
입력이 들어왔을때 tanh를 활성화함수로 사용하는 fully connected layer
LSTM(Long Short-Term Memory)

전반적인 개념은
오래기억할 것은 기억하고 잊을 것은 빨리 잊어버리는 것을 목표로 함
RNN와 다른 점은 선이 두개있다는 점을 기억할것
Cell state, Hideen state

기억을 잘하기 위해서 Cell state가 추가
새로운 특징을 덧셈으로 받는 다는 점이 특징 (Reasidual Network와 동일한 구조)
Cell state가 기억에 대한 것을 전담함
Forget Gate

시그모이드를 활성화 함수로 사용
0~1의 출력값을 가짐
이 값을 곱해주는 것을 통해 얼만큼 잊을지를 계산할 수 있음
Input Gate

입력과 이전 히든스테이트를 받는 fully
얼만큼 기억할 것인가를 덧셈으로 계산
Output Gate

cell로부터 얼마나 출력을 내보낼지 결정
시그모이드를 사용해서 어떤 것을 내보낼지 결정함
cell memory와 별개로 다음에 전달함
cell state에서 마지막 tanh는
범위가 변경되기 때문에 조절하기 위한 별도의 활성화 함수
GRU

LSTM을 간소한 버젼
Cell State가 없고 Hidden state만 존재
Forget gete와 Input Gate를 결함
Reset Gate를 추가
Forget Gate&Input Gate

LSTM과 동일한 Forget Gate를 사용
잊어버린 부분만 새로운 부분으로 체워줌
Reset Gate
새로운 feature를 뽑기 전에 기억(hidden state)를 얼마나 기억할지 결정
마침표가 등장한다면 앞문장과 뒷문장을 구별해줘야함
그런 역할을 함
기억에 얼만큼 영향을 받게 할 것인지 결정
Part4-46. 순환 신경망(RNN) - 04. (STEP 1) 시간펼침 역전파 학습법
순차데이터셋의 구조
다중입력, 단일 출력 -> NXM /NX1
다중입력, 다중 출력 -> NXM /NXK
다일입력, 다중 출력 -> NX1 /NXK
순환신경망의 순방향 추론
입력을 순차적으로 입력하여 마지막 입력시 출력을 사용
마지막의 경우 특별하게 EOS(End of Sequence) 미리정해둔 토큰을 날려 마지막을 구분해줌
시간펼침 역전파 (Back Propagation Through Time)

순방향으로 계산해서 loss를 구하고
각각의 미분을 구함
시간적으로 펼쳐둔 상태에서 역전파를 해야함
시간적으로 펼쳐진 변수들은 동일한 변수라는 점에 유의해야함
같은 trainabel variable을 사용
단일입력, 다중출력

길이가 정해져있지 않는 다중출력의 경우
마지막출력에게 EOS출력을 나게끔 해줘야함
다중입력, 단일출력

입력과 출력이 매 time-step마다 이뤄지는 경우
동영상의 프레임별 분류가 대표적인 예
다중입력, 다중출력

모든입력을 받고 출력을 내는 경우
문장번역, 챗봇 등의 어플리케이션
Seq2seq의 경우에는 출력을 내기위해 이전출력을 사용하기도 함
'책&강의 학습 > 올인원 패키지 :딥러닝&인공지능' 카테고리의 다른 글
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 44회차 미션 (0) | 2020.08.11 |
|---|---|
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 43회차 미션 (0) | 2020.08.10 |
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 41회차 미션 (0) | 2020.08.08 |
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 40회차 미션 (0) | 2020.08.07 |
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 39회차 미션 (0) | 2020.08.06 |
댓글