1. LSTM은 왜 만들어 졌는가?
1) RNN의 기울기 소멸 문제를 해결하기 위해
2. 기울기 소멸을 어떻게 해결 했는가?
1) 오차역전파에 영향을 받지 않고, Cell State를 통해 정보가 흐름
2) Cell State는 시그모이드를 통해 각 피쳐마다 0~1사이의 값을 도출하고 중요도로 사용
3. 망각 게이트 ("이전 정보 중 불필요한 정보제거")
1) 준비물
- 가. 이전 Layer 출력값
- 나. 이번 Layer 입력값
- 다. 이전 Cell State의 출력값
2) 동작과정
- 가와 나를 concat하고 특정 차원으로 변환하기 위한 웨이트 곱하고, 바이어스 더함
- 위 결과를 시그모이드 함수를 통과시켜 0~1사이로 변환
- 위 결과를 이용해서 특정 피쳐를 얼만큼 망각할지 정함.
4. 메모리 게이트 ("이번 정보 중 필요한 정보남김")
1) 준비물
- 가. 이전 Layer 출력값
- 나. 이번 Layer 입력값
- 다. forget 게이트를 통과한 cell state의 값
2) 동작과정
- 가와 나를 concat하고 특정 차원으로 변환하기 위한 웨이트 곱하고, 바이어스 더함
- 바로 위 결과를 시그모이드 함수를 통과시켜 0~1사이로 변환 (망각게이트와 동일)
- 가와 나를 concat하고 특정 차원으로 변환하기 위한 웨이트 곱하고, 바이어스 더함
- 바로 위 결과를 하이퍼볼릭 탄젠트 함수를 통과시켜 -1~1사이로 변환
- 이번 스텝에서 중요한 정보들이 부각됨
- 망각게이트에 메모리게이트의 정보를 추가해서 현재 Cell State를 만들고 다음 Layer로 전달
5. 출력 게이트 ("만들어진 현재 Cell State중 중요한 값을 증폭해서 출력 ")
1) 준비물
- 가. 이전 Layer 출력값
- 나. 이번 Layer 입력값
- 다. 이번 Cell State 값
2) 동작과정
- 가와 나를 concat하고 특정 차원으로 변환하기 위한 웨이트 곱하고, 바이어스 더함
- 바로 위 결과를 시그모이드 함수를 통과시켜 0~1사이로 변환 (망각게이트와 동일)
- 이번 Cell State에 하이퍼 볼릭 탄젠트 취한 값과 바로위 결과를 곱하여 결과도출
0 comments:
댓글 쓰기