2017-12-22 6 views
2

私は約7M文字の大きなテキストコーパスを持っており、LSTMネットワークを訓練しています。しかし、私は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を貼り付けコピーしてしまったし、私のコーパスでそれを訓練しました。再び、反復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は非常にうまくいかないはずです。これをチェックするには、それに対応する文字とともに最大確率スコアを印刷します(配布の概要も同様に行います)。あなたがこの確率を上げるのを見るなら、それはほぼ確実に問題です。

データ処理や入力パイプラインのバグから始まり、誤ったネットワーク配線で終わるさまざまな理由が考えられます。たとえば、私が見た特定のバグの1つは、未知の文字またはパディングに対応するインデックス0に関連していましたが、実際にLSTMによって有効な文字として認識されました。彼らの多くがあったので、ネットワークはちょうどこれを学びました、それゆえ、その確率は高まった。

+0

返事ありがとうございます。だから私は実際に21時間以上、100エポック秒間練習させましたが、出力に改善はありませんでした。私は確率スコアをチェックし、それが何をもたらすかを見てみるでしょう。これは、最も高い温度を持つ最後の反復からの出力でした: 'すべての単一のリックを殺すためには、オレンジ色のオレンジ色のオレンジ色のオレンジ色のオレンジ色をお使いください – shekit

関連する問題