電王戦FINALへの道 No.45について

電王戦FINALへの道、毎日本当に面白いですね。
毎日これが楽しみで仕方ないです。


No.45
http://www.nicovideo.jp/watch/1423641494


毎日20局ほどもAperyと指して頂いているのは本当に有難いことです。
今日は自分も映ってた訳で、
だいたいはどんな映され方してもまあ良いんですが、
私の
「負けを認めてほしい」
という発言、これは斎藤五段に対しての言葉では無かったと思います。


今までの電王戦で対局され、負けた棋士の方々は、
相手が強かったときちんと仰っていましたし。


じゃあ何に対してかと言うと、
コンピュータ側から見て4勝1敗という第3回将棋電王戦の結果を受けての谷川会長の「中位以上」というトッププロとの比較を避けた発言や、羽生四冠をはじめとするタイトルホルダーとの対局が実現する前に、貸し出し後修正禁止などのルールに同意し、負けを先延ばしする事を選んだ日本将棋連盟に対してです。


インタビューの時自分がどう発言したか細部まで覚えていませんので、もしかすると誤解を招きやすい言い方だったのかも知れませんが、
斎藤五段や他の対局される棋士に対してだけは言っていないはずです。



(追記)
映像に不満で怒っているとかそういう事は一切ありませんので。
一応念の為。
私もあまり上手く話せる方では無いので、今後も自分の発言に不足があったり伝わらない事があれば、今回のように後で文章に起こせば良いだけですので。
開発者側も取り上げて頂いて非常に感謝しております。可能ならば、うちはチームなので他のメンバーも取り上げて頂けると嬉しいなと思ったりもしています。。
今後も毎日楽しみにしています。


後、棋士の斎藤五段の印象について、始めに将棋とは関係ない「イケメンですね」と言ってしまい、失礼だったなと反省しています。
棋譜手に入るの全部並べて著書読んでそれかよって感じで自分の話の下手さがすごいですね。
Ponanzaに勝てたらノートPCプレゼントin大阪のニコ生で初めて斎藤五段を見て、話すの上手くてコンピュータ将棋についても話が弾んでいて、聡明な方だなぁと思ったし、Youtubeで難解詰将棋を素早く解いてる動画見て感動したし、棋譜並べて著書読んで、居飛車のオールラウンダーだし、きちんと囲い合ってから戦う印象があって、アマチュアにとってとても勉強になると思ったし、振り飛車しか指さない自分でもたまには居飛車も指してみたくなったし(まだ指しても惨敗しかしないんですが)、著書で入門のエピソードとか、「まだ五段です」とか、素敵だなと思ったし、いつの間にか完全にファンになってるんですよね。


それでいて何で「イケメンですね」と言ってしまうんですかね、私。

ソフト提出関連のやりとりの記録

11月3日(電王トーナメント最終日)
電王戦本番はLinuxを使う事を伝え、Windows版も別途送る事を承諾。


11月8日
調整用にPCを受け取る。


11月10日
Windows版はソフトだけ提出で良く、
Linux版は、こちらでPCにセッティングした上で返却し、
そのPCがそのまま対局相手の棋士のご自宅に送られるとの連絡あり。


12月7日
Linux版が通信対局は可能だが対人の時だけ将棋所が落ちる事が判明。
Windowsで本番の対局を行う事を報告。
PCにWindows版が使用出来るようにセッティングし、ドワンゴにPCを返却。
別途、オンラインストレージでソフトを提出。
ついでにソースコードも付けた。
時間が無かった為にLinuxパーティションを残したままであり、
起動時にOS選択画面が出るので、Windows選択の方法をメールで報告。
なお、セッティングしたPCのHyper ThreadingはOFFにしてあった。
もしも、他のPCを使う場合は、Hyper ThreadingをOFFにするか、スレッド数を8に設定する必要があることもメールで報告。
設定に関して、デフォルト値からUSI_Hashの値の変更が必要なので、
そのこともメールで報告。


12月8日(ソフト提出期限日)
斎藤五段のご自宅に既に電王戦モデルのWindows PCがあるので、
ソフトだけインストールするとの連絡があり、了承した。


