LogicalInSpace

将棋の日記

第2回 将棋電王戦 第2局

2013-03-31 08:00:55 | ネットソフト情報
2013/03/30(土)に、第2局が行われました。

先手:ponanza
後手:佐藤 慎一四段

141手にて、将棋ソフトのponanzaの勝ち

ニコニコ生放送を、朝から視聴をしていました。
佐藤四段は、将棋ソフトの評価関数を理解していない指し方の印象です。
佐藤四段の敗因は、将棋ソフトへの研究不足だと思います。

佐藤四段は、プロ棋士ならば、この手を選ぶという基準で、指し手を選んでいたようです。
プロ棋士ならば、この指す手を選ぶ基準では、すでにプロ棋士と互角以上の勝負が出来ることを、ponanza は示しました。

ついに、「この日が来てしまったのですね!」


私は、コンピューター将棋協会の滝沢会長のある言葉が印象に残りました。
「現在は、将棋ソフト同士で対戦して、これ以上、強くすることが出来ないのです。」
「プロ棋士の先生の方が、将棋ソフトを研究して、その弱点を示して欲しいです。」
将棋ソフトの開発者の方は、将棋が指せると言っても、強くてもアマ有段者です。
つまり、本当の意味ではプロ棋士の指し手を理解することが出来ない状態です。
プロ棋士の指し手を理解していないので、将棋ソフトの弱点を克服することは、開発者レベルでは、到底無理な話なんですね。
唯一、プロ棋士の指し手に近づいたのが、ボナンザの自動学習の評価関数です。

なので、開発者は、自動学習の評価関数の精度とプロ棋士と対戦して頂き、どの部分の精度に弱点があるのかを知る機会が、今回の電王戦だったのですね。


ponanzaの開発者の山本さんは、記者会見で、記者からの質問、「今後の将棋ソフトの課題は、ハード面ですか、ソフト面ですか」という質問がありました。
IT業界に詳しい方ならご存知ですが、現在の市販で販売されているPCは、「Core i7 の4コア(8スレッド)」より速いスペックを作ることは、ほとんど無理に等しいです。
なので、スパコンは1秒に「京」の計算が出来るといいますが、スパコンでも並列処理をして「京」の単位です。
ハード面は、最後に出てくるGPSのように、クラスタ構成(複数のPCにつないでする方法)以外は、強くすることが出来ません。

なので、山本さんは「ハード面よりソフト面のアルゴリズムや評価関数の精度を上げる必要がある」と答えました。
また、人の手で修正を加える部分のソフト面は、アルゴリズムや評価関数の部分になります。

開発者の山本さんは、プログラマーとしての立場を現状を踏まえて、答えています。


再度、滝沢会長の話から気がつかされたことは、開発者にとって、巨大化した評価関数は、開発者が簡単に修正出来るソースではないことです。
それは、改めて痛感させられました。


スカイプで「SwallowDragonさん」と将棋ソフトの話をしました。
Swallowさん「ロジカルさんは、どちらかというとプログラマー寄りの立場かと思っていました。」
私は、プログラマー寄りに見られていたのは、意外でした。
私は、「アマの将棋指し」と「プログラマー」の立場で中立な立場で書いていたからです。
第1局、第2局とも、私には、「プロ棋士が勝っても」「将棋ソフトが勝っても」、複雑な心境でしかありません。

純粋な将棋指しの方から見えれば、プログラマー寄りに見えると思います。
将棋を知らない、プログラマーから見えれば、将棋寄りに見えると思います。
私は、あくまでも中立な立場です。

Swallowさん「コンピューターの棋力は年を追うことに上昇してるってのは紛れもない事実ですね・・・」
これも素人が誤解している一面です。
実は逆で「将棋ソフトは、強くなっているのではなく、弱くならないです」
正確に言えば、将棋ソフトは、一度完成されたアルゴリズムや評価関数などは、弱くなることがないというのが、正確な認識です。
強くなっている印象があるかもしれませんが、正確には、将棋ソフトは弱くなることがないというのが実情です。
後は、アルゴリズムや評価関数の精度を、少しづつ修正を加えて、よりよいアルゴリズム、精度のよい評価関数として、プロ棋士に近づいたというのが実情です。

ロジカル「一番、将棋ソフトが飛躍的に強くなった理由は、別にあります。」
将棋ソフトが飛躍的に強くなった理由は、2つあります。
2006年のコンピューター将棋選手権でボナンザが優勝しました。
その理由は、開発者の保木さんにあります。
1つ目は、ボナンザは、自動学習の評価関数を採用して、初優勝したこと。
2つ目は、開発者の保木さんが、ソースコードをオープン化したことです。
「自動学習の評価関数」と「ソースコードのオープン化」が、将棋ソフトが飛躍的に強くなった理由です。

1つ勘違いしないで欲しいことは、ソースコードの著作権は、保木さん自身にあります。
ソースコードを非公開、公開する権利は、開発者(保木さん自身)にあることです。
別に非公開にする権利も、開発者にはあります。

Swallowさん「激指3をCPUの低いソフトと高いソフトとで比較してもええ、それが全くのウソっていう。」
Swallowさん「真偽的にもやっぱり嘘みたいなんですが」
市販のソフトで、遅いCPU、速いCPU を比較しても、変わらないと思っているようです。
ロジカル「CPUの速いPCだと、強さは変わりますよ。 ただし、条件付きですよ。」
この条件付きの部分が、分からないようなんですね。

「CPUが速いソフトだと、5手先の局面まで、すべて読みます。」
「しかし、CPUが遅いソフトだと、5手先の局面を、読む場合もあり、読めない場合もあります。」
「この読めない場合の話なんですよ。」
「将棋ソフトが、30秒だと仮定すると、5手先が読める場合と、読めない場合があります。」
「その読めない場合の話なんですよ。」

また、「並列処理プログラム」でも差が出てきます。
以前は、シングルコア(CPU が1つ)でした。 現在は、マルチコア(CPU が複数)です。
プログラムでも、「シングルコア向け」と「マルチコア向け」のコーディングの2種類が存在します。
昔の将棋ソフトは、「シングルコア向け」だったので、現在のPCにインストールしても1つのCPUしか動かないようになっています。
シングルコアで、3.0GHz のPC と、4コアで、2.8GHz の PC では、違いが出てくることになります。
シングルコア向けのコーディングであれば、シングルコアのPC が速くなります。
マルチコア向けのコーディングであれば、4コアのPC が速くなります。
※補足:クラスタ構成は、この考えに基づいて、PCの性能を上げています。

Swallowさんと私のやり取りですが、私としてはプログラマーでは常識だったので、意外でしたが、Swallowさんの素朴な疑問は、他の方も同じように思っているのではないかと思いました。

最新の画像もっと見る

コメントを投稿