私のDoc2Vecコードは、トレーニングを何度も繰り返した後、良い結果が得られていません。何が悪いのでしょうか?

ゴジョモ

Doc2Vec以下のコードを使用しモデルをトレーニングしています。これtagged_dataは、TaggedDocument以前に設定したインスタンスのリストです

max_epochs = 40

model = Doc2Vec(alpha=0.025, 
                min_alpha=0.001)

model.build_vocab(tagged_data)

for epoch in range(max_epochs):
    print('iteration {0}'.format(epoch))
    model.train(tagged_data,
                total_examples=model.corpus_count,
                epochs=model.iter)
    # decrease the learning rate
    model.alpha -= 0.001
    # fix the learning rate, no decay
    model.min_alpha = model.alpha

model.save("d2v.model")
print("Model Saved")

後でモデルの結果を確認すると、良くありません。何がうまくいかなかったのでしょうか?

ゴジョモ

算術演算.train()を行おうとする独自のループで複数回呼び出さないでくださいalpha

それは不要であり、エラーが発生しやすいです。

具体的には、上記のコードでは、元の0.025アルファを0.00140倍に減らすと、(0.025 - 40*0.001-0.015finalalphaになります。これは、多くのトレーニングエポックでも負の値になります。しかし、負のalpha 学習率は無意味です:それは、本質的にその予測で少し微調整するためにモデルを頼む間違った方向ではなく、中に少し右のすべてのバルクトレーニング更新時に、方向性を。(さらに、model.iterデフォルトでは5であるため、上記のコードは実際に40 * 5トレーニングパスを実行します200-これはおそらく意識的な意図ではありません。しかし、それはコードの読者を混乱させ、トレーニングを遅らせるだけで、alpha誤っ取り扱いのように結果を完全に妨害するわけではありません。)

ここでも一般的なエラーのバリエーションが他にもあります。場合はalpha代わりにデクリメントされた0.0001、40件の減分は最終的に減少するであろうalpha0.021-リニア学習率の崩壊とSGD(確率的勾配降下)のこのスタイルのための適切な実践は、「非常に近くに終了する値のためであるのに対し、0.000」)。ユーザーがいじり始めた場合max_epochs–結局のところ、それはパラメーターが一番上に引き出されたものです!–ただし、毎回デクリメントを調整しないでください。デクリメントは大幅にアンダーシュートまたは大幅にオーバーシュートする可能性があり0.000ます。

したがって、このパターンは使用しないでください。

残念ながら、多くの悪いオンライン例が互いにこのアンチパターンをコピーし、している、自分の中に重大なエラーを作るepochsalphaハンドリング。彼らのエラーをコピーしないでください、そして、この問題が現れるところはどこでも彼らが人々を誤解させていることを彼らの作者に知らせてください。

上記のコードは、はるかに簡単な置換で改善できます。

max_epochs = 40
model = Doc2Vec()  # of course, if non-default parameters needed, use them here
                   # but most users won't need to change alpha/min_alpha at all

model.build_vocab(tagged_data)
model.train(tagged_data, total_examples=model.corpus_count, epochs=max_epochs)

model.save("d2v.model")

ここで、.train()メソッドは要求された数を正確に実行しepochs、内部実効alphaをデフォルトの開始値からほぼゼロにスムーズに減らします。(開始を変更する必要があることはめったにありalphaませんが、必要な場合でも、最初のモデル作成時にデフォルト以外の新しい値を設定するだけで十分です。)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