-
Sequential Data
-말,텍스트,이미지 등.. 대부분의 데이터가 Sequential Data(순차 데이터)
딥러닝을 위한 Sequential Data
CNN : sequence에서 local features을 찾음
LSTM,GLU : 과거 features을 포착
three type of problems
1.다음 데이터 예측
2.분류
3.시퀀스 생성 : 번역,음성 인식,영상 인식
Recurrent Neural Networks (순환 뉴럴 네트워크)는 아래와 같다.
이렇게 생겨서 입력값 x를 가지고 신경망 h는 o를 출력한다. 가운데에 순환구조로 그려진 화살표가 정보를 다음 단계로 보내준다. 이 구조를 펼쳐보면 이렇게 생긴것 그냥 다음으로 정보를 전달해주고 전달해주고...
하지만 이러한 구조는 장기 의존성 문제를 가지게 된다.
예를들어 이렇게 여러개가 있다고 하자 (...을 추가함)
RNN은 안타깝게도 저렇게 제공된 데이터와 배워야 할 곳의 차이가 좁다면 (<->) 괜찮지만 만약에 멀다면 두정보를 연결하기가 힘들어진다.
이론상으로 RNN은 이를 해결할 방법이 없다는것이 밝혀졌다고 한다..
Long Short Term Memory networks(LSTM)
LSTM은 특별한 종류의 RNN으로 장기 의존성 문제를 해결할 수 있다.
구조는 동일하다 하지만 내부를 살펴보면 4개의 상호 작용 가능한 특별한 방식의 구조를 가지고 있다. LSTM(좌),기존(우)
사진 출처 : http://colah.github.io/posts/2015-08-Understanding-LSTMs/
LSTM은 가장 상단에 있는 ---(x)------(+)----> 이부분을 셀 스테이트(cell state)라고 하는데, 이부분이 핵심이다.
셀스테이트에 정제 된 구조를 가진 게이트라는 요소를 활용해 정보를 더하거나 제거하는 기능을 함
게이트는 상단의 사진중에 아래와 같이 생긴부분을 게이트라 하며 시그모이드 레이어+연산으로 이루어짐
이 시그모이드 레이어는 0 또는 1의 값을 출력하며 각 구성요소가 얼마만큼의 영향을 주게 될지를 결정해주는 역할
위의 신경망 부분을 다시 보면 아래와 같은데, LSTM의 처리과정을 보면
사진 출처 : http://people.idsia.ch/~juergen/lstm/sld016.htm
1.forget gate에서 정보를 버릴지 유지할지를 결정한다.
0:버린다 1:유지한다
2.새로운 정보에 대해서 저장할지 결정한다.
2-1.input gate sigmoid layer는 어떤 값을 우리가 업데이트 할지 결정
2-2.tannh 레이어는 새로운 후보값을 만들어냄
이렇게 만들어진 값을 합쳐서 다음 state에 영향을 줌
아래와 같은것... 정보를 받고 막고 뱉고 하는 방식으로
게이트를 이용하여 데이터를 정재해서 사용하는 것
사진 출처 : http://slideplayer.com/slide/10091784/
Encoder-Decoder Schema
인코더 : 입력 시퀀스를 하나의 벡터로 압축
디코더 : 벡터로부터 필요한 정보만 추출
Attention Model
모든 입력이 유용하지는 않다. 문맥관련 입력이 유용하다. Attention Model을 거쳐서 나오면 context를 고려한 각 입력의 가중치의 합계를 뱉어내서 신경망으로 전달한다.
Attention Model 내부를 살펴보면 다음과 같은데
1,Matching degree는 context에 대한 각 입력의 일치 정도를 평가한다.
2.softmax에서 matching degree를 정규화한다
3.각 입력들은 s1,s2,sn에 의해서 조정되고 z로 합산되어 출력
'2017년 > machine learning' 카테고리의 다른 글
생성적 적대신경망 (GAN,Generative Adversarial Network) (0) 2017.10.31 기계학습 학습데이터에 대해서 (0) 2017.10.31 머신러닝 기초 (0) 2017.10.31 텐서플로우의 행렬 ,shape에 대해/. (0) 2017.09.18 깨닳음의 시간..ml engine api를 다시보자 (0) 2017.09.12