순환신경망(RNN)
- 입력데이터가 sequence(시퀀스, 시계열 데이터time series data) - 시점에 따라 데이터가 달라짐. 특정 시점의 데이터 한 번에 수집이 아닌, 시간 흐름에 따라 데이터도 점차 수집하는 것. (각 데이터 포인트의 수집 시점이 다름)
* 시퀀스 데이터: 데이터의 순서가 중요하고, 이전 데이터가 다음 데이터에 영향 미치는 경우.
- NLP의 경우, 문장에서 단어들의 순서 중요.
* 시계열 데이터: 시간 흐름에 따라 측정된 데이터, 시간 순서에 따라 연속적으로 측정
- 주식 가격, 기후 데이터 등.
- RNN: Recurrent(순환) -> 출력 결과가 다음 시점에 재사용
LSTM(Long Short Term Memory)
RNN의 vanishing gradient(그래디언트 소실), exploding gradinet(그래디언트 폭주) problem 해결하기 위해 만든 방법.
긴 시퀀스에서 '장기적 의존성 학습'에 어려움
결과값이 다음 시점으로 넘어갈 때, 결과값을 넘길지 말지 결정하는 단계가 추가됨
* vanishing gradient(그래디언트 소실): 학습 진행 과정에서 그래디언트가 점점 줄어 사라지는 현상
* exploding gradinet(그래디언트 폭주): 학습 진행 과정에서 그래디언트가 점점 커져 폭주하는 현상
cell state & gate
- Cell state: 정보를 장기간 유지 - 데이터가 네트워크를 통과하며 일관되게 유지할 수 있게 해줌
- Gates: 어떤 정보를 유지하고 어떤 정보를 버릴지 결정
- Input gate: 현재 입력이 셀 상태에 얼마나 추가될지 결정.
- Forget gate: 셀 상태에서 어떤 정보를 버릴지 결정
- Output gate: 셀 상태에서 출력할 정보를 결정
LSTM 동작 방식
1) forget gate
- 입력과 이전 cell state 이용해, 현재 셀 상태에서 얼마나 많은 정보를 버릴지 결정 (sigmoid 이용)
2) input gate
- 새로운 정보가 cell state에 얼마나 추가될지 결정 (sigmoid)
2.1) 입력 게이트 활성화: 현재 입력 & 이전 은닉 상태 사용해 새로운 정보 얼마나 추가할지 결정
2.2) 후보 값 생성 Candidate memory: 새로운 정보를 생성 (tanh이용)
3) update cell state
- forget gate, input gate이용해 셀 상태 업데이트
4) output gate
- 셀 상태 바탕으로 현재 시점 출력 결정 (sigmoid & tanh)
activation fn.
* sigmoid: gate 동작 조정 / 0 ~ 1 범위로 매핑 / 정보 선택적으로 조절
* tanh: cell state 조정 / -1 ~ 1 범위로 매핑 / 정보 범위를 조절해 안정적 학습을 지원
+ 비슷한 원리로 GRU (Gated Recurrent Unit) 존재
Auto-Encoder
- Encoder: 입력 데이터를 Code(은닉층)으로 인코딩 (차원 축소)
- Decoder: 인코딩된 Code를 다시 디코딩 (차원 복원)
* feature data 넣고 predict 하는것과 다름, "비지도 학습" 에 해당.
'머신러닝-딥러닝' 카테고리의 다른 글
[딥러닝] Windows 10/11에서 CUDA 설치하기 (0) | 2024.08.28 |
---|---|
[딥러닝] seq2seq & Attention (0) | 2024.08.12 |
[머신러닝] 데이터 핸들링 & 모형 평가 (0) | 2024.08.09 |
[딥러닝] 딥러닝 소개 & 활성함수 & 역전파 계산 (0) | 2024.08.09 |
[딥러닝] refinement란? (1) | 2024.05.16 |