AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

深層学習の囲碁ソフトがプロ棋士に5戦全勝!

将棋は既にプロ棋士に追いついてしまったけど、囲碁はまだまだと言われてましたが(9路は強いけど19路はまだ)
いきなりプロを超えてしまった。
プロに五戦全勝だと、へたするとコンピュータ将棋よりコンピュータ囲碁の方が強いかもw

かつて、探索空間的にも、ゲームの特性的にも、囲碁の方が将棋より難解と言われていたけど、
もし、深層学習で囲碁がプロ棋士を抜いてしまったのなら、ゲームとしては、囲碁より、将棋の方が難しいと言えてしまうかもしれないw
コンピュータ将棋は強くなったけど、序盤の守りや囲いに関しては、完全にプロ棋士を模倣しているだけで、
例えば、独自の強い囲いなどをコンピュータは発見できてない。
せいぜい、プロ棋士の定跡を強化学習的に穴がないか調べる程度。
なぜ、囲うことをコンピュータが認識することが難しいのか、自分には判らない。
遠い将来に起きるで有ろう、攻められた時の保険を、事前に行っておくという、人間には簡単な問題を
なぜコンピュータは自ら理解できないのか?
(概念は簡単でも定跡を作れるのは一部の凄いプロ棋士だけなので、難解な問題ではある)



一方、囲碁は、一時期、モンテカルロ法を応用して、評価関数が作れないという問題点を解決したかに見えたけど、
今回の手法は、深層学習で、評価関数の作成に成功してしまったのかもしれない?
とすると、モンテカルロ法やUCT探索などの工夫は一気に過去のものになってしまったかも?(´・ω・`)
ギガジンの記事を見ると、従来通りモンテカルロ法とUCT探索に、深層学習を組み合わせたみたいですね

gigazine.net

次の動きを読み勝利の可能性が高い手だけを絞り込むpolicyネットワークと
検索ツリーの深さを低減するvalueネットワークという2種類の評価を使って
最適な手を選び出すハイブリッド形式の戦略が採られています。

なるほど。純粋なモンテカルロ法だと、文字通りランダムに手を選ぶけど、
UCB1って方法で、大量のスロットマシンを回す時のように、
すこしづつ回しながら、良いスロットマシンを探す方法(良いスロットと、まだあまり回してないスロットをトレードオフにして最適なスロットを探す)
それを木探索に応用したのがUCT探索。
このpolicyってのは、最適なスロットを探す作業のはず。
モンテカルロシミュレーションは終端まで局面を進めるから深さ削減はないはずで、
UCT探索の深さ制御にvalueネットワークを使っているのだろうか?

深層学習って言うから、図形的に評価関数を学習したのかと思ったけど、ちょっと違うみたい。

Policy network

Research Blog: AlphaGo: Mastering the ancient game of Go with Machine Learning

We first trained the policy network on 30 million moves from games played by human experts, 
until it could predict the human move 57% of the time (the previous record before AlphaGo was 44%). 
But our goal is to beat the best human players, not just mimic them. To do this, 
AlphaGo learned to discover new strategies for itself, 
by playing thousands of games between its neural networks, 
and gradually improving them using a trial-and-error process known as reinforcement learning. 
This approach led to much better policy networks, 
so strong in fact that the raw neural network 
(immediately, without any tree search at all) 
can defeat state-of-the-art Go programs that build enormous search trees.

探索して調べるための手の選別に深層学習を使ったみたいね。30x100万手から正解率57%の候補手を学習
要するに探索しないでも57%は正解に到れる学習ができたと(図形的にでしょう、非線形的に)
ある意味、図形認識ですよね。深層学習だから。
ぱっと見で正解率57%の大局観って人間だと、思うけど、そもそも深層学習って視覚野の再現でしょ?
もう視覚野レベルで囲碁はだいたい判るのかも。

そんなに良い手を生成できれば、あとは、探索して、最善手を見つけ出せばいいだけ
強化学習を使って、さらにpolicyネットワークを強化したとありますね。
強化学習はイルカに芸を仕込むやつと同じです。教師はないけど、報酬だけで、学習させる。

valueネットワークについてはあまり書いてないですね。
2つのハイブリッドみたいにギガジンは強調してるけど、結局良い候補手が選別できる時点で、勝ったも同然なんでしょ。