【ゼロから作るDeep Learning④】AlphaZero

>100 Views

January 15, 26

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2025年度後期輪読会#13(2026/1/15) AlphaZero 京都大学工学部理工化学科B2 岡本 和優 0

2.

アジェンダ ◼ 背景 ◼ 手法 ◼ 結果 1

3.

アジェンダ ◼ 背景 ◼ 手法 ◼ 結果 2

4.

そもそもなんでゲームやらせるんですか? 長らく知能のベンチマークとしてゲームは用いられてきた • 歴史的背景 • 1950年代(シャノンやチューリングの時代)からチェスは知能のベンチ―マーク • 1997年にDeep Blue(IBM)がチェスの世界チャンピオンに勝利 • 従来の手法の問題点 • トッププレイヤーの評価基準を数式化していた(人間が知識を与える必要がある) • αβ法による膨大な探索が必要 • ゲームに固有の例外処理が膨大に存在(汎用性がない) • 囲碁→チェス→将棋と複雑なゲームになると対応ができない (将棋は駒を再利用できる分、終盤でも選択肢が減らない) 3

5.

AlphaGoからAlphaZeroへ 囲碁特化型から汎用型に進歩 • AlphaGO / AlphaGo Zero • 教師データなしでの学習が可能に • ただし囲碁固有の最適化を含む • AlphaZero • ゲーム特有の処理を排除 • 同一のアルゴリズムで異なるゲーム(囲碁・チェス・将棋)に対応 • 盤面の情報の与え方はゲームごとに異なるが、構造自体は同一 • 短時間での学習が可能になった 4

6.

AlphaGo Zeroからの変更点 囲碁でしか通用しないような手法を廃止して改良 AlphaGo Zeroから囲碁特有の手法を廃止し、学習方法についても見直された • データ拡張の廃止 • 囲碁特有の碁盤の回転・反転によるデータ拡張は行わない • チェスや将棋は非対称的なので局面をそのまま学習 • 学習方法の変更 • 最良モデルとの対戦、ではなく常に自分と対局させる • 目的関数の変更 • チェスで起きがちな引き分けを扱えるように変更した (勝ち・引きわけ・負けを、{1, 0, -1}で表した) ※損失関数の詳細は後述 5

7.

アジェンダ ◼ 背景 ◼ 手法 ◼ 結果 6

8.

ニューラルネットワークのアーキテクチャ 基本はResNet、ポリシーと価値を出力するためにヘッドを2つ用意 盤面を表現して(この形式はゲームごとに異なる)ニューラルネットワークに入力 特徴抽出は共通で、ポリシーと価値を出力する用のヘッドを2つ用意する fθ (s) = (𝒑, v) • 入力(s):現在の盤面+過去の履歴8step分 • チェスの場合……駒の種類ごとに、どこにあるかを表す平面を重ねる • 出力(p,v) • ポリシーヘッド(p):次の一手の確率分布 • チェスの場合……どの位置の駒を動かすか×そこからの動き方で4672次元のベクトル (ただしルール違反の手は0でマスキングする) • 価値ヘッド(v):現在の局面の勝率評価(-1~1) 7

9.

損失関数の設計 価値の差+ポリシーの差+正則化項 価値の差とポリシーの差とL2正則化の項を足し合わせたものを損失関数として用いている 𝐿 = 𝑧 − 𝑣 2 − 𝝅T log𝒑 + 𝑐 𝜃 2 • 価値損失: 𝑧 − 𝑣 2 • zは実際のゲーム結果。勝ち・引き分け・負けがそれぞれ{-1, 0, 1} • vはニューラルネットワークの出力値 • 方策損失: −𝝅T log𝒑 • 𝝅はモンテカルロ木探索で得られた次の一手の確率分布 • pはニューラルネットワークの出力値 • 正則化項: 𝑐 𝜃 2 • ニューラルネットワークの重みが大きくなりすぎないように追加 8

10.

モンテカルロ木探索の改善 ニューラルネットワークの出力を利用して探索を効率化 各時点での行動選択では、活用Q(s,a)と探索U(s,a)の和が最大の行動を選択する at = argmaxa 𝑄 st , 𝑎 + 𝑈 st , 𝑎 1. ニューラルネットワークが出力した方策P(s,a)をU(s,a)の計算に利用する σb N(s, b) U(s, a) = Cpuct P(s, a) 1 + N(s, a) 過去に選んでいないが、NNが高く評価している手を優先的に調べることになる 2. Q値の算出をランダムで終局まで進めて確認するのではなく、NNの出力vを利用して判断させる v − Q(s, a) Q(s, a) ← Q(s, a) + N(s, a) ランダム対局を実行する手間が省け、盤面の評価精度も向上した 9

11.

学習ループの全体 自己対局→訓練→更新をひたすら繰り返す 1. 自己対局 現在のNNを用いて1手ごとにモンテカルロ木探索、 局面s、探索結果𝜋、勝敗zを記録する 2. 訓練 前述の損失関数を用いてNNを訓練する 𝐿 = 𝑧 − 𝑣 2 − 𝝅T log𝒑 + 𝑐 𝜃 2 3. モデルの更新 訓練した後のモデルを用いることにする 新旧のモデルを対局させて、どちらが強いかを確認したりはしない 10

12.

アジェンダ ◼ 背景 ◼ 手法 ◼ 結果 11

13.

結果とパフォーマンス 短時間の学習で既存の手法に勝利 自己対局にTPU5000個、訓練にTPU64個を用いることで、短時間での学習を実現した (チェス9時間・将棋12時間・囲碁34時間) 既存の手法に対して高い勝率を記録している 12

14.

定石の再発見 人間が知識を与えることなしに、ゲームの定石を発見した ルール以外の知識は与えていないのに、人間の定石が学習過程で発見された 13

15.

計算時間によるスケーリング 計算時間が増加するにつれて性能が向上することを確認 既存の手法と比べて、計算時間を増やしたときの性能の向上が大きい 14

16.

AlphaZeroのその後 ルールさえも学習、ゲームから実世界の問題へ • AlphaZeroの限界:完全情報ゲームでルールが既知であることが必要 (状態遷移の規則は人間が与える必要がある) • MuZero(2020):ゲームのルールまで学習。ビデオゲームもできるように • AlphaDev(2023):プログラムの最適化をゲームとして定義 15

17.

まとめ Alpha Zeroは人間が与える知識なしに高い性能を実現した、汎用的な手法 AlphaZeroはルールを与えるだけで高い性能が実現可能 • 特徴 • 人間の知識や定石を使わずにルールのみから学習 • チェス・将棋・囲碁に対して共通の構造で高い性能を達成 • 手法 • 局面から方策と評価を単一のネットワークで出力 • NNをガイドに使いながらモンテカルロ木探索 • 自己対局ループをひたすら繰り返す • その後の展開 • MuZero:ルールさえ与えなくていいように • AlphaDev:プログラムの効率化をゲームとして扱う 16