人工知能とは何か?

人工知能とは何か?

人工知能(AI)が流行っているが、機械学習(マシンラーニング)、深層学習(ディープラーニング) 強化学習(レインフォースメントラーニング)など色々な単語が入り乱れていて何がどう違うのかが今一つわからなくなってしまう。ディープラーニングが凄いと聞いたが、それは人工知能と違うのか?そもそも人工知能の定義は何なのか?何故、人によって人工知能の定義が違うの?結局、どの技術を使えば自分がやりたい事が出来るのか?などを解説。

1.何故、人工知能には色々な定義があるのか?

色々な人や団体が色々な立場から「人工知能」の定義をしているためだ。技術的な視点からは誤解がないように厳密な定義をした方が好ましいが、マーケティング的な視点からはなるべく流行りの言葉を使って宣伝したいから定義は曖昧な方が都合が良い。人工知能=電話、機械学習(マシーンラーニング)=フューチャーフォン、深層学習(ディープラーニング)=スマートフォン、と理解すると良いと思う。糸電話も電話と言えば電話である。つまり、糸電話程度の機能しかなくても「当社の新製品は人工知能搭載です!」とマーケティング部の人が宣伝しても間違いとは言えない。しかし、スマートフォンの話をしているのに固定電話とゴッチャにされても困ると怒る技術部の人もいる。

定義が曖昧になった理由は歴史的な経緯もある。人工知能は過去に2回ブームがあり現在のブームは第三次ブームと言われる。現在もやや過熱気味だが、過去のブームの際も人工知能の可能性を喧伝しすぎてしまい、出来る事と出来ない事の限界がわかってブームが去った後、大きな反動があった。プロジェクト名称に「人工知能」がついていると予算が確保しにくいため、「人工知能」と言う言葉を敢えてタイトルから外すような冬の時代もあった。ブーム時は積極的に「人工知能」の名称が使われるが、冬の時代には「人工知能」の名称が避けられる。そんな経緯もあって人工知能と言う言葉は幅広い概念になっている。

マーケティング的な視点では、人工知能と言う幅広い概念の中に、機械学習(マシーンラーニング)と言う手法があり、機械学習の中で脳の仕組みを真似たニューラルネットワークと言う手法があり、ニューラルネットワークを改良して特に優れた成果を出した注目の手法が深層学習(ディープラーニング)、の理解で良いと思う。

技術者的な視点では、人工知能を「強い人工知能(汎用人工知能と言われる事もある)」と「弱い人工知能(狭い人工知能と言われる事もある)」の2つに区別する考え方がある。「強い人工知能」とは人間同等以上の知能を持つ人工知能の事である。アトムやドラえもんをイメージするとわかりやすい。それに対して「弱い人工知能」とはある特定の作業に関して人間同等以上の処理をする事が出来る人工知能の事である。例えば、チェスで世界チャンピオンに勝ったディープブルーをイメージすると良い。ディープブルーはチェスは強くても将棋はできない。「強い人工知能」は世の中にまだ存在しない。そもそも強い人工知能が技術的に実現可能か否かは研究者間で意見が対立している状況である。しかし、「強い人工知能」を前提に人工知能脅威論が語られることもあり、定義を厳密にしたくなるケースは確かに存在する。

余談だが、私自身も言葉の選び方にジレンマを感じる事は多々ある。技術的な事を書く際に、「人工知能」という言葉を安易に使うと技術者の人から「イイカゲンで良くわかってない人」と思われてしまうだろうな、と抵抗を感じる。しかし、「機械学習」や「深層学習」という言葉を安易に使うと一般の人から「説明なしで突然難しい単語を使う偉そうな人」と思われてしまうかもしれない。書く文章の内容によって適宜使い分けていきたいが、一般の人を対象読者と想定し、「人工知能」の単語をなるべく使う事を心掛けたいと考えている。

さて、人工知能、すなわちAIが一番イメージしやすいのはコンピューターゲームにおける敵の動きだろうか。憎たらしくもプレーヤーを邪魔してくる敵の中にはまるで人間が操作しているかのように錯覚するような強敵もいたのではないだろうか。

古くはパックマンの敵モンスターが有名だ。やった事がない方は是非、下記リンク先でモンスターの動作を確認して欲しい。矢印キーでパックマンを操作する事が出来る。
https://www.google.com/logos/2010/pacman10-i.html

実は彼らは、粘着タイプの赤、先回りしようとする頭脳派タイプのピンク、自由奔放に動くオレンジなど、色によって性格が異なる。この性格は実際にモンスターが考えているわけではなくて、例えば赤だったら

(1)右に進むとパックマンとの距離が縮まるか?
イエス→右に進む
ノー→左に進む

(2)上に進むとパックマンとの距離が縮まるか?
イエス→上に進む
ノー→下に進む

(1)と(2)をひたすら繰り返す事によってあたかも人間が操作しているかのようにパックマンを追う事ができる。これも原始的なAI、英語で言うArtificial(人工的な) Intelligence(知能)である。しかし、これは人間の命令を忠実に実行しているだけなので応用が出来ない。例えば、袋小路に入ってしまって右にも左にも移動できないなど、従来にない状況になったら人間が新しい命令を逐一追加してやらねばならない。細かく指示しなくてもある程度、機械が自分で学習して欲しいよね、って事で出てくるのがMachine(機械) Learning(学習)である。

