お久しぶりです、前回のマイキーの記事にあったように
プロレスを見に行ってパワーを貰ったコウスケです。
今回は pythonで関数型プログラミングをはじめてみよう!
をお休みして別の話題をお送りしたいと思います。
少し前の5月になりますが、人間とコンピュータが将棋で戦う電王戦FINALが行われました。
第2回が行われた時にもこのブログ記事で触れましたが、
電王戦とは、人間(プロ棋士)とコンピュータが将棋で戦うイベントです。
これまでに4回行われており、
第2回は1勝3敗1分、第3回は1勝4敗
と、棋士側が大きく負け越していました
FINALである今回は・・結果から述べると、勝敗で初の棋士側の勝ち越し
見事に有終の美を飾ることが出来ました
(※これまでの経緯は、
電王戦Wikiなどで詳しく見ることが出来ます。)
電王戦はそもそも「人工知能の発展」という名目を掲げ開催されていたわけですが、
これまでの戦いを見るにつけ、自分なりにいろいろとわかったこと、
感じたことがありますので何点か挙げていきたいと思います。
- コンピュータ将棋は既に人間の棋士のトップレベルにまで来ているが、完全に上回っているわけではない。
これまでの対戦成績からそういえますが、あっさり負けることもあります。
チェスのように人間は完全にかなわないというところまではいっておらず、
まだまだ強くなる余地を残していると言えます。
- コンピュータは入玉が苦手
コンピュータは入玉という将棋における特殊な戦法を狙われると弱いです。
これは過去のプロ棋士の棋譜を学習することにより強くなっているので、
サンプルが少ない戦法や、勝利条件が通常と変わったりする戦法には弱くなってしまいます。
- コンピュータは単純計算が得意
単純な計算はもはや比較にならないほど人間より早いので、
終盤の詰めに至るまでの読みなどは一瞬で読みきってしまいます。
また、序盤は定石がデータベース化されており、
自動的に定石に沿った手を指すことが出来ます。
- コンピュータはバグやハメ手からはどうしても逃れられない
例えばFINALの第2局は、通常ありえない指し手を指すことにより
コンピュータがかけられた王手から逃げることをせずに、
人間側が勝つという決着がつきました。
また、明らかに不利になりうる手を指す局面が存在する(通常のゲームなどでいうハメ手)
こともあり、その局面に誘導することで勝つことができるということも見られました。
FINALの第5局がその形でした。
- 人間とコンピュータが「公平な条件で」戦うというルールを設定するのはとても難しい
こういった異種格闘技ともいえる戦いではルールの設定が難しいのですが、
それはどういった価値観でそのイベントが企画されているかに依ってくると思います。
電王戦では、回が進むにつれ、クラスタリングの禁止やマシンスペックの一定化、
棋士側に対局ソフトの事前貸出あり、貸出後のソフトの修正あり→なしといった
ルールが設定されていきました。
これらは、マシンスペックで強引に強くするよりもアルゴリズム自体の賢さで
競いたいという価値観によるものと思います。
また、事前貸出により人間はそのソフト特有の癖などを見ぬくことができますが、
逆にコンピュータ側は、そういった癖を見ぬかれても自己修正により
さらに強くなるという部分をさらに研究する余地があるといえると思います。
- コンピュータと人間は協力することでより強くなれる
既に触れているように、コンピュータは序盤と終盤が得意、
逆に人間はいわゆる「大局観」が問われる中盤が得意ということで、
それぞれが協力して指し手を編み出せばより強い存在になりえます。
コンピュータが明らかに苦手な局面を人間がフォローするということも考えられます。
このように、将棋にかぎらずそもそもコンピュータと人間はお互いが苦手なところを補完し合い、
協力しあうものだという、綺麗な?結論が得られてくるのではないでしょうか。
そして最後に、ゲームこそ学問の発展や一般層への普及に
大いに貢献できる、素晴らしい物だという実感がありました
今回でいうと将棋というゲームによる対戦形式を取ることで多数の人間を巻き込み、
興味を引き、人工知能という分野の発展や普及に大きく貢献することになりました。
人間は突き詰めると楽しいことしかできないともいわれますが、
楽しいということを突き詰めることはとても意義のあることだと思いますので、
これからもゲーム開発に携わるものとしてそれを追求していきたいと思います
それでは。