【E資格不合格から学ぶ】AlphaGo(強化学習)のポイントを解説!

  • 「Alpha Go」について学びたいけど理解できるか不安・・・
  • 「Alpha Go」についてどこから学んでいいか分からない
  • 「Alpha Go」を体系的に教えて!

 「Alpha Go」はGoogle DeepMindによって開発されたコンピュータ囲碁プログラムでありますが、難しそうで何から学んだらよいか分からず、勉強のやる気を失うケースは非常に多いです。

 私は 私は過去に基本情報技術者試験(旧:第二種情報処理技術者試験)に合格し、また2年程前に「一般社団法人 日本ディープラーニング協会」が主催の「G検定試験」に合格しました。現在、「E資格」にチャレンジ中ですが3回不合格になり、この経験から学習の要点について学ぶ機会がありました。 

 そこでこの記事では、「Alpha Go」の内容についてポイントを解説します。

 この記事を参考にして「Alpha Go」のポイントが理解できれば、E資格に合格できるはずです。

<<「Alpha Go」のポイントを今すぐ見たい方はコチラ

目次

1.Alpha Go(Lee)のPolicyNet

囲碁
Alpha Go(Lee)のPolicyNetのイメージ図
Alpha Go(Lee)のPolicyNetのイメージ図

2.Alpha Go(Lee)のValueNet

Alpha Go(Lee)のValueNetのイメージ図
Alpha Go(Lee)のValueNetのイメージ図

3.Policy Net、Value Netの入力

特徴チャンネル数説明
自石、敵石、空白の3チャンネル
オール1全面1
着手履歴88手前までに石が打たれた場所
呼吸点8該当の位置に石がある場合、その石を含む連の呼吸点の数
取れる石の数8該当の位置に石を打った場合、取れる石の数
取られる石の数8該当の位置に石を打たれた場合、取られる石の数
着手後の呼吸点の数8該当の位置に石を打った場合、その石を含む連の呼吸点の数
着手後にシチョウで
取れるか?
1該当の位置に石を打った場合、シチョウで隣接連を取れるかどうか
着手後にシチョウで
取られるか?
1該当の位置に石を打たれた場合、シチョウで隣接連を取られるかどうか
合法手1合法手であるかどうか
オール01全面0
手番1現在の手番が黒番であるか?(Policy Netにはこの入力はなく、Value Netのみ)
Policy Net、Value Netの入力一覧

4.RollOut Policy

RollOut Policyとは・・・
  • ニューラルネットワークではなく線形の方策関数
  • 探索中に高速に着手確率を出すために使用される
特徴次元数説明
12近傍マッチ1一つ以上の12近傍パターン(下記)にマッチしたかどうか
アタリ救助1アタリを逃げる手であるかどうか
隣接8直前の着手と隣接したマスへの着手であるか
ナカデ8192ナカデのパターンにマッチするか
12近傍(直前)32207直前の着手中心のダイアモンド型12近傍パターンにマッチするか
3×3近傍69338着手しようとしているマス中心の3×3近傍パターンにマッチするか
アタリ1アタリをつける手か
距離34直前の着手と着手しようとしているマスのマンハッタン距離
12近傍69338着手しとうしているマス中心のダイアモンド型12近傍パターンにマッチするか
RollOutPolicyの方策関数

 赤字の特徴はRollOut時には使用されず、TreePolicyの初期値として使用される時に使われる。

上記の特徴が19×19マス分あり、出力はそのマスの着手予想確率となる。

5.Alpha Go の学習

Alpha Go の学習ステップ
  1. 教師あり学習によるRollOutPolicyとPolicyNetの学習
  2. 強化学習によるPolicyNetの学習
  3. 強化学習によるValueNetの学習

引用元:https://www.nature.com/articles/nature16961

6.PolicyNet の教師あり学習

概要
  • KGS Go Server(ネット囲碁対局サイト)の棋譜データから3000万局面分の教師データを用意⇒ 教師と同じ着手を予測できるよう学習を行った。
  • 具体的には、教師が着手した手を1とし残りを0とした19×19次元の配列を教師とし、それを分類問題として学習した。
  • この学習で作成したPolicyNetは57%程の精度である。

7.PolicyNet の強化学習

概要
  • 現状のPolicyNetとPolicyPoolからランダムに選択されたPolicyNetと対局シミュレーションを行う。⇒その結果を用いて方策勾配法で学習を行った。
    PolicyPool:PolicyNetの強化学習の過程を500Iteraion(反復)ごとに記録し保存しておいたものである。
  • 現状のPolicyNet同士の対局ではなく、PolicyPoolに保存されているものとの対局を使用する理由は、対局に幅を持たせて過学習を防ごうというのが主である。
  • この学習をmini batch size 128で 10,000回行った。

8.ValueNet の学習

概要
  • PolicyNetを使用して対局シミュレーションを行い、その結果の勝敗を教師として学習した。教師データ作成の手順は次のとおり。
  1. SL PolicyNet(教師あり学習で作成したPolicyNet)でN手まで打つ。
  2. N+1手目の手をランダムに選択し、その手で進めた局面をS(N+1)とする。
  3. S(N+1)からRL PolicyNet(強化学習で作成したPolicyNet)で終局まで打ち、その勝敗報酬をRとする。
  • S(N+1)とRを教師データ対とし、損失関数を平均二乗誤差とし、回帰問題として学習した。この学習をmini batch size 32 で5000万回行った。
  • N手までとN+1手からPolicyNetを別々にしてある理由は、過学習を防ぐためであると論文では説明されている。

9.モンテカルロ木探索

モンテカルロ木探索(Monte Carlo tree search)とは・・・
  • モンテカルロ法を使った木の探索の事。
  • 決定過程に対する、ヒューリスティクス(=途中で不要な探索をやめ、ある程度の高確率で良い手を導ける)な探索アルゴリズムである。
  • コンピュータ囲碁ソフトでは現在もっとも有効とされている探索法
モンテカルロ木探索以外の探索法の問題点

他のボードゲームではminmax探索やその派生形のαβ探索を使うことが多い

盤面の価値や勝率予想値が必要

囲碁では盤面の価値や勝率予想値を出すのが困難

発想

盤面評価値に頼らず末端評価値(=勝敗)のみを使って探索を行うことができないか?

囲碁の場合、他のボードゲームと違い最大手数はマスの数でほぼ限定されるため、末端局面に到達しやすい。

仕組み
  1. 現局面から末端局面までランダムシミュレーション(PlayOutと呼ぶ)を多数回行い、その勝敗を集計して着手の優劣を決定する。
  2. 該当手のシミュレーション回数が一定回数を超えたら、その着手したあとの局面をシミュレーション開始局面とするよう、探索木を成長させる。
手順
  • 1.選択
選択における方策の定義式
選択における方策の定義式

 :勝敗期待値と着手予想確率のバランスを決めるパラメータ

 基本:第1項の勝敗期待値が高いものが選択
 補正:第2項がバイアス項となり選択数が少ないものが選ばれやすくなる。このときの着手予想確率はAlphaGoではPolicyNetの出力が用いられた。

  • 2.評価
    ValueNetでの評価を行う
    その局面を開始局面として方策RollOut対局シミュレーションを行う
          ↓
    両方の評価を合議したものをその着手の評価
  • 3.バックアップ
    「選択」ステップでの評価を親ノードに遡って更新する。
  • 4.成長
     一定回数選択されたリーフノードの合法手を展開し、新たなリーフノードとする。
モンテカルロ木探索のメリット
  • 探索木の成長を行う。
  • この木の成長を行うことによって、一定条件下において探索結果は最善手を返すということが理論的に証明されている。

10.まとめ

  • モンテカルロ木探索を採用
  • 手順は、選択評価バックアップ成長
  • 選択では勝敗期待値着手予想確率のバランスをとる
  • 着手予想確率:PolicyNet で算出
    評価:ValueNetで行う
    対局シミュレーション:RollOut Policyで行う 

最後まで読んで頂きありがとうございます。
皆様のキャリアアップを応援しています!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次