モンテカルロ5五将棋の試み、その3。

 昨日は電王戦でしたね。ということで、細々と続けている私のモンテカルロ法の試みの中間報告でもここに書こうと思います。詳しいことは過去のエントリを「モンテカルロ」でブログ内検索して読んでください。このシリーズはどうぶつしょうぎから始めたのですが、その最初のエントリはこれです。

 さて、まだ本将棋に至っておらず、相変わらず5五将棋なのですが、棋譜がそこそこまともになってきつつあります。前回ベンチマークと同様に、駒割りのみの単純なmin-max4手読みを後手にして、先手を私のモンテカルロ試行数10000試行/局面で対戦してみたところ、先手の85勝15敗でした。前回が28勝22敗だったので、結構な性能向上です。

 何を改善したかということですが、本質的なことはほとんどどうぶつしょうぎの頃と変わっておらず、特徴量を変えてみたり、パラメータの数値をちょっと変えてみたりしただけです。ただし、一行だけ本質的な改善をしています。その一行は何かというと、局面評価関数にわずかな割合で乱数を混ぜたということです。なぜそれが本質的なのかということは面倒なので説明しません。

 そこそこのまともさなので、来年の秋くらいのUEC5五杯に出てみたくなりました。一勝くらいはできるんじゃないでしょうか。でも、私はGUIが作れません。将棋所の使い方(USIの使い方)も分かりません。CUIならなんとかいけますが、体力がないので会場で操作をし続けることができません。というわけで、結局出ることはないでしょう。そのうちソースを公開すると思います。

 ところで、私のソフトの最大の特徴はモンテカルロがどうのこうのということではなく、棋譜なしで学習しているところだと思います。学習の仕方は過去の記事に書きました。予想するに、やはりモンテカルロではなくmin-maxの方が強いと思います。でも、学習法は私がやっているような感じの方がコンピュータらしい手が出るんじゃないかと思っています。

 以下、棋譜の一例。棋譜はご自由にお使いください(使う人はいないと思いますが)。

続きを読む

NVDAの人が出てるネットラジオ。

 面白かったネットラジオの紹介です。

 http://www.tomgnet.com/himatsubushi/live/backno.htm

 これの2011/12/20「NVDA日本語化プロジェクトメンバーの西本さんに聞く」というやつです。

 私のような目の見える人はほぼ使わないソフトなのですが、世の中には目の見えない人のために画面上の文字を読み上げてくれるソフトのジャンルがあり、スクリーンリーダーと呼ばれているようです。そのスクリーンリーダーの中にNVDAというもの(多分固有名詞)があり、その開発者がラジオに出ています。NVDAの最大の特徴はオープンソースだということなんだろうと思います。

 で、ラジオのホストは、スクリーンリーダーのユーザです。つまり、目の見えない人です。目の見える私としては、「なるほど、目が見えない人たちはこういうふうにパソコンと付き合っているのか」というのが面白かったです。また、我々がfirefoxを入れるためだけにIEを使うように、NVDAもほかの有料スクリーンリーダーの補助のために使われていたりなどするようです。事前知識なしで、面白い話満載です。それから、個人的に最も面白かったのは、「アクエストーク」(「ゆっくり」の声)を作っている人が昔何をやっていたのかが語られているところだったりしました。

 それから開発者の西本さんの経歴も面白いかもしれませんが、私は以前、東大の一室が会場の音音研というところでお世話になっていたので、それほど新鮮味はなかったです。

 真面目なことを書いておくと、技術がどう使われているのかとか技術がどう作り出されているのかとかそのあたりが分かる、ためになるラジオでもあります。

人工知能が東大に入るときの難所。

 一部で話題になっている「ロボットは東大に入れるか」(国立情報学研究所「人工頭脳プロジェクト」)であるが、私の周りでは専門外の方々の反応の大多数は「当然入れる」というものだった。私の直感では「難しい」ということになっているので、ここでは何が難しいのかということを簡単に書く。具体的に書くつもりはない。

 おそらく「当然入れる」と思っている人は、無意識のうちに「コンピュータを使えば当然入れる」と思ってしまっているのだろうと思う。さらにいえば、「人間がコンピュータを使えば当然入れる」と思っているはずである。その上で、「人間がいてもいなくてもコンピュータなら当然入れる」と推論してしまって、結論として「コンピュータなら当然入れる」と思ってしまうのだろう。でも、人間がいるかいないかというのは非常に大きな問題であり、その部分こそがこのプロジェクトの肝である。

 仮に、人間がコンピュータを使って受験することを考えよう。このとき、人間はまず問題文を読む。そして、コンピュータに必要な情報を入力し、解答に関する出力を得る。この出力をもとに人間は解答を書く。このとき人間は、問題文をコンピュータに分かるかたちに直すという作業をしている。そして、コンピュータの出力を人間に分かるかたちに直すという作業もしている。この人間がやっている「問題文の読解」「解答文の作成」こそが機械にとって難しい部分である。今回のプロジェクトはほぼこの二点へのチャレンジだと思ってよい(と書くといろいろと文句をいわれそうだが、そこが最も難しいところである)。

 コンピュータは確かに掛け算も足し算も即座に計算する。難しい微分方程式を即座に解いてくれたりもする。チェスで人間のチャンピオンにも勝った。クイズでも人間に勝った。人間にとって難しいことをことごとく成功させてきた。一方で、人間にとって簡単なことの多くはまだできないのである。自動車は時速百キロで走ることができるが、ロボットの二足歩行はまだまだ不自然であるし、「けんけんぱ」(片足飛びの遊び)などに至ってはまだまだ無理である。同じように、東大の入試よりもむしろ小学校の理科の方が人工知能にとっては難しいはずだという話もキックオフシンポジウムでは出た。さらにいってしまえば、幼児はものすごく速く母語(母国語)を憶えていくが、人工知能はまだまだ憶えることができない。そう、機械にとっての難しさは、ほぼ人間の感覚とは逆なのである。

 今回のプロジェクトが成功したら、人工知能の研究者はさらに「(人間にとって)簡単な」問題に取り組むだろう。それを素晴らしいと思うか滑稽だと思うかはあなたの自由である。

