ボカロ(作るところから)はじめました


今日からボカロを始めることにした。もちろん、ボカロを作るところからだ。ボカロを含めて音源も自作する。楽器(ハード)も自作する。
音楽理論も自分で構築しなおす。自動作曲のためのプログラムも作る。そうして、やっと自分だけの音楽が完成する。とりあえず、目標はそこだ。


■ ボカロを作るとは?


初音ミクに代表されるようなボーカロイドは、「あ」「い」「う」など、人間がそれぞれの文字を発声したものを録音しておき再生しているだけである。つながりが不自然なところは二文字、ときとして三文字つなげたファイルも持っている。ただそれだけである。私はそういうことをしたいわけではない。声を一から作るところからだ。


■ スーパーファミコンDSP


順序立てて話そう。


私は高校生のときにアーケードの麻雀の移植のために音声合成の処理を書いたことがある。*1
このプログラムは実際には世に出なかったわけであるが、私はそれ以前から、音をプログラムすることに関して強い関心があった。


Falcomの『イース』の音源ドライバーを中学のときに夏休みを丸ごと潰して解析したのも音に対してすこぶる興味があったからだし*2、BM98を作ったことにしてもその延長線上にある。私はプログラム以上に音に対しての興味があった。


2004年ごろにソニーPS3の開発に際し、PS1/2のエミュレーションレイヤーの実装のための人員募集をしていた。そういう仕事は大好きなので、応募しようかと思ったのだが、その給料があまりにも安く、当時の自分の給料の何分の一かになってしまうので、ずいぶん悩んだのだが、ついに応募はしなかった。ただ、そのときは応募も本気で考えていたので、小手調べにスーパーファミコンDSPをソフトウェア実装してみた。


スーパーファミコンサウンドを一度でも聴いたことがある人は、耳が腐ってでもいない限り、あれがとても特殊なサウンドであることがわかるだろう。ファミコンのそれとは一線を画する、そしてそのあとブームとなるFM音源とも異なる、骨太のサウンドである。実際、FM音源全盛期にスーパーファミコンのゲームを移植しようとした会社が、FM音源のパラメーターをどう調整してもスーパーファミコンっぽい音が出せなくてとても苦労したという話は枚挙にいとまがない。


要するに、スーパーファミコンDSP(サウンドチップ)とは当時の歴史のなかに本来、技術的に存在してはおかしいようなオーパーツそのものなのである。


何故こんなオーパーツがこの世に存在したのか。実は、このDSPはのちにソニー(SCEI)の社長にもなる久夛良木さんが手がけたものなのだ。*3



久夛良木さんレベルの超天才エンジニアの手がけたハードは自分の手でエミュレーションレイヤーを実装してみて初めてその設計思想、素晴らしさが実感できるわけである。私はもちろん、久夛良木さんレベルのエンジニアではないが、しかし、プログラムを書く能力は人並み以上にあるから、久夛良木さんのDSPを自分の手でソフトウェアで再実装することが出来た。誰しも感動する小説に出会えたときには自分に文字を読む能力があり、そして小説の内容を理解できる能力が備わっていたことに感謝するだろう。それと同じ感動がそこにはあった。あのときだけは、自分がプログラムを書く能力が備わっていたこと、そして、久夛良木さんの天才性の一部であれ、理解できたことに対して神様に感謝してやまなかった。


スーパーファミコンDSPのどこがそんなに優れているのかについてざっと書いておく。本当は、この部分は本記事にはあまり関係がないのだが、ここを書いておかないと「やねうらおめ、また内容のない薄っぺらい記事を書きやがって!本当はスーファミDSPのことなんか何も理解していないくせに!」などと勘ぐる輩が出てくるので、あえて書いておく。
※ 技術的な内容なので、興味のない人は読みとばしてください。


スーパーファミコンDSPの公称性能はこうなっている。*4



上の説明は今ひとつわかりにくいが、DSPとは別に制御用のチップが載っている。6502を拡張した命令セットを持ち、音源ドライバーなどはここに配置する。この音源ドライバーで結構いろいろなことが出来てしまうので、スーファミサウンドはゲームメーカーによって音色がずいぶん違うと言われるゆえんである。


・BRR圧縮された波形データの復元


事前にサンプリングした波形データを復元する機能。PlayStationで使われている圧縮アルゴリズムと同一である。*5


・ADSR


ADSRは、Attack、Decay、Sustain、Releaseの頭文字で、FM音源に見られるようなエンベロープジェネレーターであるが、A,D,S,Rの値はそれぞれ4bit、3bit、5bit、3bitで指定する。(そのあと表引きして実際のA,D,S,Rの値が設定される) 併せて15bitだから16bitに収まっている。いまどきなら、それぞれの値を直接設定できるようにするところだろうが、当時はメモリがもったいないのでこういう設計が好まれた。


ところが、このADSR機能を使わずに直接gain(≒ボリューム)を変更するモードもある。実のことを言うと大手メーカーのスーファミ用の音源ドライバーはADSRモードではなく、こちらのモードを使ってあるものが多い(と思う)。自前の音源ドライバーでADSRよりもっと細かな制御をしたほうが、サウンドに広がりが出てくるからである。なのでADSRはこのDSPの代表的機能ではあるが、スーファミサウンドの特徴ではないと私は考えている。


ガウス分布補間


指定した4点を曲線で補間する機能。実装的にはガウス分布テーブルを用いている(表引きしている)ので正確な補間ではないし、さらに計算資源があるならスプライン補間したほうが歪みのないサウンドになるし、いまのPC用にソフトウェアで実装するならそうすべきところではあるのだが、良くも悪くもこの“歪み”自体がスーファミらしいサウンドを形成していると思う。


・ディレイ


ファミコンにはディレイがなかったのでこれは大きな進歩。久夛良木さんの発言によると『ファミコンについてはサウンドトラック4本や音のディレイがないことから「そんなもんで音楽なんてやれませんよね」「普通の人はそれで感動するかというと、ぼくは感動しないと思う」「クリエイターがやりたいと思ってることがやれるかどうかというのがキー」』*6


・リバーブ(次数8のFIRフィルタ付)


バーブにFIR(有限インパルス応答)フィルタ*7までつけてしまうのが恐ろしい。ここの「次数8」というのは、パラメーター(係数)が8個指定できるという意味。FIRフィルタ自体はデジタルフィルタとしては基本的なものなので説明は割愛。


スーファミサウンドまとめ


結局のところ、上記のような当時としてはかなり高機能な処理能力を備えたDSPと、このDSPの制御用チップ(ここに各ゲームメーカーが独自のサウンドドライバーを載せた)との組み合わせによりスーファミらしいサウンドがもたらされたわけである。


■ オリジナルのボカロを作るとは?


もうここまで説明すれば話は見えただろう。今回、ボカロを自作するわけであるが、まずそのためにスーファミDSPのようなソフトウェア実装のサウンドレイヤーを用意する。まあ、人間の肉声に近いサウンドが欲しいわけで、スーファミDSPよりは少し高機能なものにならざるを得ないが。また、ここは将来的にハードウェア化するかも知れないので、この部分はそのへんも見越しておく。


次に、このDSPに対してプログラムできる必要があるのだが、DSP制御用の命令セットを用意して、その命令によってプログラムすることにする。(将来的なハードウェア化を視野に入れているため)


あと、この自作ボカロをライブで使うような用途を考えているため、この自作ボカロをリアルタイムに歌わせることが出来るような楽器自体を作らなければならない。そのへんもすでに考えてある。


かなり早口な歌でも訓練次第ではリアルタイム演奏が可能である、画期的な楽器(音楽的なデバイス?)となる予定だ。


