将棋のソフトから見るAIの得意、不得意とは

人工知能がこれからますます発展する、という話はちらほら出てきています。現実として私はまだそれほど実感はありません。車は自動運転になっていませんし、自動で翻訳できる機械も身近にありません。ただ、機械が自動的に学習する仕組みは作られているようです。
私は将棋が好きなので、今回は将棋の人工知能に対する進歩について調べてみようと思います。
特に将棋が強い人工知能ができたところで社会に大きく役立つわけではないですが、だからこそより研究しやすい分野なのだと思います。これが自動運転だったり翻訳機だったりすると失敗したときのリスクが非常に大きいので、ある意味とても研究しやすいと思います。

また、将棋ソフトに注目した理由としてオープンソースという点があります。ソフトが無料で配布されているものがあり、特に将棋が強くなくても、また逆にプログラミング言語に疎くても、それがある意味良い作用となり全く想像しない進歩の仕方でソフトが強くなっていった、という背景があります。

将棋ソフトの種類

将棋ソフトは
・Bonanza
・ponanza
・elmo
・ツツカナ
・やねうら王
・Apery
・水匠

これらが人間のプロ棋士と戦っても勝てるソフトです。
元々はパソコンが人間に勝つのはあり得ないと言われていたものが、とうとうパソコンが勝っても何もおかしくない時代になりました。これほど多くのソフトが人間に勝てるのであれば、もう学習した人工知能に勝つのは難しくなりそうです。
将棋棋士として非常に有名な羽生善治さんの対談があり、(https://diamond.jp/articles/-/239270)人間ができることと機械ができることの差について説明されていました。
元からある棋譜を覚えるという点ではコンピューターには到底かないません。また人間には無駄を選んで新しい手を作る発想があります。どちらも優れている点は違うので、どうAIの手を参考にしていくか、これから新しい試され方がするようでした。

それでは、この学習によって生まれた人工知能は一体どのようにここまで強くなったのでしょうか。

人工知能の学習

以前まで将棋の製作されたソフトでは、何パターンか行動を決めてどんな場面でも同じ手を指すというものでした。それゆえに無意味な手を繰り返したり、自滅する手を指したりと到底プロには及ばないものでした。
ただ、

そもそも覚えられる棋譜の母数が増えたことと、
評価関数と呼ばれる、現時点でどちらが優勢になるか劣勢になるかという判断を数値化できたこと、
ソフト同士で対決させて学習させることが可能になったこと、
これらの要素があり、劇的に強くなりました。

ただ、よくよく調べていても、決定的に強くなった瞬間は「実際にはわからない黒魔術のようなもの」ということでした。単純に母数を増やせば精度は上がりますが、相手も同じことをすると絶対に勝てる方法はないわけなので、「こうすれば勝てる」という方法を探すこと自体がおかしな話のようです。
ですが試行錯誤を繰り返して、コンピューターとしての評価の仕方をコマの数なのか相手の王様にどれだけ近づいているかにするか、どの場面でどう指せば良くなるのか、が偶然一致して、勝手に強くなっていくのが現実のようです。

そもそも将棋のルールを覚えさせようとするとプログラミング言語では1000行ほどになるそうで、(https://japan.cnet.com/article/35115995/)そこから強くなる方法、というのは長い道のりでした。ですが、機械自体に学習させてみて、5億通りの棋譜を覚えさせると、自然とルールを覚えていたようです。これがどのタイミングでなぜルールを発見できるのかというのは、実際にはよくわかっていません。それゆえに黒魔術のようだと人工知能は言われています。

人間の学習と機械の学習の違い

実はこれらの将棋AIソフトは無料で配布されているものがあります。
実はelmoと呼ばれるソフトは
https://mk-takizawa.github.io/howtouse_elmo.html
こちらから無料で誰でもダウンロード、導入が可能です。
このように、実際に自分で触れること、特に企業で依頼があるわけではなくとも自分でそのようなソフトを作れる時代になったことで、試行錯誤の回数が劇的に増えて、結果プロにも勝てるソフトが生まれたのではないかと思っています。やはり、オープンソースにすると飛躍的に進歩するのはよくある話のようです。

人工知能=万能のソフト というわけではなく、現段階ではまだ発展途上のようです。
おそらく、この方法があればうまくいく、という方法を少人数で探すのではなく、多くの人が自由に試してみて、たまたまうまくいったものを採用する、という方法が主流になりそうです。

機械の方が人間より強いのであれば人間が将棋をする理由はないのではないか、という永遠のテーマに対して、機械と人間が闘うよりも、記憶や関数といったところを手助けしてもらって人間が思いつく手を考える、というテーマに変わっていけばと思います。

これは将棋ゲーム以外にも適応できると思います。名刺や請求書などの文字をExcelに打ち込んだりすることは、もはや人間がやらなくても画像を読み込めば機械がやってくれる時代になっています。または顔写真をきれいに加工する仕組みも、自分でやるより機械がやる方が画一的にきれいになります。その中で人間が操作したり手を加える意味として、手作業でやっていた部分を省いてビッグデータが簡単に作れるようになったり、よりきれいな画像を探してあえて無駄を作って新しい要素を加えてみたりと、人間が間違えたり試したりできる範囲が広がれば良いと思いました。車の自動運転などリスクが非常に大きいものに関しては時間がかかると思いますが、そうでないものに関してはより多くの人が試した方が結果に反映されやすいのだろうと思いました。

以上に紹介した将棋ソフト意外にも、いくつか無料で使えるAIを調べてみました。

https://note.com/shufugaishi/n/n5be63089bd38

こちらにいくつか無料で使えるソフトがあります。

その中の1つ、Nanonet(https://nanonets.com/)こちらを試しに使用してみました。

請求書や領収書、飲食店のメニューの写真をアップロードすると、自動でその文字を読み取り、メニューなのか価格なのかを判断するというものです。

レシートをいくつか読み取らせたところ、自動で商品名、商品金額を読み込んでいました。ここからどう分類するかをまずは人間が決め、何通りもしていくと記憶していくという仕組みのようです。機能としては非常に簡単で誰でも使えるので、試しに触ってみてはいかがでしょうか。

今日の記事は以上です。

ITにまつわるご相談

私たちは、かわさきIT相談のページを用意しております。

身近なところからITを取り入れたい、だが分からない点もあり不安、といった、ITに関わるご相談がある方がいらっしゃいましたら、

https://machi-it.jp/gosoudan/
こちらのページからお気軽にご相談いただければ幸いです。