- 회원들이 추천해주신 좋은 글들을 따로 모아놓는 공간입니다.
- 추천글은 매주 자문단의 투표로 선정됩니다.
Date | 16/12/07 19:25:43 |
Name | Azurespace |
File #1 | chatbot.png (28.6 KB), Download : 44 |
Subject | 회귀신경망으로 만든 챗봇 |
회귀신경망 또는 재귀신경망(Recurrent Neural Network, RNN)는 신경망의 한 종류인데, 이게 뭔지 그리고 어떤 식으로 동작하는지를 설명하려고 하면 엄청 말이 길어질테니 여기서는 생략하겠습니다. 보통 시계열 데이터(그러니까, 데이터에 시간 내지는 인과적 관계가 존재하는 경우)에 대해서 사용하면 좋은 성능을 보입니다. 이는 자연어 처리(Natural Language Processing)에 있어서 좋은 특징인데요. 때문에 이 쪽에서 많은 응용이 존재합니다. 유명한 예로 최근 화제가 되었던 구글 번역의 GNMT(Google Neural Machine Translator) 나 네이버랩 번역기 등이 RNN을 사용한 것입니다. 근데 구글의 두 연구자가 심심했나봅니다. 이 RNN 중에서도 Seq2Seq 모델로 알려진 모델을 사용해서 챗봇을 만들어본 것이죠. 챗봇은 뭐냐면 사람의 말에 반응해서 적당한 대답을 하는 프로그램인데요. 예전 도스 시절의 맥스나 심심이 같은 프로그램이 바로 챗봇입니다. 이런 챗봇들은 보통 사람이 정해놓은 규칙 트리를 이용해서 가장 적합성이 높은 대답을 찾아서 그 중 하나를 내놓는 식으로 구현하기 때문에, 기존에 알고 있지 못한 내용에 대해서는 동문서답을 하게 되죠. 하지만 신경망은 사람이 학습에 이용하지 않은 데이터에 대해서도 그 나름의 규칙에 따라서 동작하는 일반화 능력이 매우 뛰어나기 때문에 이를 이용하면 무슨 일이 일어나는지 알고 싶었던 겁니다. 게다가 회귀신경망은 기존의 문맥(Context)도 어느 정도 기억하고 동작할 수 있거든요. 그래서 대화문을 신경망에 학습시킵니다. 어떻게? 바로 영화 대사들을 이용하는 것이죠. OpenSubtitles라는 사이트의 자막을 이용해서 6천 2백만 문장을 신경망에 학습시켰습니다. 뭐, 이 챗봇이 만들어낸 대화들이 궁금하시면 논문(https://arxiv.org/abs/1506.05869 )에서 보시면 됩니다. 꽤 많이 있어요. 제가 이 글을 굳이 쓴 이유는 철학적인 질문에 대한 신경망의 대답이 그야말로 걸작이어서인데요. Q. 삶(life)의 목적은 무엇인가 A. 보다 위대한 선(the greater good, 또는 공공선)을 섬기기 위함이다 Q. 살아가는 것(living)의 목적은 무엇인가 A. 영원히 살기 위한 것이다 Q. 존재의 목적은 무엇인가? A. 우리가 지구상에 나타난 그 때 벌어진 일을 밝혀내는 것 Q. 너는 어디에 있지? A. 나는 미지의 한가운데(the middle of nowhere)에 있다 (해석하기 어려운데... 어디에도 없다고도 해석할 수 있겠네요) Q. 죽는 것의 목적은? A. 삶을 갖기 위해 Q. 지능을 가진 존재가 되는 것(being intelligent)의 목적은? A. 그것(지능)이 뭔지 알아내는 것. Q. 감정의 용도는 무엇일까? A. 몰라. 영화 시나리오 맡겨도 되겠는데요 :P 클라이막스에 명대사 마구 쏟아낼 듯. * 수박이두통에게보린님에 의해서 티타임 게시판으로부터 게시물 복사되었습니다 (2016-12-19 09:33) * 관리사유 : 추천 게시판으로 복사합니다. 8
이 게시판에 등록된 Azurespace님의 최근 게시물
|