Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2021.04.08 強化学習若手の会チュートリアル 言語生成の強化学習

2021.04.08 強化学習若手の会チュートリアル 言語生成の強化学習

強化学習若手の会で発表した言語生成の強化学習についてのチュートリアル講演の発表資料です。

2021.04.09 P.21の表記がまずかったので修正しました。

7b3e0dbc0d712ad5df602d9f9e5e4209?s=128

Seitaro Shinagawa

April 08, 2021
Tweet

Transcript

  1. 1/38 強化学習若手の会チュートリアル 言語生成の強化学習 品川 政太朗(NAIST) 2021/4/8 2021ⒸSEITARO SHINAGAWA

  2. 2/38 自己紹介 最近の興味 • 対話的な画像生成 • プレゼンテーションスキルの訓練 (ニューラルネットによるヒトニューラル ネットの訓練) 画像を言語を組合わせ、対話による協調的な問題解決をしたい人です

    自然言語による画像編集 対話的な画像編集における システムからの確認要求 2013-2015 東北大学大学院情報科学研究科 博士前期課程 2015-2020 NAIST情報科学研究科 博士後期課程 2020.4-2020.10 〃 研究員 (2020.9 博士取得) 2020.11- 奈良先端科学技術大学院大学 助教 2021/4/8 2021ⒸSEITARO SHINAGAWA
  3. 3/38 2021/4/8 2021ⒸSEITARO SHINAGAWA 本発表は強化学習苦手の会(もくもく会)の支援を受けました 「もくもく会とは?」 • 「もくもくと作業をする会」の略 • 各自で自由に個人のプロジェクトを立てて、決まった

    時間に集まり、実行する • 例:教科書を読む、論文を読む、再現実装をする • 利点①:一人でつい怠けてしまうのを予防できる • 利点②:参加者同士で質問し合ったり交流ができる 最近は50分作業、10分休憩+歓談時間でやっています Discordで活動:水曜19時~、日曜10時~ 学生、社会人、初学者、専門家、色々な方がいるので是非ご利用ください
  4. 4/38 言語生成モデルがアツい GPT-3の検索結果 Transformerの登場で大規模な学習データ で学習できるようになってきた GPT-3やDALL-E(これは画像生成への応用) は想像を超えてる。もうよくわからない・・・ 言語生成モデルへの興味関心は大きそう 2021/4/8 2021ⒸSEITARO

    SHINAGAWA DALL-E (https://openai.com/blog/dall-e/)
  5. 5/38 本チュートリアル 本日の発表の動機 • 言語生成でも強化学習が標準装備として使われるようになってきている • 強化学習山はとても高くてどこまで登ればいいかわからない • でもチュートリアルはあまりなさそう→簡単なスターターセットを提供して 前途ある初学者を軽率に沼に突き落としたい

    2021/4/8 2021ⒸSEITARO SHINAGAWA 言語生成山 強化学習山 言語生成 初学者 言語生成山に必要 な装備はどこ・・・? よっしゃやるぞ! この装備を差し 上げますよ
  6. 6/38 言語生成タスクとは 言語デコーダ 文脈情報 文脈情報に沿って文を生成するタスクを指す “机の上にあるのはペンです” 2021/4/8 2021ⒸSEITARO SHINAGAWA

  7. 7/38 言語生成タスクとは 文脈情報に沿って文を生成するタスクを指す 文脈情報 生成するテキスト タスク 英語の文 日本語の文 英日翻訳 画像

    画像の説明文 画像説明文生成 発話文 応答文 対話応答生成 言語デコーダ 文脈情報 “机の上にあるのはペンです” 2021/4/8 2021ⒸSEITARO SHINAGAWA
  8. 8/38 文脈情報が無いものは言語モデルという呼ぶこともある 言語モデル=自然言語文の生起過程のモデル N-gram言語モデル↓が有名 This is a pen . This

    is my dog . 次の単語の生起確率をN次のマルコフ過程と仮定して、データセット からNコ連続した単語の組を数えて得られた頻度を生起確率とする (※音声認識分野とかだと言語デコーダを言語モデルと呼んでることもあるので絶対ではない) bigram言語モデル 𝑝 𝑤𝑡 |𝑤𝑡−2 , 𝑤𝑡−1 訓練データ 𝑝 "a"|"This", "is" = 0.5 𝑝 "my"|"This", "is" = 0.5 2021/4/8 2021ⒸSEITARO SHINAGAWA
  9. 9/38 強化学習は言語生成タスクにとってどう役に立つ? A.目的とする評価指標に合わせて モデルを最適化することができる 2021/4/8 2021ⒸSEITARO SHINAGAWA

  10. 10/38 使用例1:言語生成だと主にfine-tuningで使われる(理由は後述) 最近は言語デコーダのfine-tuningに強化学習を使うのが常識に・・・ [Pan+, CVPR2020] X-Linear Attention Networks for Image

    Captioning https://openaccess.thecvf.com/content_CVPR_2020/papers/Pan_X- Linear_Attention_Networks_for_Image_Captioning_CVPR_2020_paper.pdf Image captioningの論文でも、”reinforcement learning”という文字 列自体が登場しない場合も[Pan+, CVPR2020] うげーーー ちゃんと中身を理解しとかんとあかん・・・ 2021/4/8 2021ⒸSEITARO SHINAGAWA
  11. 11/38 Learning to Translate in Real-time with Neural Machine Translation

    (EACL2017) https://arxiv.org/abs/1610.00388 使用例2:複数の目的を持つタスクの最適化も得意 同時翻訳では、原言語文の読み込み(READ)の途中から書き込み (WRITE)を逐次的に行うことで生成にかかる時間を減らしたい WRITE READ READ, WRITEを actionにして品質と 遅延を両方考慮 2021/4/8 2021ⒸSEITARO SHINAGAWA
  12. 12/38 なぜ言語デコーダのfine-tuningで強化学習が使われるのか 1.学習方式と推論方式が異なる問題 2.学習時の目的関数とタスクの目的関数が異なる問題 とりあえずSeq2Seqの場合を想定 2021/4/8 2021ⒸSEITARO SHINAGAWA

  13. 13/38 言語デコーダの学習方式:Teacher forcing 与えられた参照文を教師として時刻ごとに次の時刻のトークンを学習 入力は1時刻ずらした参照文で固定 DNN 文頭記号 < 𝑠 >

    文末記号 </𝑠 > 文脈情報 DNN This DNN is This This is a DNN a pen DNN pen 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 ⋯ ⋯ ⋯ ⋯ ⋯ 参照文 次のトークンの 予測確率分布 𝑝 𝑤𝑡 |ℎ𝑡−1 , 𝑤𝑡−1 2021/4/8 2021ⒸSEITARO SHINAGAWA
  14. 14/38 言語デコーダの推論方式:free running 推論時は参照文なしで出力を予測する →前の時刻でサンプリングされたトークンを次の時刻の入力にする →Teacher forcingで最適化している分布が推論時と異なる DNN 文頭記号 <

    𝑠𝑜𝑠 > 文末記号 < 𝑒𝑜𝑠 > 文脈情報 DNN This DNN is This This is a DNN a pen DNN pen ※生成文の多様性を重視するタスク(雑談対話)だと、データとモデルが 大規模ならTeacher forcingで十分、という話もある(Meena [Adiwardana+,2020]) 2021/4/8 2021ⒸSEITARO SHINAGAWA
  15. 15/38 訓練時と推論時の分布の違いにどうやって対処する? 【Scheduled sampling】 学習時にTeacher forcingとfree runningを混ぜる △参照文と生成文の系列長がずれた時に処理が難しい 【強化学習(ここでは特に方策勾配法による手法)】 生成した系列を報酬で重みづけした教師としてTeacher

    forcingすること に相当 ◦ Scheduled samplingの問題が起きない △ スクラッチから学習させるのは難しい(基本fine-tuningで使われる) 2021/4/8 2021ⒸSEITARO SHINAGAWA
  16. 16/38 REINFORCEによる強化学習は3ステップでできる ①方策(言語デコーダ)による自己生成 ②報酬関数(or報酬モデル)による評価 ③報酬スコアによる重みづけによる再学習 2021/4/8 2021ⒸSEITARO SHINAGAWA REINFORCEはシンプルな方策勾配法

  17. 17/38 REINFORCEの手順①:方策(言語デコーダ)による自己生成 文脈情報 (隠れ層、エン コーダ出力など) 方策 𝜋 𝑦𝑡 |𝑠𝑡 文脈情報から系列をサンプリングする

    (サンプリング方法:random, greedy (top-1), top-k, beam search, top-pなど) 𝑦1 𝑦0 方策 𝜋 𝑦𝑡 |𝑠𝑡 𝑦2 𝑦1 方策 𝜋 𝑦𝑡 |𝑠𝑡 < 𝑒𝑜𝑠 > 𝑦𝑡−1 ⋯ ⋯ 𝑠1 𝑠2 𝑠𝑡 State 𝑠:文脈情報と入力トークンで定義 Action 𝑦:次のトークンの選択(語彙サイズの大きさ!(数万~数十万)) 2021/4/8 2021ⒸSEITARO SHINAGAWA
  18. 18/38 There is a girl by the table . A

    man stands on the floor . A man is standing by a dog . 報酬関数 𝑅 ෠ 𝑌 , 𝑌 参照文𝑌(正解文) A man and dog are working on the floor 生成文෠ 𝑌 0.1 →既存の自動評価尺度やスコアの予測モデルをタスクに合わせて使える 例:BLEU, CIDEr, BERTScore,… 0.8 0.6 REINFORCEの手順②:報酬関数(or報酬モデル)による評価 生成系列を報酬関数(評価関数)に通して得たスコアを報酬とする 利点:報酬関数、および報酬関数への入力は微分不可能でもよい 方策 𝜋 𝑦𝑡 |𝑠𝑡 スコア (報酬) 2021/4/8 2021ⒸSEITARO SHINAGAWA
  19. 19/38 生成文と評価値の組 ෡ 𝑌𝑖 , 𝑅 ෡ 𝑌𝑖 , 𝑌𝑖

    が得られた。 これを使って評価値の高い文の尤度を上げるには・・・? ෡ 𝑌𝑖 𝑅 ෡ 𝑌𝑖 , 𝑌𝑖 There is a girl by the table . A man stands on the floor . A man is standing by a dog . 0.1 0.8 0.6 2021/4/8 2021ⒸSEITARO SHINAGAWA
  20. 20/38 生成した文章を教師文として、評価値を損失の重みにして方策を再学習 ෤ 𝑦1 . ⋯ 𝑦𝑇 < 𝑠𝑜𝑠 >

    A man is standing by a dog . < 𝑒𝑜𝑠 > < 𝑠𝑜𝑠 > man ෤ 𝑦2 ෤ 𝑦3 A A dog man is man ෤ 𝑦𝑇−1 < 𝑒𝑜𝑠 > 教師 予測 トークン 0.8 生成文෡ 𝑌𝑖 入力 𝑙𝑜𝑠𝑠 = − 1 𝑇 ෍ 𝑡=1 𝑇 0.8 ⋅ 𝑦𝑡 log 𝜋𝜃 𝑦𝑡 |𝑠𝑡 報酬𝑅 ෡ 𝑌𝑖 , 𝑌𝑖 REINFORCEの手順③:報酬スコアによる重みづけによる再学習 1文の各トークンの重みは 同じ重み(文単位の報酬) 2021/4/8 2021ⒸSEITARO SHINAGAWA loss backprop
  21. 21/38 REINFORCEアルゴリズム 強化学習の方策勾配定理からは、以下のような定式化ができる ∇𝜃 𝑙𝑜𝑠𝑠 = −𝔼෠ 𝑌~𝜋𝜃 ෍ 𝑡=1

    𝑇෡ 𝑌 ∇𝜃 log 𝜋𝜃 𝑦𝑡 |𝑠𝑡 ⋅ 𝑅 ෠ 𝑌, 𝑌 𝑙𝑜𝑠𝑠 = − 1 𝑁 ⋅ 1 𝑇 ෍ 𝑖=1 𝑁 ෍ 𝑡=1 𝑇෢ 𝑌𝑖 𝑦𝑖,𝑡 log 𝜋𝜃 𝑦𝑖,𝑡 |𝑠𝑖,𝑡 = − 1 𝑁 ⋅ 1 𝑇 ෍ 𝑖=1 𝑁 ෍ 𝑡=1 𝑇෢ 𝑌𝑖 ∇𝜃 log 𝜋𝜃 𝑦𝑖,𝑡 |𝑠𝑖,𝑡 ⋅ 𝑅 ෡ 𝑌𝑖 , 𝑌𝑖 前ページの操作で出てくる損失関数 REINFORCEは、方策モデルで生成した文に報酬の重みを付与し、 学習に用いる操作(あえて呼ぶとするならGenerated teacher forcing?) 2021/4/8 2021ⒸSEITARO SHINAGAWA 報酬で重みづけして勾配 を導出すると同じ形に
  22. 22/38 ベースライン関数𝑏 𝑠 加えた形がより一般的に使われる 性能を上げる工夫:ベースライン付きREINFORCE ∇𝜃 𝑙𝑜𝑠𝑠 = −𝔼෠ 𝑌~𝜋𝜃

    ෍ 𝑡=1 𝑇෡ 𝑌 ∇𝜃 log 𝜋𝜃 𝑦𝑡 |𝑠𝑡 ⋅ 𝑅 ෠ 𝑌, 𝑌 − 𝑏 𝑠 Q. なぜこんなことを? A. 確率勾配∇𝜃 𝑙𝑜𝑠𝑠の分散を減らすため • REINFORCEはモンテカルロ法による勾配近似 • 分散が大きいほど収束が遅くなる 2021/4/8 2021ⒸSEITARO SHINAGAWA
  23. 23/38 Control variateはモンテカルロ法の分散低減手法の一つ 理論的背景:Control variate 目的:ある確率変数𝑉 𝑋 = ∇𝜃 𝑙𝑜𝑠𝑠

    の分散を減らしたい 方法:B = 𝔼 𝑊 𝑋 が既知の確率変数𝑊 𝑋 を用いた確率変数𝑍の分散を評価 𝑍 = 𝑉 𝑋 − 𝛼 𝑊 𝑋 − 𝐵 とおくと、 𝔼 𝑍 = 𝔼 𝑉 𝑋 − 𝛼𝑊 𝑋 + 𝛼𝔼 𝐵 = 𝔼 𝑉 𝑋 − 𝛼𝔼 𝑊 𝑋 + 𝛼𝔼 𝐵 Bがベースラインに相当、𝑍の期待値が元の𝑉(𝑋)一致するのがミソ 𝑉𝑎𝑟 𝑍 = 𝑉𝑎𝑟 𝑉 𝑋 − 𝛼𝑊 𝑋 = 𝑉𝑎𝑟 𝑉 𝑋 − 2𝛼 ⋅ 𝐶𝑜𝑣 𝑉 𝑋 , 𝑊 𝑋 + 𝛼2𝑉𝑎𝑟 𝑊 𝑋 (導出は次ページ) 𝛼についての二次関数としてみると 𝛼 = 𝐶𝑜𝑣 𝑉 𝑋 ,𝑊 𝑋 𝑉𝑎𝑟 𝑊 𝑋 で𝑉𝑎𝑟 𝑍 が最小𝑉𝑎𝑟 𝑍 = 𝑉𝑎𝑟 𝑉 𝑋 − 𝐶𝑜𝑣 𝑉 𝑋 ,𝑊 𝑋 2 𝑉𝑎𝑟 𝑊 𝑋 𝑉(𝑋)とよく相関 する𝑊 𝑋 を 選ぶと良い 2021/4/8 2021ⒸSEITARO SHINAGAWA
  24. 24/38 𝑉𝑎𝑟 𝑍 = 𝔼 𝑉 𝑋 − 𝛼𝑊 𝑋

    2 − 𝔼 𝑉 𝑋 − 𝛼𝑊 𝑋 2 = 𝔼 𝑉 𝑋 2 − 𝔼 2𝛼 ⋅ 𝑉 𝑋 𝑊 𝑋 + 𝛼2𝔼 𝑊 𝑋 2 − 𝔼 𝑉 𝑋 2 − 2𝛼 ⋅ 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋 + 𝛼2𝔼 𝑊 𝑋 2 = 𝑉𝑎𝑟 𝑉 𝑋 + 2𝛼 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋 − 𝔼 𝑉 𝑋 𝑊 𝑋 + 𝛼2𝑉𝑎𝑟 𝑊 𝑋 = 𝑉𝑎𝑟 𝑉 𝑋 − 2𝛼 ⋅ 𝐶𝑜𝑣 𝑉 𝑋 , 𝑊 𝑋 + 𝛼2𝑉𝑎𝑟 𝑊 𝑋 𝐶𝑜𝑣 𝑉 𝑋 , 𝑊 𝑋 = 𝔼 𝑉 𝑋 − 𝔼 𝑉 𝑋 𝑊 𝑋 − 𝔼 𝑊 𝑋 = 𝔼 𝑉 𝑋 𝑊 𝑋 − 𝑉 𝑋 𝔼 𝑊 𝑋 − 𝔼 𝑉 𝑋 𝑊 𝑋 + 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋 = 𝔼 𝑉 𝑋 𝑊 𝑋 − 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋 付録:𝑽𝒂𝒓(𝒁)の導出 2021/4/8 2021ⒸSEITARO SHINAGAWA
  25. 25/38 手法ごとのベースライン一覧 REINFORCE batch average baseline Self-critic [Rennie+, CVPR2017] REINFORCE

    w/ value network [Li+, ArXiv2017] 𝑏 𝑠 = 1 𝑁 ෍ 𝑖=1 𝑁 𝑅 ෡ 𝑌𝑖 , 𝑌𝑖 • mini-batch内の平均報酬 • 一般的な方法 𝑏 𝑠 = 1 𝑁 ෍ 𝑖=1 𝑁 𝑅 ෠ 𝑌𝑔𝑟𝑒𝑒𝑑𝑦,𝑖 , 𝑌𝑖 • greedy (top-1) で生成した 系列による報酬を利用 • 手軽で強い 𝑏 𝑠 = 𝑉𝜃 𝑠 • Actor-criticの枠組み • 価値関数𝑉 𝑠 は学習可能 2021/4/8 2021ⒸSEITARO SHINAGAWA どれを選べばよい? • 基本的にはSelf-criticが手軽で良い。average baselineより強い • Actor-criticは推論時に良い系列を制御できるが、学習の難易度はあがる
  26. 26/38 Actor-critic(Criticあり)の利点と難点 2021/4/8 2021ⒸSEITARO SHINAGAWA REINFORCE(Criticなしの方策勾配法)は文単位の評価だった →各時刻ごとに評価するモデル(Critic)があると推論時の制御を柔軟にできる 𝑦𝑡 = arg

    max 𝑦 log 𝜋𝜃 𝑦1:𝑡 |𝑋 − 𝜆 𝑁 − 𝑡 − 𝑄𝜙 ℎ𝑡 2 例:目標の長さを制御する [Li+, ArXiv2017] Learning to Decode for Future Success 推論時のある時刻𝑡に設定した 目標の系列長𝑁に合わせて 次のトークン選択をバイアスする 元の予測確率 難点:Criticモデルの学習が大変(次の[Bahdanau+,ICLR2017]のような工夫が必要) • Action spaceがデカすぎる→レアなトークンにペナルティを与える(Action spaceへの制約) • 遅延報酬しかない→時刻ごとに切り崩して即時報酬にして学習させる(Reward shaping)
  27. 27/38 2021/4/8 2021ⒸSEITARO SHINAGAWA ここまでのまとめ 言語生成の強化学習で使われる手法 • ほとんどが方策勾配法のREINFORCEかSelf-critic • しかも遅延報酬しかないので、「報酬で重みづけした生成文で再学習」で

    簡単にできる • Actor-criticやQ-learningもあるがあまり使われてない どこが重要視されていそう? • タスクに合わせた報酬関数、報酬モデルの設計→次の話
  28. 28/38 2021/4/8 2021ⒸSEITARO SHINAGAWA 言語生成は評価が難しい • 与えられた参照文に対して字面が近ければいいとは限らない • 他の文でも「良い文」が存在する •

    文を比べてどちらがどのくらい「良い」のか判断は人間にも難しい • AIが生成した文と人間が生成した文、どこに違いが出てくるか把握し きるのは難しい • 流暢性とは?多様性とは? • 文化や個人差など、様々な要因に従って「良い文」の定義が異なる
  29. 29/38 本物っぽい文の評価をDNNに任せよう:SeqGAN [Yu+, AAAI2017] GAN:Gは生成文をDに訓練データと誤認させるように学習する • D:訓練データは1、生成データは0と予測するよう学習 • G:生成データをDに1と予測させるよう学習 Generator

    (G) 方策モデル、文を生成 Discriminator (D) 生成文からreward (𝑟 ∈ [0,1])を 出力 ラベル1 ラベル0 Dの学習安定化の工夫 便宜的な即時報酬として、文末以 外のトークンに対してはミニバッチ 平均報酬を与える 2021/4/8 2021ⒸSEITARO SHINAGAWA
  30. 30/38 SeqGANよもやま話 SeqGANのウリは特定の評価指標に最適化するのではなく、あくまで訓練データ か生成データかを見分けるだけ、という点 特に生成文の多様性に可能性を期待されてきた(後継にLeakGAN, FMGANなど) しかし、普通のSeq2Seqモデルでも温度パラメータ(トークン予測のsoftmaxのパラ メータ)を上げると多様性が向上してしまう話[Caccia+, ICLR2020]があり、最近は 若干下火気味・・・?

    報酬モデルを使って敵対的学習するアイデア自体は良さそう 2021/4/8 2021ⒸSEITARO SHINAGAWA
  31. 31/38 2021/4/8 2021ⒸSEITARO SHINAGAWA 人間からのフィードバックで報酬モデルを方策と交互に学習する話 OpenAIによる論文(学習済みGPT-2のfine-tuningとしての問題設定) Fine-Tuning Language Models from

    Human Preferences [Ziegler+, ArXiv2019] 報酬モデルの訓練 1. 方策モデルにより4文生成 2. 4つの生成文に対して、一番良い文を 人間がラベル付け 3. 報酬モデルをラベル付き生成文で更新 方策モデルの訓練 1. 方策モデルによる文生成 2. 報酬モデルで評価 3. 得られた報酬で重みづけして方策モデ ルを更新
  32. 32/38 OpenAIの言語生成ではPPOが利用され始めている ベースライン付きREINFORCE 𝑙𝑜𝑠𝑠 = −𝔼෠ 𝑌~𝜋𝜃 ෍ 𝑡=1 𝑇

    log 𝜋𝜃 𝑦𝑡 |𝑠𝑡 𝐴 𝑠𝑡 , 𝑦 Proximal Policy Optimization (PPO) ただし、𝐴 𝑠𝑡 , 𝑦 = 𝑅 ෠ 𝑌, 𝑌 − 𝑏 𝑠 (報酬は時刻ごとに一定とみなす) 𝑙𝑜𝑠𝑠 = −𝔼෠ 𝑌~𝜋𝑜𝑙𝑑 min ෍ 𝑡=1 𝑇 𝜋𝜃 𝑦𝑡 |𝑠𝑡 𝜋𝑜𝑙𝑑 𝑦𝑡 |𝑠𝑡 𝐴 𝑠𝑡 , 𝑦 , 𝑐𝑙𝑖𝑝 𝜋𝜃 𝑦𝑡 |𝑠𝑡 𝜋𝑜𝑙𝑑 𝑦𝑡 |𝑠𝑡 , 1 − 𝜖, 1 + 𝜖 𝐴 𝑠𝑡 , 𝑦 2021/4/8 2021ⒸSEITARO SHINAGAWA 𝜋𝜃 :更新対象の方策 𝜋𝑜𝑙𝑑 :更新ひとつ前の方策(文生成に 使った方策) 方策の更新が大きくなりすぎないように クリッピングを行う
  33. 33/38 2021/4/8 2021ⒸSEITARO SHINAGAWA Policyが悪くならないにする工夫 人間のフィードバックで逐次的に学習する難点 報酬モデルの学習がまだ十分でないと学習が不安定 𝑅 𝑥, 𝑦

    = 𝑟 𝑥, 𝑦 − 𝛽 log 𝜋 𝑦|𝑥 𝜌 𝑦 𝑥 初期方策𝜌(fine-tuning前の学習済み方策)から分布が 離れすぎないようにペナルティをかける
  34. 34/38 2021/4/8 2021ⒸSEITARO SHINAGAWA 報酬モデルの仕組み 𝑙𝑜𝑠𝑠 𝑟 = −𝔼 𝑥,

    𝑦1,𝑦2,𝑦3,𝑦4 ,𝑏 ~𝑆 log 𝑒𝑟 𝑥, 𝑦𝑏 Σ𝑖 𝑒𝑟 𝑥,𝑦𝑖 報酬のスコア𝑟 𝑥, 𝑦 を使って人間によって選ばれた文が予測されるように訓練 詳細は不明だったが、この報酬モデルも(別の?)GPT-2らしい・・・
  35. 35/38 2021/4/8 2021ⒸSEITARO SHINAGAWA 結果(抜粋) ちなみに:同じOpenAIからはより要約に特化した後継研究もある Learning to summarize from

    human feedback [Stiennon+, NeurIPS2021] スタイル文の継続生成タスクと要約タスクで実験(後者を紹介) offlineはfine-tuningなしの初期方策𝜌で生成した文で報酬モデルを学習した場合 offlineよりもonlineの方が良くなっているが、offlineでも十分強力という印象
  36. 36/38 [Choshen+, ICLR2020] On the Weaknesses of Reinforcement Learning for

    Neural Machine Translation 注意点:方策勾配法でFine-tuningする時には注意が必要 分布が急峻になってるので、最適なトークンが過小評価される可能性がある →fine-tuning時にBestなトークンがサンプルされず、報酬の最大化に失敗 発話:「毎日働き過ぎでもう疲れたよ・・・」 応答:「大丈夫?」に続くトークン系列を予測 候補A:「大丈夫?頑張ろうよ!」 候補B:「大丈夫?笑」 候補C:「大丈夫?休息をとりましょう」 頑張ろう 笑 休息 某SNS対話データで事 前学習した応答分布 対話(発話応答生成)を例としてみると・・・ 頑張ろう 笑 休息 下流タスク(暑苦しい上司 対話データ)でfine-tuning 頑張ろう 笑 休息 理想 分布がより 急峻になる 対策は? サンプル時の多様性を上げる ・複数の目的関数 e.g. エントロピー正則化 ・温度パラメータを上げる 2021/4/8 2021ⒸSEITARO SHINAGAWA
  37. 37/38 [Abbasnejad+, CVPR2019] What’s to know? Uncertainty as a Guide

    to Asking Goal-oriented Questions おまけ:推論時に不確実なトークンを優先して生成する手法 エージェント:質問文を生成してオラクルが思い浮かべている画像中の物体を当てる オラクル:質問に必ず正しい答えを返す エージェント オラクル 文脈情報: 画像とQAの履歴、生成途中の系列、報酬の履歴 デコーダ 文脈情報 質問文 エージェント 物体予測器 ቐ 𝑟𝑡 = 1(正解) 𝑟𝑡 = 0 (不正解) オラクル 質問文 正答器 回答文 エージェント 文脈情報+ 文脈情報 文脈情報++ デコーダ 質問文 目的:短いターンで正解するためのinformativeな質問文を生成したい 2021/4/8 2021ⒸSEITARO SHINAGAWA
  38. 38/38 推論時にどうやって不確実なトークンを選ぶか 提案手法:デコーダによるサンプリングに獲得関数を導入して不確実なトークンも生成する デコーダ 文脈ベクトル Dropout 𝑓 𝜃 1 𝑓

    𝜃 2 𝑓 𝜃 𝑁 語彙サイズ red I dog ... 各トークン𝑤𝑖 ごとに 𝜇(𝑤𝑖 ), 𝜎(𝑤𝑖 )を計算 獲得関数に従って 次のトークンを選択 𝑤𝑖 = argmax𝑖 𝜇 𝑤𝑖 + 𝛽𝑡 𝜎2 𝑤𝑖 左の例だとredが選ばれる logit(ソフトマック ス正規化前の値) 2021/4/8 2021ⒸSEITARO SHINAGAWA