第2回将棋電王戦～コンピュータ将棋とプロ棋界の歩み

PonanzaがChainerを導入し、世界初の将棋での実用レベルのDeep Learning活用に成功したという。
我々人類は人工知能とどう関わっていけばよいのか。
将棋の事例は大いに参考になるだろう。

# 2013年
## 第2回将棋電王戦
* 現在ではクラスタの性能向上はそれほどでもないことがわかっている。
アルゴリズムに例えると当時のクラスタによる性能向上は、
スパコンでバブルソートして俺強えーといきがっていたようなものなのだ。
アルゴリズムの改良の余地が十二分にあった。

クラスタによる性能向上は高々線形(実際は平方根もないだろう)だが、
アルゴリズムによる性能向上は指数的なのを軽視していたのではないか。
そもそも人間は指数的な性能向上を見て見ぬふりする傾向があるのではないかなど。

## 2013年世界コンピュータ将棋選手権
* クラスタ全盛期である。
* 最終局、GPS将棋がBonanza相手に詰みを逃して負け。
クラスタの難しさとそこまで圧倒的な差は無いことがおぼろげになる。
NineDayFeverは初出場で単騎ながら決勝でPonanzaに土を付けるなど活躍した。

# 2013年のプロ棋界
* 羽生VS森内の名人戦で指されたPonanza新手△３七銀。初めてコンピュータ将棋由来の手が実戦投入された。
* A級順位戦 三浦 VS 羽生 △8六飛

# 2014年
## 第1回 将棋電王トーナメント
* 多くのプログラマーがマシン性能自慢ではなくプログラム自体の優秀性で雌雄を決するという主旨に賛同した。
* Ponanzaが念願の初戴冠！評価関数が他ソフトより一歩先を行っていたとの見解。

## 2014年世界コンピュータ将棋選手権
* floodgateでは優勝候補らが前哨戦の火花を散らしていた。
* Ponanza開発者の山本一成はGALLERIAの冠を被った。
* 本大会でのテーマはStockfishの探索とBonanzaの3駒関係による評価関数をどう料理するか。
手番を考慮したり、4駒にしたり、非線形にしたり…各人の工夫が見られた。
* クラスタもまずは単体のプログラムを強くした上で最後のドーピングという位置付けで利用率は低かった。
* Ponanzaも優勝候補だが当時の棋譜を見る限りでは抜けているわけではなくAperyの優勝はなんら不思議はない。


## 第3回将棋電王戦
* 趣向を凝らした場所での対局や電王手くん登場で興行色が強くなった。
* 世界コンピュータ将棋選手権よりもやる気を出していた開発者も多く見受けられた。
* いかに評価関数をプロの指し手に近づけるかがテーマ。
* 現在から見ると可愛げのあるソフトで、歩の手筋など筋の良い指し手が目立つ。
* 人間の目から見て粗が見られる。それは現在のソフトで解析するとやはり粗であると評価されることが多い。
* ▲２一角の豊島アタックは現在では無理筋との結論。

## 第2回 将棋電王トーナメント
* 本大会でのテーマは次元下げ。プロの棋譜からKPPの3駒関係を効率よく学習させるには……
KPなどのより低い概念で分解すればいいのではないかというのが基本的な考え。
* Ponanzaは自分で定跡を作ることにチャレンジした。
* 学習のためにAWSを使って金で時間を買う行為が横行した。
* プロの棋譜を参考にしたソフトが多いからか綺麗な定跡系の対局が多かった。
* 居角左美濃のような構想はまだ見られない。
* 振り飛車の勝率が悪いので初手飛車先など振り飛車を指させなくする対策が流行る。
* AWAKEやPonanzaは枝刈りをして50手近く読むソフトで他のソフトより一歩先を行っていた。
* コンピュータ将棋は評価値が高く出ると逆転は起こらないというのが定説であったが、そんなことはないことを大舞台で示した。

## 2014年のプロ棋界
* 20年来指されてきた矢倉▲４六銀▲３七桂の絶滅
* 角換わりの手待ち合戦による閉塞感
* 横歩取りの繁栄と佐藤天彦の躍進
* 今泉健司四段プロ編入で中飛車左穴熊が流行する

## 森下卓九段大晦日 対ツツカナ リベンジマッチ
* この頃のソフトは精度が高くなく、ミスさえなければ人間に分があるいうのは事実のようである。

#2015年
## 車将棋
いつの時代のバブルだよと思わせる企画。

## 将棋電王戦FINAL
* Aperyの戦略は評価関数の値に差がなければ候補手の中からランダムで採用するというものだが、振り飛車制限しなかったのはまずかったのでは。
* Seleneは不成を想定していなかった。ソフトには超手数の一本道で悪くなる順を読めない弱点があることの実証。
* Ponanzaの相横歩取り対策に佐藤康光、森下卓らが衝撃。
* AWAKEの早期投了に疑問。サイエンティストとしては異常値が出た時ほど経過を観測がしたくなるもの。
* AWAKEは黒歴史だけど△２八角はAIが不具合を起こした時の慣用句的に残るかも。

