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

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

研修コース検索

コラム

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

CTC 教育サービス

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

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

はじめに

 前回に続いて、2021年に公開された論文「Acquisition of Chess Knowledge in AlphaZero」を元にして、強化学習を適用したニューラルネットワークの「学習内容」を分析するという研究事例を紹介します。今回は、学習済みの機械学習モデルが持つ「人間のプレイヤーとは異なる独自の視点」に関する分析例を紹介します。

Matrix Factorizationによる「隠されたグループ」の発見

 前回の記事では、学習済みのニューラルネットワークが「人間のプレイヤーと同じ考え方」を持っているかを分析する例を紹介しました。そこでは、Stockfishの評価関数を「人間のプレイヤーの考え方」を表すモデルとして、各ブロックが出力する特徴量の一次関数でこれらの評価関数が再現できるかどうかを検証しました。一方、今回は、教師無し学習の手法であるMatrix Factorizationを利用することで、これらの特徴量に内在する情報を取り出すことを試みます。具体的な中身を理解する準備として、まずは、一般的なMatrix Factorizationの考え方を説明しておきましょう。
 Matrix Factorizationの例としてよく取り上げられるのが、映画の評価データ(図1)を用いて、映画群の「隠されたグループ」を発見するというものです。

fig01

図1 映画の評価データ(表Z)

 図1には、5人のユーザーによる、7種類の映画に対する、5点満点の評価データがあります。このデータをよく見ると、グループ1(映画A、映画C、映画D)、グループ2(映画B、映画E)、グループ3(映画F、映画G)という3つのグループがあり、各ユーザーは、グループ内の映画に対しては同じ評価を与えていることに気がつきます(図2)。

fig02

図2 グループに対する評価(表F)と映画のグループ分け(表G)

 図2の左は、各グループに対する共通の評価値を示します。また、図2の右は、さきほどの3つのグループを表形式にまとめたものになります。もしかしたら、それぞれのグループは映画のジャンルに対応しており、各グループに対する評価は、それぞれのユーザーの各ジャンルに対する好みを反映しているのかも知れません。このデータだけでは、本当に映画のジャンルに対応しているかは分かりませんが、同じグループの映画は、何らかの意味で類似性を持っている事は間違いないでしょう。さらに、この結果を用いると、グループ分けの情報(図2右の表G)と各グループに対する評価(図2左の表F)から、各映画に対する個別の評価(図1の表Z)を再現することが可能になります。それぞれの表を数学の「行列」と考えれば、「Z=FG」という行列計算が成り立ちます。
 さて、ここまでは説明のために作為的に用意したデータに対する結果ですが、一般には、「Z=FG」という関係を逆に利用することで「隠されたグループ」を発見することができます。つまり、与えられたデータZに対して、「Z=FG」という関係を満たす行列Fと行列Gを探し出せば、行列Gから隠されたグループが発見できるのです。(この際、グループの数は事前に設定する必要があります。)通常は、Z=FGという関係が厳密に成り立つことはありませんが、近似的に成り立つようにFとGを構成する手続きがMatrix Factorizationのアルゴリズムとして用意されており、これによって、データの背後に隠されたグループ(図2右の表G)とそれぞれのユーザーの各グループに対する評価(図2左の表F)が分かります。一般には、1つの映画は複数のグループに属しており、それぞれのグループに対する「重み」(つまり、そのグループの特徴をどの程度強く持っているか)が表Gの値として得られます。なお、冒頭の論文では、行列Fと行列Gの各成分は非負値を取るという条件を追加した、Non-negative matrix factorisationのアルゴリズムを使用しています。

Matrix Factorizationによる「評価基準グループ」の発見

 それでは、AlphaZeroを構成するニューラルネットワークの場合、各ブロックが出力する特徴量からは、どのような「グループ」が発見できるのでしょうか? 第123回の記事で説明したように、各ブロックが出力する特徴量は、8×8×256というサイズを持っており、最初の8×8は、チェスの盤面のマス目に対応しています。ここでは、最後の256というサイズを256種類の「映画」に対応させて考えます。また、特定の盤面の状態をニューラルネットワークに入力すると、それに対応した特徴量の値が得られるので、特定の盤面の状態が1人の「ユーザー」に対応すると考えます。つまり、ある特定の盤面から得られる特徴量は、その盤面が与える256通りの「評価」を示しており、1つの「評価」は8×8の各マス目に対する値として得られます。1つの評価が持つ8×8の値は、「どのマス目にどのくらい注目しているか」と解釈することができます。
 そして、256種類の「映画」の中には、より少数のグループが隠れていると考えて(具体的には36種類のグループがあると設定します)、Matrix Factorizationを適用します。ここでは、1つのグループが(映画の例であれば「ジャンル」に相当するような)何らかの意味での「評価基準」を与えると考えており、Matrix Factorizationを実行することで、特定の盤面が36種類のグループ(評価基準)のそれぞれに与える評価値(8×8の各マス目に割り当てる与える値、つまり、どのマス目にどのくらい注目しているかを示す値)が計算できます。この説明だけでは、まだピンと来ないかも知れませんので、実際の評価値を可視化した結果を見てみましょう(図3)。

fig03

図3 教師無し学習で抽出した評価値の例(論文より抜粋)

 図3には12種類の例が示されていますが、各列は特定ブロックの特徴量から得られる特定のグループ(評価基準)に対応しており、それぞれに対して、3種類の盤面が与える評価値(各マス目に割り当てる値)をサンプルとして表示しています。この結果を見ると、それぞれの評価基準の持つ「意味」が見えてきます。たとえば、左から3列目の例(3層目のブロックのグループの1つ)では、「相手プレイヤーが次に打ちそうなマス」の評価値が大きくなっています。つまり、このブロックでは「相手プレイヤーが次に打ちそうなマス」という情報を抽出していると考えることができます。一方、一番右の列(18層目のブロックのグループの1つ)では、「次に打つと良さそうな手の候補」を表しているようにも思われます。このようにして、それぞれのグループに対してさまざまな盤面の評価値を見ていけば、各グループが抽出している情報が推察できます。この部分は、人間のプレイヤーが個別に解釈していくことになりますが、図3のように可視化したすべてのデータがオンラインで公開されていますので、興味のある方は確認してみるとよいでしょう。

次回予告

 今回は、2021年に公開された論文「Acquisition of Chess Knowledge in AlphaZero」を元にして、強化学習を適用したニューラルネットワークの「学習内容」に関する研究事例に関して、学習済みの機械学習モデルが持つ「人間のプレイヤーとは異なる独自の視点」に関する分析例を紹介しました。次回は、強化学習による学習過程に関する分析結果を紹介します。

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

 


 

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