IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第123回 「Neural Networkは何を学んでいるのか?」AlphaZeroの分析例(パート1) (中井悦司) 2022年3月

はじめに

 今回からは、2021年に公開された論文「Acquisition of Chess Knowledge in AlphaZero」を元にして、強化学習を適用したニューラルネットワークの「学習内容」を分析するという研究事例を紹介します。最近は、学習済みのニューラルネットワークの構造を分析して、予測に影響を与える要素を発見する「Explainable AI(説明可能なAI)」と呼ばれる技術が発展しており、これらの技術をチェスをプレイする機械学習モデルに適用したものになります。

分析内容

 はじめに、この論文における分析内容を簡単にまとめておきます。この論文では、チェスをプレイする機械学習モデルを分析の対象としていますが、これは、AlphaZeroと呼ばれる強化学習のフレームワークを利用して学習したものになります。ここでは、人間がチェスをプレイした際の棋譜データは使用せずに、エージェント同士の自動対戦だけを用いて学習処理を行います。つまり、「人間のプレイヤーの考え方」はまったく参考にせずに学習を行いますが、それでも最終的には、人間のプロ棋士を超える性能を獲得することができます。AlphaZeroは、チェスの他にも囲碁や将棋においても同様の性能を発揮することが確認されています。
 ここで興味が湧くのは、この学習済みのモデル(ニューラルネットワーク)は、「人間のプレイヤーと同じ考え方」でチェスをプレイするのか、あるいは、人間のプレイヤーとは異なるまったく独自の視点を持っているのかという点です。これらの点をExplainable AIの技術を応用して分析しようというわけです。ニューラルネットワークは、一般に、入力データを変換して予測に役立つ「特徴量」を取り出すという処理を内部で行います。多数のレイヤーが出力するそれぞれの特徴量を分析することで、チェスの盤面からどのような情報を取り出して判断しているのかを調べようというのが基本的なアイデアになります。
 まず、「人間のプレイヤーと同じ考え方」を持っているのかという点については、人間のプレイヤーが用いる一般的な評価基準をニューラルネットワークが計算した特徴量から再現できるかを確認します。どのように再現するかは後で詳しく説明しますが、仮に、これが再現できたとすれば、このニューラルネットワークは、人間の評価基準と同等の情報を用いて予測していると言えることになります。また、「人間のプレイヤーとは異なる独自の視点」については、ニューラルネットワークが計算した特徴量を教師なし学習の手法でグループ化して、それぞれのグループが盤面のどのような情報を抽出しているかを可視化します。この結果を人間のプレイヤーが見ることで、これまでに気づいていなかった新たな視点が得られるかも知れないという考え方です。実際の人間のプレイヤーによる評価については、論文の中では明確な結論は出ていませんが、可視化したデータ、および、その他の分析データが公開されているので、チェスが得意な方はこれらの公開データを見れば、新たな発見があるかも知れません。
 そして最後に、「学習の過程」に対する分析も行われています。AlphaZeroの機械学習モデルはモデル同士の自動対戦で収集したデータを使って学習を行いますが、これは、チェスの歴史と対比することができます。チェスには500年以上の歴史があり、さまざまなプレイヤーが対局を繰り返す中で、あらたな定石が生み出されていきました。そこで、学習が進むにつれてAlphaZeroのモデルの打ち手が変化する様子を歴史的な打ち手の変化と比較しようというわけです。論文の中では、「初手」の傾向を比較するというシンプルな比較に留まっていますが、この他にもさまざまな比較のアイデアが出てきそうな研究です。

機械学習モデルの構造

 ここで、分析対象となる機械学習モデルの構造を説明します。実際に学習した機械学習モデルの構造は、図1のようになります。モデルに入力するデータは、過去8手分を含む盤面の状態です。8×8の盤面に先手、後手、それぞれの6種類の駒がどのように配置されているか、何手目の状態か、そして、「キャスリング」と呼ばれる特別な手を打てるかなどの情報が8×8×119サイズのリストに記録されています。

fig01

図1 AlphaZeroで学習した「チェスプレイヤー」の機械学習モデル

 この情報は、1層目のブロックで8×8×256サイズのリストに変換されて、その後は、同様のブロックが20層目まで続きます。それぞれのブロックからの出力は、すべて同じ、8×8×256サイズのリストです。その後、「Value head」と「Policy head」の2つの経路に分岐します。Value headは、入力した盤面から最終的に「勝ち」に至る確率(つまり、現在の盤面がどの程度有利な状態か)を予測します。もう一方のPolicy headは次に打つべき手の確率分布(つまり、次に打つべき手の確率付きの順位リスト)を出力します。学習後のモデルを用いて対戦する際は、これらの出力を用いてMCTS(モンテカルロ・ツリーサーチ)を行います。これは、シミュレーションによる先読み処理をリアルタイムに行うことで、Policy headが出力する上位の手の中から、さらにベストと思われる手を選択する処理になります。なお、各ブロックは内部に複数の畳み込み層を含んだ「ResNet Block」になっており、ブロック間にスキップ結合を持ったResidual Networkのアーキテクチャを構成します。
 以上が機械学習モデルの構造です。ここまでの説明から分かるように、このモデルでは「盤面の状態」を表すデータを入力すると、20層のブロック(ResNet Block)による計算処理が繰り返されて、それぞれのブロックから8×8×256サイズのデータ、すなわち、特徴量が出力されます。これらの特徴量を用いて、前述の分析を進めることになります。

次回予告

 今回は、2021年に公開された論文「Acquisition of Chess Knowledge in AlphaZero」を元にして、強化学習を適用したニューラルネットワークの「学習内容」に関する研究事例について、分析内容の概要、そして、分析対象の機械学習モデルの概要を紹介しました。次回からは、実際の分析結果について解説を進めていきます。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes