시퀀스 데이터(또는 시퀀스)의 특징에 관해 알아보면서 RNN에 대해 알아보겠습니다. 시퀀스에는 다른 종류의 데이터와는 구별되는 독특한 성질이 있습니다. 시퀀스 데이터를 표현하는 방법과 시퀀스 데이터를 위한 여러 가지 모델을 살펴보겠습니다.
1.시퀀스 데이터 모델링: 순서를 고려한다.
다른 데이터 타입과 다르게 시퀀스는 특별합니다. 시퀀스 원소들은 특정 순서를 가지므로 상호 독립적이지 않기 때문입니다.
일반적으로 지도 학습의 머신 러닝 알고리즘은 입력 데이터가 독립 동일 분포라고 가정합니다. 예를 들어 n개의 데이터 샘플이 있을때 머신 러닝 알고리즘을 훈련하기 위해 데이터를 사용하는 순서는 상관없습니다.
시퀀스 데이터를 다룰 때는 더 이상 이런 가정이 유효하지 않습니다. 시퀀스는 정의 자체가 순서를 고려한 데이터이기 때문입니다.
2. 시퀀스 표현
입력 데이터에서 의미 있는 순서를 가지도록 시퀀스를 구성합니다. 그다음 머신 러닝 모델이 이런 유용한 정보를 사용하도록 만들어야 합니다.
MLP와 CNN같이 기본적인 신경망 모델은 입력 샘플의 순서를 다루지 못합니다. 쉽게 생각해서 이런 모델은 이전에 본 샘플을 기억하지 못합니다. 샘플이 정방향과 역방향 단계를 통과하고 가중치는 샘플이 처리되는 순서와 상관없이 업데이트됩니다. 반면 RNN은 시퀀스 모델링을 위해 고안되었습니다. 지난 정보를 기억하고 이를 기반으로 새로운 이벤트를 처리할 수 있습니다.
3. 시퀀스 모델링의 종류
데이터를 모델링하려면 MLP나 CNN같은 방법 중 하나를 사용할 수 있습니다. 입력이나 출력이 시퀀스라면 데이터는 다음 세 가지 중 하나로 구성됩니다.
- 다대일: 입력 데이터가 시퀀스입니다. 출력은 시퀀스가 아니라 고정 크기의 백터입니다. 예를 들어 감성 분석에서 입력은 텍스트고 출력은 클래스 레이블입니다.
- 일대다: 입력 데이터가 시퀀스가 아니라 일반적인 형태입니다. 출력은 시퀀스입니다. 이런 종류의 예로는 이미지 캡셔닝이 있습니다. 입력이 이미지고 출력은 영어 문장입니다.
- 다대다: 입력과 출력 배열이 모두 시퀀스입니다. 이런 종류는 입력과 출력이 동기적인지 아닌지에 따라 더 나눌 수 있습니다. 동기적 다대다 모델링 작업의 예는 각 프레입이 레이블되어 있는 비디오 분류입니다. 그렇지 않은 다대다 모델의 예는 한 언어에서 다른 언어로 번역하는 작업입니다. 예를 들어 독일어로 번역하기 전에 전체 영어 문장을 읽어 처리합니다.
4. 시퀀스 모델링을 위한 RNN
RNN구조에는 기본 피드포워드 신경망구조와 순환 신경망구조로 나뉘고 있습니다. 기본 피드포워드 네트워크에서 정보는 입력에서 은닉층으로 흐른 후 은닉층에서 출력층으로 전달됩니다. 반면 순환 네트워크에서는 은닉층이 입력층과 이전 타임 스텝의 은닉층으로부터 정보를 받습니다.
인접한 타임 스텝의 정보가 은닉층에 흐르기 때문에 네트워크가 이전 이벤트를 기억할 수 있습니다. 이 정보 흐름을 보통 루프(loop)로 표시합니다. 그래프 표기법에서는 순환 에지(recurrent edge)라고도 하기 때문에 이 구조 이름이 여기서 유래되었습니다.
표준 신경망의 은닉 유닛은 입력층에 연결된 최종 입력 하나만 받습니다. 반면 RNN의 은닛 유닛은 두 개의 다른 입력을 받습니다. 입력층으로부터 받은 입력과 같은 은닉층에서 t-1 타임 스텝의 활성화 출력을 받습니다.
5. 긴 시퀀스 학습의 어려움
손실 함수의 그래디언트를 계산할 때 그래디언트 폭주또는 그래디언트 손실문제가 발생합니다. 이 문제를 피하는 간단한 해결책으로 T-BPTT, LSTM가 있습니다
T-BPTT는 주어진 타임 스텝 너머의 그래디언트를 버립니다. T-BPTT가 그래디언트 폭주 문제를 해결할 수 있지만 그래디언트가 시간을 거슬러 적절하게 가중치가 업데이트될 수 있는 타임 스텝을 제한합니다. 반명 LSTM은 그래디언트 손실 문제를 극복한 긴 시퀀스를 성공적으로 모델링할 수 있습니다.
6.LSTM 유닛
LSTM은 그래디언트 소실 문제를 극복하기 위해 처음 소개되었습니다. LSTM의 기본 구성 요소는 은닉층을 의미하는 메모리 셀(memory cell)입니다. 그래디언트 소실과 폭주 문제를 극복하기 위해 각 메모리 셀에 적절한 가중치 w=1을 유지하는 순환 에지가 있습니다. 이 순환 에지의 출력을 셀 상태(cell state)라고 합니다.
'ML & AI Theory' 카테고리의 다른 글
다층 신경망의 활성화 함수 : 시그모이드, 소프트맥스, 하이퍼볼릭탄젠트, 렐루함수 (0) | 2021.07.05 |
---|---|
케라스 실습] tf.keras API를 사용한 다층 신경망 훈련 기본 (0) | 2021.07.04 |
텐서플로우 #1] 텐서플로우의 시작과 배열 구조 다루기 (0) | 2021.07.03 |
RNN 실전실습 : 시퀀스 모델링을 위한 다층 RNN구현 : IMDB 영화리뷰 구현 (0) | 2021.06.28 |
인공신경망관련 용어정리 : 퍼셉트론, MLP, Feed Forward, Back Propagation, 활성 함수, 시그모이드 함수, Gradient Descent Method (0) | 2021.06.28 |
머신러닝 모델의 예측 평가에 대해 #2 - 오차행렬 & F1 Score (0) | 2020.11.10 |
머신러닝 모델의 예측 평가에 대해 #1 - Intro & 정확도 (Accuracy) (0) | 2020.11.08 |
ROC, AUC Curve에 대해 : Receiver Operating Characteristic, Area Under the Curve (0) | 2020.10.25 |