debug_seq2seq
1.0.0
注: リポジトリは保守されません。メンテナンスをご希望の場合は、お気軽に私にPMしてください。
keras の seq2seq が機能するようにします。また、seq2seq の他の実装も試してみてください。
コードには次のものが含まれます。
警告
論文
素敵な写真
セットアップ&実行
git clone https://github.com/nicolas-ivanov/debug_seq2seq
cd debug_seq2seq
bash bin/setup.sh
python bin/train.py
その後
python bin/test.py
結果
これまでのところ良い結果は得られていません:
[why ?] -> [i ' . . $$$ . $$$ $$$ $$$ $$$ as as as as i i]
[who ?] -> [i ' . . $$$ . $$$ $$$ $$$ $$$ as as as as i i]
[yeah ?] -> [i ' . . $$$ . $$$ $$$ $$$ $$$ as as as as i i]
[what is it ?] -> [i ' . . $$$ . $$$ $$$ $$$ $$$ as as as as as i]
[why not ?] -> [i ' . . $$$ . $$$ $$$ $$$ $$$ as as as as i i]
[really ?] -> [i ' . . $$$ . $$$ $$$ $$$ $$$ as as as as i i]
私の推測では、このアプローチにはいくつかの根本的な問題があると考えられます。
word2vec ベクトルは単語の表現に使用され、モデルは次の単語ごとに近似ベクトルを返すため、この誤差は単語ごとに累積され、3 番目の単語からモデルは意味のあるものを予測できなくなります。この問題は次のとおりです。タイムスタンプごとに近似 word2vec ベクトルを「正しい」ベクトル、つまり辞書の実際の単語に対応するベクトルに置き換えれば、この問題は解決されます。意味はあるでしょうか?ただし、これを行うには seq2seq コードを詳しく調べる必要があります。
2 番目の問題は単語のサンプリングに関するものです。たとえ前述の問題を解決できたとしても、スタンプのたびに最も可能性の高い単語を選択するために argmax() を使用し続けると、答えは単純すぎて面白くなくなります。
are you a human? -- no .
are you a robot or human? -- no .
are you a robot? -- no .
are you better than siri? -- yes .
are you here ? -- yes .
are you human? -- no .
are you really better than siri? -- yes .
are you there -- you ' re not going to be
are you there?!?! -- yes .
誤解を招かないように注意してください。これらの結果は、tensorflow に基づいた別の seq2seq アーキテクチャで達成されました。
出力結果を多様化するために温度によるサンプリングを使用することもできますが、これも seq2seq ライブラリ内で行う必要があります。