音声認識の得意なことと苦手なこと。

 年に数回くらい「音声認識でこんなことはできますか」という趣旨のメールが来るので、やりやすいこととやりづらいことを書いておこうと思う。なお、これは現時点での技術状況であり、将来どうなっているかは分からない。

1.大量データは得意。
 やはり機械なので、大量のデータの処理には向いている。別に少量のデータでも精度が変わることはないが、少量のデータなら人間がやった方が精度がいいので音声認識の導入はあまり意味がない。

2.雑音に弱い。
 マイクと口の距離が近ければ周りの音はさほど問題にならないが(携帯電話など)、距離が離れると相対的に周りの音が大きくなるので精度が落ちる。ただし、雑音の種類が分かっている場合には(車の走行音など)、事前に準備ができるため、そこまでひどく精度が落ちることはない。

3.話し手が分かっていると助かる。
 機械にとって別の人の声は同じことを喋っていても別の音なので、人による声の違いに対応するということを今の音声認識はしている。この対応の戦略は大きく分けて二つあり、一つは音声認識使用者の声に合わせるというもの。もう一つは少々精度を犠牲にして多くの人の声に対応するというもの。もし、話し手があらかじめ分かっていたり(ニュース読み上げ時のニュースキャスターの声など)、事前にある程度の時間をかけて機械に声を憶えさせたりすることができれば、精度が上がる。

4.語彙が限られていると助かる。
 今の音声認識は「ひらがな→単語」ということをしておらず、最初から単語単位で認識している(10年以上前からそうしている)。理解しがたいと思うが、とにかく単語単位の認識である。逆に言えば、基本的には限られた数の単語しか正確に認識することはできない(いろいろと例外はある話だが)。認識対象の単語の数が少なければ少ないほど認識精度は上がる。つまり、話題が限られているときの方が精度が上がる。

5.構文が限られていると助かる。
 「4」の続き。その単語は基本的に自由な順番で喋って問題ないが、日常会話のようなくだけた語順よりは、ニュースのようなきちっとした語順の方が精度が上がる。これは、単語と単語のつながりを機械が考慮しているため。

6.誤りを許容することが重要。
 音声認識は人間よりも聞き誤りが多い。どうしても誤りが生じるので、誤りが生じて困るタスクには適さない。誤りが許容できるタスクや、誤りをあとから人間が逐一修正できるタスクに使うのが適切である。

 以上、6点書いた。これを読むと結局どうにも使えないような気分になるが、意外と需要があったりする。肝はやはり最初に書いた「大量データ」である。どういうときに表計算ソフト(エクセルなど)を使い、どういうときに手計算をするかということを考えると、使い道が分かる。

モンテカルロ5五将棋の試み、その2。

 本日の日記は現在作っている5五将棋棋譜である。技術的な説明はせず、単に棋譜を載せるだけである。メールやtwittergoogle+での反応や要望を見て今後どこまで技術的な説明をするかを考えるつもりである。反応が薄ければ説明はしない(前回のどうぶつしょうぎのやつとあまり変わっていないから)。なお、将棋のモンテカルロ法に手を出した最初の記事はこれ。

 先手が現在作っているモンテカルロ法のものであり、後手は評価関数が駒割のみの単純なmin-max4手読みである。モンテカルロ法の1局面のプレイアウト回数は1万回である。50回対局させてみたところ、先手の28勝だった。先手と後手はおよそ互角である。先手と後手を入れ替えての対局はしていない。

 以下、棋譜。空白などがずれる人は、エディタにコピーアンドペーストしてください。整形などはしていないので余計な文字列が入っていたりしますが気にしないでください。なお、この棋譜に関してはご自由にお使いください(使う人はいないと思いますが)。モンテカルロの指し手を見た感じ、プロ棋士の山崎七段みたいだなあと思った。思っただけ。私のモンテカルロの方が全然弱いけど。

続きを読む

倫理学の人と喋った。

 将棋関連の知り合いに若手倫理学者がいたので、なんとなくskypeで喋って録音してみました。いわゆるラジオです。

 聞き返してみて、私は話を聞くのが下手だなあと思いました。リアクションが単調。全くの専門外の分野の話だとやっぱり話の聞き方が浅くなりますね。あと、全部で50分あるのですが、さすがに長いなと思いました。