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

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

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

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

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

Seitaro Shinagawa

April 08, 2021
Tweet

More Decks by Seitaro Shinagawa

Other Decks in Technology

Transcript

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

    View Slide

  2. 2/38
    自己紹介
    最近の興味
    • 対話的な画像生成
    • プレゼンテーションスキルの訓練
    (ニューラルネットによるヒトニューラル
    ネットの訓練)
    画像を言語を組合わせ、対話による協調的な問題解決をしたい人です
    自然言語による画像編集 対話的な画像編集における
    システムからの確認要求
    2013-2015 東北大学大学院情報科学研究科 博士前期課程
    2015-2020 NAIST情報科学研究科 博士後期課程
    2020.4-2020.10 〃 研究員 (2020.9 博士取得)
    2020.11- 奈良先端科学技術大学院大学 助教
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  3. 3/38
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    本発表は強化学習苦手の会(もくもく会)の支援を受けました
    「もくもく会とは?」
    • 「もくもくと作業をする会」の略
    • 各自で自由に個人のプロジェクトを立てて、決まった
    時間に集まり、実行する
    • 例:教科書を読む、論文を読む、再現実装をする
    • 利点①:一人でつい怠けてしまうのを予防できる
    • 利点②:参加者同士で質問し合ったり交流ができる
    最近は50分作業、10分休憩+歓談時間でやっています
    Discordで活動:水曜19時~、日曜10時~
    学生、社会人、初学者、専門家、色々な方がいるので是非ご利用ください

    View Slide

  4. 4/38
    言語生成モデルがアツい
    GPT-3の検索結果
    Transformerの登場で大規模な学習データ
    で学習できるようになってきた
    GPT-3やDALL-E(これは画像生成への応用)
    は想像を超えてる。もうよくわからない・・・
    言語生成モデルへの興味関心は大きそう
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    DALL-E (https://openai.com/blog/dall-e/)

    View Slide

  5. 5/38
    本チュートリアル
    本日の発表の動機
    • 言語生成でも強化学習が標準装備として使われるようになってきている
    • 強化学習山はとても高くてどこまで登ればいいかわからない
    • でもチュートリアルはあまりなさそう→簡単なスターターセットを提供して
    前途ある初学者を軽率に沼に突き落としたい
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    言語生成山
    強化学習山
    言語生成
    初学者
    言語生成山に必要
    な装備はどこ・・・?
    よっしゃやるぞ!
    この装備を差し
    上げますよ

    View Slide

  6. 6/38
    言語生成タスクとは
    言語デコーダ
    文脈情報
    文脈情報に沿って文を生成するタスクを指す
    “机の上にあるのはペンです”
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  7. 7/38
    言語生成タスクとは
    文脈情報に沿って文を生成するタスクを指す
    文脈情報 生成するテキスト タスク
    英語の文 日本語の文 英日翻訳
    画像 画像の説明文 画像説明文生成
    発話文 応答文 対話応答生成
    言語デコーダ
    文脈情報 “机の上にあるのはペンです”
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  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

    View Slide

  9. 9/38
    強化学習は言語生成タスクにとってどう役に立つ?
    A.目的とする評価指標に合わせて
    モデルを最適化することができる
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  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

    View Slide

  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

    View Slide

  12. 12/38
    なぜ言語デコーダのfine-tuningで強化学習が使われるのか
    1.学習方式と推論方式が異なる問題
    2.学習時の目的関数とタスクの目的関数が異なる問題
    とりあえずSeq2Seqの場合を想定
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  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

    View Slide

  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

    View Slide

  15. 15/38
    訓練時と推論時の分布の違いにどうやって対処する?
    【Scheduled sampling】
    学習時にTeacher forcingとfree runningを混ぜる
    △参照文と生成文の系列長がずれた時に処理が難しい
    【強化学習(ここでは特に方策勾配法による手法)】
    生成した系列を報酬で重みづけした教師としてTeacher forcingすること
    に相当
    ○ Scheduled samplingの問題が起きない
    △ スクラッチから学習させるのは難しい(基本fine-tuningで使われる)
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  16. 16/38
    REINFORCEによる強化学習は3ステップでできる
    ①方策(言語デコーダ)による自己生成
    ②報酬関数(or報酬モデル)による評価
    ③報酬スコアによる重みづけによる再学習
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    REINFORCEはシンプルな方策勾配法

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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
    報酬で重みづけして勾配
    を導出すると同じ形に

    View Slide

  22. 22/38
    ベースライン関数𝑏 𝑠 加えた形がより一般的に使われる
    性能を上げる工夫:ベースライン付きREINFORCE
    ∇𝜃
    𝑙𝑜𝑠𝑠 = −𝔼෠
    𝑌~𝜋𝜃

    𝑡=1
    𝑇෡
    𝑌
    ∇𝜃
    log 𝜋𝜃
    𝑦𝑡
    |𝑠𝑡
    ⋅ 𝑅 ෠
    𝑌, 𝑌 − 𝑏 𝑠
    Q. なぜこんなことを?
    A. 確率勾配∇𝜃
    𝑙𝑜𝑠𝑠の分散を減らすため
    • REINFORCEはモンテカルロ法による勾配近似
    • 分散が大きいほど収束が遅くなる
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

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

    View Slide

  24. 24/38
    𝑉𝑎𝑟 𝑍 = 𝔼 𝑉 𝑋 − 𝛼𝑊 𝑋 2
    − 𝔼 𝑉 𝑋 − 𝛼𝑊 𝑋 2
    = 𝔼 𝑉 𝑋 2
    − 𝔼 2𝛼 ⋅ 𝑉 𝑋 𝑊 𝑋 + 𝛼2𝔼 𝑊 𝑋 2
    − 𝔼 𝑉 𝑋 2 − 2𝛼 ⋅ 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋 + 𝛼2𝔼 𝑊 𝑋 2
    = 𝑉𝑎𝑟 𝑉 𝑋 + 2𝛼 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋 − 𝔼 𝑉 𝑋 𝑊 𝑋 + 𝛼2𝑉𝑎𝑟 𝑊 𝑋
    = 𝑉𝑎𝑟 𝑉 𝑋 − 2𝛼 ⋅ 𝐶𝑜𝑣 𝑉 𝑋 , 𝑊 𝑋 + 𝛼2𝑉𝑎𝑟 𝑊 𝑋
    𝐶𝑜𝑣 𝑉 𝑋 , 𝑊 𝑋
    = 𝔼 𝑉 𝑋 − 𝔼 𝑉 𝑋 𝑊 𝑋 − 𝔼 𝑊 𝑋
    = 𝔼 𝑉 𝑋 𝑊 𝑋 − 𝑉 𝑋 𝔼 𝑊 𝑋 − 𝔼 𝑉 𝑋 𝑊 𝑋 + 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋
    = 𝔼 𝑉 𝑋 𝑊 𝑋 − 𝔼 𝑉 𝑋 𝔼 𝑊 𝑋
    付録:𝑽𝒂𝒓(𝒁)の導出
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  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は推論時に良い系列を制御できるが、学習の難易度はあがる

    View Slide

  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)

    View Slide

  27. 27/38
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    ここまでのまとめ
    言語生成の強化学習で使われる手法
    • ほとんどが方策勾配法のREINFORCEかSelf-critic
    • しかも遅延報酬しかないので、「報酬で重みづけした生成文で再学習」で
    簡単にできる
    • Actor-criticやQ-learningもあるがあまり使われてない
    どこが重要視されていそう?
    • タスクに合わせた報酬関数、報酬モデルの設計→次の話

    View Slide

  28. 28/38
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    言語生成は評価が難しい
    • 与えられた参照文に対して字面が近ければいいとは限らない
    • 他の文でも「良い文」が存在する
    • 文を比べてどちらがどのくらい「良い」のか判断は人間にも難しい
    • AIが生成した文と人間が生成した文、どこに違いが出てくるか把握し
    きるのは難しい
    • 流暢性とは?多様性とは?
    • 文化や個人差など、様々な要因に従って「良い文」の定義が異なる

    View Slide

  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

    View Slide

  30. 30/38
    SeqGANよもやま話
    SeqGANのウリは特定の評価指標に最適化するのではなく、あくまで訓練データ
    か生成データかを見分けるだけ、という点
    特に生成文の多様性に可能性を期待されてきた(後継にLeakGAN, FMGANなど)
    しかし、普通のSeq2Seqモデルでも温度パラメータ(トークン予測のsoftmaxのパラ
    メータ)を上げると多様性が向上してしまう話[Caccia+, ICLR2020]があり、最近は
    若干下火気味・・・?
    報酬モデルを使って敵対的学習するアイデア自体は良さそう
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide

  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. 得られた報酬で重みづけして方策モデ
    ルを更新

    View Slide

  32. 32/38
    OpenAIの言語生成ではPPOが利用され始めている
    ベースライン付きREINFORCE
    𝑙𝑜𝑠𝑠 = −𝔼෠
    𝑌~𝜋𝜃

    𝑡=1
    𝑇
    log 𝜋𝜃
    𝑦𝑡
    |𝑠𝑡
    𝐴 𝑠𝑡
    , 𝑦
    Proximal Policy Optimization (PPO)
    ただし、𝐴 𝑠𝑡
    , 𝑦 = 𝑅 ෠
    𝑌, 𝑌 − 𝑏 𝑠
    (報酬は時刻ごとに一定とみなす)
    𝑙𝑜𝑠𝑠 = −𝔼෠
    𝑌~𝜋𝑜𝑙𝑑
    min ෍
    𝑡=1
    𝑇 𝜋𝜃
    𝑦𝑡
    |𝑠𝑡
    𝜋𝑜𝑙𝑑
    𝑦𝑡
    |𝑠𝑡
    𝐴 𝑠𝑡
    , 𝑦 , 𝑐𝑙𝑖𝑝
    𝜋𝜃
    𝑦𝑡
    |𝑠𝑡
    𝜋𝑜𝑙𝑑
    𝑦𝑡
    |𝑠𝑡
    , 1 − 𝜖, 1 + 𝜖 𝐴 𝑠𝑡
    , 𝑦
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    𝜋𝜃
    :更新対象の方策
    𝜋𝑜𝑙𝑑
    :更新ひとつ前の方策(文生成に
    使った方策)
    方策の更新が大きくなりすぎないように
    クリッピングを行う

    View Slide

  33. 33/38
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    Policyが悪くならないにする工夫
    人間のフィードバックで逐次的に学習する難点
    報酬モデルの学習がまだ十分でないと学習が不安定
    𝑅 𝑥, 𝑦 = 𝑟 𝑥, 𝑦 − 𝛽 log
    𝜋 𝑦|𝑥
    𝜌 𝑦 𝑥
    初期方策𝜌(fine-tuning前の学習済み方策)から分布が
    離れすぎないようにペナルティをかける

    View Slide

  34. 34/38
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    報酬モデルの仕組み
    𝑙𝑜𝑠𝑠 𝑟 = −𝔼 𝑥, 𝑦1,𝑦2,𝑦3,𝑦4 ,𝑏 ~𝑆
    log
    𝑒𝑟 𝑥, 𝑦𝑏
    Σ𝑖
    𝑒𝑟 𝑥,𝑦𝑖
    報酬のスコア𝑟 𝑥, 𝑦 を使って人間によって選ばれた文が予測されるように訓練
    詳細は不明だったが、この報酬モデルも(別の?)GPT-2らしい・・・

    View Slide

  35. 35/38
    2021/4/8 2021ⒸSEITARO SHINAGAWA
    結果(抜粋)
    ちなみに:同じOpenAIからはより要約に特化した後継研究もある
    Learning to summarize from human feedback [Stiennon+, NeurIPS2021]
    スタイル文の継続生成タスクと要約タスクで実験(後者を紹介)
    offlineはfine-tuningなしの初期方策𝜌で生成した文で報酬モデルを学習した場合
    offlineよりもonlineの方が良くなっているが、offlineでも十分強力という印象

    View Slide

  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

    View Slide

  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

    View Slide

  38. 38/38
    推論時にどうやって不確実なトークンを選ぶか
    提案手法:デコーダによるサンプリングに獲得関数を導入して不確実なトークンも生成する
    デコーダ
    文脈ベクトル
    Dropout
    𝑓
    𝜃
    1
    𝑓
    𝜃
    2
    𝑓
    𝜃
    𝑁
    語彙サイズ
    red I dog ...
    各トークン𝑤𝑖
    ごとに
    𝜇(𝑤𝑖
    ), 𝜎(𝑤𝑖
    )を計算
    獲得関数に従って
    次のトークンを選択
    𝑤𝑖
    = argmax𝑖
    𝜇 𝑤𝑖
    + 𝛽𝑡
    𝜎2 𝑤𝑖
    左の例だとredが選ばれる
    logit(ソフトマック
    ス正規化前の値)
    2021/4/8 2021ⒸSEITARO SHINAGAWA

    View Slide