唯々諾々

 恋人の誕生日を忘れないようにスケジュール帳に記帳したのは一昨年のこと。カレンダーに書いておけば流石に大丈夫だろうと思っていた。だがしかし!去年のスケジュール帳を読み返すと一昨年の10月から今年の1月まで続くカレンダーの内でお誕生日は最初のページ10月にあった。過ぎてるやん!超ごめんなさいm(_ _)m

 一昨年というとコンピュータ将棋の電竜戦に出て、去年は出なかった。仕事を辞めたので研究に没頭できるかと思いきや、テレビ見てる方が楽しくて漫画読んだりギター弾いたり楽しいことが増えるとどうしてコンピュータ将棋なんて作ろうと思ったか動機すら忘れるほど。

 このままではマズいと思ってやねうら王の最新版を研究しようと思ってから、マシンスペックが合わなくて諦めかけていたものを三日ほど頑張ってNO_SSEのNNUE型でコンパイル成功まで漕ぎ着けてエンジン起動のエラーログも出なくなったけどまだ動作しない。

 そもそも駒得の評価関数に駒効きを追加するという自分の6年前の試みはそれはそれで出場資格を認められたことではあるので、有意義ではあった。そこから6年放ったらかしたのは真面目にやっても競争が激しいから、放っておいて画期的な変化があってからそれを学んだ方が楽だろうみたいなダメな動機だけど、闇雲に足掻くよりは賢いやり方に一歩近づいたと思う。

 それでNNUEとは何ぞやというのをブログなどで丁寧に解説されているのを読んで、バイアスを通した二層型のバイアスの役割がよくわからないまま、歩を100点とすると1点から99点の範囲で形勢を評価したら、良型判断に駒得が勝るのでバイアスをかけなくても得点制でひとつの評価値に関数をまとめられるという考えになった。

 以前からやりたかった「飛車先の歩を指示や学習ではなく真に良型であるのか数学で解きたい」みたいな事も、良型が経過で解が詰みや入玉である以上は完全解析しないと証明にならないわけで、255手に及ぶ勝負で探索部が31手くらいまでしか読めない現状、勝ち棋譜がそうであるという以上のエビデンスは手に入らないのも分かるようになった。

 同じように自分で評価関数を手調整するにしてもそれはプログラマの主観で決めた良型に対する誘導的なプログラミングでしかなく、実際の対局の棋譜から学習させる方が合理的だというところまで話が追いついた。そうなるとウチもどうにか機械学習まで漕ぎ着けないと待って出た成果を追うことにはならない。

 とりあえず、困ったときに読む数学の参考書で微分方程式のページを眺めてみる。NNUE型の評価関数というのはプログラムがNNである以上に評価関数部分だけでNNが形成されているということで、それを機械学習するということは学習部で関数を求めているということ。正確には関数に与える値を求めているのかもしれないが、関数で関数を求めるなら微分方程式くらい解けないと機械のいいなりでしかなく、それを操って研究することなど出来ないと踏んだ。

 学習はどこか誘導と似ている。ユング心理学を日本の民話に例えると、吉備団子を与えて家来を集めて鬼を倒す桃太郎が物語として描かれたのと古代の武家がご恩を与えて奉公を促せたのと前後関係はあるのか。そしてその民話が給料制で働く資本家と労働者の社会モデルにも根深く影響を与えているように思える。餌がもらえるから言う事を聞く、お給料がもらえるから働く。そんなだった俺が会社を辞めてしまったら。

 気づいたら、お金がちょっとでも手に入る内職のような仕事が趣味の代わりになっていた。一昨年の将棋大会は何かの賞や大会参加の知名度でソフトの売り上げが出ることなど、打算に満ちていた。そしてダメだったので去年は参加料が勿体無い気がした。

 当面飯は食えるとして、将棋の研究が趣味的に面白いという動機もあるが、考えるのは楽しくても仕事になると面倒なこともある。

 ただ、そうなってくると俺の人生の詰将棋に大会優勝という自己アピールの手が欲しいというのは本職の研究者の人に甚だ迷惑な話になっているようで良型とも言い難い。

 そんなことより、誕生日忘れてる方がダメよね。それはマジでごめんなさい。

 思えば、子供の時に読んだ将棋入門の「将棋は歩から」が将棋ベーシックの駒のIDが王将からではなく歩から始まっている原因で、MTGをしていた時にドラフトでケルドランスカイキャプテンをピックしたのも藤田師匠に「飛行は絶対取るべし」と言われた事、困った時に本を読んだりするのも子供の時に親から言われた「勉強しろ!」をどこか守れていなかった事が全ての原因である気がする事などなど。

 機械学習まで進んだ将棋のコンピュータは数学の中でも方程式から解がひとつ出る美しい形と違って未知変数をひとつ消すために微分をひとつ増やすように難解で、その様は数学的ではあるけれど人間的な間違いをAIも犯してしまうようにダメな擬人化も進んでいると思う。

 頭の良い人の論理的な考え方と言っても物事の全てが筋で解決するわけでもなく、勉強して良型に近づくように模倣を繰り返す。健気なコンピュータのやり方から人間もどこか学ぶわけで。

 コンピュータ将棋に参戦しだしたすぐは友達に自慢すると「俺にもどんなプログラムか教えてくれ、コンピュータがどう考えているか分かったらそのプログラム通りに考えたら強いはずや」という風に返事が返ってきたもの。

 ただ、やっていることは最初は計算機科学で駒得や詰みを定義できたら、自動計算で楽チンだったけど、だんだんと機械は教えた方へ行くので教え方で方向を操ろうとして乗りこなすのが難しく、機械を操るためには操縦者が将棋や数学に長けて舵きりを上手くならねばならない、その様を見て操り方を学ぶ人もいれば、操られたコンピュータの答えである指し手さえ学べば同じように将棋は指せる。指し手を学ぶ方が安直だと思っていたけど、操り方を学ぶ道は思いの外険しく、俺は研究をサボって誰かが先の方へ行くまで待ったわけだ。

Vector | |