ディープラーニングの将棋が優勝したということで

電竜戦の前にはブログで「機械学習は胡散臭い」と書いたのですが。

まあ、分からないものが胡散臭く見えていたので突っぱねたという話。

大会に出てみると自分のソフトだけが思考時間が長いと思いました。

ではどうやって計算を速くするか。スペックを上げる、機械語を使う。

しかしまあ、機械語でなくプログラム言語とコンパイラを使う以上は言語に文句を言うか人からの評判で速いとされている言語に乗り換えるかみたいな選択肢しか普段はないわけで。

そこに単純なベンチマークで計算を競うのでなく、様々の言語で書かれた将棋プログラムでルールに則った強さを測るという試みは非常に有意義なものだとも言えると思うんですね。

将棋ファンとして将棋の棋譜を楽しむのも勿論なのですが、技師としての評価にもなる。

さらに言うとCPUとか言語とソフトの計算方法などの総合評価で出た結果がB級44ソフト中40位というのは結構辛い現実でした。

そうして、どうなったら速く出来るかを考えると、始まってから計算を走らせる部分を事前に計算してメモリ上に持ち、そして実行時にそれを参照するだけにするというある種の単純化をどこまで煮詰められるかとなった時に、指してから局面を計算して評価値を計算するのを指し手から1発で評価値を参照できるようにテーブルを引ければ、それが実はディープラーニングつまり機械学習のはじめの一歩なのではないかと考え始めました。

それにはある種全局面の自動計算が必要になるし、メモリを結果ファイルに書き込んで参照するために色々と新しい仕掛けをプログラムに追加することになります。

そして今朝から少しプログラム改変に手を付けました。応援してくれる方の中には「優勝ぐらいするのかと思っていた」とか「ドベタになってからプログラムを強くして優勝するまで続ける」みたいなマンガみたいな話を期待されたのですが、知的な閃きは一瞬で起こってもプログラミングとデバッグには途方も無い時間がかかり、また諦めの気持ちも出始めています。

機械学習にも色々あるようで、ニューラルネットワークとか言われても何のことかサッパリですが計算機理論を分からない人を難しい言葉で騙す系の技術用語とか、用語でなく本当に核心を隠すための包み紙のような技術体系としてのソフトも実在するので、少なくともビジュアルベーシックで参加できたこと、それで1勝出来たことの意義は意外とあるのかも知れません。

いや自分で言ってりゃ世話ないんですけど。プログラミングよりブログ書くほうが楽なので。

f:id:karmen:20201123143512p:plain

テーブル引くならと将棋の全局面を初めて計算してみると4.64e+118ということでメモリに全部ぶっこむにはマシン1台くらいではスペック足らないかもだけど将来的には全網羅した1手が求まるのかも知れないですよね。

けど、開始局面からあり得る出現局面ってもっと少ないわけだから電竜戦でも銀交換の千日手とか小学校くらいでもたどり着く引き分けの手になるのがもしかしたら将棋の答えのうちのひとつではあるのかな。けどそう考えると奨励会とか名人とかがもっと謎な存在に思えてくる。

謎だ。まだ俺の生涯対局数が300試合行くかどうかくらいなので1000局くらい指すとまた考えも変わってくるのかもだが。コンピュータ将棋にも色々あるけど、アルファベータ探索と駒得のみの評価関数でアマ初段くらいまで簡単に強くなるというひとつの方法論が将棋を数学で解くみたいな幻想を生んで、それを追い求めて迷路に入ったけど数学と将棋は別個のものとでもいうか、将棋のルールをプログラムで書くというのは数式ではなく手続きなわけだから、それにそれ以上の深みはないのかもしれないとちょっと思った。

あっという間の1週間でした

電竜戦参加の皆様、お疲れ様でした。

発売に踏み切る前に完全にデバッグしきったと思っていた将棋ベーシック改ですが、トーナメントで色々なソフトと対局できました。

もともと平手で何の調整もなく戦っても苦しいのですが、中にはソフトのダメなところを顕にするような指し手で攻めてくるソフトも有り「お前ら将棋ベーシック改相手にもココまで本気かよ?」と思わされました。

AobaZeroとは予選とB級、習甦にはテスト対局とB級最終戦で2回づつ当たりましたが、どちらも1回目は対局らしいところを見せつつ、2回めには完封されてしまいました。

そして個人的にずっと疑問だった「きふわらべ」の強さは如何程のものなのか、今回きふわらべシリーズとして歴代のきふわらべ9体が大会にエントリーしていますが、まず予選できふわらぎょくと引き分け、そしてきふわらすとには接続不調で負け、本命のきふわらべとはかなりの接戦でこちらが王手を受けて詰むや詰まざるや玉引きの1手をこちらが指す前に時間切れ負け。

唯一、同じく初参加の「十六式いろは改」相手に相手の投了で1勝させてもらいました。あれ詰んでたのかな。

