• 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로 합산되어 출력



    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