2.機械学習とは何か?

犬が写っている写真と猫が写っている写真が1000枚あって、猫の写真だけ抜き出す作業をコンピューターに頼むときはどうすれば良いだろうか?従来のやり方だと「前歯が10cm以上だったら犬です」「体の高さが60cm以上であったら犬です」等の厳密な振り分けルールを指示する必要がある。写真に歯が写ってなかったり、体の高さが写真からわからなかったらルールを追加する必要があるので到底現実的ではない。

そこで、「顔の長さ」「体の大きさ」「目の形」に注目して写真を猫と犬に分けなさい、とコンピューターに指示する。コンピューターは1000枚の画像を比べながら、「顔が長い動物と短い動物がいる」「大きな動物と小さな動物がいる」等々の特徴を学習し、学習したルールに基づいて写真をグループにわける。場合によってはグループに分けた結果を人間がチェックし、間違えを修正して再学習した方が良いケースもあるかもしれない。いずれにしても、一度学習してルールが完成したら他の写真に対しても応用出来るので大変使い勝手が良い。

実際の機械学習では「顔の長さ」等の具体的な指示ではなく、もう少し数学的な特徴を指示するのだが、いずれにしても、ルールを直接指示するのではなく、どんな特徴に注目するべきかを人間が指示し、振り分けルールは機械に学習させる。

機械学習は「注目すべき特徴を人間が指示する」のがポイントである。もし人間が予測できていなかった事や上手く特徴を説明できないケースに対してはどうすれば良いだろう?

例えば、

・猫と犬の写真のはずだが、極まれにカバの動物の写真が混ざってしまう。
・頭の良い猫の写真だけを抜き出してくれ、と社長が言い出した。

もっと深く深くデータの特徴を学習し、人間が気づいていないような僅かな差異も見つけてルール化して欲しい、それがDeep(深層) Learning(学習)のアイディアである。

 3.深層学習(ディープラーニング)とは何か?

ディープラーニングは与えられたデータから特徴を抜き出す部分も機械に任せる。例えば、頭の良い猫と頭の悪い猫の見分け方は(大抵の)人間にはわからないが、頭の良い猫の写真と頭の悪い猫の写真がたくさんあれば、人工知能が頭の良い猫の特徴と頭の悪い猫の特徴の微妙な違いを計算し、猫の写真を見ただけで区別がつくようになるかもしれないのだ。

人が説明する事のできない、認識する事が難しい特徴を機械が捉えてくれる。これは大きなブレークスルー、技術的革新となった。人工知能が囲碁で人間に勝った事で有名になったが、非常に沢山の応用ができる。例えば、バク転をする事を考えてみよう。どこにどのくらい力を入れて回転するべきか、どうやって着地のバランスをとるのか、等々は人が説明できる事ではない。大まかなコツを指示して、何度も失敗して体で覚えるしかないだろう。まさにそれはディープラーニングがやっている事であり、ディープラーニングで学習したロボットがバク転をできるようになっている。

ディープラーニングは理論だけではなく、コンピュータの性能の向上とインターネットによって学習用データ(画像や文章など)の入手が容易になった事がある。最新の設備と長期間の研究がなくとも、多少の努力で理論とツールの使い方を学べば、従来到底できないと思われていた事ができるようになるのだ。毎日のように新しい理論とその実践が発表され、非常にエキサイティング世界になっている。

4.強化学習(レインフォースメントラーニング)とは何か?

強化学習は、ゲームを人工知能にプレイさせる事を想像するとわかりやすい。パックマンをプレイする場合は、人工知能に良いスコアを出す事を指示し、操作は全て人工知能に任せる。最初はすぐにモンスターに捕まってスコアは伸びないだろう。しかし、だんだんと何をすればスコアを伸ばす事ができるか、つまりモンスターに捕まらずに地面に落ちている餌を効率的に拾う方法を学習し、最終的には人間が到底及ばないレベルまで達する。

強化学習のアイディア自体は昔からあった。しかし、パックマンの得点を伸ばすためには何が最も重要なのだろうか?粘着してくる赤いモンスターの動きか?それとも先回りしてくるピンクにも注意すべきだろうか?そう、例の「何が最も重要なのか人間にも良くわからない問題」だ。この問題を突破してくれたのが、そう例のディープラーニングだ。

ディープラーニングの手法を取り入れたお蔭で強化学習は応用範囲が一気に広がった。様々なゲームで、人間がほぼ勝てないくらい人工知能は強くなっている。有名どころとしては囲碁の例もあるが、昨今の人工知能の進化はすさまじく2018年現在も日進月歩で研究結果が発表されている。しかし、人工知能が人間の良い対戦相手になるかと言うと、ギリギリ反則にならない行為を繰り返す等、対戦していて面白くもなんともない行動を繰り替す問題がある事も知られている。ある程度手を抜いてもらわないともう人間は勝てなくなってきているのだ。