12月9日
斎藤五段のご自宅の電王戦モデルのPCのHyper ThreadingがONなら、
スレッド数の設定に関しても変更が必要であることを報告。
(スレッド数の設定に関しては、12月7日に報告済みであるが、報告していたことを私が忘れていたので、再度報告する形になった。)


12月17日
12月9日のメールに対してリアクションが無かったため、確認のメールを送り、きちんと伝わっていたと返信頂いた。
また、電王戦FINAL本番時のPCのHyper ThreadingがONでも良いかとの質問あり。
ONで良いと返答した。
ただしスレッド数を8に設定する必要があることを念の為確認した。


12月18日
将棋所の対局設定の「エンジン共通設定」の「ハッシュメモリ」の設定に関して質問あり。
USI_Hashの設定値と同じ値を設定するよう返答した。
(実際は、「エンジン設定」でUSI_Hashに設定した値が優先して使われる為、「ハッシュメモリ」を設定する必要は無い。USI_Hashの値については12月7日に伝えてある。)



上記の通り、ソフトの提出期限を過ぎてからも色々とやりとりが続いていた。
もしも、設定に関する事で斎藤五段にも確認などの連絡が届いたりして、それが研究の妨げになっていたなら、心苦しく思う。


一応こちらからは、必要な設定に関することも含めて、期限内に全て報告してあるので問題は無い。

設定に関して

もし研究用のPCのHyperThreadingがONになっていると、
デフォルトではThread数の設定が16になってしまうので、
8に設定しなければいけないことに気付いてメール送った。
基本的にデフォルトで本番用の設定になるようにしているから、
本番の動きが研究の時と違うやんってことにはならないと思うが。
何でも確認しておかないとトラブル怖い。


※後になって、12月7日に既にThread数の設定についてはちゃんと連絡していたことに気付いた。

MultiPV

序盤はMultiPVで探索して点数が近かったらランダムで採用するようにしている。
確かに複数の候補がある時には手が分散されるけれど、
それぞれの候補手の読み筋が全部表示されるので、
その局面の有効な手は全部分かる。研究はやり易いと思う。
(有効な手が多過ぎたら全部は表示しきれないが。)

電王戦FINAL、本番用のソフト提出

やっと提出した。期限ぎりぎり。


1ヶ月の間にKPE(KPA?)で強くするのが目標だったけれど、
11月下旬に学習にバグを見つけたので、諦めて研究対策を行った。


記者発表でも言った通り、斎藤五段の棋譜はあるだけ並べたし、名人戦棋譜速報も初めて入ってみたりしたが、それで具体的に何か対策が出来る訳では無かった。
名人戦棋譜速報がものすごい棋譜のコメントとかボリュームがあって面白い事が分かって良かったけれど。(みんなも入ってみよう!)
それと斎藤五段の著書も買った。まだ少ししか読んでないけれど、面白い。電王戦までには読んでおきたい。


相手を知った所でコンピュータ将棋的にやれることは少ないかも知れないけれど、だからといって何も調べたりしないのは寂しいよね。少しでも何か出来るかも知れないし、折角の機会だし。


斎藤五段は居飛車党で、矢倉、角換わり、相掛かり、横歩取りなど、何でも指されているが、おそらく実戦で指されていない戦型もかなり研究はされていて、だから最近いきなり四間飛車を指されたりしたのだろうし、
Aperyとしては序盤はもうほんとに無事にやり過ごせるかどうかが勝負だ。
いきなり終盤に持って行かれるのは怖いのでそれを避ける為の定跡の工夫とかもしたつもりだけれど、網羅出来ているとは思えない。
依然として研究に嵌る可能性は残る。


無事序盤をやり過ごしたら中終盤で勝てるのかどうかは分からないとしか言えない。
コンピュータとしては中終盤で勝負するしか無いのだが、Aperyは他のソフトより終盤結構弱いと思う。なんか相対位置評価して強くはなったけれど終盤の鋭さが無くなった感がある。
斎藤五段は詰将棋が強いとのことなので、コンピュータが苦手とする、読みの先にある局面に詰があるかどうか、が重要な局面で一気に負かされることもあるかも知れない。


