クロスエントロピーが言語の事前トレーニングにとって良い損失となるのはなぜですか? 注意:ところで、これはすべて既知です。興味深いことに、「なぜX-Entなのか」には多くの視点や直感がありますが、それらはすべて単一の出発点から到達することができます。 これは、データ分布について何も想定しない単純な第一原理の導出です。これは、非常に合理的な運用要件から来ています:) 「モデルを知的に聞こえたい」 しかし、それを測定することはできないので、尋ねます 「モデルに人間らしい音をあげたい」 私たちはこれまでに書かれたすべてのテキストにアクセスできますが、それも完全に測定できないので、代わりに尋ねます 「モデルがこれまでに書かれたテキストの 1 つを生成する可能性をできるだけ高めたい」 あるいはもっと率直に言って: 「モデルにトレーニングデータを記憶させたい」 この思考実験を考えてみましょう。 人間がこれまでに書いたすべてのテキストのデータセット S が与えられた場合、S の各「テキスト」に対して独立した試行を実行します。 サンプル: モデル Pr( ;W) チェック: 「サンプルテキスト」は元のテキストと完全に一致しましたか?注:私たちは何も条件付けしていません!モデルが生成できるすべてのもののうち、「テキスト」が得られたかと尋ねるだけです。 成功をイベントとして定義する E = "すべてのサンプルごとのチェックが成功します" Eの確率は、モデルWによって正しいグラウンドトゥルースに割り当てられた確率の積です pr(e) = π_{テキスト in s} pr(text;W) Wよりも対数Pr(E)を最大化すると、クロスエントロピーの目的が得られます。 SGDでこれをどのように最適化しますか? コーパスからのサンプルテキスト テキストのすべてのプレフィックスのgradログPr(token|prefix)を計算します モデルの更新 エレガントなのは、同じことが同時にあることです。 1) モデル P( ;W) (圧縮ビュー) 2) KL の発散を真の分布に最小化します (存在する場合 (仮定したことはありませんが) 3) 最尤推定を実装する 導出は単純でよく知られていますが、重要なことを強調しています。 クロスエントロピーは、トレーニングデータの正確な再現を求めることから自然に発生します。 P.S. 代わりに最大化するように頼むこともできました Pr(モデルによって生成されたテキストはグラウンドトゥルースです) 興味深いことに、これを最適化すると、コーパスから常に 1 つのテキストを予測することが最適解であるため、モード崩壊につながる可能性があります。しかし、勾配は再びxエントロピーのように見えますが、乗算係数があります つまり、Pr(text;W) 卒業生ログ Pr(テキスト;W)
50.69K