순환신경망

위키원
Dkdlzls21 (토론 | 기여)님의 2019년 9월 17일 (화) 10:34 판 (새 문서: '''RNN'''(Recurrent Neural Network)는 순환 신경망으로 인공 신경망의 한 종류이다. 유닛간의 연결이 순환적 구조를 갖는 특징을 갖고 있다. ==개...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

RNN(Recurrent Neural Network)는 순환 신경망으로 인공 신경망의 한 종류이다. 유닛간의 연결이 순환적 구조를 갖는 특징을 갖고 있다.

개요

순환 신경망은 시퀀스 데이터를 모델링 하기 위해 등장했다. 순환 신경망이 기존의 뉴럴 네트워크와 다른 점은 '기억'을 갖고 있다는 점인데, 네트워크의 기억은 지금까지의 입력 데이터를 요약한 정보라고 볼 수 있다. 새로운 입력이 들어올때마다 네트워크는 자신의 기억을 조금씩 수정한다. 결국 입력을 모두 처리하고 난 후 네트워크에게 남겨진 기억은 시퀀스 전체를 요약하는 정보가 된다. 이는 사람이 시퀀스를 처리하는 방식과 비슷하다. 이 글을 읽을 때도 우리는 이전까지의 단어에 대한 기억을 바탕으로 새로운 단어를 이해한다. 이 과정은 새로운 단어마다 계속해서 반복되기 때문에 순환 신경망에는 Recurrent, 즉 순환적이라는 이름이 붙는다. 순환 신경망은 이런 반복을 통해 아무리 긴 시퀀스라도 처리할 수 있는 것이다.[1]

활용

언어 모델링과 텍스트 생성

언어 모델은 주어진 문장에서 이전 단어들을 보고 다음 단어가 나올 확률을 계산해주는 모델이다. 언어 모델은 어떤 문장이 실제로 존재할 확률이 얼마나 되는지 계산해주기 때문에, 자동 번역의 출력값으로 어떤 문장을 내보내는 것이 더 좋은지 알려줄 수 있다. 문장에서 다음 단어가 나타날 확률을 계산해주는 주 목적 외의 부수적인 효과로 생성 모델을 얻을 수 있는데, 출력 확률 분포에서 샘플링을 통해 문장의 다음 단어가 무엇이 되면 좋을지 정한다면 기존에 없던 새로운 문장을 생성할 수 있고, 또한 학습 데이터에 따라 다양하고 재밌는 여러 가지를 만들어낼 수도 있다.언어 모델에서의 입력값은 단어들의 시퀀스이고, 출력은 추측된 단어들의 시퀀스이다.[2]

기계 번역

기계 번역 문제는 입력이 단어들의 시퀀스라는 점에서 언어 모델링과 비슷하지만, 출력값이 다른 언어로 되어있는 단어들의 시퀀스라는 점에서 차이가 있다. 네트워크 상에서 중요한 차이점은, 입력값을 전부 다 받아들인 다음에서야 네트워크가 출력값을 내보낸다는 점에 있는데, 번역 문제에서는 어순이 다른 문제 등이 있기 때문에 대상 언어의 문장의 첫 단어를 알기 위해선 번역할 문장 전체를 봐야 할 수도 있기 때문이다.[2]

음성 인식

사운드 웨이브의 음향 신호를 입력으로 받아들이고, 출력으로는 음소들의 시퀀스와 각각의 음소별 확률 분포를 추측할 수 있다.[2]

이미지 캡션 생성

컴퓨터 비전에서 활발하게 사용된 합성곱 신경망(CNN, Convolutional Neural Network)과 순환 신경망을 함께 사용한다면, 임의의 이미지를 텍스트로 설명해주는 시스템을 만드는 것이 가능해진다. 합성곱 신경망과 순환 신경망을 합친 모델은 이미지로부터 얻어낸 주요 단어들과 이미지의 각 부분을 매칭해줄 수도 있다.[2]


참고 자료

  • 순환 신경망 개요〉, 《DISQUS》
  • 2.0 2.1 2.2 2.3 순환 신경망 활용〉, 《DISQUS》