Sequential Data 데이터의 순서 정보가 매우 중요함Variable Length 입력과 출력의 길이에 유연하게 대응 가능Weight Sharing 모든 시점($t$)에서 동일한 가중치를 공유하여 파라미터 효율성을 높임
One-to-Many 하나의 이미지에서 설명을 생성하는 Image CaptioningMany-to-One 문장을 읽고 긍정/부정을 판단하는 감성 분석(Sentiment Analysis)Many-to-Many 문장을 번역하거나(Seq2Seq), 영상의 프레임마다 태그를 다는 작업Cell State라는 정보 고속도로를 두어 중요한 정보는 멀리까지 보냄Forget Gate, Input Gate, Output Gate를 통해 어떤 정보를 버리고 저장할지 정밀하게 제어Input 순서가 있는 데이터를 집어넣고Hidden State 이전 시점의 기억과 합쳐 맥락을 파악하며Unrolling 시간 순서대로 펼쳐서 연산하고BPTT 과거로 돌아가며 학습하여 최적의 가중치를 찾는 구조| 구분 | RNN | LSTM |
|---|---|---|
| 기억 능력 | * 과거 정보를 짧게 기억 | * RNN 보다는 과거 정보를 길게 기억 가능 |
| 구조 | * 현재 상태와 입력값을 받아 Hidden State(현재 상태)를 통해 출력 * tanh 함수로 단순 계산 |
* Cell State(기억 저장소, 장기 상태)와 Gate를 활용하여 상태 출력 * Forget/Input/Output Gate로 정보 조절 * 계산량이 많고, RNN보다 학습 시간이 길어짐 |
| 한계점 | * 어느 정도 과거를 기억하지만, 긴 시퀀스 학습 어려움 (Vanishing Gradient) * 시간 순서 의존 $\rightarrow$ 연산 속도 느림 (병렬처리 한계) |
* 계산량이 많고, 긴 시퀀스에서 목적을 달성하기 어려움 * 시간 순서 의존 $\rightarrow$ 연산 속도 느림 (병렬처리 한계) |
| 설명 | * 순간순간 정보를 이어가는 방식 | * 순간순간 정보를 이어가는 방식에 더해 * 중요한 정보를 따로 저장하는 기억 저장소(Cell)를 통해 과거 중요한 정보를 오래 활용할 수 있도록 함 |