2017-12-22 23 views
2

LSTM 네트워크를 교육 할 약 7M 자의 큰 텍스트 코퍼스가 있습니다. 그러나 저는 제 5 기 이후에 계속적으로 볼 수 있습니다. 생성 된 문장이 개선되는 대신 완전히 정크가됩니다. 아래 예제를 붙여 넣었습니다.LSTM 네트워크는 몇 번의 반복 작업 후에 쓰레기를 생성하기 시작합니다.

Generating with seed: "n who is in possession of the biggest ro" 
n who is in possession of the biggest ro to tato ton ant an to o 
ona toon t o o taon an s to ao t tan t tout att tj ton an o t an $ 

다른 온도에서도 시도했습니다. 위에 붙여진 예가 가장 보수적이었습니다. 여기에 또 다른 세대는 다음과 같습니다

Generating with seed: 'to sin, and most of the known world is n' 
to sin, and most of the known world is na ararea t tarre a araa arae 
tor tae a a aaa aaata ater tje aea arare ar araererrt tmaear araae 

디버깅하려면, 내가 LSTM example from keras 붙여 넣기 사본을 결국 내 신체에 훈련. 다시, iteration 5 주위에서, 그것은 쓰레기를 생성하기 시작합니다.

디버깅하는 방법에 대한 아이디어가 있습니까? 그것은 훨씬 더 일관성있는 예측으로 시작하지만 갑자기 떨어집니다.

답변

1

일반적으로 5 개 에포크는 결론에 도달하기에는 너무 이른 경우가 많습니다. RNN은 쓰레기처럼 보이지 않는 텍스트를 생성 할 수 있지만 아직 배운 내용이 없습니다. 샘플링 된 텍스트가 각 반복마다 분명히 저하되면 걱정해야합니다. 그렇지 않으면 배우십시오.

이렇게되면 확률 분포가 시간에 따라 어떻게 변하는 지 먼저 확인해야합니다. 예를 들어,이 샘플

a ararea t tarre a araa arae 
tor tae a a aaa aaata ater tje aea arare ar araererrt tmaear araae 

는 ... 분명히 a 확률이 너무 높은 것을 나타냅니다. 귀하의 교육 데이터에 많은 aa 반복이 있다고 생각하지 않으므로 서브 시퀀스 aaata은 매우 희박합니다. 이를 확인하려면 최대 확률 점수를 해당 문자와 ​​함께 인쇄하십시오 (배포 요약도 가능). 이 확률이 높아지면 거의 확실하게 문제가됩니다.

데이터 처리 또는 입력 파이프 라인 버그로 시작하여 잘못된 네트워크 연결로 끝나는 여러 가지 이유가있을 수 있습니다. 예를 들어 내가 본 하나의 특정 버그는 알 수없는 문자 또는 패딩에 해당하는 인덱스 0과 관련되었지만 실제로 LSTM에 의해 유효한 문자로 확인되었습니다. 그들 중 많은 수가 있었기 때문에, 네트워크는 바로 이것을 배웠습니다. 따라서 그 확률은 증가했습니다.

+0

답장을 보내 주셔서 감사합니다. 그래서 저는 사실 21 시간 이상 ~ 100 개 에포크를 훈련 시켰습니다. 그러나 출력은 향상되지 않았습니다. 나는 확률 스코어를 검사하고 그것이 산출하는 것을 볼 것입니다. 이것은 가장 높은 온도를 가진 마지막 반복의 산출물이었습니다. "모든 단일 릭을 죽일 때까지 반복적으로 반복 해 버렸습니다. – shekit