日曜プログラミング

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

読んだ本感想文 : マッチ箱の脳(AI)―使える人工知能のお話

私は大学時代、人工知能の一分野を専攻していました。なので多少の知識はあります。ただ、人工知能の素養のない人に人工知能のお話をするときに困ってしまいます。
また、テレビやネットニュースで人工知能、AIと銘打った話題が出るたびに、「この記事を書いた人は人工知能を理解しているのか」とか「この記事を読んだ人は人工知能を誤解しないか」などが不安になります。

ということで、私も再勉強。理系の人に人工知能について話すためじゃなく、だれでもわかる話をできるようになるために。今日はこの本を読みました。

マッチ箱の脳(AI)―使える人工知能のお話

マッチ箱の脳(AI)―使える人工知能のお話

結構話題になった本ですよね。読んだ人も多いかと思います。

人工知能とは何か

ひとまず、人に語りたくなる内容になっている

本書籍の主題になっているように、文系の人でも(という言い方は少し失礼な気もしますがw)わかるように、数字をできるだけ排除した構成になっています。
ほぼ挿絵を読むだけで、人工知能がどのように動いているかがわかるようにできています。説明がうまいですね。

逆に、数字を排除した分、数学的にどうしての方法が正しく動くのかについては書いてありません。また実際にプログラミングした時についても書いてありません。このあたりは本書籍の趣旨からは外れると判断されたのでしょう。
興味を持った人は、その用語からWeb検索したり専門書籍を辿れると思います。用語のインデックスになっていると思えばいいのかなと。

## 古い本だけど大丈夫?
大丈夫だと思います。現在の人工知能の話題にもかなり絡んで来ています。
ニュースなどで人工知能の話題が出て来た時に、「あぁ、この人工知能はこんな感じの仕組みで動いているんだろうなぁ」ということがぼんやりと見えてくると思います。

私も語りたくなった

私の学生時代の研究の話

私は、どちらかというと機械学習ではなくルールベースの人工知能を研究していました。現在の機械学習や深層学習はほとんど勉強せず、少なくとも当時は、それらはほぼ意味のないものだと思っていました。
というのも、機械学習はパラメータ調節のための仕組みだと思い、人間の知能を反映していないものだと考えていました。

今となっては、その考え自体はあまり変わってないですが、大きく間違っていたところがあると思っています。
必要なのは、人工知能を人のために使えるようにすることであり、そこの過程・どういう人工知能を使っているかは人工知能の利用者にとってはあまり関係のない話だということです。

本ブログを読んでくださっている方は、私がTensorFlowを使って深層学習のモデルを使ってツールを作る話を読んでいただいている方もいらっしゃるかと思います。
blog.gelehrte.com
本ツールは、深層学習を勉強したくてツールを作っているもので、本ツールを作るために深層学習を使うわけではありませんでした。そのあたりは反省しなければいけないと思っています。
また逆に、画像の形をルールベースで取得するより、ぼんやりとしたパラメータで文字認識することは正しい手法だろうなということを今は感じています。
最近、システムの改善に手をつけれずにいますが、また改善の余地があるなと気付かされた書籍でした。

ゲームの話

今、私が遊んでいるゲームはFF14ポケモンGo遊戯王デュエルリンクスです。
いずれも人工知能が取り入られています。
本ブログを読んでいる人の多くがFF14プレイヤーだと思うので、その話を。(FF14を知らない人にもわかるような用語をできるだけ使います。

よくFF14は大縄跳びと例えられます。良くも悪くも。
強敵の攻撃パターンが基本ワンパターンで、少しランダム性が含まれている程度で、そのパターン化された攻撃に対して参加者全員が対処していくのが基本的な流れです。
これはある意味、人工知能ではないという意見もあるかもしれません。なぜなら人間らしい行動ではないですからね。だからプレイヤーvsプレイヤーコンテンツにハマる人も出てくるのだと思います。
しかし、よく見ると人工知能が取り入れられています。

例えば、プレイヤーや敵の能力パラメータ調節に人工知能が使われていると思います。
いにしえのファミコン時代はパラメータが明らかにおかしいバグ敵がたくさんいたような思い出があります。今となってはそこまでのバグ敵は出てこない気がします。
もちろん人力で、開発プレイヤーがパラメータ調節している部分も多いと思いますが、人工知能がサポートしている部分の大きさを感じます。

また敵の動きにも人工知能的な内容が入ります。
襲ってくる敵からプレイヤーが逃げる時、地形に対応したルールを守りつつ、かつ最短ルートで追いかけてきます。
この辺りも実はかなり複雑な計算が必要だと思われます。最短ルート探索は、想像しただけでもかなり難しい問題ですからね。
(巡回セールスマン問題とか。例えば、遊園地で最短ルートでアトラクションを回るルートを計算するとか考えていただければ難しさがわかるかなと。)

ここで語りたいのは、難しさではなく、最短ルートで襲ってくるっぽい感じに仕上げていることです。
おそらくですが、実際には最短ルートではなく擬似的に最短っぽいルートを計算して襲ってきているだろうし、
ある一定以上追いかけてこないのは、その敵の追いかける範囲を制限することで計算量を制限して、サーバー負担を軽減しているのだと思います。
(もちろんMPK対策とか色々あるでしょうが、その辺りは脱線するので割愛

と、まぁ語りたくなる書籍です

書籍は広く浅く多岐に渡る人工知能の話を書いてありますので、ここで一つ一つ感想を述べると発散してしまうので、このあたりにしておきます。
今後、どんどんニュースなどで人工知能の話題が取り上げられてくると思いますので、予備知識の取得として本書籍を読んでおくのはいいのではないでしょうか。

それではー


スポンサーリンク