## 将棋ソフト オープンソース化の波
* Aperyがオープンソース化。やねうら王も続いた。みんなでPonanzaを倒そう！

## 2015年世界コンピュータ将棋選手権
* 本大会でのテーマは人間の棋譜からの脱却。
* 持将棋宣言勝ちが見られた。
* 脱クラスタ化が進む。クラスタに労力かけるよりも評価関数を少し向上した方が有用という認識。
* NineDayFeverの中段玉の捌きが良く、千田翔太五段が惚れる。
* Ponanzaが初手▲５八玉や▲５八金右を指しながら圧勝する。△６二金△８一飛型が見られる。雑巾絞りを始めた可能性が高い。

## 第3回 将棋電王トーナメント
* 序盤に定跡でいかにはまらないようにするかがテーマ。
* Apery(大樹の枝世代)、Aperyチルドレン増殖
* 技巧襲来。突飛なアイデアではなく地道な積み重ねで強くした。
* 技巧は潜在能力はあるもゴキゲン中飛車超急戦の定跡に沈む。
* Ponanza VS nozomiでnozomiが1500超えの評価を出すもPonanzaは難しいと評価。
実際その通りでPonanzaの評価関数の正確さを証明。
昨年のAWAKEの評価関数も誤りであったことからPonanzaだけ抜けていることがわかる。
おそらく雑巾がかなり絞られたのではないか。


**第3回 将棋電王トーナメントでのPonanzaで初めてコンピュータ将棋が人間を超えた**と宣言したい。
それまでのソフトは人間に毛が生えたレベルでしかなかったが、
雑巾絞りによって入玉など未知の局面に対する対応力が格段に上昇した。
機械学習の勝利である！

* レーティングと評価値と勝率の関係がおぼろげになる。
* 評価値$x$を与えた時、勝率を求める関数 $f$ は $P=1/600$ をPonanza定数として、
$$f(x) = \frac{1}{1+e^{-Px}}$$
* 開始時のレーティングの目安として先後の差 25、振り飛車 50、香落ち 70。

## 盤上のシンデレラ・将棋グリモワール
* アイマス シンデレラガールズのキャラを使った将棋モノ。
* 芸術性の高い棋譜から奨励会員がソフトを駆使して作っている説が挙がる。
* 盤上のシンデレラでの進行が佐藤天彦の対局で再現され話題に。
* スマホカンニング騒動で制作が凍結される。

## 2015年のプロ棋界
* 先手矢倉が苦境に陥りタイトル戦でも先手負けが続く。
* 角換わりで単に▲４五歩と仕掛ける渡辺流が評価され急戦調が注目される。
* 藤井猛が佐藤天彦相手に玉と金を動かさずに勝利。
* 富岡栄作 VS 黒沢怜生 第41期 棋王戦予選で黒沢四段が飛車不成で打ち歩詰め回避して詰ます。

### 第1期 叡王戦
* 羽生、渡辺らは不参加
* 普段見られない棋士の対局が見られるのが好評。
* 阿部光瑠 VS 森内俊之で阿部が居角左美濃を投入して完勝する。

# 2016年
## AlphaGo VS 李世ドル
* 囲碁でプロに勝てるようになるのはあと10年と言われていたがブレイクスルー。
* なんでも画像化すればDeep Learningできる説が囁かれる。

## 電王戦 山崎隆之叡王 VS Ponanza
* 危なげなくPonanzaが完勝。人間側の手が縮こまっているように見えた。

## 2016年世界コンピュータ将棋選手権
* LazySMPの有用性が明らかになる
* Silent Majorityが彗星の如く出現する。通称魔女。
* Aperyチルドレン、やねうら王チルドレン増殖で動物園化。
* ロースペックPC1台でGPSクラスタを撃破しGPS将棋は二次予選敗退。
クラスタよりもアルゴリズム向上の方が効果が大きいことを実証した。
* クラスタは最後の最後でドーピング的に使うイメージ。棋力向上のメインではない。
* 技巧が最終形態+AWSによる大規模クラスタで襲いかかりPonanzaに唯一黒星をつける。
* Ponanzaが決勝で全勝優勝して違いを見せつける。
* 技巧オープンソース化。

## 第4回 将棋電王トーナメント
* 技巧に何割勝てるかが強さの目安となった。
* 定跡を使用しない。プロ棋士以外の棋譜をいかに大量に生成して学習させるかがテーマ。
* Apery(浮かむ瀬世代)とやねうら王が雑巾絞りを始める。
* 雑巾を絞っても届かない所にPonanzaがいることが判明。おそらくレーティングで300以上は離れているのではないか。
* 世界コンピュータ将棋選手権ではノートPCというハンデがある状態で決勝進出した読み太が4位入賞してプログラム自体の優秀性を示した。

