私は、Penn Treebank(PTB)コーパスに基づいてLSTMで言語モデルをトレーニングしようとしています。言語モデルの学習方法は?
私は、コーパス内のすべてのバイグラムを訓練して、前の単語の次の単語を予測できるようにする必要があると考えていましたが、複数の先行する単語に基づいて次の単語を予測することはできません。
言語モデルを訓練するのはどういうことでしょうか?
バッチサイズ= 20、ボキャブラリサイズが10000なので、結果として10kエントリ(パラメータ?)の20個の結果行列があり、損失は20個のグランド真理値マトリックス実際の次の単語のインデックスのみが1であり、他のエントリがゼロである10k個のエントリのうちの1つである。これは適切な実装ですか?私はそれが普通であるものの権利範囲に間違いではありませんほとんどの繰り返しで変化しないの周り2のパープレキシティを取得しています、だから、それは言語を訓練するために正確に何であるの周りに100
0
A
答えて
1
を言いますモデル?
私はコーパス内のすべてのバイグラムを練習する必要はないと思います。シーケンスを使用してシーケンスモデルを作成するだけで、前の単語の次の単語を予測するときは、確率が最も高い単語を選択するだけです。
ので、私は、復号化のステップごとに、10Kエントリ(パラメータ?)
はいの20の得られた行列を有します。
これは適切な実装ですか?私は約2回の混乱を覚悟していますが、反復の変化はほとんどありません。通常は100程度と言われています。
最初にいくつかのオープンソースコードを参照として読むことができます。例えば、word-rnn-tensorflowおよびchar-rnn-tensorflow。 perplexityは-log(1/10000)と大きく、単語あたり約9 です(これはモデルが全く訓練されておらず、完全にランダムに選択されていることを意味します。合理的)。文中の100は文ごとの複雑さを意味すると思います。
たとえば、tf.contrib.seq2seq.sequence_lossが複雑さを計算するために採用されている場合は、デフォルトとして、真であるとaverage_across_timesteps
とaverage_across_batch
の両方を設定した場合、結果は10未満になりますが、あなたはaverage_across_timesteps
を設定した場合はFalseとの平均の長さにシーケンスは約10、それは約100になります。
関連する問題
- 1. 学習するアセンブリ言語
- 2. プログラミング言語または「教師なしの言語学習」の逆工学
- 3. イタリア語用シンタックスネット事前学習モデル
- 4. 言語学習音声認識ツール
- 5. 機械学習の学習に最適なプログラミング言語は何ですか?
- 6. 人工ニューラルネットワークは言語モデルを学習できますか?ペーパー2000の実装
- 7. 他の言語環境でのTensorFlowの深い学習モデルの使用
- 8. Java/JVMベースのアプリケーションでモデルを学習して機械学習する方法
- 9. 一般的なpython言語の学習方法:data = {i:range(7)のiのrandn()}
- 10. scikitの学習モデルの使い方C#
- 11. Marklogic機械学習またはNLP - 自然言語処理
- 12. Python - 単語学習のツール
- 13. マルチラベル分類のための開始モデルv3モデルの学習方法は?
- 14. 特定の言語を使用した学習アルゴリズムへのアプローチ
- 15. R機械学習モデル - ブラインドテスト
- 16. パーサを学習するための小さな言語
- 17. "古い"言語(Ada/Cobol/Algol)の学習と使用
- 18. JavaScriptの学習方法
- 19. Mapicsの学習方法ERP
- 20. Zend Frameworkの学習方法
- 21. ADO.NETの学習方法
- 22. .NET Frameworkの学習方法
- 23. H2O学習モデルをPMMLにエクスポートする方法
- 24. SparkのLDAモデルのオンライン学習
- 25. さまざまな言語やテクノロジーの学習方法のアドバイスはありますか?
- 26. Kerasのチェックポイント深い学習モデル
- 27. 機械学習モデルのデータフィッティングと予測
- 28. PocketSphinxの言語モデル
- 29. Node.js学習ガイドまたは学習プラン
- 30. 言語を学習するにはどうすればよいですか?