機械学習

第14回: 強化学習

千葉工業大学 上田 隆一


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

機械学習(と統計)第14回

今日やること

  • なにかをやるということはどういうことかを考える
  • Q学習
機械学習(と統計)第14回

自分がやってることの根拠

  • あります?
    • なんで朝飯食ったのか?
    • なんで朝飯はそれを食ったのか?
    • なんで大学来たのか
    • なんで講義受けているのか/講義の途中にゲームやるのか・やらないのか
  • たぶん以下の理由でやってる
    • そうすると良いことがありそうだから
      • 良いこと: 楽しいなども含む
    • そうしないと悪いことがありそうだから
機械学習(と統計)第14回

行動決定のモデル

  • 「なにか行動をするといい/悪いことがある」を機械学習に取り入れるには?
    • 数値化の必要あり
  • いいこと/悪いことの数値化(2種類)
    • その時その時に良いこと/悪いことがある
      • 食べている/勉強している/遊ぶ
    • 行動の結果、よい/悪い状態になる
      • 満腹になる/賢くなる/無意味に歳をとる
機械学習(と統計)第14回

記号化しましょう

  • 状態: 行動に関係する変数を並べたベクトル
  • 行動: 状態を変えるなにか
  • 損失: 行動の結果被る(行動は疲れる)
    • 一般的にはをかけた報酬で考えることが多い
  • 終端状態とその価値
    • 一連の行動が終わった状態と、その状態の良さ

機械学習(と統計)第14回

「よい行動」

  • 状態、行動、損失、終端状態の価値でどう表現するか?
  • こたえ: 一連の行動がおわったときのの和
    • たとえばある状態に行きつくのに10回行動が必要だった
  • あくまで主観
    • ひとそれぞれ。何をやってもいつか死ぬので難しい話
  • 問題: 授業中の行動をモデル化してみましょう!
    • 真面目に聞く、寝る、別のことをやる、...

機械学習(と統計)第14回

なにかを損してなにか得をする

  • 話を聞くか、寝るか、ゲームをするか、ほかの勉強をするか・・・
    • その場のいいことはがマイナスに(報酬)
    • 最終的にいいことはが大きい
    • 最終的にあとに残るのはのみ(薬物依存とか)
  • 講義以外でもいろいろありそう
機械学習(と統計)第14回

数値ひとつで行動が決められるのか?

  • 行動は同時にできず1つしか選べない
    • なんらかの原因・理由があって今その行動をしているので
    • 選んだ行動はなんらかの点数付けの上で選ばれていると解釈することは可能

問題

  • 「行動のダメージが大きく、最終的な状態が良いけどその状態に到達できるかわからない」という問題に人間はどう立ち向かうべきか?(「根性」以外で)
    • 楽しくやってダメージを小さくする仕組みを作る
    • 途中にゴールを設定する
    • 最終的な状態にはまだ到達できなくても、行動の結果「良い」状態になっていることを確認・実感する(後述のように強化学習の鍵)
機械学習(と統計)第14回

強化学習

  • 評価がよりよくなる行動をコンピュータやロボットに選ばせるように学習させる仕組み
    • ロボットには感情がないが、ステップ数が多く、行動の損失が大きい課題を解くのは難しい(計算が難しい)
  • 学習するもの: : 方策
    • ある状態でどの行動を選ぶかを決める関数
  • 損失関数
      • : 最初の状態
機械学習(と統計)第14回

簡単な例題で考えましょう

  • タイルワールド(右図)のQ学習を扱う
  • こんな問題
    • ロボットは右か左どちらかを選択してサイコロを振って出たマスだけ移動
      • 端より先には行けず、そこに停留
    • ゴール or 穴のマスに止まれば終了
  • 記号などの定義: 右図
  • ある場所から出発したときに、損失の期待値を最小化したい(どうしましょう?)
機械学習(と統計)第14回