## スマホカンニング騒動
* 誰も得しない結末に。

## 2016年～プロ棋界
* 居角左美濃が流行して矢倉の5手目が▲７七銀が主流になる。
* NHK杯決勝で千田が角換わり△８一飛△６二金型を採用して流行る。以降桂を早期に跳ね合う将棋が増える。
* 藤井聡太四段開幕29連勝。
* 加藤一二三引退。
* 羽生王将リーグ陥落で残留以上連続24期でストップ。
* 森内俊之フリークラス宣言。

### 第2期 叡王戦
* 羽生参戦。
* 千田翔太五段が躍進。コンピュータ世代を思わせる名局が多い。
* 佐藤天彦が終始名人の貫禄を見せつけて優勝。

# 2017年

## 電王戦 佐藤天彦叡王 VS Ponanza
* 大きくミスをしたわけでもないのにじりじりと差が開いていく。大局観のレベルで差があるのではないか。

## 2017年世界コンピュータ将棋選手権
* 半年間何もしなかったらAperyが二次予選落ち。
* DeepLearningを利用したソフトがちらほら出始めるがPonanza以外は実験的な域を出ない。
* 定跡でのわずかなRの底上げと公開定跡への対策という定跡メタゲームが繰り広げられた。
* Floodgateでのmonkeymagicの正体であるelmoが前日に更新されたやねうら王のコードをマージ(推定R100up)することに成功し一次予選全勝で通過し、二次予選も一位通過した。決勝では全勝優勝で実質やねうら王が勝利。
* Xeon数台、AWS十数台の大規模クラスタで挑んだtanuki-(R3950+)が評価値+900から桂金を連続タダ捨てする筋を読み抜けして一気に敗勢に。
* クジラちゃん(浮かむ瀬利用)が10億NPS超えで技巧を破る。決勝のPona戦では500クライアントで20億NPS超えも。
* Ponanza(1000CPU, 100GPU)が序盤で不利になり、elmo(Xeon1台)にそのまま押し切られる。決勝でもelmoがPonanzaの攻めを切らす。序盤定跡の重要性が浮き彫りになるととものにDeep Learningの有用性とクラスタの効果に疑問符が付く。
* ノートPC数百万NPSの読み太が64台Xeonクラスタ数億NPSの技巧に白星を挙げる。クジラちゃんではNPSに1000倍近い差があったにも関わらずクジラちゃん側の評価値が安定しなかったので、大規模クラスタが絶対的ではないことと読み太の評価関数の優秀性は示された。
* 決勝リーグの成績は単騎勢3人11勝、クラスタ勢5人17勝で優勝のelmo含めて1人当たり勝ち星は単騎勢が上回った。クラスタたくさん繋げれば最強というのは現時点では否定的である。(ただしクジラちゃんの例を見るに1世代前のプログラムのクラスタなら決勝に行けるぐらいには通用するようだ。2世代前ではほぼ無理。) 

## 選手権後の反省

* 将棋はまだまだ奥が深くて全然煮詰まってない。
* 探索プログラム、評価関数バイナリ、定跡バイナリの三要素を独立して開発するパッケージ環境が整ってきた。

### elmoは本当に強いのか
* elmoの評価関数は確かに優れていたが、他のソフトよりせいぜい+100～200程度でPonanzaには届いていなかったという推測。
* まふ定跡及びまふ定跡への対抗など定跡の研究が進み、Ponanzaは定跡を疎かにしていたので序盤でリードを奪われやすく一発が入りやすい環境にあった。
* Deep Learningは大規模ハードをもってようやくレーティングをキープできる程度のものだった可能性が高い。Deep Learning以外の開発リソースが少なかっただろうPonanazaは2位とのレーティング差をぐっと縮められたとみる。おそらく今回のハード差をもってしてもelmoにレーティング差200以下には詰め寄られたのではないか。

## elmo以降に何が起こったのか

* Qhapaqがelmo絞りを行いエロ河童となりelmoと互角の力を得た。
* やねうら王がelmo絞りによる評価関数学習用のルーチンを洗練させて野良評価関数が多数育成される。
* ゼロベクトルからの学習をループさせることでelmoと同等以上になることが示される。
* ゼロベクトルから定跡を食わせて学習させることで少ない局面で浮かむ瀬級にできることが示される。
* 複数の評価関数を合成させる技術：キメラ合成が解禁されelmoより+100となる合成法が発見される。
* 洗練された定跡を用いて遥かに少ない局面でelmo+100以上の領域に到達できることが示される。(この間選手権からわずか2ヶ月)