最近は人工知能分野の話題に事欠かないので、IT系に詳しくない人でも、Deep Learning がどうとか、人工知能がどうとかという話題を耳にすることが多いと思います。
猫も杓子も Deep Learning な世の中ですが、そもそも人工知能とか Deep Learning ってなんなんだっけ？ という疑問に答えられる人は多くはないはずです。
今回は、広く浅く、人工知能と Deep Learning について書きます (この記事をご覧になればわかるように、人工知能 = Deep Learning では決して無いのですが、両者はよく並んで紹介されるので、ここでも同列に書いています)。
機械学習は、「人間が明示的にプログラミングしなくても学習する能力をコンピュータに与える」ことだとされています。
簡単に言うと、「人間がプログラミングするのが大変な部分を、機械が自動的に学習できるようにしよう」ということです。
たとえば文字認識をする場合、人間が「 "あ" という文字はこういう形で…」と1文字ずつプログラミングしていくのは対象の数から言っても大変ですし、誤りが少ないように設計していくのも困難です。
それよりは、予め様々な文字を用意しておいて、「どういう特徴なら "あ" という文字なのか」というルールを自動的に獲得できるようにしておいたほうがなにかと都合がよくなります。
このように、文字認識、迷惑メールの検出、音声認識、画像認識など、「こういう特徴があるなら、こういうもの」というルールを自動的に獲得させるのが機械学習の目的です。
ここで、「2層から3層にしただけでそんな劇的に性能アップするんだったら、4層とか10層にすればいい」と思うかもしれません。
なんと実際に層をたくさんにして、また各層のニューロンの数を増やすと、表現能力が上がる（そのネットワークでできることが増える）ことが早い段階でわかっていました。
ところが変わった人が世の中にはいて、誰もニューラルネットワークに見向きもしなくなっても地道に「なんとかして多層のニューラルネットワークをうまく学習できないだろうか？」と研究し続けた人がいました。
たとえば Bengio や Hinton といった研究者がそうで、2006年ころにようやく「ニューラルネットワークの層の数を増やしてもうまく学習する方法」が編み出されました。これが Deep Learning です。
層が深くても学習できるから Deep というんですね。
それで試してみたらどうなったかというと、今までに提案されていたあらゆる手法を圧倒する性能が出てしまったので、世界中の研究者が度肝を抜かれました。
このあたりの話は、ご存じの方も多いかと思います。
カラスはクイズに応えることは出来ず、膨大な知識データベースもありませんが、おそらく強いAIを持っていて、誰かが教えなくても変化していく環境に適応し、地理を把握し、情報を取捨選択して記憶し、仲間とコミュニケーションをとり、外敵から身を守り、問題を解決するための推論をし、道具を使う、ということを十数グラムの脳で行うことが出来ます。
両者は明らかに異質な存在であり、まったく異なる仕組みによって動作していると考えられます。
普段は弱いAIと強いAIがごちゃまぜに議論されますが、弱いAIはすでに開発されており、車の自動運転ができるレベルに到達しているので、ここではこれ以上触れません。
最近よく言われている「20XX年までに人工知能が実用化する！」といった話題は、明らかに強いAIを指しているので、この記事でも以降は特に断りがない限り、強いAIの意味でAIと言います。
知能についてはいろいろな考え方と定義があるので非常に難しい問題で、たぶん「哺乳類には知能がある」くらいまでなら賛同する人が多いとは思いますが、これといった決め手には欠けるのが現状です。
意識は脳のどこにあるのかについてはガザニガの「<わたし>はどこにあるのか」が読み物としても面白いと思います。
自動車を改良しても早くはなれど月には永遠に行くことができないのと同じで、月に行くためには最初からそれを目指したアプローチをする必要があります。
つまり、月に行きたかったら、まずは小型のロケットを空に打ち上げたり、人工衛星を飛ばしてみたりする段階を踏む必要があるわけです。
AIを作る場合なら、従来の機械学習という部分からいったん離れてみて、まず脳のことをきちんと調べたり、シミュレーションしたり、原始的な脳を再現してみたりする段階が必要なはずです。
たとえば、 ある課題を解決するのに、Deep Learning を使うと99%の精度が出るが、学習に1週間かかり、専用のエンジニアを1人雇わないといけないとします。
ここでもし、精度が95%に落ちてしまうが、一般的なエンジニアがさっと使えて6時間で学習が終わる方法Xがあるとします。
どちらを選ぶかはシチュエーションによるでしょうが、後者に軍配が上がるシーンも多いでしょう。
もうひとつの例として、ロボット制御を考えてみましょう。
もし強いAIや、そうでなくても脳の運動制御機能の模倣ができたら、生き物のように非常に滑らかな動きができるかもしれません。
これは良いことかもしれませんが、今日の制御理論はものすごく優れていて、自動車工場をご覧になった方も多いと思いますが、人間には不可能な速度と精度で作業をこなすことができるわけです。
ここにもわざわざニューラルネットワークを導入する必要性は薄いように思います（マーケティング的な都合を除けば）。