結果1勝1分17敗とまあ、惨敗ですがBリーグ44チーム中40位と終わってみると清々しさがありました。

芝浦将棋相手に桂馬が跳ねて、金取り出来る局面で桂不成を読めない自分のプログラムのサボりで1勝を取れるかも知れない局を逃し、その時に次があるなら直そうと対局中にメモを取り「うわ、メモ取ったw」と外から笑い声が聞こえてきて腹が立って机をぶん殴る場面もありました。統合失調症の幻聴症状だとお医者さんには言われていますが、壁に耳ありで近所に来た人がひたすら家のそばで聞き耳を立てて部屋で何かが起こる一挙手一投足をからかいに来ている感じがしてそれに腹が立つのです。お医者さんが言うように被害妄想なのかも知れませんが。

勝負メシは商店街の「柳神くんまつり」と日がかぶって親父が屋台で買ってきてくれたビーフアンドチーズサンドイッチ。全局終えて結果発表の前に商店街の居酒屋さんから差し入れでもらった焼き鳥をレンジでチンして缶ビールを飲みました。

ずっと放っていて見る専門のAI将棋でしたが、参加に踏み切って良かったです。

参加者の皆様、運営の皆様、そして応援してくださった皆様、こんな風に自分のブログに書いて届くのかは分かりませんが、この場で御礼を申し上げます。ありがとうございました。

今日のカプエス2(ラスボスなんて出てこなければ良いんだ)

AI将棋大会電竜戦を明日に控え、前日にプログラムを改変したら新しいバグを生むかも知れないというのを言い訳にコードに手を付けるのを辞め、カプエス2を遊んで待つことにした。

f:id:karmen:20201120154729j:plain

将棋ベーシック改の開発も大会に出るのでなければ勝ち負けでなく自分の指したい将棋を並べるように、最短詰めとかでなくゆるく遊んで「いい勝負」を演出すればひとりで遊べる。

最初は強くしたり弱くしたりと調整に苦難したけど「激指」の鶴岡先生とメールでやり取りした後に天才的な閃きとか、コンピュータの思考ロジックを人間が思考して生み出すみたいな幻想から、先輩から継がれてきたものを着実にこなした東大教授が一度優勝しているので、まずは最先端のやり方を学び、その上に積み上げる形での発明でないといけないという話になった。

それから自分の負けを認めて強いやり方を覚えてその通りに作るということを一度してみた。その後はその効果があまりに劇的で興奮して、ここに何か発明をひとつ足せば自分が最強の座を手にするのではないかとも考えた。

そうこうしている間に他の人の研究が進み、自分が鶴岡先生から教えてもらったことはもはや最新では無くなった。機械学習の流行だ。

それでも何か自分でひとつでもと思って、駒得のみの評価関数と良く分からない機械学習での評価関数に胡散臭さを感じていて、これは強い部分もあるが俺の思う将棋とはちょっと違うと思っていた。

たどり着いたのは駒の利きを歩を100点とした時に1点だけ評価するという方法。これは大会のアピール文書にも記したが、玉の囲いに近いことをコンピュータが勝手にするようになった。

これで独創賞くらいは狙えるのではないかと思っていたら、世界は3日で変わった。

「駒利きを評価する」ということがAI将棋界隈でブームとなっているのだ。俺はコンピュータ将棋に関して古い本とかは読んでいないので、そんな手が過去にあったかということがいま研究者界隈でログられている。

f:id:karmen:20201120155539j:plain

風呂上がりに将棋に関する新しいアイデアもパッと何個か思いついたけど、作るのと実験するのにまた手間がかかりそうなので大会前には触らないことにしてカプエス2で遊んだ。

そんなに難しく考えなくても、敵が技の当たる距離にいるか、いないなら進むか、相手が進んでくるまで待つかで、その基準は体力が勝っているか負けているか。人間の思考で考えても至極当然の論理でゲームをもういちど見てみる。

ただ、コンピュータはメモリと演算しか出来ないので、そういう自然な人間の論考よりももっと小回りがきかないから、それをどう数的に表現するかということに研究者は腐心している。

そう、機械に夢中で心が腐っているのだ。(腐心の意味とはちょっとちがうかもだが)

機械と遊ぶのも機械のことが分かれば面白いもので、カプエス2で乱入ボスが出る条件はスパコンKO以上の高得点フィニッシュとタイムオーバーをしないこと。反対にタイムオーバーを狙って取ればボスは出てこない。波風立てずにゲームを進めて、自分のルールの中で高得点を狙うと、また違った感覚で楽しいひと勝負となった。

将棋プログラムはひとまずは完成まで組み上げたわけで、今より少しでも強くなれば良しとしてまた研究を続ければ、道にまだまだ先はあるし、楽しみも見いだせる。

ひとまず区切りとしての明日の大会を完走すること。目標はそれだけでも十分に高かった。


🄫1999-2023 id:karmen