2017-12-05 19 views
1

이 위치가 맞는지 확실하지 않으므로 친구가 여기에 있습니다. 교육 도중 텍스트를 가져 오는 AI를 만들고 싶습니다. 사용자가 샘플을 "샘플링"한 내용을 기반으로 새로운 텍스트를 제공합니다 (이것은 이 아니며 채팅 프로그램의 경우입니다). 예를 들어임의 텍스트 예측을위한 인공 지능 모델?

, 나는 훈련을 위해 다음과 같은 입력 한 경우 :

abc123,test,example 
def456,work,coolio 

및 샘플링에 대해 다음 : 그것은 출력 뭔가 가 알고있는 것에을 기반으로한다

ghi789,what 

만이 아니라 정확히 알고있는 것의 복제본 (물론 입력이 훈련 용으로 사용되지 않았다면).

이것이 가능합니까? 이것에 대한 기존 모델이 있습니까? 나는 char-rnn을 생각하고 있었지만 샘플링 중에 사용자 입력을 허용하지 않았습니다.

죄송합니다. 이것이 틀린 장소이거나이 사이트에서 허용되지 않는 경우입니다. 나는 광범위하게 연구했지만 아무것도 찾을 수 없다. 나는 TensorFlow의 작은 비트를 알고 있지만 처음부터 시작하기에는 충분하지 않습니다.

미리 감사드립니다.

답변

1

문자 RNN이 시작하는 것이 좋습니다. 당신이 현장에 처음 온 사람이라면, 시작하는 것이 가장 좋은 곳입니다. 왜냐하면 우리는 그들이 일하는 것을 알고 있기 때문에, 많은 도움이되는 자습서와 예제가 있기 때문입니다. 이에

읽기 Karpathy의 우수한 블로그 & 용지 : http://karpathy.github.io/2015/05/21/rnn-effectiveness/

당신은 확실히 샘플링하는 동안 사용자 입력을 제공 할 수 있습니다. 일단 네트워크가 훈련되면 여러 가지 방법으로 샘플을 추출 할 수 있습니다. 사실 최소한 첫 번째 문자는 "사용자 정의 입력"으로 제공해야합니다.

일반적인 샘플링 패턴은 첫 번째 문자를 첫 번째 RNN 시퀀스 단계에 대한 입력으로 무작위로 선택하는 것입니다. 그런 다음 RNN은 알파벳을 통해 확률 분포를 생성하여 다음 문자를 무작위로 추출 할 수 있습니다.

두 번째 문자의 경우 RNN 확률 분포에서 샘플링 한 다음 임의로 선택한 문자가 다음 RNN 시퀀스 단계의 입력이됩니다. 다음 문자들에 대해서도 마찬가지입니다.

여러 문자의 시퀀스를 시드하고 각 단계에서 출력되는 RNN을 무시한 다음 일부 입력 시퀀스가 ​​완료된 후 RNN 출력을 샘플링하는 것을 막을 수있는 방법은 없습니다. 따라서 맞춤 입력 시퀀스로 시작하는 목표를 달성 한 다음 계속합니다. 나는이 접근법이 당신을 위해 아주 잘 작동 할 것으로 기대합니다.