• Sequential Data

    2017. 10. 31. 20:55

    by. 위지원

    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(좌),기존(우)


    https://i.stack.imgur.com/jbBjY.png                


    사진 출처 : 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로 합산되어 출력