■ 音楽の自動作曲とは?


ついでだからもう少し話を進めよう。コンピューターによるアルゴリズム作曲(自動作曲)についてである。この分野の近年の技術的進歩はめざましく、論文もたくさん出ているし、アルゴリズム作曲は実用的になりつつあると思うのだが、私はそういう方向性でやりたいわけではないのだ。


作曲をやっている人にはわかると思うけど、どこかの段階で対位法とか勉強するわけだ。二声対位法、三声〜八声、厳格対位法、模倣、二重対位法、フーガetc…。そうするとその手の教科書には「禁則」(こういう進行は良くない)が延々と書いてある。和声に関しても、ある程度基礎が出来たのちに、いわゆる芸大和声(asin:4276102057)あたりから勉強するわけだが、「禁則」のオンパレードである。そして、興味深いことに本によって何が「禁則」であるかは定義が異なる。


じゃあ、そもそも「禁則」とは何なのか。
このように「禁則」とすることによって何が得られるのか。


結論的に言うと、その本を書いた人が想定している音楽(それは18世紀のものであったり、それ以前のものであったり、特定の作曲家のものであったりするのだが)が得られるということである。この部分を理解していないと、やみくもに「禁則」だけ覚えることに終始してしまい、自分の作る曲の音楽的な可能性を狭めてしまう。


要するに「禁則」とは、曲の生成アルゴリズムが何かしらあるとしてそのためのルール集合の一部だと考えるとわかりやすいだろう。


例えば、モーツァルトの曲を分析し、そのルール集合が得られれば、そのルール集合からはモーツァルトの曲っぽい曲が自動生成できるということだ。


しかし、自動生成と言っても、単にルール集合に書かれているルールを順番に適用していけばいいという単純なものではない。例えば、前の音符との次の音符との接続される形に良さの点数がつけられるとしたら、その点数を最大化したい。そして一曲通してその点数の合計が最大になるような曲にしたい。そうならないときは前の音符を消して、また別の音符に置き換えて…という作業を繰り返す必要がある。


実はこの部分はコンピューター将棋の探索と全く同じなのである。音符一つ(音符の高さ・音符の長さ)が将棋の指し手に相当し、音符を一つ置くことが将棋ではその指し手で局面を進めることを意味する。将棋で読みのなかで局面をいったりきたりするが、音符を足したり、消したりするのはそういう理由からである。そして、将棋であれば最終的な点数(将棋であれば最善応手列≒読み筋)の末端局面の評価値が最大になるような現局面での指し手を探すが、曲作りのときも、最終的な点数が最大となるような音符の並びを探し出せば良いのである。


つまり、自動作曲は実はルール集合さえ与えれば、コンピューター将棋の探索部によって解決できるのである。


これは何も偶然の一致ではない。人間の知的作業のほとんどは、何らかの点数を最大化するという、探索を伴う最大化問題に帰着されるので、作曲行為自体がコンピューター将棋の探索の問題に還元されるのは何も不思議なことではないのだ。


■ 作曲のためのルール集合


では人間は何もしなくても曲が出来上がるのかと言うとそれは違う。作曲のためのルール集合自体は人間が考えてやる必要がある。
ルール集合が同じであると似たような曲しか出来ないし、そこがまさに人間にしか出来ない知的作業と言えるわけである。


例えば、坂本龍一(織田信長に「さん」をつけないの同様、歴史レベルの偉人なので敬称をあえて略す)の作曲のための方法論として、自分が考えた作曲アルゴリズムに基づき、自分を作曲機械だとみなしてそのアルゴリズムにより曲を生成し、その曲の良し悪しを音楽家坂本龍一が評価し、そして作曲アルゴリズムの修正を行なうというフィードバックループにより作曲するという主旨のことが『坂本龍一の音楽』(asin:4487801036)に書いてあったと思う。(うろ覚え)


坂本龍一が本当にそうやって作曲しているのかどうかは私は知らないが、そういう視点というのが面白いと思っていたし、この「自分を作曲機械だとみなしてそのアルゴリズムにより曲を生成する」という部分は、私のプログラミング能力であればコンピューターに完全に肩代わりさせることが可能だ。


そうなってくると、「自分が考えた作曲アルゴリズム」が問題となる。従来のアルゴリズム作曲の論文では、この部分が固定に近い形であったので、同じような曲しか作れなかった。自動生成される曲の完成度はともかく、私にはその部分が大いに不満であった。


私は特定のジャンル、特定の種類の曲を大量に生成したいわけではないので、上記のようなフィードバックループをなるべく短い時間で回したいのである。そうすることにより短い時間で自分の作曲アルゴリズムが磨かれるわけである。


そして、最終的にはこのループ自体を少しプログラムと音楽に対して理解のある人であれば誰もが体験できるよう、自動作曲のためのプログラミングフレームワークとして公開したいわけである。


■ まとめ


ということで、私の当面の目標は以下のような感じである。(何年かかるかは知らん)


・ボカロを自作(そのために自分で設計したDSPをソフトウェア実装するところから)
・音源を自作(自分で設計したDSPに対する制御プログラミングにより)
・ボカロをライブ演奏できるような楽器を自作
アルゴリズム作曲とそのフレームワークの作成


■ あとがき


何故突然こんなことを思ったのかと言うと、電王戦が終わったので友達に借りてる漫画を読んでいたわけである。その友達とは電王トーナメントのエントリーのときにやねうら王の開発者としてもう一人名前が挙がっていたと思うが、彼である。彼は、いつも私をその気にさせる。やねうら王も彼がいたから作ろうという気になったわけである。だから、やねうら王のエントリーのときに共同開発者として彼の名前を入れておいた。


今回、彼が持ってきた漫画は『ナッちゃん東京編 1―下町鉄工所奮闘記』 (asin:4088597001)という漫画で、下町の鉄工所で働く女の子(?)の物語である。この女の子がちょっとした天才で、創意工夫によって無理難題を解決していくわけであるが、これを見ていたら昔のことを思い出したわけだ。


私は小学生の段階ですでに仕事としてやっていける程度にはプログラミング能力があったわけであるが、大学を卒業するころにはプログラミング自体に少し嫌気が刺しており、これを職業にするとプログラミングのことが嫌いになってしまうと考えて、プログラミングとは全く違う分野(製図設計)の仕事に就いたわけである。正直に言えば当時は自分がプログラミングが出来ること自体が、本当に忌々しいと思っていたし、「こんな神がかったプログラミング能力とか要らねえんだよ!俺は、刺身にたんぽぽを乗せるような頭の使わない仕事がしたいんだよ!」と考えていた。


ところが、モノづくりの現場で働くうちに、創意工夫して製品を作る(さらに、それをお客様に届け、喜んでもらう)ということの素晴らしさを知ったわけである。『ナッちゃん東京編 1―下町鉄工所奮闘記』を読んでいると、そんな当時の自分を思い出してしまった。そうだ、何でも工夫すれば作れるんだ。俺には、神がかったプログラミング能力があるんだしな!と思ったわけだ。


※ このブログの愛読者ならば、「神がかった」とか書いてあっても「また今日もやねうらお節、全開だな」ぐらいに理解してもらえるはずなのであるが、そうでない人に言っておくと、「神がかった」というのは、ある種の冗談であり誇張表現の一種である。本気で自分のプログラムを「神がかった」などと思っている人がいたら、それは相当な大馬鹿野郎である。


そして、そのとき、音楽とコンピューター将棋との関係に気づき、点と点が一本の線でつながったわけだ。これは、もうボカロを(作るところから)やるしかないなと。


