ML lab 12 DeepLearning

lec12 : NN의 꽃 RNN 이야기


RNN은 sequence data에서 자주 쓰이는데 이전의 데이터가 다음의 데이터에 영향을 줄 때 자주 사용된다.
위 그림을 자세히 풀어보면 아래와 같다.


RNN에는 state라는 개념이 있다. state는 위에서 언급했듯이 이전의 state에 영향을 받는다.


이제 구체적인 연산 방법에 대해 알아보자.
가장 기본이 되는 Vanilla RNN에 대해 알아보자.



새로운 state는 이전의 state와 x와 weights에 의해 결정된다.
그리고 y는 weight와 state로 결정된다.


예를 들어, hello를 RNN했을 때 위와 같은 모습을 가진다.
language model은 네이버 검색과 같다.
h를 입력했을 때 가장 많이 나오는 e를 보여주고 그 다음 많이 나오는 l을 보여주고
결국 h 하나 입력했는데 사람들이 가장 많이 입력하는 hello가 검색 도우미 창에 나오는 것이다.


RNN의 첫번째 단계는 문자열을 벡터화하는 것이다.
위 예시는 one hot encoding한 것이다.
[h,e,l,o] 벡터를 가지고 h = [1,0,0,0]으로 만드는 방식이다.



위 hidden layer에서는 input layer와 이전의 hidden layer를 이용해 다음 layer값 weight를 결정한다.




마지막 output 레이어에서는 가장 큰 수를 가진 문자를 선택하게 된다.
하지만 두번째에서는 l을 원했지만 o가 나왔으므로 에러가 발생한다.

간단히 RNN의 과정을 알아보았다.
이제 RNN의 활용 예들은 아래와 같다.




음성 인식, 대화 모델, 이미지 캡쳐 등 여러가지 방면에서 사용된다.



RNN에서 여러가지 기술들이 존재한다. 기술마다 쓰이는 곳이 다르다.

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리