今日は、将棋ソフトがどのように“将棋を学んできたのか”について、まとめておきます。
今から40年ほど前の 1975年頃、人工知能研究の一環として将棋ソフトの開発は始まったそうです。
その進化の流れは、ざっくり言えばこんな感じ?
1.ルールを覚えさせる
2.金言などをプログラム化する
3.探索と駒得で手を選ばせる
4.局面評価について、機械学習をさせる
1の「ルールを覚えさせる」というのは、各駒の動ける場所を教え、“二歩”など反則となるルールを教えるってことです。
でも、駒の動かし方がわかるようになっただけでは勝てたりはしません。今の私と同じです。
ちなみに「反則にならない手」は合法手と呼ばれます。
次に「金言をプログラム化する」ってことが行われたみたいです。
将棋には勝ちやすくなるための格言がたくさんあります。
「玉飛接近すべからず」「二枚替えなら歩ともせよ」みたいな言葉ですが、そういうのをプログラム化したということです。
これはアトムみたいなロボットを創って、そのプログラムに「早起きは三文の得」といった諺を覚えさせるようなものです。
するとロボットは朝の 5時から動き出し、夜の 9時には充電機に戻っていく・・・わけです。
「ルールを守って指す」から「勝つために指す」に変わったのは大きな進歩ですが、結果としては、人間にはまったく勝てませんでした。
そりゃあ勝てないだろうって感じですが、将棋には格言が数え切れないほどあるので、当時の開発者の方のご苦労は大変なことだったろうと思います。
次に、
(1) 自分が指す手と相手の指す手のパターンをすべてリストアップ=探索し
(2) 結果として現れた局面が、自分に有利そうか不利そうかを判断=局面評価し
(3) 最も自分に有利な局面につながる手を選ぶ
という、現在でも使われている基本的な思考の形が始まります。
よくプロ棋士は何十手も先まで読んでいると言われますが、この“読み”と“局面評価”(人間にとっては形勢判断という言葉の方が適切かも)は、人間のアタマの中では一体となって行われています。
将棋以外の選択肢でも私たちは、「こうしたほうがいいかな? それともああしたほうが良さげかな?」と考えますよね。
あれは、読み(探索)と形勢判断(局面評価)を一緒に行なってるわけです。
でもソフトにとっては、「あらゆる可能性をすべて、しかも、できる限り深く探索する」のと、「それぞれの手を選択した時に現れる状況(局面)が、どれくらい自分にとって有利か不利かを判断する」のは、まったくの別の作業です。
「本当は人間にとっても探索と局面評価は別の作業なんだけど、私たちはそれを区分して意識することができてない」のか、
それとも「そもそも人間にとっては、その二つは統合された思考である」のかは、私にはよくわかりません。
コンピュータは、“人間と同じ思考をしようとしてるのか”、それとも“結果として人間と同じ思考結果にたどり着くために、人間とは全く異なるアプローチで考えている”のかは、この点に限らず興味深い点です。
★★★
探索とは、いわゆる“場合分けツリー”みたいなのを延々と展開することです。
次に局面を評価するには評価基準が必要となります。この基準を作るのが難しい。
たとえば、基準のひとつに“駒得かどうか”と言うのがあります。
コンピュータの場合、それぞれの駒に点数を振り(王将は無限大、飛車や角は 800点、歩は100点など)、「歩をとられても、金をとれる局面は有利」みたいに判断します。
相手の王将をとれば勝ちのゲームですから、王将の価値を無限大としておけば、そこに向けて最善手(もっともよい指し手)が選ばれそうな気がしますが、コトはそう単純ではありません。
まず、駒の重要性は、序盤か終盤かといったタイミングや、駒の置かれた位置、他の駒との位置関係などによって変わってきます。でもプログラムを組む上で、駒の点数を状況に応じて変えること自体が難しい。
また人間は往々にして「肉を切らせて骨を切る」的な作戦を使いますが、これも「今は敢えて駒損を選ぶのが得」と考えるからですが、これも単純に「駒得を目指すプログラム」ではなしえない作戦です、
つまり局面の有利さを判断するためには、駒得だけでなく数多くのパラメーターを設定することが必要なんですが、最初の頃はこのパラメーターを、ソフトの開発者が設定していたんです。
でもね。将棋も知らないポログラムの開発者にそんなこと期待するのは無理でしょ。
そこに、保木邦仁氏が開発した“ボナンザ”というソフトが、画期的な新手法を導入します。(このボナンザ (BONANZA) と、山本一成氏が開発したポナンザ (PONANZA) は、全く別のソフトです。)
それは、「局面の有利さレベルを判断する“式”のパラメーターを、ソフト開発者が設定するのではなく、コンピューター自身が調整できるようにする」というものでした。
トッププロの棋譜をもとに「この局面になると勝ちにつながりやすくなっている。だからこの局面は、有利な局面であると判断しよう」と、
プロの棋譜に現れる無数の局面の情報をもとに、(人間と同じ判断が、ソフトにもできるよう)ソフト自体が、自らの判断式を設定・改善していくわけです。
“機械学習”と呼ばれるこのパラメーターの自動生成方式の登場で、将棋ソフトは一気に強くなりました。(保木氏はもともと化学分野の研究者で、その分野での制御理論を応用してこの方法を考えられたそうです)
★★★
このボナンザは、2006年の世界コンピュータ将棋選手権に初出場で初優勝。従来のソフトより格段に強く、棋士からも「人間らしい手を指す」などと評され話題になります。
さらに 2009年。保木はそのソースコードを公開。他のソフト開発者もそれを利用することが可能になりました。
こうして現在の“プロ棋士に勝てるレベルの将棋ソフト”が出現したわけです。
★★★
局面評価をソフト開発者という人間が行う方式と、コンピュータにやらせる方式には、大きな差があります。
なぜなら、
・人間が、自身の局面評価の思考方法を言語化(数式化)できないと、機械に教えられない
・人間だと、せいぜい百とか千の単位のパラメーターしか考えられない
たとえプロ棋士がプログラミング能力を持っていても、「自分がどう局面を評価しているか」を言語化できないとソフトには教えられません。
昔、長嶋茂雄氏が少年野球教室で小学生に「ひゅーってボールがくるでしょ。それをスコーンと打つんだよ」って教えてましたけど・・・それじゃあ、わからんだろ、ってのと同じです。
人間は、たとえ自分ができてることでも言語化できないコトがたくさんある。特に判断基準については、それを「他人でも再現できるように明確化する」のは、めっちゃ難しいことなわけで、
それが、先日のエントリで書いた「人間は自分の考えを理解できないが、コンピュータはそれを理解できるかも by 山本一成氏の意味なんです。
コンピューターが自分でパラメータを考え始めて以来、その数は数千万とか、ソフトによっては億の単位になってるそうですが、人間がなにかの判断をする際、そんなに多数の要素を意識することはありえません。
人間はもっと少ないパラメータで正確な局面判断が出来ている、わけで、「人間すごい!」のか、それとも「何億ものパラメーターを駆使できるコンピュータすごい!」なのかよくわかりませんけど。
ボナンザVS勝負脳―最強将棋ソフトは人間を超えるか (角川oneテーマ21)posted with amazlet at 17.05.27保木 邦仁 渡辺 明
角川書店
売り上げランキング: 454,796
↑
保木氏と、2007年にボナンザと対局して勝利した渡辺竜王の共著。将棋ソフトを理解する上で、大変参考になりました。 ★楽天ブックスはこちら★
さて以上が、私が理解できた範囲での「プログラムが将棋を学んだプロセス」(もしくは、ソフト開発者がコンピュータに将棋を教えたプロセス)なのですが、
このほかに、将棋には定跡と言われる「こういう場合は、こういう手を指すのがベスト」という一連の手の流れがあり、将棋ソフトにはそういうパターンが大量にインプットされています。
私は、これも将棋ソフトが強くなった理由なのかなと思っていました。
人間は定跡を覚えたり暗記したりするのが大変だけど、機械ならすぐに覚えられ、忘れず、実際の局面で「あっ、これはあの定跡だ!」と思いつくことの漏れもありません。
だから人間より有利そうじゃん? と思ったんです。
でも山本一成氏と話した時に、「それはそんなに重要な要因じゃないです」と言われました。
理由を問うと、「だって暗記だけでは強くなれないでしょ」って。
あー、そうね。
他のことでも同じですよね。
無制限に完璧な暗記ができれば、テスト系のことなら、ある程度のところまでは簡単にたどり着けます。
辞書全部の英単語を暗記したら、英語のテストでは一定の点がとれるだろうし、受験でもそれだけで平均点がとれる科目もありそうです。
でも、ビジネスパーソンとして(もしくは社会人として)まともな判断をすることに、暗記が占める重要性は、確かに高くはありません。
今や将棋ソフトは将棋のプロと勝負するレベルに達しています。
そういうレベルにおいて、「正しい答えであるサンプル手順をどれくらい大量かつ正確に暗記しているか」が重要であったりは全くしない。
それは、将棋じゃなくても同じなんです。
暗記なんかで勝てたりしない。
大事なのは知識を頭に詰め込むことではなく、考えることだから・・
はっ!
そういえば、あたし、そういう本を書いてたじゃん!?
<コンピュータ将棋 関連エントリの一覧>
1) 『われ敗れたり』 米長邦雄
2) 盤上の勝負 盤外の勝負
3) お互い、大衝撃!
4) 人間ドラマを惹き出したプログラム
5) お互いがお手本? 人間とコンピュータの思考について
6) 暗記なんかで勝てたりしません ←当エントリはこれです
7) 4段階の思考スキルレベル
8) なにで(機械に)負けたら悔しい?
9) 「ありえないと思える未来」は何年後?
10) 大局観のある人ってほんとスゴイ
11) 日本将棋連盟の“大局観”が楽しみ
12) インプット & アウトプット
13) コンピュータ将棋まとめその2