中終盤は一朝一夕には良くならないし、今後も頑張らなくては。
結局電王トーナメント後にやったことはこんな感じ。


・思考時間を色々調整した。
・定跡を増やした。
・定跡の手数制限入れた。
・たまに定跡無視して自力で指す。
・定跡は事前に探索して点数付けてあるので、点数制限入れた。
千日手は気持ち避ける感じに。
・序盤は探索して点数の近い手はランダムに選んだりする。
・これは駄目だろうって定跡を手作業で省いた。
・24点法対応。
・電王戦スポンサーのIntel様のCPUであるHaswell、
 そしてそれが搭載されたドスパラ様のGALLERIAだから出来る、
 PEXT命令で飛角の利きを取るPEXT Bitboardを
 コンピュータ将棋においておそらく初めて実装!
 (Magic Bitboardと比べて1%くらい速くなった。)
 (実際簡単だけれど凄そうに書いてみた。)
・電王戦スポンサーのMicrosoft様のOS、Windowsを使います!
 (今までLinuxで大会出てた。)


電王戦、やるべき事は終わってしまったんだなぁ。
どんな結果になるか、後は見守るだけ。



追記:
ちなみに不正とか無いことを可能な限り示す為にソースコードも一緒に送った。棋士にとってはソースコードあるからどないやねんってなるかも知れないが、頑張ればバイナリとソースコードあれば不正があるか無いかは分かるはずなので。
こういうことは先手打ってやっておいた方が良いかなと。

第2回将棋電王トーナメント Apery - Selene の王手千日手

これについてだけ少し書いておこう。


(図を入れた方が良さそうだが、面倒。)


Apery - Selene の 129手目、Aperyは▲7七金と打ち、
タダで取らせてから▲8八角
以下は王手千日手となり、Aperyが勝ちになった。


普通に129手目は▲6六金△同角▲同歩でも勝ちなのに、
なぜこの長手数の王手千日手の順なのかというと、
以下の条件が重なったから。


1.Seleneに王手千日手が負けと実装されていなかったこと。(本人談)
2.Aperyの内部では千日手は同一局面2回であること。
3.Aperyは基本的により短手数の勝ちを選ぶ。


1.については西海枝さんに聞いた。


2.については、出来るだけ同じ局面を何度も読みたくない(無駄なので)ので、
同一局面2回で千日手として探索を行なっている。
これは割と一般的な方法。
(ただし探索のルートの局面では、前の局面に戻してから別の手を指した方が良い可能性もあるので、それは特別に千日手扱いにはしなかったりする)


2.によって、129手目に金を捨てることで、132手目の△8八同馬の局面が同一局面2回の王手千日手となる。
詰ますより短手数!
3.により、短手数の方が最善と判断する。
よってこの132手目は△8八同馬と取れないことになるが、他の手では王手が続かないので、Aperyが後手玉を詰ませて勝ちという読み。


内部の読みは同一局面2回で千日手なのでそちらが早いと思って指すが、
実際は4回まで終わらないので、一見無駄な金捨てに見えた。


また、SeleneがもしAperyと同じように同一局面2回で王手千日手と認識していれば、逆に出来るだけ長手数になるように指すので、この手順には入ってこなかっただろう。


色々偶然が重なって起きた珍事。
修正はAperyは不要だけれど、Seleneは少し必要かな。

第2回将棋電王トーナメント

本当に簡単に手短に。


3日間楽しかったです。
大会運営に関わられた皆様、ありがとうございました。


AWAKEの優勝は劇的でした。巨瀬さんおめでとうございます。
Ponanzaチームにとってはその分辛い逆転劇でした。


Aperyは5位になれたので先鋒として電王戦FINALに出場させて頂きます。
可能な限り勝ちにいくのが最低限の礼儀だと思うので、
何とか研究に嵌らないようにはしたいです。
実力を出し切った上での結果ならどうなろうと仕方ないですが。
1ヶ月あるから少しは強く出来ると良いですね。


また選手権の日記みたいに適当な日記書けたら良いけれど先にAperyの調整とかしないと。