ちなみに、私の作曲経験だが、自分の作った曲が商用ゲームに使われたことがある。まあ、自分がプロデューサーだったんだから、自分の曲使おうが何を使おうが自由なんだけども。商用ゲームに使われたらプロだという定義だとしたら、私はプロの作曲家である。おお、これはなんか凄くずるい感じがするな!


「プロの作曲家になりたい人は、自分で商用ゲームでもプロデュースすればいいんだよ!」などとテキトーなことを言ってこの記事を終りにしたい。

将棋における適切なハンディのつけかた


※ 今日は、前回記事で書ききれなかった残り半分について書きます。


【前回記事】
将棋における駒落ちのルールとその考察
http://d.hatena.ne.jp/yaneurao/20140414#p1


「コンピューター将棋 vs 人間」という対局において、どんな手合いが適切なのか。コンピューター将棋の近年の進歩はめざましく、10万円未満で買えるような家庭用PCであっても、互角以上に戦える人間というのは将棋人口のうちの一握りであり、もう最後の砦(プロ棋士、あるいはそのなかでもトップレベルのプロ棋士)しか残されていないのが実状である。


将棋ソフトのほうも、「人間の大局観」をプログラムするのが難しいと言われていた時代はとっくに過ぎ去っており、Bonanzaに代表されるような三駒関係という精度の低い評価関数(※)であっても、PCの演算能力に任せて先を読めば(きちんと探索すれば)、トップレベルの人間の指し手に匹敵することがわかってきた。
※ GPS将棋など丁寧に作りこまれた評価関数に比べて局面評価の精度が低いと言う意味。Bonanzaのfv.binがきちんと学習されていないのが悪いという話ではなく、三駒関係自体の学習能力の問題。


おまけに近年、Bonanzaメソッドより大きなブレイクスルーがあった。(と私は思っている) Bonanzaメソッドでは棋譜にあまり出現しない特徴はゼロになってしまう。(機械学習で言うところのL1/L2正則化の影響) これをうまく式変形して回避する。このアイデア自体は以前から将棋ソフト開発者のなかでは密かに行われていたことなのであるが、それをもう少しきちんとやったのがNDFである。*1 まあ、このへんはいろいろ工夫の余地があるが、ともかく、第二のブレイクスルーにより、Bonanza6からR500以上、上がりそうな気配がある。


こうなってくると、数年後にスマフォで名人を超えるというのは、もはや夢物語でも何でもない。


だからと言って、いくら太刀打ちできないからと言って、コンピューターのスペックを落としてまで戦って欲しくないというのが将棋ファンの気持ちとしてある。


10年もしないうちに、炊飯ジャーに搭載されているマイコンですら名人に勝ち越すことも十分に考えられるが、炊飯ジャーに負ける名人を将棋ファンは見たいだろうか?私は見たくない。


だから、PCスペックに制限を課して、ソフトをわざと弱くしてそれで勝負するのではなく、可能な限り高いスペックのPCによる最高の指し手、人間側も序盤は藤井先生、中盤は羽生先生、終盤は谷川先生のように、バトンタッチするなり合議するなりして、最高の指し手を指せる環境を作り、最高の指し手と最高の指し手がぶつかり合うところを将棋ファンは見たいのではないかと思う。


今回の電王戦で、森下先生は盤駒があればヒューマンエラーが減るので人間の勝率は上がると(今回出場した5ソフトにも勝てるとも)おっしゃった。将棋は最後にミスをしたほうが負けやすいという性質があるので、ヒューマンエラーをなくすのは特に重要である。ただ、森下先生の「盤駒があればヒューマンエラーが減る」に対しては、そこに居合わせた他のプロ棋士の先生ですら懐疑的であったので、おそらく「盤駒を使ってもいいです」と言われても使うのは森下先生だけとなるのではないかと私は思う。


それでも、森下先生の「盤駒を使えば」発言の背景は私にはなんとなく理解できる。森下先生は矢倉の大家である。矢倉は相当深くまで研究できるし、わずかなリードを少しずつ広げていく技術が要求される将棋であるから、ミスさえ出なければコンピューターの下手くそな序盤を早い段階で咎めてそのまま優位を拡大できそうな戦型である。一般論としてはコンピューター将棋はねじり合いは得意なので長い中盤戦にすると人間のほうが不利だと言われているが、森下先生の指す矢倉にはそんな一般論は通用しないのではないかという期待もある。


また、ヒューマンエラーをなくす目的であるならば、「待った」がありでもいいと思う。私があるプロ棋士の先生に聞いたところ「1手だけ戻しても手遅れであることが多い」らしいので、1回の「待った」で10手まで戻してもいいこととし、1局のなかで3回まで「待った」をしてもいいというルールで人間の勝率がどれくらい上がるのかというのは興味深いところである。


まだ、平手の勝負でプロ棋士と将棋ソフトとの格付けが済んでいないのに何故ハンディのことをこんなタイミングで出すのかと言うと、さきほどのNDFのもたらすブレイクスルーが一つ目にある。(今年の年末には上位のソフトは去年よりさらにR100〜150ぐらい上がるかも知れない) 二つ目として、今回の電王戦で五位の習甦ですら、現時点でもうタイトルホルダーぐらいの実力があるという現実がある。


菅井五段の発言から統計的にコンピューター将棋の実力と電王戦を考えてみる。(karonikki らくがき手帖)
http://d.hatena.ne.jp/sanjy/20140320/p1
>「習甦」の実力は全棋士163人のうち、6〜24番目ぐらいに相当するだろうと推測される


だから、「五局の勝敗だけではなんとも言えない」などと悠長なことを言っていると来年か再来年にはトッププロですらトップのソフトに対して勝率2,3割の時代が来かねない。


暗算名人が電卓と真っ向から計算勝負で競っても仕方がないの同様に、コンピューター将棋ともそろそろ適切な手合割を設定しなければならない時期に差し掛かっているのである。


その一つが駒落ちでの勝負である。


私がひとつ前の記事で私が書いた通り、将棋の駒落ちというのは、公式戦で指されないのであまり研究がなされていない。(戦前には公式戦で指されていたようなのだが) 木村義雄十四世名人の『将棋大観』に載っている香落ち戦は上手・下手ともに指し回しがいかにも古臭い。現代の、トッププロ同士が香落ち戦をやるとどうなるのか(もしかして必勝定跡が発見されるのではないか、定跡の整備がさらに進むのではないか)など、将棋ファンとしてはとても興味のあるところだ。


あと、現状、将棋の駒落ちは結構アバウトな手合いしかない。香落ちの次が角落ちなのだが、いくらなんでも差がありすぎだ。また、香落ちより小さいハンディをつける手段がない。そもそも、香落ちがどれくらいのハンディなのか今ひとつ知られていない。


そこで、まず、香落ちがどれくらいのハンディなのであるかをここで説明する。


香落ちは本来は二級差と言われている。レーティングで言うところのR200程度の差だということだ。ところが、アマチュアで2級の差がある級位者同士で対戦した場合、香落ちだとほとんどハンディにならないのが実状である。香落ちを咎めるのは級位者には非常に難しいし、級位者は、振り飛車にすれば相手(居飛車側)から角を成られたときに取れるはずの香がすでにいないので、むしろ上手(うわて)が有利なんじゃないかとぐらいに上手(うわて)も下手(したて)も思っている。


もちろん、プロの間では違う。2009年に『将棋世界』のなかでプロ同士の香落ち戦が実現したことがある。結果として4戦とも下手が勝ったが、必勝手順を見つけるには至らなかった。


プロの香落ち(LogicalInSpace)
http://blog.goo.ne.jp/mathshogi/e/02ef758ceedc62a9dee93c276cb1bf70



