본문 바로가기
Programming/Deep learning

lec 12 : NN의 꽃 RNN

by OKOK 2018. 5. 6.

Sequence data 가 있습니다. 단어. 맥락을 이해하는 것. 단어를 이해한 다음에 다음 단어가 이해가 됩니다. 시퀀스 데이터가 되겠습니다. NN/CNN에는 시퀀스 데이터가 아닙니다. 시리즈 데이터들을 처리하기가 어렵습니다. 그래서 많은 사람들이 고민한 끝에 만들어 낸 것이 RNN 입니다.  


실제로는 구현되는 형태가 있습니다. 어떠한 입력이 있고 각각 출력이 있습니다. 이전의 상태(state)가 다음 것에 영향을 미치는 것을 의미합니다. 어떤 시점에서 계산을 할때 이전의 상태의 값이 영향을 미친다.


RNN에는 state 라는 개념이 있습니다. 스테이를 보면 이전의 데이터가 입력으로 사용됩니다. 


바닐라 RNN (가장 기초가 되는 RNN) 알고리즘은 이것입니다. 각각의 웨이트를 만들어줍니다. 똑같은 형식입니다. 시그모드와 같은 형태인데 tanh 쓰이는 것이 차별점입니다. 와이 값의 출력이 필요할때. 와이를 뽑을 때는 계산된 ht에다가 다른 형태의 웨이트를 곱해줍니다. 그래서 총 3개의 파라미터가 학습됩니다.


아 웨이트가 동일하구나. 신기하네. 모든 단계에서 웨이트 값을 동일합니다. 실제로 어떻게 되는지 그림으로 보면 아래와 같습니다. 캐릭터 레벨의 랭귀지 모델입니다. 현재 글씨가 있을 때 다음 글씨가 무엇일까. 연관 검색어. 자동 검색 완성 기능이 예가 있습니다. 캐릭터를 벡터로 계산해야 한다. 

마지막 출력을 할때는 Softmax를 사용하여 클래스파이를 합니다. 


굉장히 활용분야가 다양합니다. 랭귀지 모델, 스피치 인식, 음성 인식, 번역하는 것, 대화하는 봇을 만들수도 있습니다. 질문을 출력하는 문자열이 있습니다. 이미지 캡셔닝에도 쓸 수 있습니다. 트랜슬레이션.