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

強化学習

 強化学習

Avatar for Kazuhisa Fujita

Kazuhisa Fujita

November 05, 2026

More Decks by Kazuhisa Fujita

Other Decks in Education

Transcript

  1. 強化学習とは • 数値化された報酬信号を最大にするために,何をすべきか(どのようにして状 況に基づく動作選択を行うか)を学習する.(Sutton and Barto (三上,皆川 訳) 強化学習) •

    答えは与えられていない. • 報酬という手掛かりはある. • 試行錯誤で良い行動(それを生み出す方策)を探す. • 環境に働きかけることで情報を得る.
  2. 強化学習の要素 行動(Action) エージェント (Agent) 環境 (environment) 方策(Policy) 報酬(Reward),状態(State) エージェントは方策に従い行動し,報酬を受け取る.そして状態が変わる. エージェント:学習する主体。ロボット、ゲームのプレイヤーなどに相当。

    方策:状態に応じて、どの行動を選ぶかを決めるルールや戦略。 行動:状態を見たエージェントが選ぶ操作や選択肢。例:右に動く、カードを出すなど。 状態:ある時点でエージェントが置かれている状況を表す情報。例:ゲーム画面、ロボットの位置、現在の盤面など。 報酬:行動の結果として環境から与えられる評価値。よい結果なら大きな報酬、悪い結果なら小さな報酬や負の報酬が 与えられる。 環境:エージェントが行動する対象や世界。エージェントの行動に応じて状態が変化し、報酬を返す。
  3. ハンターの例 それぞれの場所で何度も 狩りをしてみると,森が 一番獲物を取ることがで きた.今後,森で狩りを しよう. 森 池 草原 ハンター

    ハンターはそれぞれの場所何度もに行って狩りをしてみる. 何度も狩りをしていると,獲物がとれる確率が高い場所がわかってくる. 獲物とれる確率が最も高い場所が分かれば,ハンターはそこにだけ狩りに行けばよ い.
  4. 不確かなときは楽観的に • 探索しなければ正確に報酬を得られる確率を獲得できないが,正確に知るため には何回も探索しなければならない.(探索と知識利用のトレードオフ) • 「不確かなときは楽観的に」という考え方で探索と利用のトレードオフを回避 する. • 「不確かなときは楽観的に」とは •

    エージェントが見積もっている報酬が得られる期待(報酬の期待値)が真の期待 値より低いと探索されることが少なく修正されにくい. • 見積もりが真の期待値より高いと探索され,修正されることで見積もりが真の期 待値に近づく.
  5. 不確かなときは楽観的に: 悲観ハンターの場合2 たまたま池で獲物が取れた 森 期待値0 池に行ったら獲物が取れ た.池は良い狩場だ. 池 期待値1 草原

    期待値0 ハンター たまたま池で獲物が取れる、池の期待値が上がり、ハンターは池が良 い狩場だと思う。悲観的なので,他の狩場には期待はしておらず試さ ないため,他の場所の期待値が修正されない.
  6. 不確かなときは楽観的に: 悲観ハンターの場合2 池で獲物が取れず、期待値が下がった 池に行ったら獲物が取れ なかったが,以前は取れ たから良い狩場だ. 森 期待値0 池 期待値0.5

    草原 期待値0 池で獲物が取れる無かったとしても、依然として他の期待値は低いた め,他の狩場を試さない. ハンター
  7. 不確かなときは楽観的に: 楽観ハンターの場合2 たまたま池で獲物が取れた 池に行ったら獲物が取れ た.他の狩場も良さそう だから次は森に行こう. 森 期待値0.8 池 期待値1

    草原 期待値0.8 ハンター たまたま池で獲物が取れたとしても,他の狩場も獲物が取れると思っ ているので他の狩場も試す.試す機会があるため,期待値が修正され る.
  8. 不確かなときは楽観的に: 楽観ハンターの場合2 池で獲物が取れず、期待値が下がった 池に行ったら獲物が取れ なかった.他の狩場の方 が良さそうだから次は森 に行こう. 森 期待値0.8 池

    期待値0.7 草原 期待値0.8 池で獲物が取れず期待値が下がると、元々高かった他の期待値より低 くなり、他の狩場を試そうとする。 ハンター
  9. 多腕バンディット問題(Multi armed Bandit(MAB)問題) • 最も当たりを出す(最も報酬の期待値が高い)腕(スロットマシン)を探す問 題 • 最もシンプルな強化学習の問題 当たる確率:0.3 どれを選べばよい

    のだろうか. 困った. 当たる確率:0.7 当たる確率:0.1 当たる確率:0.8 なぜmulti armed banditと呼ばれるのか? Banditとは直訳すると盗賊の意味である.スロットマシ ンが人からお金を奪っていく様子を盗賊と言い表してい る.カジノでは1本の腕をスロットマシンがたくさん並 んでいるが,それをたくさんの腕を持った盗賊(multi armed bandit)と比喩している.
  10. MABでの文字の定義 • 𝑎(𝑡):行動 • 𝑅(𝑡):報酬 腕1を選ぼうとして間違えて腕2を選ん でしまうという設定もできるが、そのよ うなことは起こらないとしよう。 • 𝑄𝑡

    (𝑎):行動𝑎をしたときの平均報酬(報酬の期待値、報酬が0、1なら当たる確 率) • MABでは行動は腕を選ぶことなので,状態(どの腕を選んだ状態か)は行動は 一体となり,状態は考えない. 平均報酬 𝑄𝑡 (𝑎) を参考に 腕𝑎(𝑡)を選ぶ 腕𝑎の平均報酬 𝑄𝑡 (𝑎)を 覚えておく 報酬 𝑅(𝑡)を得る
  11. MAB問題を解く代表的なアルゴリズム • greedyアルゴリズム • greedy(貪欲)に腕を選ぶ. • これまでの経験から最も報酬を得られる可能性が高い行動をする. • ε-greedyアルゴリズム •

    これまでの経験から最も報酬を得られる可能性が高い行動をするが,たまに違う 腕を選ぶ. • UCB1アルゴリズム • これまでの経験から最も報酬を得られる可能性が高い行動をするが,あまり選ん でいない腕も優先して選ぶ.
  12. Greedyアルゴリズムは間違った選択をするかもしれない 腕1 当たる確率:0.3 腕2 当たる確率:0.7 腕1の方が当 たりそうだ ステップ 報酬 腕1

    腕2 それぞれ2回試す. 1, 2 1 1 4, 4 1 0 5 1 6 0 7 0 8 0 9 0 10 たまたま当たりが続い た。 たまたま当たっ たため,間違っ た選択をする. 腕1の情報が増える。 ここで,腕1の当たる確率(期 待値)が3/7となり,腕2の当 たる確率のほうが高くなる. 1 腕1はハズレ のようだ.腕 2の方が良い かも
  13. 𝜺-greedy algorithは最も当たる腕を探せる 腕1 当たる確率:0.3 腕2 当たる確率:0.7 腕1の方が当 たりそうだ ステップ 報酬

    腕1 腕2 1, 2 1 1 3, 4 1 0 5 0 6 7 8 9 10 1 0 たまたま当たりが続いた。 腕1の情報が増える 腕1の方が良いが、たまに は腕2を試してみる。 腕1の情報が増える。 腕2の方が良さそう。 腕2を試すと、 2の方が当たり そうだ
  14. UCB1 • まだ選んだことがない腕がある場合,その腕から一つ選ぶ. • 𝑈 = 𝑄𝑡 𝑎 + 𝑐

    ln 𝑡 𝑁𝑡 𝑎 が高い腕を選択する.𝑡はステップ数,𝑁𝑡 𝑎 は腕𝑎を選ん だ回数である. 𝑈 = 𝑄𝑡 𝑎 + 𝑐 平均報酬 ln 𝑡 𝑁𝑡 𝑎 試した回数が少ないかどうかの指標
  15. UCB1 • 𝑄𝑡 𝑎 が平均報酬が最も高い腕を選ばせようとし, ln 𝑡 𝑁𝑡 𝑎 があまり選ばれてい

    ない腕を選ばせようとする. • 𝑁𝑡 𝑎 が大きくなると ln 𝑡 𝑁𝑡 𝑎 は小さくなる( ln 𝑡 は対数なのであまり増加しな い).つまり,それぞれの腕がそれなりの回数選ばれれば,平均報酬が最も高 い腕を選ぶことになる. • 最も当たる腕を選べる。
  16. UBC1はあまり選んだことがない腕も試す 腕1 当たる確率:0.3 ステップ 報酬 腕1 𝑄2 + 腕2 当たる確率:0.7

    腕1の情報が増える ln 5 𝑄1 = 1, = 𝑁𝑡 1 ln 5 = 0.73 3 ln 5 = 𝑁𝑡 1 ln 5 = 0.90 2 腕2 1, 2 1 1 3, 4 1 0 5 1 6 0 𝑄2 = 0.5, 腕1の情報が増える 7 1 ln 𝑡 が大きくなったので、 𝑁𝑡 2 たまたま当たりが続いた。 腕2を選んでみようかな。 ln 6 𝑄1 = 0.75, = 𝑁𝑡 1 ln 6 = 0.67 4 ln 6 = 𝑁𝑡 2 ln 6 = 0.95 2 𝑄2 = 0.5,
  17. 配置問題 • ウェブサイトのボタンの言葉をどれにすれば最もクリックされるか? • スロットマシンは,それぞれのボタンに表示する言葉に対応する. • 報酬は,クリックに対応する. • MABアルゴリズムを用いそれぞれのボタン配置を試しながら,最適な言葉を 探す.

    どれが一番寄 付してくれる か? ボタンをどの言葉にすれば寄付が増えるだろうか? 訪問者に見せる言葉をバンディットアルゴリズムで決めれば最も良い文言が見つかるかも. 参加 寄付を 共に戦う ご協力を
  18. 木探索でゲームは解けるが… • ゲームで起こりうる全ての盤面を網羅したゲーム木を作れば、必勝(もしくは 負けない)手を探すことが出来る。 • オセロ、将棋、囲碁などより複雑なゲームだと、全ての盤面を網羅することが 計算量的に不可能である。 • そうやってゲーム木の探索をすればよいか? •

    全ての盤面を網羅しない。 • 不可能だから。 • 木探索をランダムに行う。 • 盤面を網羅しないとしても、探索しなければならないので、ランダムに探索してみる。 • バンディット問題を応用する。 • 完全にランダムだと効率が悪いだろうから、バンディット問題の適用をしてみる。
  19. モンテカルロ木探索のアルゴリズム • Selection: • ランダム,greedy,ε-greedy,UCB1などのバンディットアルゴリズムを用い子 ノードを選ぶ. • Greedyアルゴリズムなら,平均報酬が最も大きいノードを選ぶ. • 葉ノードまで続ける.

    ゲーム木を巡ってい く。 次の行き先であるノ ードは、バンディッ トアルゴリズムで選 ぶ。 図の木は、アルゴリズム が作ったゲーム木。全て の状態が網羅されている わけではない。 (Browne et al., 2012)
  20. モンテカルロ木探索のアルゴリズム ノードを選ぶときバン ディットアルゴリズム を使う。 平均報酬 𝑄 1 𝑄 2 𝑄

    3 𝑄 4 ノードをバンディットアルゴリズムで選ぶ。 ε-greedyなら、平均報酬の最も高いかランダムにノードを選ぶ。 UCB1なら、平均報酬と訪問回数に基づきノードを選ぶ。
  21. モンテカルロ木探索のアルゴリズム ルートの子ノードまでゲー ムの結果が逆伝播する。 何度もランダムにプレイし、その 結果を平均報酬として貯めること で、平均報酬はノード(行動)の 価値(例えば勝つ可能性)を表す と考える。 勝ち 勝ち

    ゲームの結果を、ルートの子ノー ドまで逆伝播させる。 保存しているゲーム木(バンディ ットアルゴリズムで選ばれるノー ド)では、伝播してきた結果を平 均報酬に反映させる。 ランダムに選んだノードでは、伝 播してきた結果は保存されない。 ゲームの結果が親ノード に逆伝播する。
  22. モンテカルロ木探索の例 現在の状態 選んだ マルが選べる 盤面 平均報酬:𝑄(𝑎) = 0 選ばれた回数:選ばれたので 𝑁

    𝑎 =1 Selection: MABアルゴリズムで盤面を選ぶ.各盤面は平均報酬 と選ばれた数を保存している. Expantion: 選んだ盤面がN回選ばれていれば盤面を追加する. 今回は1度目なので追加しない.
  23. モンテカルロ木探索の例 現在の状態 報酬の平均を更新 1 𝑄 𝑎 = =1 1 マルが選べる

    盤面 勝った(報酬1) バツが選べ る盤面 Backpropagation: 終局の結果を報酬として上 の盤面に送る.送られた報酬から報酬の平均 を更新する.
  24. 人がマルバツゲームを解くとき 現在の盤面 次の手 どうし よう この盤面なら相手が 悪い手を打てばマル が3つ並ぶから良い 盤面だ. 起こる可能性が

    ある盤面 次の手を打った結果 起こる可能性が ある盤面 この盤面は必ず引き 分けになる. 勝つ可能性 がある手を 打とう!!
  25. 機械がマルバツゲームを解くには • 機械は盤面を評価しなければならない • 盤面と評価の関係を学習しなければならない. • 回帰問題 • 機械は良い手(盤面)を選ばなければならない. •

    プレイしながら様々な盤面を評価する. • 強化学習(モンテカルロ木探索) 教師あり学習(回帰)+強化学習(モンテカルロ木探索) =AlphaZero
  26. AlphaZeroのニューラルネットワーク • 価値と方策を出力するネットワーク • 価値は,入力された盤面で勝つ可能性を表す. • 方策は,入力された盤面で可能な手の選ぶ確率を表す. • Policy headとvalue

    headからなるヘッド部とボディー部で 構成される. • Policy headが出す手の確率を出力する. • Value headの勝つ可能性を出力する. • AlphaZeroが先手が勝つと思っていれば1,負けると思っている なら-1を出力する. • Body部はn個のresidual blocksで構成される. • 入力はk手分の盤面+現在のプレーヤ.盤面はプレーヤごと に用意する.それぞれ0,1で表される.
  27. AlphaZeroのモンテカルロ木探索 • Select: • 𝑄(𝑠, 𝑎) + 𝑈(𝑠, 𝑎)が最も大きい子ノードを選ぶ. •

    子ノードが葉ノードでなければ,上に戻る.そうでなければ次へ. • Expand and evaluate • 葉ノードを展開し,次へ. • Backup • (推定した)結果を親ノードに 伝える.それをルートノードまで繰り返す. • selectをルートノードからやり直す. • N回上記の処理を行った後,ルートノードの子ノードのうち最も選んだ回数が多かった子ノー ドの手を打つ. (Silver et al., 2017)