본문 바로가기
책&강의 학습/올인원 패키지 :딥러닝&인공지능

[패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 41회차 미션

by 소한보 2020. 8. 8.

Part4-43. 순환 신경망(RNN) - 01. (STEP 1) 순차 데이터의 이해

순차데이터 Sequential Data


순서가 의미가 있으며 순서가 달라질 경우 의미가 손상되는 데이터를 순차데이터라고 함
DNA염기서열처럼 순서가 의미가 있으나, 시간적인 의미가 없는 경우 (Sequential Data)
세계기온 변화처럼 시간적인 의미가 있는 경우 시간과 value쌍으로 이뤄짐 (Temporal Sequence)
샘플링된 소리신호처럼 일적한 시간차가 있는 경우라면 x축은 time_step으로 표현됨 (Time Series)

Resampleing


데이터를 다루기 위해서는 Time Series로 되어 있으면 좋으나 데이터를 획득할떄는 Temporal Sequence로 얻는 경우가 잦음
이를 변경하기 위한 작업이 Resampling
까만점들을 사이를 추정된 보간된 신호로 매꿔주게됨.
이를 일정한 시간단위로 샘플링하는 것을 리샘플링이라고 함

심층신경망과 순차데이터


심층신경망에서는 입력데이터들이 일정한 길이를 가지고 있고 출력도 동일함
음성인식을 한다고 할때, 음파형태로 입력이 된다. 이는 굉장히 데이터가 큼 (4만레이어 이상)
게다가 입력되는 음성길이는 매번 다름
출력의 경우에는 문제가 음성을 문장으로 clasification 하기 위해서는 one-hot-encoding이 되어 있어야 하는데 이는
다양한 문장이 나오게 되므로 문제가 복잡해짐
이를 RNN으로 해결

다중입력, 단일 출력


개인비서 서비스를 예로들면
입력이 what time is it?의 각 단어가 입력이 들어온다고 할떄
모델이 입력을 받아. 시간을 알려주는 서비스
입력에 대한 classification 결과를 출력

다중입력, 다중출력


번역기가 대표적인 예시
input : I have a pen
output : 나는 펜을 가지고 있다.
각 단어에 따른 다중 출력이 나와야함
입력과 출력의 길이가 다를 수도 있음.

단일입력, 다중출력


사진을 묘사하는 것
고양이 사진을 입력해줬을 때 출력이 묘사한 문장으로 나오는 경우
입력에 따라서 출력의 길이가 다양함

Part4-44. 순환 신경망(RNN) - 02. (STEP 1) 기본적인 순환 신경망

기억시스템 Memory System


기억시스템이 전제가 되어 있어야 우리가 원하는 출력을 얻을 수 있음
모든 입력을 기억하고 있어야 원하는 답변을 얻을 수 있음
이전 입력을 기억하지 않는 시스템을 무기억시스템(Memoryless System)이라 함
이전까지 공부한 ANN DNN CNN이 해당됨

얕은 신경망 (Shallow Neural Network)


대표적인 무기억 시스템 얕은 신경망
입력이 여러번 들어온다고 했을때 n번에 대한 입력은 n번에 대한 출력에만 영향을 줌
즉 이전 입력에 영향을 받지 않은 시스템임

기본적인 순환 신경망 (Vanilla Recurrent Network)


n번째입력에 n-1번째의 히든레이어를 가져와서 concatation시켜 입력의 길이를 늘려줌
일반적으로 활성화함수는 하이퍼볼릭탄젠트사용
출력은 동일하나 인풋레이어가 추가됨

Vanilla RNN은 순환이 추가된 것으로 이해할 수 있음.
n-1의 히든레이어를 가져옴으로써 이전의 모든 입력에 영향을 받게 됨.

다중 계층 순환 신경망(Multi-Layer RNN)


출력전 레이어까지 n-1의 히든레이어를 계속 반복해서 가져와서 쌓아놓은 형태
심층신경망 처럼 쌓아올릴 수 있음
그러나 신경망의 구조가 복잡해지고 학습이 잘 되지 않아서 권장되지 않음.

학습이 잘 안되는 이유는
일반적인 심층신경망은 depth방향으로만 gradient를 잘 타면되지만
RNN은 time_step을 밟아야하므로 time_step에도 gradient를 적용해줘야하기 때문에
복잡해지고 학습이 잘되지 않음

딥러닝/인공지능 올인원 패키지 Online

댓글