私は電王戦第五局の終局後の記者会見のときに、「(ソフト側から見て)勝率8割というのは、もしこの8割がコンスタントに続くのであれば、これは香落ちの手合いではないか」と発言した。これが大変失礼な発言ではないか、「プロを馬鹿にするな」と言うことで、私への批判が絶えないわけであるが、一言だけ言わせてもらうと、例えば、片上理事のブログ(前回記事で紹介した記事)のなかに、次のような記述がある。


駒落ちあれこれ(daichan's opinion)
http://shogi-daichan.seesaa.net/article/43347155.html


片上理事は、香落ちは「(実力互角の)プロ同士で勝率7割前後(と予想する)」のだそうだ。これからすると、平手で勝率7割という差があるもの同士ならば香落ちがちょうどいい手合いということになる。


つまり、私が「本当に勝率8割だとしたらそれは香落ちの手合い」と言ったが、そのとき片上理事は、「なんだと?プロをナメやがって!」と内心思われていたのではなく、「本当に勝率8割なら、それは香落ちなんてもんじゃないな。香落ちは勝率7割のときの手合いだろう。」と内心思われていたのではないだろうか。


まあ、そんな香落ちではあるが、それでもプロが香落ち戦を本気で研究をすれば必勝手順(必勝の局面までの手順)が見つかるかも知れないので、であるなら、平手でやったときに勝率9割ぐらいの実力差でないと上手は勝てないことになる。


そこで、香落ちより小さなハンディをつける手段が必要となるわけだ。この部分が、将棋では従来、あまり新しいルールが提案される機会はなかった。そもそもプロ棋戦は平手のみであるから、いままで新しいルールなど必要なかった。


また、将棋ソフトは、駒落ちに対してすこぶる弱い。これは駒落ち棋譜が少ないので駒落ち棋譜から評価関数のパラメーターの学習をさせていないことも理由にある。あのPonanzaですら、二枚落ちの上手(うわて)をもって穴熊に囲い、自滅してしまう。


なので、ソフト開発者としては出来ることなら駒落ち以外の方法で香落ちより小さなハンディをつけたい。


そこで私が提案するのは、チェスの「後手1手待ち」ルールである。これは、先手が初期局面で二手指し、そのあと後手が一手指す(あとは、先手、後手、普通に一手ずつ指す)というルールである。「後手1手待ち」はお手軽に導入でき、ソフトの評価関数が暴発しないギリギリのところではないかと思う。


ちなみに、森下先生に「後手1手待ち」ルールでの先手の最善手が何だと思うかを尋ねてみたら「26歩〜25歩ではないですか」とのことだった。


また、後手1手待ちルールは、もう少し大きなハンディにするために後手n手待ちルールに拡張することが出来る。この場合、76歩〜33角成で相手の玉を取れてしまうとおかしいので、この後手が待っている間は先手は駒を1〜5段目には進めない、などの条件が必要となる。


森下先生に1〜5段目に駒が進めない「後手1手待ち」ルールでの先手の最善手について尋ねてみたところ「76歩,26歩ではないですか」とのことだった。
また、「後手1手待ち」がどれくらいのハンディかを尋ねてみたら、「香落ちよりは小さいハンディでしょうね」とのことだった。


しかし「後手1手待ちルール」のような特殊な(従来の将棋にはない)ルールが採用されるためには、このルールが周知されている必要がある。そこで、HEROZの林社長に「後手n手待ち」でのハンディ、将棋ウォーズに採用しませんか(いまならタダです!)と提案したところ、興味は持ってもらえたようだ。(「将棋ウォーズ」に採用されるかどうかはわかりませんが、100万人以上が遊んでいる将棋アプリに採用されたらインパクトは絶大。)


また、序盤の1手の価値がどれくらいなのかというのはあまりデータがないが、Ponanzaで初手で長考させると先手+70点ぐらいという話があったので、1手の価値はそれくらいだと思う。序盤の3手の価値が210点(※歩=100点、一歩得=200点なので、序盤の3手の価値≒1歩得)というのはだいたい感覚的なものに合致すると思う。(2手得する代わりに横歩を取らせるような戦法がやや損ながらギリギリ成り立つので)


あと、GPS将棋によると香落ちは+100〜+200点だそうな。(読みが深くなってくるともっと点差が開くのかも知れない)



https://twitter.com/shogi_pineapple/status/456466001094131713/photo/1


とりあえず、私が提示できるデータはすべて示したし、言いたいことはすべて書いた。これでこのブログでの将棋関連の記事はいったん終わりとしたい。
読んでくださっている将棋ファンの方々、関係者の方々、いままでありがとうございました。


明日からこのブログはボカロブログになります。(←本気)


[2014/4/22 5:30] 追記。



https://twitter.com/itumon/status/457536790811787264


うおー!!itumon先生にそんなことを言ってもらえるだなんて!!
将棋の記事も定期的に書きますので、今後ともよろしくお願い致します。

将棋における駒落ちのルールとその考察


※ 一昨日の電王戦第五局の終了後の記者会見でうまく話せなかったことをここにきちんとまとめなおしておきます。一度に書ききれないので今回は半分ぐらいをまず書きます。


以前、羽生さんが「打ち歩詰めが禁じ手でなければ、将棋は先手必勝(なのではないか)」と発言して波紋を呼んだことは将棋ファンなら誰でも知っているだろう。もちろん、羽生さんが打ち歩詰めが有りのルールにおいて先手勝ちの変化を見つけているというわけではないと思う。将棋の変化はそこまで狭くない。羽生先生の思考過程は、おそらくこうだ。


「打ち歩詰め」は数ある将棋のルールにおいて長年淘汰されなかった重要なルールである。長年淘汰されなかったからにはそれなりの理由、何らかの必然性があるはずである。それは、「打ち歩詰め」というルールなしでは、ゲームとして成立しない何かがあるのではないか。「打ち歩詰め」をなくしてみても、将棋のゲーム性はそこまで変わらない(別にゲームとして成立しなくなるほど簡単なゲームにはならない) しかしそれなのに「打ち歩詰め」ルールが必要だと言うのであれば、それはゲームとしての崩壊しか、理由が考えられない。だから、「打ち歩詰め」がないと「先手必勝」になってしまう。
※ この思考過程を裏付けるような羽生先生の発言もあったと思う。


さて、駒落ちのルールについてもこの考え方を適用してみよう。


将棋の駒落ちでは上手(うわて)が先手となる。駒を落とすのはハンディをつけるためである。上手は強いわけである。しかし、その強いほうが何故先手なのか?これは誰しもが疑問に思うことである。しかし、この答えを知る人はいないだろう。興味深いことに、さきほどの考え方を適用するとこの“答え”を導くことが出来るのだ。このことは私が20年ぐらい前に将棋を勉強しようと思って駒落ちの本を読んだときに発見したものだ。後述する。


まず、将棋の駒落ちのルールはいつ決まったのかということについて、歴史的な経緯を書いておこう。


将棋ファンであれば、常識であるが、駒落ちの書籍としての古典は木村義雄十四世名人の『将棋大観』(昭和3年発刊)であろう。木村先生は、同型角換腰掛銀の「木村定跡」でも有名である。この先生は定跡を研究することに関して卓越した才能をお持ちだったのだろう。


『将棋大観』は、最古の将棋定跡書である大橋宗英の『将棋歩式』や天野宗歩の『将棋精選』(どちらも江戸時代のもの)を下敷きとして、それを木村先生が改良されたものとなっている。つまり駒落ちのルールはすでに江戸時代にはあったということになる。江戸時代に指された棋譜としては駒落ちで上手が後手の棋譜が残っていたと思うが(うろ覚え)、上の『将棋歩式』『将棋精選』のどちらも駒落ちの上手が先手となっている。


つまり、『(駒落ちの)上手が先手』というルールは長年淘汰されなかったルールであるということになる。


別の角度からも書いておく。


大山十五世名人が、30年ぐらい前に「将棋の駒落ちというのはこれと言ったルールが公式に決まっているわけではなく、昔からのやり方でやっている(ので変えても良い)」という主旨の発言をされていたと思う。(うろ覚え)


また、中原先生はかつてNHK杯テレビ将棋トーナメントで、「角落ちや飛車落ちより、私は金落ちのほうが嫌ですけどね」という発言をされていた。「金落ち」という場合、二枚の金を落とすわけではなく(金二枚のほうが角一枚や飛車一枚より勝るというのは将棋の常識なので)、金を一枚だけ落とす話をされているわけである。金落ちが角落ちや飛車落ちより指しにくいのかどうかはプロ棋士の間でも意見がわかれると思うが、その感性が中原先生らしいと思うのは私だけだろうか。ともかく、「金落ち」のような変則的な手合割について、中原先生が考えておられたことがあるというのは大変に興味深い。


さて、ここで最初の話に戻して、では「何故、駒落ちは上手が先手なのか」について私が20年前に得た“答え”を書いておこう。


最も完成された定跡は二枚落ちの定跡である。これは二枚落ちより多く落とすとハンディが大きすぎて将棋にならないのであまり研究されておらず(実際、従来の定跡書に載っている四枚落ち、六枚落ちの定跡は、激指などで検討するともっと良い手が見つかる)、また、角落ち・飛車落ちなど二枚落ちより小さいハンディの手合いについては変化が膨大になるため定跡としての完成度も低くなってしまう。


であるから、二枚落ちの「二歩突っ切り」「銀多伝」が最も完成された定跡なのである。この両者は江戸時代にはすでにあったとされている。
つまり、「上手が先手」というルールは、これらの定跡の完成のために必要であったと考えられる。


説明が長くなるので、ここでは二歩突っ切りにだけ焦点を当てよう。


将棋ファンなら誰もが知っているであろうが、二歩突っ切り戦法とは、次図の形に組む。その戦法の名前の通り、3・4筋の二つの歩を5段目まで進めてある。この形に組むのが急所で、これにより、上手の左辺の駒を釘付けにできる。3一の銀を4二にあがるとその途端に3四歩と突かれてしまうので上手は左銀を2二に上がらざるを得なく、実質的に上手の左銀を無能化できる。



上手は右の金を守り駒に使うとしたら、攻め駒は右の銀の1枚だけである。左銀が自由になれば、攻めの駒が2枚になるが、二歩突っ切り戦法はこれをさせないわけである。つまり、普通に戦うときに比べると上手の戦力は半分しかない。それゆえ、二歩突っ切りで戦うなら、上手は角・飛がなく、左銀・左金が使えないので実質的に4枚落ちか6枚落ちに相当するハンディとなる。大変に優秀な戦法であるわけだ。


二歩突っ切りをするためには、下手(したて)は、4五歩を早く決めないといけない。これを早く決めないと上手に逆に4四歩して角道を遮断されてしまい、左銀が楽になってしまう。(4二銀〜4三銀と使えるようになってしまう) これは即、作戦の失敗を意味する。上手の左銀の活用が決まり、上手の戦力が倍増してしまうのであるから。これでは下手勝てない。[次図]



そう考えると、下手の4手目の4六歩も必然である。ここで4六歩を間に合わせておかないと次に4五歩が突けない。そうすると上手に先に4四歩と突かれてしまい、上図の失敗図の局面になってしまう。



つまり、この4六歩〜4五歩が間に合うことによって、二歩突っ切り戦法の成立が約束されているわけである。また、この4手目の4六歩、6手目の4五歩が必然手(他の手に変えると上手が4四歩で角道を遮断する手が間に合ってしまう)であることが、二歩突っ切り戦法を完成度の高い定跡としているわけである。


裏をかえせば、
・上手が先手であっても二歩突っ切りという大変優秀な戦法が成立する
・上手が先手であることによって二歩突っ切りの4手目・6手目を必然手とできる
ということである。


このあともいろいろ必然手が出てくるのだが専門的になりすぎるのでここでは割愛する。ともかく、必然手の連続という綱渡りのような手順ではあるが、いや、綱渡りのような手順であるからこそ、二歩突っ切り戦法という大変に優秀な戦法がギリギリのところで成立すること自体が「上手が先手」というルールの正当性を示唆していると私は考えたのである。


それが「何故、駒落ちは上手が先手なのか」に対して私が20年前に導き出した答えであった。これは私独自の考え方なのだと思っていたが、驚くべきことに私が得た結論と全く同じことを書いてあるブログがあった。


駒落ちあれこれ(daichan's opinion)
http://shogi-daichan.seesaa.net/article/43347155.html


上記の記事の記述だけではこのブログ主の思考プロセスまでは読み取れないだろうが、ここまで読んできた読者になら、上記ブログ主は私と全く同じ(?)思考プロセスを経たであろうことが容易に想像がつくだろう。


私は上記の記事を昔に読んだときに、「ああ、世の中には私と同じ考え方をできる天才がいるんだな」と世間の広さを知ったわけである。あっ。うちのブログの愛読者なら私が自分のことを「天才」だと書いているのはいつもの冗談だとわかるだろうが、わからない人のために一言申し上げておくと、だいたいにして自分のことを「天才」などと自分で言っちゃうような人は(本気でそんなことを自分で思っているなら)頭のおかしい人であって、決して天才ではないからな。


まあ、それはそれとして、その当時に上のブログを読んだとき「このdaichanとはどこの天才だよ!」と私は思っていたのだが、今回、私が本記事を書くために発掘してきてよくよく読みなおしてみたら、この天才は、なんと日本将棋連盟の片上理事である。私は片上理事にこの電王戦では非常にお世話になったのだが、まさかこの記事が片上理事の記事であったということに、正直何かしら運命づけられたものを感じずにはいられない。


さて、ここまでで「(駒落ちの)上手が先手」であることの理由は十分に伝わったと思う。
また、駒落ちの手合いには歴史的に見て必然性はないので別に他の手合い、他のハンディのつけかたがあってもいいであろうこともご理解いただけたと思う。


明日の記事では、今後の電王戦(あるのかどうかは知らない)や将棋における適切なハンディのつけかた、従来の将棋にはない新しいハンディの形式についての考察を森下先生に直接お聞いた話などを交えながら書く。お楽しみに!

第三回電王戦が終わりました


Ponanzaの対局が終わるまで、私は隣の部屋でCSAの山田さん、瀧澤会長やアマ強豪の古作さん、量子将棋の人とかHEROZの林社長など超豪華メンバーと局面を検討していたのだが、終局するころには、私は暑くて眠くて人がいっぱいで立って移動できないので水なくて脱水症状ぎみになってて、記者会見で自分が何しゃべったかもよくわからない状態だった。眼球が痛いし、目の焦点合わないし、手の震えは止まらないし、頭くらくらした。


まあ、なんにしても電王戦、無事終わって本当に良かった。


電王トーナメントから電王戦本番まで私は当日にやねうら王がフリーズする夢を見て不安で眠れない日が続いたせいか、体重がずいぶん減ったのだが、電王戦もようやく無事終わったことだし、「これは電王戦ダイエットだったのだ」とでも思うことにしよう。いまは終わったばかりで、なかなかそんな気持ちの切り替えも難しいが…。


関係者の皆さん、将棋ファンの皆様、お疲れ様でした。


[2014/4/13 9:00] 追記。

コメント欄> 電王戦のエンディングに佐藤六段と将棋をしているシーンがあってグっときたのですが、あれはいつ撮影されたものだったのでしょうか。


3月1日に佐藤紳哉六段宅に訪問させていただいたときのものです。二枚落ちでの指導対局で、私は二歩突っ切り戦法を採用し、完勝しました。局後、佐藤紳哉六段からは「(下手には)一手の悪手もなかった」とおっしゃっていただきました。それは私にとって今回の電王戦関連のイベントのなかで一番素敵な思い出です。この思い出に支えられ私は本日までやってこれました。佐藤紳哉先生、本当にありがとうございます。


[2014/4/13 9:30] 追記。

コメント欄 > MVPの件ですが、やねさんには習甦の受賞はどのように感じたのでしょうか?


習甦の開発者の竹内さんは立ち居振る舞いが立派でしたし、また、本電王戦での習甦の指し手には美しさのようなものを感じましたので、視聴者投票による受賞は順当かなと私は思います。


[2014/4/13 21:00] 追記。

> ニコニコ超会議3で、豊島七段&YSS vs ponanza×ツツカナ×習甦、というイベントがありますが、ここにやねうら王の名前がないのはどういう事情があるのでしょう?


わかりません。まあ、旧やねうら王には深刻なバグがいくつもありますし(その局面図は私のほうからお送りして、日本将棋連盟のほうでも確認いただいてます)、そういうのがイベントの進行の妨げになるのではないかと心配で私はまた寝られない日々が続くことになりますし(笑)、そういう意味ではやねうら王が参加しないのは、私としては願ったり叶ったりなところでもあるのです。


[2014/4/13 21:05] 追記。

> 次回電王トーナメントには出場されるのでしょうか?


いまは自分でもよくわかりません。気持ちの整理がついてからまた考えます。


[2014/4/13 21:15] 追記。

> まさに抱腹絶倒!でも根っからの正直者というのが、聞いている全員に伝わったと思いますよ。


あの会見の私の発言は、長い長いと言われていたようなのでどれくらい長いのかと思って、書き起こしを読み返してみました。


第3回電王戦終了後の記者会見(書き起こし)(将棋パイナップル2.0)
http://shogi-pineapple.com/wp/?p=239


確かに長いし、あの場で言うべきことでもないような感じの話ですが、しかし私が言いたかったことは1/100も言えてないですね。


山岡「明日もう一度このブログに来て下さい。あの会見の100倍密度の濃い内容の記事を用意してお待ちしてますよ。」


[2014/4/14 8:30] 追記。

> 最新バージョンのやねうら王なら160人くらいいるプロ棋士のレベルでは上から何位くらいの位置にあると思いますか?


3月時点の新やねうら王からさらに改良が進みまして、旧やねうら王に対しては9割以上勝ち越すようになりました。旧やねうら王が仮にあるプロ棋士レベルにあるとして、あるプロ棋士に対して9割以上勝ち越すプロ棋士が一体何人いるのかという観点で考えてみる(この考え方は、ボンクラーズの伊藤さんによるもの)と、どのへんに位置しているかはわかるかと思います。(長い持ち時間になると多少人間有利になるようですが)


[2014/4/14 13:30] 追記。

> 過日50万円を何か自己の営利以外で使うみたいな内容が


やねうら王を将棋倶楽部24に参戦させるためのプログラムおよび公式サイトでその対局中の読み筋・盤面などが表示されるシステムの開発をうちの会社の社員に手伝ってもらったんですけど、その支払いがもうすでに50万円近くなんですけども…><

電王戦 第五局 Ponanzaの意外な弱点


※ この記事は電王戦 第五局が始まる3日前に書いている。


Ponanzaが他のどのソフトより一回り強いソフトであることには誰も異存はないだろう。
ノーパソで人間の強豪相手に166連勝とか凄すぎて言葉も出ない。


そんなPonanzaだが、開発者の山本君自身が「銀ばさみ」を弱点として挙げている。



https://twitter.com/kagami_tomo/status/452827971808534528


初めてこの話題を聞く将棋ファンにとっては「これだけ化け物級の将棋ソフトが銀ばさみなどと言う初歩的な手筋を食らうはずがない」と考えるだろうが、銀ばさみを食らいやすいというのは本当のことなのだ。


ライトな将棋ファンのために説明しておくが、銀はさみというのは次図のような形で銀が死んでいることを言う。



歩がタダ取りできると思って銀で歩を取りに行ったときに、銀の前に歩を打たれて上図のような形となり、あえなく銀がご臨終となる。


実は、従来から将棋ソフトは銀ばさみを食らいやすかった。理由はいくつかあると思う。


・理由1 銀ばさみされた形は部分的にはいい形である。


例えば、Bonanza型の評価関数では3駒関係の評価をしているが、このなかで、銀ばさみの形はどう評価されるか。(いま2駒関係は問題ではないのでそれについては考えない)


Bonanzaの3駒関係」というとき、1枚は玉であり、残り2枚がここでは銀と歩なのだが、銀ばさみの形は部分的には、たいていはいい形として評価してしまう。



例えば、歩の裏から香を打つような形は(香を打つ側にとって)いい形である。これは歩が合い駒できないからだ。



同様に、銀ばさみの形も、次に歩の裏から歩を打てたりして(次図)部分的にはいい形なのだろう。



そもそも銀が出て銀ばさみに遭って銀が無条件でタダ取りされるような形での銀の進出はプロの実戦棋譜には出てこない。本当に無条件でタダ取りされるなら、プロはそんな進行は避けるからだ。銀が出るからにはそれ以上の代償があるときのみである。だから、プロの棋譜から評価関数のパラメーターを学習させたときに銀ばさみになっている形に対してなかなかマイナスの値がつかない。


同様に、棒銀などで攻めに行って敵陣の形を乱す代償に銀をタダ取りされてしまう指し手がソフトに多いのも実戦(プロの棋譜)には成功事例しかないからなのかなという気が少しする。


・理由2 銀ばさみした銀をとった形はすこぶる悪形である。


次に、銀ばさみした銀を歩で取りきった形。これが銀を取った側から見てすこぶる悪形だということ。将棋には「位(くらい)を取ったら位の確保」という格言があるが、浮いている歩がいくつも並んでいるのはよくない形なのである。銀を取った側が瞬間的にすこぶる悪形なのでこれが形勢評価を誤らせる一因となる。


従来のソフトが銀ばさみに弱いのは、おそらく上記の2つの理由が大きいのではないかと思う。


しかし、Ponanzaが銀ばさみに遭いやすいのは、もう2つぐらい理由があると私は考えている。それというのも、いま開発中の新やねうら王も銀ばさみにやたらと遭うのだ。やねうら王の開発中のものを将棋倶楽部24に放流しているのだが、まだ200局すらしていないのにすでに3回も銀ばさみを食らっている。最初、バグか何かだと思ったのだが違うようだ。そして、どうもその原因はPonanzaと根が同じものだと思う。それについて簡単に説明する。



・理由3 銀ばさみしたあと歩を打って銀を殺す手の形が悪すぎる


おそらく統計的に見て、歩を自陣に打つ手が好手である確率というのはあまり高くない。歩は本来ならば敵陣に使いたい。それを自陣に使うのは、他の指し手では悪くなるので辛抱をするときがほとんどである。そこで、自陣の歩は形としてそれほどプラスにはなっておらず、また、指し手のオーダリング(探索する順番を決めるための順序付け)をするときにも打ち歩は低い順序になりやすい。そのため、探索部で激しく枝刈りをしているタイプの将棋ソフト(※注1)では、これが枝刈りの対象になりやすい。このため、思考時間が短い設定だと、たかだか7手ぐらい先であっても見落としてしまうのだ。


※注1 「Ponanzaは(他のソフトに比べて前向き枝刈りで)刈りすぎ」というPonanzaの山本君の発言が2年ぐらい前にあったと思う。Ponanzaの枝刈りがかなりきつめに調整されているのは特徴的で、それゆえこういう指し手が枝刈り対象になっているのかと思う。(やねうら王も実は他のソフトよりは少しきつめに調整してあるつもりだが、あまりきつくすると読み抜けて弱くなるので、私にはこの調整が難しい。Ponanzaはこのへんを実にうまくやっているのだろうと思う。)


・理由4 銀ばさみにしたあと銀を殺すために歩を打つ地点に他の駒を運ぶ手は悪手である


やや専門的な話となる。理解できない人は読み飛ばしい欲しい。


ある局面で指し手のオーダリング(探索する順番を決めるための順序付け)をするときに「この升に駒を移動する指し手はいい指し手である可能性が高い」というように移動先の升ごとに点数をつけた表を用いる。それをhistoryテーブルと言う。激指が実現確率探索で指し手の実現確率を求めるためにやっていたようなことを、より小さい労力で行なうためのアイデアである。


これは、探索中にいい指し手であったときにこのhistoryテーブルのその(指し手の移動先の)升に加点し、いい指し手でなかったときには減点する。そして指し手のオーダリングにこのhistoryテーブルに記載されているスコアを使うわけであるが、銀ばさみにした形は、歩を打って銀を殺す升に移動できる駒として、銀を殺す側から見て、普通は金のような支えとなる駒が背後にあるはずである。


ところが、金をこの升に運ぶと金銀交換になるため、historyテーブル上は、この升へ駒を運ぶ(打つ)指し手は減点されているはずである。だから、この升に駒を打つ指し手の探索順序がかなり後回しになり、指し手オーダリングで後ろのほうの順番になっている指し手は枝刈りしてしまうので(前向き枝刈り)、ざくざく枝刈りしているタイプの探索ではどうしても読み抜けるのである。


Bonanzahistoryテーブルは、駒の移動元の升(=81)と駒の移動先の升(=81)のペア(組み合わせ)なので、81×81のサイズの配列(≒表)が必要となる。(実際にはさらに移動させる駒の種類とか駒打ちであるかとかも考慮されてたと思うが話がややこしくなるのでここではそれは考えないものとする)


Bonanzaではこのように移動元を考慮に入れたhistoryテーブルなので上述の問題は起きないのだが、Stockfish型の探索など現代風の探索部では、historyテーブルは移動先の升しか考慮に入れないのが主流であるから(historyテーブルを小さく抑えてメモリ効率を良くするため)、移動先の升が同じである複数の指し手があり、そのなかの1つだけが良しでそれ以外はすべて悪いというような時にこの1つだけ良しの指し手を見落とす傾向がある。(ちょうど銀バサミからの打ち歩がこの条件に該当する)


また、駒打ちと駒打ちでないかでhistoryテーブルの使う場所を別にすればこの問題は回避できるかも知れないが、たいていは駒打ちでも駒打ちでなくとも急所の升に駒を移動させる(駒を打つ)指し手は良い手であるから、そういうことをしてもhistoryテーブルのサイズが大きくなるわりには探索効率が落ちかねない。そもそも自陣に駒を打つ手はほとんどの場合、悪手であるから、historyテーブルをそういう風にわけても、打つことに関するhistoryテーブルのスコアはほとんどがマイナスになりかねない。結局はそういう指し手は枝刈り対象になりやすい。


だから、現代風の探索部においてはhistoryテーブルでは指し手の移動元や、指し手が駒打ちであるかなどは考慮しないのが普通だと思うのだが(※注2)、そうするとこのような問題があって、ちょうど銀ばさみに関してこの問題が露呈しやすい。


※注2 ちなみにコンピューター将棋の開発者の用語で、指し手に関して駒の移動元をfrom、駒の移動先をtoと呼ぶ。Ponanzaの山本君と数年前に話したときに、「(Ponanzaでの)history?ああ、toしか見てません。Bonaはfromとかも見てますよね。」という言葉があった。このことから、4)はBonanzaには当てはまらず、Ponanzaには当てはまる特徴だと言えると思う。(最新のPonanzaがどうなってるのかまでは知らないが、ここをいまさら複雑化しているとは思いがたい) ちなみに、やねうら王もtoしか見てない。


・とは言うものの…


将棋の探索部はいろんな要因が複雑に絡みあっているので、本当に銀ばさみに遭いやすい理由が、上記の4つなのかどうか私は正直自信がないし、きちんと調べたわけでもない。「このへんが原因なのかな?」という私の推測にすぎない。以上の話は、開発者の間での議論のための叩き台にでもしてもらえればと思う。


あと、電王戦本番でPonanzaが銀ばさみに遭うかというと、思考時間が長ければさすがに5手か7手先ぐらいはほとんど枝刈りせずにきちんと調べるだろうから、普通に回避できると思う。つまり、「将棋ソフトが銀ばさみに遭いやすい」というのは、「思考時間が短いときに」という但し書きがつく。


以上、電王戦本番でも他者を寄せ付けない圧倒的な強さを見せつけるであろうPonanzaにも意外な弱点があるんだよねという程度の記事でした。
電王戦本番でPonanzaが銀ばさみされるところが見れるのかと思った人、すみません。


■ 関連記事


やねうらおさん、コンピュータ将棋の銀ばさみについて解説 「電王戦 第五局 Ponanzaの意外な弱点」(2ch名人)
http://i2chmeijin.blog.fc2.com/blog-entry-524.html
→ やねうら王が銀ばさみに遭った局面図とか、本記事に関するtwitterでの言及などがまとめられていて凄くわかりやすい。


Ponanzaの現在の課題 (3) 銀ばさみの理解(ぶたろうノート)
http://emptywords.hatenadiary.jp/entry/2014/04/11/004046
→ 「電王ponanzaに勝てたらノートパソコンプレゼント! 挑戦者求む![ドスパラ大阪・なんば店]」のときのニコ生の放送の文字起こし。Ponanzaの山本君自身が、Ponanzaが銀ばさみされやすいということについて将棋ファン向けにわかりやすく語っている。

電王戦 第四局 ツツカナ戦について思うこと


第四局は、将棋の内容的にも非常に素晴らしい戦いだった。両者の力が存分に発揮された白熱した戦いだった。矢倉の達人、森下卓先生に矢倉で勝つ。棋譜だけ見ればツツカナ側が森下先生ではないかと思ってしまうほどだ。


森下先生は事前対局はそれほどされていなかったようなのだが、ツツカナは比較的事前研究されると弱点が見つかりやすいのではないかと私は思う。ちょっと、私の考えの道筋だけ書いておく。


今回のような貸し出しアリのルールの場合、ファミコンのゲーム攻略のようにしてプロ棋士側が勝率を最大化しようと思ったときに、コンピューター同士対戦させるという方策がまず考えられる。どうせなら、本番と同じ持ち時間で対戦相手のソフトを一番強いソフトと対戦させておくほうがなお良い。これを最初に言い出したのはプロ棋士の西尾明六段だと思うので、ここではこれを西尾戦略と呼ぶことにする。



https://twitter.com/nishio1979/status/447558853253529600



https://twitter.com/nishio1979/status/447561125853290496



https://twitter.com/nishio1979/status/447573579261943808


ところが、よく考えると、序盤でコンピューター側の指し手がバラけると研究対象の局面が増えて損である。そこで、西尾戦略の前に、まずコンピューター側の定跡がどこまで入力されているのがその樹形図(初手からの定跡木)を作成したほうが効率が良い。


ソフトによってはある局面での定跡の指し手は1手しか入っていないことも多々あるし、今回のような貸し出しルールのもとでは、不利と結論の出ている局面まで進んでしまうことを開発者としては恐れるので、定跡を早めに打ち切っていることがある。だとすれば、先手側が人間であれば、樹形図を使えばソフト側の定跡を抜けた局面を数局面に限定することは十分可能である。


それらの局面を研究対象として研究するほうがはるかに効率が良い。そこで、それらの局面から強いソフトと本番の持ち時間で対戦させてみるという西尾戦略を採ることを考える。実際には西尾戦略と樹形図作成を交互に繰り返しながら、研究対象の局面の深さ(初手からの手数)をどんどん深くしていくと良い。


そうしたときに、ソフト側の指し手がバラけるソフトとバラけないソフトとがある。指し手がバラけるように調整しようと思うと、きつく乱数を入れないといけないので弱体化してしまう。ソフトが人間よりはるかに棋力的に上回っているなら、R50〜R100ぐらい弱くなっても誤差かも知れないが、まだそういう状況でもない。局後学習は、弱体化させずにランダム性を入れるという意味では面白いアプローチだが、本当にこれで事前研究を回避できるかは定かではないし、比較的実装が面倒なので私以外の開発者が進んでこれを導入するとはあまり思えない。


また、乱数調整をしていない場合、長い思考時間において指し手がどの程度バラけるのかという部分はあまり知られていない。一般的に言って思考時間が長いと、指し手は特定の指し手に収束する傾向がある。(例えば、終盤で羽生先生と激指の指し手一致率が90%を超えることがある) これは、思考時間が長いと棋力が高い人の指し手に近づき、そして、棋力が高い人にとってはそんなに指し手の自由度がないということなのだろう。


やねうら王の場合、同じ思考時間(例えば1手1分ぐらいの長さ)であれば、5〜10手に1手ぐらいしか指し手が変化しない。たぶん他のソフトも似た状況だろう。それでもこのときの指し手のバラけかたはソフトによって個体差がある。それが評価関数の差なのか探索手法の差なのかはよくわからないが、さまざまな要因で個体差がある。もしかするとツツカナは比較的指し手がバラけにくい部類に属するのではないかと私は思う。


と言うのもやねうら王のほうは序盤で自ら局後学習で定跡を作っているので、他のソフトと対戦されると意図せず相手ソフトにとって定跡外しのような進行になる。そのときに相手の指し手がどの程度バラけるかという尺度で見たときに、ツツカナはどうも同じパターンにハマりやすい気がする。今年の2月下旬にやねうら王をfloodgateに流していたとき、ツツカナと5回当たったのだがいずれも似た進行となり、5回とも勝たせてもらった。(だからこういう進行ばかりになるならfloodgateのレーティングを見てどっちが強いとか言ってもあまり意味のないことである。このへん、他の開発者にもいい加減わかってもらいたい。)


ツツカナが今回の電王戦版でどんな乱数調整がされているのか詳しくは知らないが、あまりきつい乱数を入れていないなら、もしかしたらまずいのではないかと私は思っていた。もちろん、西尾先生がおっしゃっているように人間側は「(そこまでやって)作戦勝ち或いは少し優勢な局面を作れるかなという程度」だと思うので、プロ側が事前に時間を大量に費やして、こういうのを狙ってやるほどの価値はないのかも知れない。


また、私が考える究極のアンチ将棋ソフト戦略は、
1. 研究対象の局面を限定する(初手からの樹形図を書いて、研究対象の局面を絞っていく)
2. 入玉狙いにする(まだソフトの入玉は大変弱いので)
3. ソフトの評価値がおかしい局面に誘導する(棋譜からの学習は実戦例が少ない局面が苦手)
という3つだが、これらを同時に満たすのが故米長邦雄先生が対ボンクラーズ戦で見せた後手6二玉なのである。あれこそがアンチ将棋ソフト戦略の極北だった。米長先生の戦略は、2年前にしていまよりさらに3年ぐらい先を行っていた。トータルで5年ぐらい先を行っていたことになる。


それと言うのも、米長邦雄先生の将棋倶楽部24でのレーティングはおそらく(いまの将棋倶楽部24換算で)R2800前後、米長先生は引退されてから長かったのでトッププロと比較するとR300〜400程度の差はあったと思われる。一方、ボンクラーズのRは(米長先生と対局時のPC構成において)R3200前後だと思うので、10回やって2回勝てるかどうかぐらいの差があったのだろう。それくらいの差において勝率を最大化しようと思うと、もはやアンチ将棋ソフト戦略以外に他ないと米長先生は判断されたのだろう。


今回の電王戦では出場ソフトとプロ棋士の棋力はそこまで大きく乖離していないので、プロ側も米長先生のような戦い方をすることもないのだろうが、もっと大差になってくるとそういう戦いが現れるのかも知れない。


さて、少し話を戻して、初手からの樹形図についてもう少し考えてみる。


連珠では、初手は天元(中央の星)に打ち、2手目は天元から1目離れた場所、3手目は天元から2目以内の離れた場所に置かなければならない。このため、3手目までが対称形を除くと26通りあり、これらを珠型(しゅけい)と呼ぶ。


将棋でも、今回の電王戦のような貸し出しルールのもとで序盤に対して樹形図が得られている場合、人間側は好きな(自分の得意な)珠型(開始局面)を選択することが出来る。


そこで、樹形図を自動生成するソフトなんてのも作ろうと思えば作れるわけだ。対戦相手のソフトと、一番強いソフトとを自動対戦させて樹形図を作成する。「この3つの局面のいずれかに進行する確率(80%,10%,10%)、この4つの局面のいずれかに進行する確率(60%,20%,10%,10%)で、前者と後者とどちらを選択するか」なんてのを人間が選び、一番自信のある進行で戦う。


まあ、「自信のある進行」とは言っても局面的にはほとんどの場合、ソフト側によほどの穴がない限りは形勢的にはほぼ互角であるだろうから、そこから勝ちきるのは実力である。また、ソフト開発側としては、こういう形の事前研究で欠陥が露呈しないように対策しないといけない。お互いに苦労が絶えない。誰得な感じもする。

将棋連盟の谷川会長とドワンゴの川上会長との夢の対談が実現


将棋連盟の谷川会長とドワンゴの川上会長との夢の対談が実現してました!この記事、もしかしてエイプリルフール企画じゃないかと思ったら、公開日は4月2日になっていたので、エイプリルフール企画ではないようです。いやー、凄いですね。谷川会長がインベーダーゲームで「100円玉がどんどんなくなっていく」ところとか想像つかないですけど、意外な一面が垣間見れて妙に親近感がわきました。


電王戦は,21世紀を生きる人類を映し出す鏡なのかも――将棋棋士谷川浩司氏がゲストの「ゲーマーはもっと経営者を目指すべき!」第16回
http://www.4gamer.net/games/999/G999905/20140314022/



ちなみに上記の記事中に出てくる、「人間を将棋ソフトのAIの一種だと考えて分類すると同型のソフトとして分類される」理論は、私の以下の記事にあります。興味のある方は、併せて御覧ください。この理論は、将棋ソフト開発者の間でも賛同してくれる人は少ないと思うのですが、人間の思考特性を考えるときにこの視点で見るといろいろ見えてくるものがあって面白いです。


電王戦に向けて
http://d.hatena.ne.jp/yaneurao/20131215#p1