橘ありすのソフト解説 ボードゲームと人工知能の関係
みなさんこんにちは、橘です。…名前で呼ばないでください。
最近、将棋や囲碁においてソフトの棋力が著しく上昇し、様々な話題となっています。
その中でも、「人工知能(AI)」という単語を使って紹介するニュースも多いです。
ですけど、いったい何が起きているのか、ソフトがどういうものなのか、分かっている人は少ないと思います。
正しい情報を持たずに踊らされることほど、愚かなことはありません。
ということで、今回は僭越ながら私が、コンピューターとソフトについて少し解説をしてみたいと思います。
もくじ
・コンピューターの基本は計算
・ソフトは目的のための命令リスト
・ゲームにおけるソフトの研究
・将棋ソフトの簡単な流れ
・将棋ソフトの強さの特性
・将棋ソフトの弱点
・クラスタ接続について
・人工知能とは何なのか
・さいごに
・コンピューターの基本は計算
まず、ソフトはコンピューターで動きますので、コンピューターから説明しなければいけません。 世界初の実用的なコンピューターは1947年のENIACというアメリカのもので、軍事的な計算などに使われたそうです。当時はまだ第二次世界大戦前後のころですから、そのような背景もあったようです。
(当時は巨大な機械でした)
ENIACがそうであったように、コンピューターは基本的に『計算』をする機械です。
菜々さんがコンピューターを「電子計算機」と呼んでいましたけど、それが本来の機能なんですね。
原理を、少し説明します。
ここに電球が10個あります。(下の丸は電球です) これを点ける、点けないの並びは、何通りあるでしょうか?
〇〇〇〇〇〇〇〇〇〇
答えは、1024通りです。
一個の電球で表示できるのは2通りですけど、2個目の電球も2通り、3個目の電球も2通り……。と、続いていくわけで、式で表すと
2×2×2×2×2×2×2×2×2×2=1024
となります。電球は10個でなくてもいいですから、数を増やしていけば表示できる数は爆発的に増えていくんですね。 美波さんから、こういうものを「指数関数」というのだと教わりました。
これを電球ではなく、回路内における「電子のある、ない」で表示するのがコンピューターです。
電子ですから、とても小さくてすみます。今では、スマートフォンやタブレットに収まるまでに小型化されました。
小さいですけど、膨大な数を扱えるのがコンピューターの特徴なんです。
各国のスーパーコンピューターが性能を競っていますけれど、あれも「計算能力の高さ」を競っているんですね。
細かなことをいえば2進数とか、ビット数とか、回路の種類とか…いろいろありますけれど、今回は省略します。
・ソフトは目的のための命令リスト
普段、私達は数ではなく、文章を送り合ったり、画像を保存したり…といった、違った形で使っています。 コンピューターが扱う数を計算したり、別の情報に置き換えるのが『プログラム』です。ここにある命令に従って、コンピューターは動きます。ソフトの中にも沢山のプログラムが入っています。設計図みたいなものですね。
「計算を目的の手段に落とし込む作業」がプログラム…と言えばわかるでしょうか。
パソコンにあるWindowsやMacintoshといったOSも、プログラムによって構成されています。
これによって爆発的にパソコンが普及して今のマイクロソフトやアップルが…というのはまた別の話ですので興味がある方は調べてみて下さい。
ここまでをまとめると、
・コンピューターの基本は計算機である
・膨大な計算を命令を用いて利用したのがソフト
こんな感じです。次は、チェスや将棋、囲碁とソフトについてです。
・ゲームにおけるソフトの研究
上記のゲームは「二人零和有限確定完全情報ゲーム」というもので、単純に言うと
「二人で行う、条件が平等な、変化に限りのある、情報が全て公開されているゲーム」
です。理論上は結論があって、コンピューターが探索をしやすいゲームです。
…ただ、探索しやすい=読み切れる ではないです。
将棋では、指し手の数が10の220乗とも言われています。正確な数ではないですけれど、私たちが把握できないような数であることは変わりありません。
コンピューターにも把握できる数の限度があって、初期局面からしらみつぶしに読んでも結論まで辿りつけないんですね。
ですから、途中で局面を評価して、一番よくなる局面に誘導する必要が出てきます。
この、途中での「正しい評価」がコンピューターには難しい問題なんです。どこを見て「良い」とするのか、判断する基準が示されているわけではないですから。
人間の場合、「なんとなく」で判断して、それが合っていることも多いです。それに、一つの局面で候補手を数通りにまで絞り込むことができます。
どうすれば人間のように強くできるのか…。人間の知能を研究することができるのではないか。そのような観点を含めて、ソフトの研究がなされてきたわけです。
ちなみに、変化できる数ではチェス、将棋、囲碁の順に大きくなります。
(盤面の広さが多分に影響しています)
・将棋ソフトの簡単な流れ
将棋の場合、チェスに比べて遅い発展でしたが、1970年半ばから始まったそうです。しかし、ハードが発展していく中でも、思うような結果は出ませんでした。
そこに大きな革新をもたらしたのが、2005年に登場したBonanza(ボナンザ)です。 チェスの論文を参考に作られたこのソフトが画期的だったのは、評価関数における「機械学習」の導入です。
従来のソフトは局面を判断する評価値、その元となる関数を手動で決め手いました。
例えば、「角は100点、金は56点、銀は45点…」みたいに。
この点数を、コンピューターが設定する。そういうプログラムを導入しました。(文章にすると簡単ですけど、かなり高度な話です)
この方法は「ボナンザメソッド」と呼ばれ、ソフトの著しい棋力向上につながります。
当のボナンザは2006年の第16回世界コンピューター選手権に初出場し、初優勝を果たします。ノートパソコン1台(周囲よりも低スペック)での優勝は、ソフトが優れていた事を証左でしょう。
ボナンザと渡辺明竜王との対局は2007年3月21日のことで、記憶している方も多いと思います。
終盤の一失で敗れますが、ニュースでも大きく取り上げられました。
今の将棋ソフトがある1番の理由は、ボナンザのソースコード公開です。(2009年1月)
ソースコードはソフトの設計図で、プログラムのリストです。これが公開されたことで、ボナンザの中身を誰でも学んで改良することができるようになりました。
初期は「ボナンザチルドレン」といった用語が生まれたほどです。
ここから、加速度的に棋力が向上していきます。
第1回電王戦のボンクラーズ、をはじめ、強いソフトが沢山生まれてくる事態になり、第2回、3回電王戦では棋士側が負け越すことになります。
優秀な技術者(プログラマー)の方々の力も非常に大きいです。ソフトの設計図は技術者の方が書いているわけですから、この方々の努力が今に繋がっていることは言うまでもありません。
・将棋ソフトの強さの特性
まず、将棋ソフトはポカと呼ばれるようなミスをしません。読みの範囲内はかなり正確に判断できますから、三手目に飛車を取られるとか、短手数の頓死とかは起こりません。
また、終盤が非常に強いです。コンピューターは計算機ですから、詰みという明快な解答が出せる局面は得意領域です。それに、終盤になっても疲れたり、動揺したりしないので、対局開始時と同じパフォーマンスを発揮できるのが大きいです。
人間の場合10時間以上戦い抜いた後に難解な終盤が待ち受けていることも多く、単純なミスが生じることもあります。ですが対局者の疲労や少ない持ち時間を考えれば、棋士が誤るのも仕方のない話です。(羽生名人でも、一手頓死を指したことがあります)
もともと、人間同士の勝負の場合は「ミスありき」だと表現すればいいでしょうか。
棋士は「対人間のプロ」ですから強さの性質や読みのアプローチも違うソフトに戸惑うことも多く、電王戦で勝利した方々はソフトに慣れた若手が多いという印象です。
(阿部光瑠六段、豊島将之七段、斎藤慎太郎六段、永瀬拓矢六段、阿久津主税八段)
現在最強とされるPonanzaは将棋倶楽部24(早指し)で69連勝、レートが3455点となりました。恐ろしいほど強いです。
ただ念のため、「ソフトが、全ての局面において最善を指せているわけではない」ことは書いておきます。
・将棋ソフトの弱点
ソフトは読める範囲内では非常に強いのですけれど、読みの外にある変化(かなり先のこと)が分かりません。ですから、電王戦第5局の△2八角のような手を打ってしまう場合があります。
有名な筋なのですが、▲1六香以下、角が取られてしまいます。しかし取られるのは20手近く先になるので想定できず、打ってしまうわけです。(現在はこの局面で打たないよう改良されているようです)
また、長期的な手の善悪が分からないと壁銀のような形を軽視することがあります。
電王戦決勝のponanza―nozomi戦では、評価値の上ではnozomiの逆転負けを喫したのですけれど、後手のnozomiが壁銀で、逆転が起こりやすい状況だったと言えそうです。
(後手優勢の判断でしたが右側の壁銀がひどく、後に逆転します)
もう一点は、プログラムミスですね。作るのは人間ですから、欠陥が見つかることもあります。Selene―永瀬戦で角不成が認識できず敗北したのは記憶に新しいです。
ただ、これは修正すればいい話ですからそこまで大きな問題ではないですね。
まとめると、将棋ソフトの特徴はこんな感じです。
・単純なミスをしない
・疲れない、詰みを読むのは非常に正確
・長期的な視点に弱い部分がある(水平線効果)
・クラスタ接続について
囲碁や将棋ソフトには「クラスタ接続」というものがあります。単純に言うと、複数のコンピューターをつなげて、性能の向上を図るものです。
…これが勝負において妥当か否かは意見の分かれるところで、コンピューターさえあれば、理論上はいくらでも強くできます。囲碁ではCPUの数1200個以上で勝負しているそうで、将棋でもGPS将棋が700台を超える接続で強さを発揮しました。
ただ、全てにおいてプラスになるわけではありません。GPS将棋は第23回コンピューター世界選手権にも出場していますが、クラスタ接続に問題が生じて敗北し、優勝を逃しています。(詰みを読み切ったはずのコンピューターの不具合です)
今の電王戦では対局規定で制限をしていますが、これについては規定で決めるしかなさそうです。
囲碁の局面数は将棋よりも更に大きいことは触れましたが、コンピューターからするとかなり難しい課題とみられていました。着実に力をつけてプロを脅かす…ことにはなっていなかったんです。
2016年1月、アメリカの大企業Google傘下の企業が囲碁棋士に互先で勝利したことを発表し、衝撃が走ります。そして3月、トッププロであるイセドル九段に勝利。私がこの文章を書くきっかけもこれですね。
この囲碁ソフト「アルファ碁」は「深層学習(ディープラーニング)」という技術を用いています。人間の脳神経を模した構造で…と、専門的すぎる内容なのですけれど、かなり高次な機械学習です。
Googleはこの手法で画像認識や音声認識に活用していましたが、囲碁にも応用させることに成功します。そして、今回の勝利があるわけです。
…ですけど、余りに唐突な話で開示されている情報や実戦例も少なく、どれだけ強いのか、ムラはないのか等細かなことは分からないのが現状です。
第4局では、不利とみたアルファ碁が悪手を連発し、敗北していますから全てにおいて人間を上回っているわけではなさそうです。
囲碁も将棋も、棋士がいたからこそソフトが強くなってきた面はあります。
・人工知能とは何なのか
今回のアルファ碁の勝利で「人工知能」という語が多用されています。
では、「人工知能」とは何なのでしょうか?
…これ、具体的に決めることができないんですね。まず「知性とは何なのか」を定義することが難しいので。機械における「知性」を明快に証明する手段はないんです。
ただ、「ディープラーニング」を使用したソフトが、これまでの命令をそのまま忠実に遂行するソフトからは一線を画しているとは言えるでしょう。
まだ「囲碁で勝負できる」段階で研究中ですから、これから他の分野に応用されていくにつれて分かってくることだと思います。
研究するのにも莫大なコストや優秀な人材を必要とするので、研究できるところが少ないのも現実です。…難しいところですね。
・さいごに
これからもコンピューターは進化していきますけれど、あくまでソフトは道具です。どう使うか次第なんですね。
現に将棋ではソフトの発想を活かした攻め方や考え方も広まり、プラスに働いた面は非常に大きいです。
ただ、ソフト指しや評価値を示しての棋士批判など、「使う人間の問題」は依然として存在します。
どんなにすばらしい道具でも、使い方によっては毒にも薬にもなります。
一連のソフトとの戦いをみていると、囲碁や将棋はとても深く、難しく、魅力的なものだと再認識できましたし、そこに人生を傾ける棋士はの姿は美しいと思いました。
コンピューターが知性に近づこうとするのもすごい話ですし、1200台を超えるコンピューターに一人の人間の頭脳が勝利することも、称賛に値すると思います。
これは私が調べたことや理解をまとめたものですし、いろいろな見方がある話ですので意見も様々だと思います。気になる方は、自分で調べてみることをお勧めします。
大事なことは、「何だかよく分からないもの」で済ませて断片的な情報に踊らされるのでなく、自分なりに理解して、判断をすることです。
この記事が、その一助になればうれしいです。
そろそろ、時間ですので失礼いたします。次の予定は…タブレットにメモしてありますので。
……あっ!………………。
バッテリーが切れたみたいです。
(了)
参考対局
第3回電王戦第5局 阿久津ーAWAKE戦
第3回電王トーナメント決勝 Ponanzaーnozomi戦
将棋ソフトの評価値について、非常に参考になるお話です。興味がありましたらご覧ください。
盤上のシンデレラ ~双葉杏は座らない~ 第7局 ‐ ニコニコ動画:GINZA