将棋ソフト開発(仮)スマートフォン用の表示で見る将棋ソフト開発(仮)将棋のソフトを作るのです。この広告は、90日以上更新していないブログに表示しています。どの程度正しいのでしょうか。結論としては、ガバガバです。同じ局面でも、強いとされるプログラムが200点で、もう片方が1000点とか日常茶飯事です。人間はプロ同士ならそんなに形勢に差は出ません。ソフトはおかしいのでしょうか?ここで採り上げたいのは二つです。1:なぜソフトによって違いが出るのか2:なぜそこまで大きな差が出るのか人間の場合は、大雑把かつガバガバで(処理的に)効率的な形勢判断をします。ソフトの場合は、緻密かつガバガバで(処理的に)非効率的な手法を含む形勢判断をします。※ただし、効率的な手法による形勢判断の「プログラミング」はソフトを強くする上で非効率的であると考えています。人間の場合は考え方や内部的な処理の仕組みが似ています。同じ結果になりやすく、形勢判断の他、盲点になりやすい手も、見つけやすい手もかなり似通っています。人間基準ではそれでも些細な違いが盛大な個性に見えるかもしれませんが、ソフトの場合は処理の仕組みも、やろうとしていることも、動作の仕組みも何から何まで違います。(デジタルとみなされた値を扱うと言う点では同じですが、それは真っ白なキャンバスを渡されて、新しい動物を作ってくださいと言われるような物です)。ソフトの違いは極めて個性的になる資質を常に持ちます。これが個性的な評価を出す理由のひとつです。踏み込んで、具体的なことを考えていきます。ソフトが実装する検索手法と評価関数は「ほとんどの場合」は統計的な勝率に基づきます。(「ほとんどの場合」がどの範囲までを指すかは私も知りません)。検索ルーチンや評価ルーチンをいじくってみて、勝率が上がればそれが良い処理とされるわけです。ここで重要な問題があります。将棋は必ず一つの手しか選べないと言うことです。勝率だけ見ると言うことは、選んだ手に対してのみ検索処理と評価に「正しい補正」がかかると言うことです。このとき、そのソフトが選ばなかった手に対する処理の成否は問われません。ここで盤面に対する判断がおかしくなります。棋風とでも言いましょうか。人間としての棋風とはかなり内容が違うのですが、棋風です。最初から全てそのソフトが指した場合のみ、と言うことになります。(もちろん最初から最後までそのソフトに指させて勝率を取っているわけですから)。この積み重ねにより、1:ソフト自身が指した手は、より正しく評価されるよう更新される。指し手を選ぶ際、正しく評価される指し手を選んだ更新が生き残る。未知の局面(ソフトが選ばないであろう局面)の評価は、全く干渉されないことに拍車がかかります。別のいい方をすると、好みの棋風に拍車がかかるとでもいいましょうか。当然ですが、選ばなかった全ての手に対しての評価は、選んだ手よりも低いわけで、だからといってその評価が正しいとも限らないのです。選んだ手に対する検索法と評価の最適化がおこなわれます。最適化がおこなわた指し手が次からも選ばれるように補正されていきます。評価関数は必ず狂っていて、また、上手に検索して指しつぐことが出来ない可能性が常に残ります。(とは言ってもソフトレベルの話しでの上手かどうかです)。違う方式での形勢判断を要求するのです。勝率だけによるバージョンアップをおこなった場合、棋風は明確に発生するものと思われます。内部で相反する処理が発生している可能性が高く、勝率は落ちる可能性が濃厚と思われます。評価関数が大幅に間違っていても、指し手に乱れはほとんどなく、正しい手を見つけますが、これはまた別の要因によるものなので今回は省きます。自分と違う棋風の盤面を見ても、日頃と大きな狂いを出すことなく形勢判断をします。ソフトはそういった形勢判断はせず、今まで自分が現実上勝ってきた盤面を一番よしとします。それがとんでもなく偏ってるとも知らずに。ソフトの場合は、盤面が似てると言う概念も持ちません。(ただしくは人間と違う意味で似てるかどうかを算出するソフトが多いですが。三駒関係の演算の結果の数値が同じとか)。言うわけなので、とりわけそのソフトが「嫌いな盤面」に対しては信憑性のある評価値は出しません。間違ってると言う保証はありませんが、正しいと言う保証もないのです。1:ソフトがその局面に対する干渉を行なった履歴がない。(例えばその指し手を選んだ)2:ソフトがその局面を正しく判断できた履歴がない。(例えば指し手は選んだが、処理が噛み合わなかったなどの理由でうまく勝てずに開発者に抹消された)どちらかなのです。ここで私が思うのは、極端な好みが発生するほど、他人の棋譜から指しつぐのは難しくなるということです。これは将棋の特性として、極端な盤面ほど極端な指し手が最善になる可能性が高くなります。・・・もう言わなくてもわかるよな。自分と相反する盤面に直面した場合、そこからやっちゃいけない自分の好みに向かって盤面を変更したがる可能性が常に残るのです。将棋は選択肢は選べても、あとから「やっぱやめた」が出来ないことが多いです。一度医者として就職することを決めたら、生涯医者として振舞わなければならない可能性が高いのです。ところが、突然ペンキ塗りの仕事(盤面)を渡されたら、ソフトはその汚い手で医術を試みる可能性が残るのです。これは事態を悪化させます。形勢判断に関してはこの限りではないと言うことです。言うことで!ソフトを使って将棋を研究する場合は1:評価値を見ずに指し手だけをみるようにしましょう。ソフトの手は間違ってない保証は得られていますが、正しいと言う保証は得られていません。2:複数ソフトの指し手を確認しましょう。ソフトによって好みがかなり偏ります。その中で損得勘定は自分でするのが良いです。幸いなことにおかしな筋と、問題のある筋が発生してる局面、に関してはソフトは教えてくれます。ちなみに、ソフトの好みは「人間の感覚」で盤面を見てもよく分からないことが多いのであしからず。ソフトはソフトで、盤面を人間とはまったく違う角度から見ているからです。第四局の記事だけ書いてないんですけど。第五局は、まぁこれはこれでいいんじゃないでしょうか。川上さんの会見だけ、何を言いたかったのか一部分からなかったので、そのへんはなんとも言えないですけど。ちなみに第五局で私が一番楽しかったのはエキシビジョンです(笑)。私は将棋を見たいタイプなので。自慢するわけではありませんが!私のソフトは!滅多に飛車とか角とか詰まされません!!なぜなら、一手目でいきなりパスして相手が何を指そうとするのか探ろうとするソフトだから。言う事で、角や飛車が詰まされる盤面が比較的読みやすいわけです。十分な時間を得られればこの形式のほうが強くなります。そのかわり、結論(指し手)を算出するのが遅くなって、早指しは弱いです。この方式は、やんちゃなことを指せない役割も担わせてます。純粋に一手パスした時に変化する点数が「局面の重み」なので、どの程度やんちゃなことをしてるか、数値にして算出できるわけでもあります。「やんちゃなことをしてる」とか「綱渡りを始めようとしている」とか、ある程度予測します。ゆう時は、思考時間をおもいっきり増加させている仕様です。(書くのは簡単ですが、苦労しました。言うか本当に正しく動作してるのか今でも不明です)。実はソフトは「詰めろ」とか「必至」を出すのは苦手です。言うか、ほとんどのソフトはそうゆう考えかたはしません。人間とは局面の理解の仕方や、手の考え方が違うからです。「詰めろ」とは人間用の概念です。詰めろを簡単に出す方法があります。これで詰んだら詰めろ。(たぶん人間の脳内と同じ方式です)。詰めろが正確に割り出された場合、その後の検索方式を最適化することができます。私のソフトの場合は、詰めろを片っ端から出して、(基本的には)その詰めろが解消されるまで検索を続けて点数を出します。手数に関わらず「詰めろ同士の優劣の比較」が可能になっています。私のソフトは、一直線の詰みとかにも案外強いです。同じ理由だと思います。手順通りの総当り検索だとそうなるんです。現段階できちんと作れているかと言われると、まだすごく不安定な動作です。普通のプログラマーは嫌になって投げ出すレベルじゃないかなぁ。言うと、私のソフトは早指しするとめちゃくちゃ弱いです。ある程度のスペックのあるPCで、一定時以上思考させたときに、始めて成果の出る方式です。今までにも書いてきたように、私のソフトは他にもいろいろなことをやっています。その遅さたるや凄まじい物があります。思考が遅いからって弱いソフトなわけじゃないんだよ。本当の最善手を探すにはそれがいいんだよ、と言う思いがあります。一応、なぜそうゆう考えなのかを「すごく大雑把」に書くとこうなります。一盤面探索平均40手。