More Related Content
Similar to コンピュータ将棋・囲碁における機械学習活用
Similar to コンピュータ将棋・囲碁における機械学習活用 (20)
コンピュータ将棋・囲碁における機械学習活用
- 1. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
コンピュータ将棋・囲碁
における機械学習活用
- 2. Copyright © 2014 OPT, Inc. All Rights Reserved.
目次
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による特徴量生成
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
2
- 3. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
0.導入
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 4. Copyright © 2014 OPT, Inc. All Rights Reserved.
自己紹介
名前:加藤 尊
所属:
株式会社オプト テクノロジー開発2部
今までPythonの愛好家でしたが、
最近仕事ではScalaを書いています。
経歴:
東京工業大学知能システム科学専攻 渡辺研究室
修士論文「混合正規分布における正則特異判定方法の提案と評価」
その他:
・Facebook(機械学習と周辺技術情報の投稿)
https://www.facebook.com/shogiai
・趣味
将棋、ニコニコ動画
4
- 5. Copyright © 2014 OPT, Inc. All Rights Reserved.
今回の参考文献と御礼
1.東京大学新領域創成科学研究科基盤情報学専攻博士論文
「ゲーム知識を表現する語彙の棋譜データからの自動獲得」
三輪誠,2008年
http://repository.dl.itc.u-tokyo.ac.jp/dspace/handle/2261/24349
2.強化確率ロボットモデルでの逆強化学習について
@mabonakai0725さん
http://www1.m.jcnnet.jp/mabonki/doc/POMDP_IRL.pdf
を参考にさせて頂きました!
5
- 6. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
1.はじめに
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 7. Copyright © 2014 OPT, Inc. All Rights Reserved.
将棋は木構造
現局面から次の局面への遷移を枝で表すと、木構造になる。
遷移 遷移
0手目 1手目 手目
7
木構造
- 8. Copyright © 2014 OPT, Inc. All Rights Reserved.
将棋のゲーム木を作成するには?
人間は、「読み」と「大局観」で指し手を決定するが…
PCは、「探索」と「評価」で指し手を決定する!
tannsaku 評価
↓
探索
↓
評価
↓
探索
具体的には、 を繰り返す。
1)探索アルゴリズム
探索をして初めて、ゲーム木探索における変化した先の局面を判断することが可能になる。
2)機械学習を利用した評価関数
変化した先の局面の先の良し悪しを決める。
局面の評価を行い、その有利さから局面同士の順位付けを行う。
8
実現方法
- 9. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
2.コンピュータの知識獲得
(探索と評価)
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 10. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
2.1 探索
- 11. Copyright © 2014 OPT, Inc. All Rights Reserved.
Minimax探索
2プレイヤが最善の手を選ぶと仮定し、
その中で最も自分に有利な状態となる次の手を評価関数を用いて選択する。
1.自分の手番
⇒ 自分に有利な(評価値が最も高い)手を選択。
2.相手の手番
⇒ 相手が最も良い(評価値が最も低い)手を選択し、
その評価値を親ノードの評価値とする。
3.この評価値の親への伝搬を再帰的に繰り返す。
パスができる。
このパスが、コンピュータの読み筋となる。
11
Minimax法のアルゴリズム
- 12. Copyright © 2014 OPT, Inc. All Rights Reserved.
探索の効率化
将棋の木は指数爆発する ( ≒ 10220通り )ので、
探索数をどのように抑えるかは重要な課題である。
1.枝刈り
2.探索の順序付け
が重要。
1.αβ 探索(分枝限定法と同様)
・深さ優先探索
・過去に探索・評価したノードの値を、保存・更新
・評価値が現在探索した一定値を超えた場合、その先を探索しない。
例(上図参照):
( Bの評価値) = 40,( Dの評価値) = 20のとき、必ず、( Aの評価値) = 40となる
(理由) (Eの評価値)=xについて、max(40,min(20,x))=40なので、
ノードEを探索する必要はない。
12
探索アルゴリズムの課題
- 13. Copyright © 2014 OPT, Inc. All Rights Reserved.
探索の効率化
2.前向き枝刈り
探索ノードを減らすために、
ヒューリスティックに基づいて
・ノードの深い探索で評価値を予測する
・現局面以下を枝刈りできるか判断して枝刈りする
方法が提案されている。
閾値を設け、
一定評価値or
一定実現確率以下の
探索は打ち切る。
13
- 14. Copyright © 2014 OPT, Inc. All Rights Reserved.
実現確率打ち切り探索
木の深さの代わりに、
局面の実現確率を閾値として深さ優先探索を行う探索手法
(局面の実現確率) = (直前局面の実現確率探索)×(遷移確率)
※1
遷移確率:ある局面が,可能な指し手によって遷移しうる局面のうち
ある1つの局面に変化する確率
(遷移確率) =
(実際にカテゴリの手が指された数)
(カテゴリの手が可能である局面数)
※2
羽生善治実践集に含まれる600局のプロの棋譜から、遷移確率を計算している。
(探索手法はαβ探索アルゴリズムと同様だが)
局面の実現確率を閾値としている点で異なる。
ありそうな手を深く読み、なさそうな手を読まない探索。
14
実現確率打ち切り探索
- 15. Copyright © 2014 OPT, Inc. All Rights Reserved.
論文では
「実現確率打ち切り探索」が実装されている将棋ソフト「激指」
遷移確率の計算において、
局面の指し手の評価に必然手・手筋が組み込まれていない。
「激指」の遷移確率をn-gram統計量を用いたものに切り替える。
※n-gram統計量:(単語単位ではなく)文字単位で分解し、
後続の N-1 文字を含めた状態で出現頻度を求めるもの
改良以前の激指と対戦し、150戦で、 83勝67敗と勝ち越した。
提案手法が有効であることが確認された。
15
現状の課題
結果
研究の方針
- 16. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
2.2 評価
- 17. Copyright © 2014 OPT, Inc. All Rights Reserved.
1. 学習による評価関数の獲得
2. 計算コストを下げる工夫
局面評価の注意点:
1.評価知識の利用方法
(良くも悪くも)評価値は探索に大きな影響を与える。
評価値を活用した枝刈りで、深い探索をするよりも、
評価値による枝刈りを活用しない浅い探索が優れている場合もある。
2.精度と速度
学習結果は探索中に用いられるため、
学習結果を利用するために必要な計算コストが課題になる。
精度と速度のトレードオフを検討する必要がある。
3.静的評価関数
探索アルゴリズムとの整合性を保つために
静的評価関数 (現在の局面という既知の情報の評価)を扱う。
評価関数とは? 17
述べること
局面評価の注意点
- 18. Copyright © 2014 OPT, Inc. All Rights Reserved.
学習による評価関数の獲得
1.深い人間の知識を基に有用と考えられる評価要素を選択し、
2.機械学習を用いて評価の重み調整を行う。(今回はココ)
1)強化学習
対戦を通して、評価関数の重みを調整。
2)教師あり学習
プロの棋譜が与えられた状況で、
その棋譜の指し手・結果、局面の評価と一致するように、評価関数の重みを調整。
殆どのゲームで
強さは、「 教師あり学習 > 強化学習 」だが、
教師あり学習には、
・教師データの取得
・教師データの精度に大きく影響する
というデメリットがある。
18
- 19. Copyright © 2014 OPT, Inc. All Rights Reserved.
強化学習
自己対戦・他プレイヤとの対戦を通じて評価関数の重みを調整。
教師用データがいらない。
局所最適に陥りやすい。
( 自己対戦 < サーバー上のプレイヤとの対戦 )
TD学習:未来の状態とその報酬から、
現在の状態の補正を行う手法。
終局における勝ち・負けの報酬を、
終局に至るまでの局面に伝搬させる。
局面を終局の評価値に近づくよう
補正する。
19
欠点
利点
TD学習
- 20. Copyright © 2014 OPT, Inc. All Rights Reserved.
教師あり学習
棋譜を基に機械学習を行うことで評価関数の重みを調整。
1.指し手の順序関係を教師とした学習
「差し手の順序関係を教師とした学習」が、
「差し手の順序が評価関数での評価」と一致するように学習を行う。
2.棋譜の終局局面を対象とした学習
対戦結果を予測するように評価関数の学習を行う。
序中盤にも教師例が得られるため、
「1.差し手の順序関係を用いた学習」≧ 「2.終局局面を対象とした学習」
20
学習方法
- 21. Copyright © 2014 OPT, Inc. All Rights Reserved.
棋譜の指し手と評価関数が一致するように、
1.棋譜の指し手と評価値の順位が一致するように
(指し手の評価) ≧ (その他の手)
となるように、
評価値を学習させる。
2.規模感
数万局 ⇒ 数百万局面 ⇒ 数億手から、
数十万パラメータを学習させる。
指し手の順序関係を教師とした学習 21
代表的なソフト「Bonanza」では…
- 22. Copyright © 2014 OPT, Inc. All Rights Reserved.
計算コストを下げる工夫 22
対策
問題点 評価
探索を行う度に
局面を評価する必要があるのだが… 探索
学習は、計算コストが高い。
探索
評価
ルールベースに
人の知識を用いて順位付けすることもある。
- 単純に、差し手の順位だけを決めて
計算コストを削減する。
例.「直前に動いた駒を取る手」「狙われている駒を逃げる手」は、価値が高い!
- 23. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
3.機械学習による特徴量生成
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 24. Copyright © 2014 OPT, Inc. All Rights Reserved.
機械学習で用いるデータの課題
1.データの異常
データのラベル付けにおける矛盾、欠損値の存在により学習が難しくなる。
・データの特徴不足、ラベル付け間違い
・得られない、計測ミス が考えられる。
2.データ形式の非統一
データ形式(連続値・離散値・記号データ)の非統一、正規化の必要などの問題
3.データを表現する特徴の問題
表現している特徴(属性、変量)により、学習が困難となり学習の精度が下がる問題。
データが冗長でなく、かつ十分に表現できる特徴が得られないことが原因。
将棋では、3番目しか起こりえないので、
3.データを表現する特徴の問題を取り上げる。
24
考えられる理由
- 25. Copyright © 2014 OPT, Inc. All Rights Reserved.
特徴量生成手法
特徴が多い多次元データに対して、次元を下げることを目的として用いられる。
1.計算コストが大きい
2.汎化性能が向上しなくなる
(2.の理由)
・次元が増えるに従いデータ間の距離が離れ、似たような位置に属する相関の高い情報が増える。
・次元に対して、十分な訓練データが得られない。
⇒ 学習が難しくなる。
1.特徴抽出:高次元の特徴空間を元と異なる低次元の特徴空間に射影する
2.特徴選択:特徴から、重要な特徴を選ぶor不要な特徴を省く
3.特徴構築:特徴を組み合わせて、多くの特徴を作った後に、
特徴選択により、重要な特徴を選択する。
25
特徴量生成手法
理由
- 26. Copyright © 2014 OPT, Inc. All Rights Reserved.
比較
特徴抽出:軸を新たに合成する、作成する。
特徴選択:軸を選択する。(ある軸を捨てる)
精度 計算コスト
特徴抽出 ○ ×
特徴選択 × ○
(両者を併用することもありますが、)
2つの手法について、
・目的と分類
・利点と欠点 を示す。
26
特徴量生成手法の比較
- 27. Copyright © 2014 OPT, Inc. All Rights Reserved.
特徴抽出
( 高次元の特徴空間 ⇒ 低次元へ )
低次元特徴空間では、データ(データのラベルに関する)情報の損失が
少ない射影を行う必要がある。
設定した基準において、空間の射影に必要なパラメータを求める。
1.パラメータを求めるのに、全データを扱う必要がある
⇒ 計算コストが高い。
2.データ処理を、射影後に行う必要がある。(多重共線性)
⇒ ランニングコストが高い。
コストが高いものを全く異なる射影空間に射影する
⇒ 指標・学習データについて最適なものを求められることが多い。
1.「教師あり手法」と「教師なし手法」
2.「線形射影手法」と「非線形射影手法」
27
欠点
目的
利点
分類
- 28. Copyright © 2014 OPT, Inc. All Rights Reserved.
特徴選択
与えられた特徴の中から重要な特徴を選択。
特徴の一部に着目して取り出す。
全てのデータを用いた計算をする必要がない。
データ処理で、元の特徴で表現されたデータをそのまま使える。
1.選択した特徴が元の特徴に依存して、
互いに独立でなく相関のある特徴が存在する。
2.選択の順番により、結果が異なったりするなど精度が低い。
1.フィルタメソッド
特徴の評価に、機械学習の代わりに適当な評価基準(統計量etc)を用いる手法
2.ラッパーメソッド
選択候補の特徴を用いた機械学習を行い、結果を基に特徴選択を行う手法
計算コスト:フィルタ ≧ ラッパー / 計算精度:フィルタ ≦ ラッパー
( ラッパーメソッドでは過適合が報告されている )
28
利点
欠点
目的
分類
- 29. Copyright © 2014 OPT, Inc. All Rights Reserved.
ボナンザメソッド
ボナンザの評価関数での特徴量は…
29
- 30. Copyright © 2014 OPT, Inc. All Rights Reserved.
駒の三角関係
任意の駒を頂点とした三角形のうち、
「良い形といわれる特徴的な三角形」を特徴量とする。
30
- 31. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
4.オープンソース1
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 32. Copyright © 2014 OPT, Inc. All Rights Reserved.
オープンソース
「Apery」
https://github.com/HiraokaTakuya/apery
(C++で書かれている)
「将棋所」というGUIソフト
http://www.geocities.jp/shogidokoro/
上でのみ動作保障。
※Windowsでは動作、
Macでは動作しない(個人検証)
32
将棋ソフト
環境
- 33. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
5.コンピュータ囲碁
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 34. Copyright © 2014 OPT, Inc. All Rights Reserved.
最近のニュース
2016年1月28日、囲碁界だけでなく
コンピュータープログラム業界にも衝撃が走った日だと思います。
これまでコンピューターが人間に勝つのは困難とされていた
最後の砦である囲碁で、
欧州のプロがGoogle DeepMind社開発のプログラムAlphaGoに
ハンディキャップなしで5戦全敗したからです。
棋譜を5局ともみましたが、
私個人はコンピューターにぶっちぎられてしまった感満載です。
(http://umeyan.hatenablog.com/entry/2016/01/29/051333より引用)
34
ニュース
- 35. Copyright © 2014 OPT, Inc. All Rights Reserved.
コンピュータ囲碁
囲碁は(将棋と違い)、局面の評価関数・特徴量を生成することが困難。
(将棋は、駒の三角関係を用いた特徴量生成)
評価関数を用いない「モンテカルロ木探索法」が主流
※参考:
モンテカルロ木探索で一人不完全情報ゲーム「計算」を賢くする[1]~[15]
http://labs.timedia.co.jp/author/author3a1b5/
35
将棋との違い
囲碁で用いられる手法
- 36. Copyright © 2014 OPT, Inc. All Rights Reserved.
Google社の囲碁
公式ページにおいて、コードやアルゴリズムは公開しないとのことですが…
http://deepmind.com/alpha-go.html
ディープニューラルネットワークを用いて実装された
・value network(価値を決めるもの)
・policy network(方策を決めるもの)
が動作する、モンテカルロ木探索
1.人間のプレーヤーを模倣
棋譜に記録された熟練した棋士の手と合致するように訓練
2.ある程度強くなると…
強化学習を用いて自分自身と多数の対戦を行うことでさらに訓練
36
原型
トレーニング
- 37. Copyright © 2014 OPT, Inc. All Rights Reserved.
DQN(Deep Q-Network)
ゲーム攻略で人間を超えた人工知能、その名は「DQN」
グーグルが昨年買収したDeepMind社の人工知能(AI)「DQN」。
『Atari 2600』のゲーム49本を学習させたところ、
その半数以上で人間に匹敵、時には上回るスコアを記録した。
37
- 38. Copyright © 2014 OPT, Inc. All Rights Reserved.
Googleについて
DQNで得た逆強化学習に対する知見が、
大きな要因ではないでしょうか
※Facebook社もコンピュータ囲碁に参入していたが、プロには到底及ばす…
“Better Computer Go Player with Neural Network and Long-term Prediction”
http://arxiv.org/abs/1511.06410
38
- 39. Copyright © 2014 OPT, Inc. All Rights Reserved.
Q学習とは
行動価値関数Q(𝑠, 𝑎)に対し、
𝑄 𝑠, 𝑎 ← 1 − 𝑎 𝑄(𝑠, 𝑎) + 𝑎 𝑟 + 𝛾 max
𝑎′
𝑄 𝜃 𝑁
𝑠′
, 𝑎′
と更新
𝑟: 状態 𝑠 で行動𝑎を選択した後の環境から受け取った報酬
𝑠′
: 状態 s で行動𝑎を選択した後、次の時刻で受け取った状態
𝑎: 学習率、 𝛾:強化信号の割引率
𝑄 𝑠, 𝑎 について、
その関数自身を含む 𝑟 + 𝛾 max
𝑎′
𝑄 𝜃 𝑁
𝑠′
, 𝑎′
に少しづつ近づけていく
𝑄(𝑠, 𝑎)表の更新だけで学習ができる
環境モデルを学習する必要がない
39
Q学習アルゴリズム
解釈
メリット
- 40. Copyright © 2014 OPT, Inc. All Rights Reserved.
DQNのメカニズム
囲碁(あるいは多くの実問題)において、報酬関数は良く分からない
・複数の専門家(熟練者)の行動データから
報酬を学習する逆強化学習
・行動価値関数QをDeep CNNで訓練(20層~30層)
40
逆強化学習(報酬を学習する)
- 41. Copyright © 2014 OPT, Inc. All Rights Reserved.
逆強化学習法の例1
Maximum Entropy Deep Inverse Reinforcement Learning
41
- 42. Copyright © 2014 OPT, Inc. All Rights Reserved.
逆強化学習法の例2
Inverse Reinforcement Learning
with Locally Consistent Reward Functions
42
- 43. Copyright © 2014 OPT, Inc. All Rights Reserved.
Copyright © 2014 OPT, Inc. All Rights Reserved.
6.オープンソース2
0.導入
1.はじめに
2.コンピュータの知識獲得(探索と評価)
3.機械学習による知識獲得
4.オープンソース1
5.コンピュータ囲碁
6.オープンソース2
- 44. Copyright © 2014 OPT, Inc. All Rights Reserved.
DQNオープンソース(Python)
1.Qiita記事
DQNの生い立ち+Deep Q-NetworkをChainerで書いた
http://qiita.com/Ugo-Nama/items/08c6a5f6a571335972d5
2.GitHub
https://github.com/ugo-nama-kun/DQN-chainer
44
- 45. Copyright © 2014 OPT, Inc. All Rights Reserved.
DQNオープンソース
入力:多数のサンプル(𝑠, 𝑎, 𝑟, 𝑠′)からなるデータ 𝐷
出力:学習後の𝑄関数 𝑄 𝜃 𝑁
(𝑠, 𝑎)
1. 𝑘 = 0で初期化
2. ニューラルネットワークのパラメータ𝜃0を初期化
3. 繰り返し: 𝑁 − 1 回繰り返す
4. データ𝐷からサンプルを𝑀個取り出す
5. M個のサンプルを元に
・教師信号𝑡𝑎𝑟𝑔𝑒𝑡 𝑡
= 𝑟𝑡 + 𝛾𝑚𝑎𝑥 𝑎´ 𝑄 𝜃 𝑁
(𝑠′
𝑡 , 𝑎′)
・入力(𝑠𝑡, 𝑎 𝑡)
を作成( 𝑡 = 1,2, … , 𝑀 )
6. 作成した教師信号 𝑡𝑎𝑟𝑔𝑒𝑡 𝑡と入力(𝑠𝑡, 𝑎 𝑡)を元に、
𝑄 𝜃(𝑠, 𝑎)と教師信号の誤差𝐿 𝜃を最急降下法で最小化する
学習が収束するなり一定の条件を満たしたら、その結果を𝜃 𝑘+1とする
7. 𝑘 ← 𝑘 + 1とし、𝑄 𝜃 𝑁
(𝑠, 𝑎)を出力として返す
45
アルゴリズム