LSTM(Long Short-Term Memory)
- RNN의 기울기 폭등/소실 문제 해결하기 위해 만들어짐
- Long-Term Memory와 Short-Term Memory를 둘 다 사용하여 결과값 도출
- 시그모이드(Sigmoid) 함수와 하이퍼볼릭탄젠트(tanh) 함수 사용
- 시그모이드 함수
: x 값에 따라 y 값이 0과 1 사이로 나타남
: 어떤 입력값이 들어와도 0과 1 사이로 반환
- 하이퍼볼릭탄젠트 함수
: x 값에 따라 y 값이 -1과 1 사이로 나타남
: 어떤 입력값이 들어와도 -1과 1 사이로 반환
LSTM의 진행 과정
- Long-Term Memory
: 가중치와 편향 없음 => 기울기 폭등/소실 문제 해결
- Short-Term Memory
: 가중치 존재
① (Short-Term Memory * 2.70) + (입력값 * 1.63)
=> 시그모이드 함수 적용
=> 적용한 값 + 기존 Long-Term Memory
=> 두 번째 Long-Term Memory
: 시그모이드 함수 결과값은 다음 Long-Term Memory가 얼마나 기억될지에 영향을 줌 => Forget Gate
② (Short-Term Memory * 1.41) + (입력값 * 0.94)
=> 하이퍼볼릭 탄젠트 함수 적용
=> Potential Long-Term Memory
③ (Short-Term Memory * 2.00) + (입력값 * 1.65)
=> 시그모이드 함수 적용
=> Potential Memory To Remember
④ (Potential Long-Term Memory * Potential Memory To Remember)
=> 더한 계산값 + 두 번째 Long-Term Memory
=> New Long-Term Memory
: Long-Term Memory를 얼마나 업데이트할지 결정 => Input Gate
⑤ 두 번째 Long-Term Memory를 하이퍼볼릭 탄젠트 함수에 적용
=> Potential Short-Term Memory
⑥ (Short-Term Memory * 4.38) + (입력값 * -0.19)
=> 시그모이드 함수 적용
=> (Potential Memory To Remember * Potentail Short Term Memory)
=> New Short-Term Memory => 결과값
'AI > NLP' 카테고리의 다른 글
[라이브러리] 넘파이(Numpy) - ndarray, 메소드, 슬라이싱, 정수 인덱싱 (0) | 2023.07.07 |
---|---|
[라이브러리] 판다스(Pandas) - 시리즈(Series), 데이터프레임(DataFrame), 외부 데이터 읽기, 프로파일링(Profiling) (0) | 2023.07.05 |
Word Embedding과 Word2Vec (0) | 2023.07.03 |
RNN(Recurrent Neural Network) (0) | 2023.06.29 |
LSTM 감성 분류(Sentiment Analysis) - IMDB 영화 리뷰 데이터 (0) | 2023.06.07 |