seq2seq RNNモデルをスコアリングするには、どの損失関数を使用する必要がありますか?


10

私は、seq2seqモデリング用のエンコーダー/デコーダーアーキテクチャーを紹介したCho 2014の論文を研究しています。

この論文では、長さ入力と長さ出力の損失関数として、与えられた入力(または負の対数尤度)の確率を使用しているようです。xMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

ただし、これを損失関数として使用することにはいくつか問題があると思います。

  1. トレーニング中に教師が強制することを想定しているようです(つまり、次の反復への入力として位置のデコーダーの推測を使用する代わりに、既知のトークンを使用します。
  2. 長いシーケンスにペナルティを課しません。確率は出力のからであるため、デコーダーがより長いシーケンスを生成した場合、最初の後のすべてが損失に影響しません。1NN
  3. モデルが初期の文字列の終わりトークンを予測する場合でも、損失関数はステップを要求します。つまり、モデルのトレーニングされていない「多様体」に基づいて出力を生成しています。それはだらしないようです。N

これらの懸念のいずれかは有効ですか?もしそうなら、より高度な損失関数への進展はありましたか?

回答:


0

トレーニング中に教師が強制することを想定しているようです(つまり、次の反復への入力として位置のデコーダーの推測を使用する代わりに、既知のトークンを使用します。

「教師の強制」という用語は少し気になります。これは、アイデアを少し見逃しているためです。RNNモデルに次の既知のトークンを供給することには、何の問題も奇妙なこともありません。これは、を計算する唯一の方法です。。シーケンスの分布を自己回帰的にとして定義する場合、各条件項はRNNでモデル化されており、「教師の強制」が真です対数尤度を正しく最大化する手順。(何も変更しないため、上記の調整シーケンス記述は省略しています。)logP(y1,,yN)P(y)=iP(yi|y<i)x

MLEの遍在性と優れた代替手段の欠如を考えると、「教師の強制」を想定することは不快ではないと思います。

それにもかかわらず、明らかに問題があります。つまり、モデルはすべてのデータポイントに高い可能性を割り当てますが、モデルからのサンプルは、実際のデータ分布に必ずしも含まれるとは限りません(その結果、「低品質」のサンプルになります)。MLEをあきらめずに敵対的なトレーニング手順を介してこれを軽減する「Professor Forcing」(Lambら)に興味があるかもしれません。

長いシーケンスにペナルティを課しません。確率は出力の1からNであるため、デコーダーがより長いシーケンスを生成した場合、最初のNの後のすべてが損失に影響しません。

そして

モデルが初期の文字列の終わりトークンを予測する場合でも、損失関数はNステップを要求します。つまり、モデルのトレーニングされていない「多様体」に基づいて出力を生成しています。それはだらしないようです。

これらはどちらもトレーニング中に発生する問題ではありません。自己回帰シーケンスモデルを予測を出力する手順として考えるのではなく、与えられたシーケンスの確率を計算する方法として考えてください。モデルは何も予測しません-分布からシーケンスまたはトークンをサンプリングするか、最も可能性の高い次のトークンが何であるかを尋ねることができます-しかし、これらは予測とは非常に異なります(そして、トレーニング中にサンプリングしませんどちらか)。

もしそうなら、より高度な損失関数への進展はありましたか?

さまざまなモデリングタスクについて、ケースバイケースで具体的に設計された目標がある場合もあります。しかし、私はMLEが依然として支配的であると言います-幅広い自然言語モデリングおよび理解タスクで最先端のパフォーマンスを達成した最近のGPT2モデルは、それを使用してトレーニングされました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.