一番よい方策(最適方策)

  • おそらくこれ
    (とにかく穴をさけたほうがよい)
    • 以外では「左」を選択
    • で「右」を選択
  • 最適方策:
  • これをどうやってコンピュータに解かせましょう?
機械学習(と統計)第14回

問題の性質

  • ある状態に対し、そこからスタートしたときの損失関数の期待値が計算可能
    • 損失関数:
    • 右図: 計算したもの
  • は最初の状態でなくてもよい
    • 別の状態からスタートしても、ある時点でにいたら、以後のの期待値は右図の計算した値
    • 過去のことはこれからの行動選択には無関係
  • 損失関数の期待値を状態の関数にできる
    • 終端状態の価値を拡張して
      関数状態価値関数)を考える
機械学習(と統計)第14回

状態価値関数の性質

  • 方策にしたがって行動をとったときに次の関係
      • : ある状態
      • : 行動
      • : 行動をとったあとの状態
        (複数の候補あり)
    • : 行動に対する損失の関数
  • 右の例: 左端の2つの状態が分かりやすい
    • 問題: 左から3つめの状態について計算を
  • もし別の行動をとって右辺のほうが左辺よりよかったらもっと良い方策がある
機械学習(と統計)第14回

方策の改善

こういう方法が考えられる

  • 最初に適当なを設定
  • を比較
  • 後者のほうがよければ
    • の行動を変える
    • ※ただし、偶然良かっただけかもしれないので慎重に
これが強化学習の原理
機械学習(と統計)第14回

Q学習

  • 先ほどの原理でロボットを
    学習させてみましょう
  • ただし、行動価値関数というものを考える
    • : をとるときの
      状態の価値
  • まず、を初期化(右図)
機械学習(と統計)第14回

値の更新

  • ロボットに適当に動いてもらっての値を更新
  • 更新式
    • もとのの値を少しだけ変更
      • : 学習率(右図の例だと
機械学習(と統計)第14回

方策の工夫

  • 方策が完全にランダムだとゴールに着かず
    学習が進まない
  • そのときに一番良い行動しかとらないと
    別の可能性が探れない
    • 例: 右図のようになってしまうとで左が選ばれなくなり学習が進まない
    • こういうことは日常でないだろうか?
  • 方策を次のように確率的に
    -グリーディー方策)
    • 確率値が一番良い行動をとる
    • 確率でランダムに行動選択
機械学習(と統計)第14回

学習の実行例

  • 100試行までには最適方策が得られている
  • はなかなか収束しない
機械学習(と統計)第14回

少し大きな問題

  • 右のロボットが、水たまりを避けてゴールに
    行くように学習させたい
    • いまのところ水たまりに一直線
  • 下図左: 方策(ロボットが左を向いている時のもの)
  • 下図右: 状態価値関数(同上)
機械学習(と統計)第14回

ロボットに行動させる

  • -グリーディ方策で
  • 水たまりに入ると損失を与える
  • Q学習の式で行動価値関数を書き換え

機械学習(と統計)第14回

学習の進行: 行動の変化

  • 時間はかかるがだんだん水たまりを避けるように

機械学習(と統計)第14回

学習の進行: 状態価値関数の変化

  • ゴールまでの損失が減っていく

機械学習(と統計)第14回

もっと複雑な問題

  • DQN (Deep Q-Network) [Mnih 2013]
    • ゲームをするエージェント(=コンピュータの中の体のないロボット)
      を実現して騒ぎに
  • ゲームの学習方法
    • 画像(全体の)をCNNに通して特徴で分類して状態に
    • の表現にも人工ニューラルネットワークを使用
機械学習(と統計)第14回

まとめ

  • 行動の評価方法(損失・価値)について
    • そのときの行動に対する損失と、最終的な状態に与えられる価値がある
      • 補足: 最終的な状態の価値の代わりにその直前の行動に対して与える場合もあるが等価
  • 強化学習、その中のQ学習を見てきた
    • 行動と状態、損失の観察(=経験)から状態の「価値」を計算
機械学習(と統計)第14回