ML\DL
RNN(Recurrent Neural Network)
메린지
2022. 3. 7. 16:45
1. RNN (Recurrent Neural Network)
- 순환신경망 - 딥러닝 모델은 연속적 데이터가 아닌 현재 snap shot을 분석
-> 데이터의 순서에 따른 정보를 효과적으로 분석하지 못함 - 기존 딥러닝 모델에 시간적인 측면 가미
-> 데이터의 순서에 따른 영향도를 효과적으로 분석 - 연속적인 데이터를 분석하는데 최적화된 모델
2. RNN의 적용분야
- Sequential data를 분석하는데 사용
-> 자연어 처리, 음성 처리, 시간에 따른 센서 데이터 처리 등
3. RNN의 주요 키워드
- 시간
-> RNN의 데이터는 시간 순서대로 입력됨
-> 과거의 데이터가 미래의 출력에 영향을 줄 수 있음 - 기억
-> 시간 따라 입력된 데이터들을 종합한 기억을 가짐
-> 과거의 기억은 현재의 새로운 데이터에 따라 새로운 기억으로 보정
4. RNN의 특징
- 다른 모델과는 다르게 은닉층의 출력이 같은 은닉층의 입력으로 들어감
- 과거에 발생한 사건들을 종합한 맥락 정보를 현재 시점의 입력 데이터 분석 시 사용
5. RNN Unfolding
- 순환되는 RNN 구조를 시간 순서대로 펼친 구조
- hidden layer는 동일하며 시간에 따라 새로운 input과 output이 생성
6. RNN의 가중치(weight)
- Timestamp: 입력신호(x)의 순서
- 두 개의 입력 신호(x, h)를 처리하는 2개의 가중치 존재
-> W - x : 해당 step(t)의 입력신호를 처리하는 가중치
-> W - h : 이전 step(t-1)의 입력 신호를 처리하는 가중치
7. RNN의 이용 모델링 유형
- 기본 구조를 변형해 다양한 유형 문제에 적용 가능
-> one to many
-> many to one
-> many to many
8. RNN의 한계 (장기 의존성 문제) -> 너무 마지막 cell에 치중
- 입력 데이터의 시퀀스가 길어질 경우 학습 정보가 시퀀스가 지나감에 따라 희미해지는 현상
(예) 나는 한국에서 태어났고 이름은 김철수이고 키는 180이고 몸무게는 80킬로그램이고 모국어로 말한다.
-> 모국어..? 어디 모국어..
- 장기 의존성 해결 방안
-> LSTM
-> Seq2Seq
-> Attention (이게 제일 짱)
9. LSTM(Long Short Term Memory)
- LSTM의 핵심 아이디어: Cell state
-> cell state는 모델에 있어 컨베이어 벨트같은 role
-> 각 sequence 별 입력되는 데이터와 달리, 모델의 전체 시퀀스에 거쳐 필요한 정보 전달 - Cell state(Ct)를 통해 전달되는 정보
-> Forget Gate: 이번 스텝(t)에 입력된 데이터([ht-1, xt]) 중 잊어야하는 정보 선정
-> Input Gate: 이번 스텝(t)에 입력된 데이터([ht-1, xt]) 중 중요 정보 선정
-> output Gate: Forget gate와 Input Gate의 정보를 이용해 다음 스텝으로 넘길 정보 선정
10. GRU(Gated Recurrent Unit)
- LSTM은 각 Gate의 숫자가 과도하고 구조가 복잡한 단점
- GRU는 LSTM에서 불필요 Gate를 제거하고 단순화한 모델
- LSTM보다 단순하지만 비슷한 성능
11. RNN의 응용
- NLP Task: AI스피커, 챗봇, 번역기 등
- 비 NLP Task: 추천시스템, 주가 예측
- 다른 모델과 연결: 사진 설명하기(CNN), 썸네일 추출(CNN, 강화학습)