読者です 読者をやめる 読者になる 読者になる

Sideswipe

情報工学、計算論的神経科学など、真面目なこと書くブログ。お仕事の話は Twitter: @kazoo04 にお願いします。

人工知能は Deep Learning によって成されるのか?

最近は人工知能分野の話題に事欠かないので、IT系に詳しくない人でも、Deep Learning がどうとか、人工知能がどうとかという話題を耳にすることが多いと思います。

猫も杓子も Deep Learning な世の中ですが、そもそも人工知能とか Deep Learning ってなんなんだっけ? という疑問に答えられる人は多くないはずです。

今回は、広く浅く、人工知能と Deep Learning について書きます (この記事をご覧になればわかるように、人工知能 = Deep Learning では決して無いのですが、両者はよく並んで紹介されるので、ここでも同列に書いています)。


f:id:kazoo04:20151008215107j:plain

最初に結論

Deep Learning は(真の)人工知能ではない。なんでもかんでも人工知能って呼ばない。

「Deep Learning」、「人工知能」ともにバズワード*1になりつつあるので気をつけよう。

コンピューターで「脳」がつくれるか

コンピューターで「脳」がつくれるか

機械学習ってなんだっけ

機械学習についての簡単な説明なので知ってる人は飛ばしてください。

機械学習は、「人間が明示的にプログラミングしなくても学習する能力をコンピュータに与える」ことだとされています *2

簡単に言うと、「人間がプログラミングするのが大変な部分を、機械が自動的に学習できるようにしよう」ということです。
たとえば文字認識をする場合、人間が「 "あ" という文字はこういう形で…」と1文字ずつプログラミングしていくのは対象の数から言っても大変ですし、誤りが少ないように設計していくのも困難です。それよりは、予め様々な文字を用意しておいて、「どういう特徴なら "あ" という文字なのか」というルールを自動的に獲得できるようにしておいたほうがなにかと都合がよくなります。

このように、画像認識、音声認識、迷惑メールの検出、など「こういう特徴があるなら、こういうものだ」というルールを自動的に獲得させるのが機械学習の目的です*3

どうやって「学習」するか

この「ルールを獲得する」という部分は当然一筋縄ではいきません。さまざまな手法が提案されています。

その中でもよく使われている方法が、決定木*4SVMSupport Vector Machine; サポートベクターマシン)、ニューラルネットワーク*5あたりです。 Deep Learning もニューラルネットワークの一種です*6

具体的にどうやっているかというと、正確性を犠牲にしてわかりやすく説明すれば、例えば迷惑メールの検出(スパムメールフィルタ)の場合、「この単語が入ってたら-0.12点、この単語が入ってたら+0.42点、…」というルールにしたがってメールに点数をつけて、点数が0点以上だったら迷惑メールと判断する、といったことをします*7
それぞれの単語にどうやってそんな点数をつけるのかというと、ふつうのメールと迷惑メールを予めたくさん集めておいて、それぞれのメールにどんな単語が入ってるかを分析して決めます。この決め方が大事で、前述のいろんな方法があるわけです。

結局なんなんだっけ

今述べたように、ほとんどの機械学習アルゴリズムでの学習結果=知識というのは数値の羅列(ベクトル)で*8、良い数値(=上手に判断できるベクトル)を求めるのが機械学習の目的です*9

ニューラルネットワークってなんだっけ

ニューラルネットワークは、もともと「脳の機能をコンピュータ上に再現したらすごいことができるかも!」という発想で1943年ころ生まれました(形式ニューロン*10

f:id:kazoo04:20151007195948p:plain

形式ニューロンの図。いくつかの入力がニューロンにあり、入力の合計が一定以上の値になると、発火(出力)が起きる。個々の入力はただの数値であり、入力の数字に重みを掛け算して足す、ということを繰り返して出力を得る

ニューラルネットワークブーム(1回目)

形式ニューロンは確かに発想としては脳の一部(ニューロン)の構造を参考にはしていましたが、実際のニューロンからはかけ離れているため生理学的な妥当性はほとんどありません。

とはいえ、これを利用して、 1958年に Rosenblatt が形式ニューロンをもとにパーセプトロンを発表しました。以下のような構造をしています。丸がニューロン神経細胞)、丸同士をつないでいる線がニューロンがどれくらい強く接続されているかの重み(軸索)です。要は、形式ニューロンを2層構造(入力層、出力層)にしただけです。

f:id:kazoo04:20151007200055p:plain

これだけでもある種の学習能力があり、また「脳の再現」というキャッチーさからブームになった*11のですが、学習できる問題とできない問題があることが難点で*12、しかも実用的には学習できないもののほうが多かった*13ので、あっという間にブームが去ってしまいました(ニューラルネットワーク冬の時代)。

ニューラルネットワークブーム(17年ぶり2回目 *14 )

1986年に Rumelhart によって パーセプトロンを改良した BP (Backpropagation; バックプロパゲーション) が発表されました。
これも実際の脳と同じかと言われると非常に微妙ではあるのですが、特に BP は「うまく設計すればどんなものも学習できる」ことを数学的に証明した*15ことで、再度ニューラルネットワークブームが訪れました。

パーセプトロンバックプロパゲーションは以下のような構造になっています。なんとただ2層構造から3層構造にしただけです(入力層、隠れ層、出力層)。

f:id:kazoo04:20151007200113p:plain

基本的に、以上のようなニューロン」と「ニューロン同士をつなぐエッジ」で表現できるもの、かつ、このネットワーク構造を明示的に意識して設計されたアルゴリズムニューラルネットワークと呼びます*16

ここで、「2層から3層にしただけでそんな劇的に性能アップするんだったら、4層とか10層にすればいい」と思うかもしれません。実際に層をたくさんにして、また各層のニューロンの数を増やすと、表現能力が上がる(そのネットワークでできることが増える)ことが早い段階でわかっていました。

f:id:kazoo04:20151007200341p:plain

そこで当然研究者やエンジニアはニューラルネットワークの層をどんどん増やしていこうとしました。ただ、いくら大きなネットワークが理論的に性能が良いからと言っても、実際にはむやみに増やすと様々な理由*17によってうまく学習できずに、むしろ性能が下がってしまう問題があるとわかり、この試みは失敗します。

そのため、実際にはせいぜい3層か4層くらいのネットワークしかできず、そうこうしている間に、ニューラルネットワークによらない、より効率の良い手法(特にカーネルトリックという手法を組み合わせたSVM)が提案され、ニューラルネットワークは再び冬の時代を迎えるのでした。

ニューラルネットワークブーム(14年ぶり3回目 *18 )

ところが変わった人が世の中にはいて、誰もニューラルネットワークに見向きもしなくなっても地道に「なんとかして多層のニューラルネットワークをうまく学習できないだろうか?」と研究し続けた人がいました。

たとえば Bengio や Hinton といった研究者がそうで、2006年ころにようやく「ニューラルネットワークの層の数を増やしてもうまく学習する方法」が編み出されました。これが Deep Learning です。層が深くても学習できるから Deep というんですね*19

それで試してみたらどうなったかというと、今までに提案されていたあらゆる手法を圧倒する性能が出てしまったので、世界中の研究者が度肝を抜かれました。このあたりの話は、ご存じの方も多いかと思います。

Deep Learning は層の数が増えてもうまくいくようにした*20ニューラルネットワーク、というだけです。元々のアイディアは大昔からありました。

ニューラルネットワークのポイント

ここまでの流れで注意してほしい点として、脳がどうとか、知能がどうといった話題がほとんど出てきていないというところがあります。
どの研究者も、特に脳を再現しようとか、人工知能をつくろうとしていたわけではなく、良い機械学習アルゴリズムを作ろうとしているだけです。

ポイントをまとめました。

ニューラルネットワークは…

  • 脳のモデルとしては単純化しすぎているのであまり妥当ではない
  • 1940年代にはすでにあった
  • 何度かブームが来ては廃れていった
  • 層を増やすと性能が良くなりそうという予想はあったが、うまくいかなかった
  • 最近、層が増えてもうまく学習できるようになった = Deep Learning

人工知能ってなんだっけ

機械学習と Deep Learning の話はいったん置いておいて、人工知能(AI)についても触れましょう。

2種類のAI

AI はご存知のように、人間のような知能を持った機械(あるいはその試みや技術)です。
AI にも様々なレベルや分類が存在しますが、今回の趣旨としては 弱いAI (Weak AI)強いAI (Strong AI) というわけかたがあります *21

弱いAI

弱いAIというのは、人間ほど万能ではないが、ある処理をするのにそれなりの推論ができるAIのことです。
たとえば、

  • 画像、音声認識
  • 乗り換え案内、道案内
  • チェスや将棋をする
  • クイズに答える
  • IME(日本語入力・変換システム)
  • 食べ物に応じて最適な加熱をする電子レンジ

あたりは弱いAIになります。IMEや電子レンジもAIなのかというと微妙ではありますが、後述するようにAIはマーケティング的な都合でつけられることが多いので、あえて並べました。
これらが人間のような知性や意識を持って仕事をこなしているとは思えませんが*22、それなりに知的に見える処理をしています*23

強いAI

強いAIというのは「本当の」AIで、フィクションでいえば HAL9000 とか スカイネットターミネーター とか ドラえもん とか 鉄腕アトム とか、そういった存在です。彼らは人間と同等かそれ以上の知能を持っているように見え*24

  • できごとを記憶する
  • 会話する、ジョークや比喩を理解する
  • 未来を予想する
  • 高度な推論を行う
  • 道具を使う(身体があれば)
  • 嘘をつく

といったことが 単一のシステムで できます。強いAIが 意識クオリア を持つかについてはここでは触れないので、 人工意識 - Wikipediaクオリア - Wikipedia を参照してください。

ここで「話すことが知能の証拠になるのか?」と思った人は勘がよくて、会話だけではその存在に知能があることの証明になりませんが*25、ここでは本質的にはあまりかわらないので、上記のような特性をもって「知性がある」としています。詳しくは注釈のチューリング・テストの部分や、これから述べる「知能を持つとはどういうことか」を参照してください。

両者は何が違うか?

ここで質問です。 IBM の Watson はアメリカのクイズ王を破るほどの性能を持っていますが、Watson とたとえばカラスはどちらが知的な存在でしょうか?

f:id:kazoo04:20151010002531p:plain
IBM Watson と カラス はどちらが知的な存在だろうか?

Watson はあくまでも弱いAIであって、予めプログラミングされたアルゴリズムに従って、質問文に含まれる単語を集め、単語の係り受けを分析し、自身のデータベースからなるべく近そうなフレーズを見つけて、出力する。それだけのシステムです*26

カラスはクイズに応えることは出来ず、膨大な知識データベースもありませんが、おそらく強いAIを持っていて、誰かが教えなくても変化していく環境に適応し、地理を把握し、情報を取捨選択して記憶し、仲間とコミュニケーションをとり、外敵から身を守り、問題を解決するための推論をし、道具を使う、ということを十数グラムの脳で行うことが出来ます。

両者は明らかに異質な存在であり、まったく異なる仕組みによって動作していると考えられます。

普段は弱いAIと強いAIがごちゃまぜに議論されますが、弱いAIはすでに開発されており、車の自動運転ができるレベルに到達しているので、ここではこれ以上触れません。

最近よく言われている「20XX年までに人工知能が実用化する!」といった話題は、明らかに強いAIを指しているので、この記事でも以降は特に断りがない限り、強いAIの意味でAIと言います*27

知能を持つとはどういうことか

すでに疑問に思っている方もいると思いますが、なにをもって「知能がある」「意識がある」とするかは難しい問題です。

ここまでにも述べたとおり、「会話ができる」は一見妥当に見えます(チューリング・テスト)が、判定方法として明らかに不十分で、それだと犬やネコや鳥はもちろん、「(自分が理解できない)外国語を話す人」などにも知性がないことになってしまいますし、また会話ができたとしても知能の証明にはならないという意見もあります。

たとえば次にあげる存在には知能や意識があるでしょうか。

石/ウイルス/樹木/昆虫/魚/カエル/鳥/ネズミ/ヒト ……

知能についてはいろいろな考え方と定義があるので非常に難しい問題で、たぶん「哺乳類には知能がある」くらいまでなら賛同する人が多いとは思いますが、これといった決め手には欠けるのが現状です。

意識は脳のどこにあるのかについてはガザニガの「<わたし>はどこにあるのか」が読み物としても面白いと思います。

〈わたし〉はどこにあるのか: ガザニガ脳科学講義

〈わたし〉はどこにあるのか: ガザニガ脳科学講義

Deep Learning と知能

さて Deep Learning が今後も順調に進化していったとき、知能を持つでしょうか*28?それはだいぶ怪しいと思います。というのも、 Deep Learning (というかニューラルネットワーク)はすでにご存知のようにパーセプトロンを多層にしただけであって、脳科学とほとんどなんの関係もないからです*29
そもそも、 Deep Learning を研究している人も、「AIを作ろう」「脳を再現しよう」としているわけではありません*30 *31

AI (強いAI) を作ろうとするのはまた別の研究であって、お互いに参考にすることはあるものの、Deep Learning はあくまでも弱いAI側の技術であって、ここから即座に強いAIの開発につながるという考え方は少々短絡的です*32

自動車を改良しても早くはなれど月には永遠に行くことができないのと同じで、月に行くためには最初からそれを目指したアプローチをする必要があります。つまり、月に行きたかったら、まずは小型のロケットを空に打ち上げたり、人工衛星を飛ばしてみたりする段階を踏む必要があるわけです。AIを作る場合なら、従来の機械学習という部分からいったん離れてみて、まず脳のことをきちんと調べたり、シミュレーションしたり、原始的な脳を再現したりする段階が必要なはずです*33

強いAIを作る

もちろん強いAIを作ろうとする人たちもいます。AIを作るためには、ちょっと考えただけでも以下のような工程が必要そうです*34

  • 1つの神経細胞はどんな機能があり何をしているのか?
  • 複数の神経細胞の相互作用によって何をしているのか?
  • 脳はどのような要素から成り立っているのか?
  • 各要素はどのように出来ていて、どこと接続されていて何をしているのか?
  • 記憶とはなにか?どこにどのように保存されているのか?
  • 本能はどこにどのように格納されているのか?

神経細胞や脳のシミュレーションが知能の発明に必須かどうかはわかりませんが、それなりに妥当な考えだと思うので含めています。

自動車の各機能は馬の完全な模倣ではなく*35、飛行機の各機能も鳥の完全な模倣ではありませんが*36、同じ目的、すなわち、地上を走って移動する、空を飛ぶ、を達成できているのと同じように、人工知能もまた、脳と完璧に同じことをする必要はありません*37

とはいえ、少なくともなにもわからない状態では、まずうまく動いているものをよく観察するのがよいアプローチといえます。
このアプローチとしては、たとえば(機械学習ではなく)計算論的神経科学といった分野があります。

計算論的神経科学

計算論的神経科学は、脳を一種のコンピュータのようなものだとみなすことにして、その仕組みを調べる学問です(あくまでも脳の仕組みを解き明かそうとする生理学的な分野で、人工知能の開発をしているわけではありません)。有名な研究だと Blue Brain - Wikipedia があります。

細胞レベルだと、1963年にノーベル賞生理学・医学賞を受賞した Alan Lloyd Hodgkin らのホジキン・ハクスレーモデルやそれを簡略化したフィッツフュー-南雲モデルで、ニューロンの振る舞いをかなり正確に記述できるようになりました。

同じくノーベル賞生理学・医学賞を受賞した2014年の John O'Keefe らの研究は脳の海馬の仕組みについて(脳における空間認知システムを構成する細胞の発見) でした。海馬は記憶に関係している組織で、ここも比較的研究が進みつつあり、海馬の一部の機能を模倣するアルゴリズムも提案されています *38

f:id:kazoo04:20151007201316j:plain
脳の概略図。オレンジ色の部分が大脳、赤い部分が海馬を含む大脳辺縁系(同じような場所に大脳基底核もある)、水色が脳幹、緑色が小脳、下に長く伸びる黄色の部分は脊髄など。

日本人でも、伊藤正男が小脳について「パーセプトロンのような仕組みなのではないか?」という仮説を提唱しており(小脳パーセプトロン仮説)、小脳は神経回路がほかと比べて比較的簡単なこともあってモデル化が進んでいる分野です。 Liquid State Machine や Echo State Network をはじめとした Reservoir Computing というアルゴリズムが使われることが多いようです *39*40

大脳基底核の一部*41は強化学習というアルゴリズムに似たことをやっているという仮説があり、それを元にした研究も進んでいます*42*43

高度な推論をしたり、人格形成に大きく関わる大脳についても、それぞれの場所がどんなことに関わっているのかの地図は作られており (ブロードマンの脳地図 - Wikipedia) 特に「見る」ことを処理するための視覚野については実験しやすいためによく研究されています。 過去のブログ記事 を参考にしてください。

f:id:kazoo04:20151007202644j:plain

ブロードマンの脳地図(大脳)。色が違うところは別の処理をしていると考えられている。

Deep Learning は生理学的な妥当性はあまり良くないものの、大脳(特に視覚野)とよく似た動作をしていると言われています。
Deep Learning はどちらかというと「画像認識で高性能を出そうとしてたら大脳の視覚野とよく似た処理になった」という感じ*44で、より直接的な大脳のモデル化研究としては、古典的には Kohonenによる Self-organizing Maps (SOM) によるもの、トポグラフィック独立成分分析によるもの *45 や、Slow Feature Analysis によるもの *46 *47 があります。

また、マカクザルの視覚野の一部分であるIT野というところの活動を測定し、それをSVMで分析すると人間と同じ精度で画像分類できるといった、弱いAIとの合わせ技な研究も行われています*48

ニューラルネットワーク人工知能は作れる?

Deep Learning = 強いAI?

ここまで読むとお分かりかとおもうのですが、Deep Learning と AI(強いAI) は実は関係があるようで、思ったより関係がありません。

神経は思ったより伝達速度が遅いので、層を増やしすぎると結果が得られるまでに時間がかかり、生き残るのに非常に不利になってしまいます。たとえば、目の前に肉食獣がいるのに、目で見てから「これはライオンだ」と判定できるまで1秒も2秒もかかっていたら生き残れませんよね。

そのためヒトの脳は極力層が深くならないようにして、できるだけ横に広げるようにしています(横に広げるぶんには並列に処理できるので、早くできます。小脳は実質3層のモデルです)。以下は人間の脳の視覚野のシステムで、それぞれの部分がどことつながっているかを示しています*49
右のAIT野あたりでほぼ「なにを見ているか」の処理結果が出力されていると言われているので、深さでいえば6〜8層くらいで、横方向にも5〜6くらい並列で処理していることがわかります。

一方のDeep Learningは文字通り層を深くする(増やす)方向に行っているので、このあたりからしてもちょっとアプローチの仕方が違うのかな、という気がします。

f:id:kazoo04:20151007192417g:plain
視覚野に存在する各領野の接続を示した図。一番下の RGC が網膜*50、LGN は脳幹*51で、濃い紫色で示されている V1 から大脳。複数の領域は順番にではなくある程度並行して処理をしながら処理を進めていくことがわかる。

そもそも機械学習をやってるほとんどの人は別にAIを作っているという意識はほとんどないことが多く、世の中に出る「高度なAIを搭載」みたいなものはすべてマーケティング的な都合で書かれるか、単に「弱いAI」を指しているわけです(たとえ Pepper や Siri だとしても)。

実際、機械学習の研究者やエンジニアは「人工知能」という言葉はめったに使わず、あったとしても「機械学習」という用語を説明するのが面倒なので人工知能といってしまうケースがほとんどだと思います。私も「どんな仕事してるの?」って聞かれて「人工知能作ってる」と言ったことがあります。

じゃあ、ニューラルネットワーク = 強いAI?

それではもうすこし範囲を広くして、ニューラルネットワーク(繰り返しますが、 Deep Learning はニューラルネットワークの一手法です)によって強いAIが作れるかというと、ここはちょっと微妙な話になってきます。なぜならニューラルネットワークという分野が示す範囲が非常に広いので、将来どうにかして強いAIが作れたとして、その仕組みを指してニューラルネットワークと言っても通用するはずだからです。ニューラルネットワークそのものが、「脳の神経回路を(精度はさておき)模倣する」というところから出発しているのですから、AIが作れたならそれはニューラルネットワークと呼べるものになる可能性が高いといえます。

次に、Deep Learning を始めとしたニューラルネットワークが現状、あるいは未来で、弱いAIやロボット制御すべての分野を刷新してしまうかを考えてみましょう。これもかなり厳しいと思います。

機械学習(教師あり学習)の分野では、SVM のような理論的も計算負荷的にも実用的にも極めて優れている手法が多数提案されているので、(マーケティング的な都合を除けば)わざわざニューラルネットワークを使わずともスマートに問題が解決できることが多いのです。

たとえば、 ある課題を解決するのに、Deep Learning を使うと99%の精度が出るが、学習に1週間かかり、専用のエンジニアを1人雇わないといけないとします。ここでもし、精度が95%に落ちてしまうが、一般的なエンジニアがさっと使えて6時間で学習が終わる方法Xがあるとします。どちらを選ぶかはシチュエーションによるでしょうが、後者に軍配が上がるシーンも多いでしょう。

もうひとつの例として、ロボット制御を考えてみましょう。もし強いAIや、そうでなくても脳の運動制御機能の模倣ができたら、生き物のように非常に滑らかな動きができるかもしれません。これは良いことかもしれませんが、今日の制御理論はものすごく優れていて、自動車工場をご覧になった方も多いと思いますが、人間には不可能な速度と精度で作業をこなすことができるわけです。ここにもわざわざニューラルネットワークを導入する必要性は薄いように思います(マーケティング的な都合を除けば)。

ニューラルネットワークはダメなの?

それではニューラルネットワーク (繰り返しますが、Deep Learning を含みます) は一時のブームでしかなくて、また冬の時代が訪れるのでしょうか?
そこはそうでもなくて、ニューラルネットワークにも魅力的な性質がたくさんあります*52

  • 機械学習に必須の特徴設計と呼ばれる作業を、ある程度自動化できるようになった*53
  • マルチモーダル学習*54が容易になった*55
  • 時間に遅れのあるフィードバック制御*56に向いていると言われている(Reservoir Computing の場合)*57
  • なにより他の方法より精度が高い(Deep Learningの場合)

今のところニューラルネットワークが注目されている一番の理由は、結局「Deep Learning が他の手法よりずっと精度が良いから」です。ニューラルネットワークではない新しい手法がでてきて、そちらのほうがDeep Learningよりずっと精度が良いなら、また冬の時代が訪れると思います*58
Deep Learning の理論や設計が難しくて、たくさんの計算機資源(計算時間やメモリ)を喰うというのも現状のデメリットです*59

誤解のないようにまとめると、「Deep Learning は現状もっともパフォーマンスのよい手法ではあるが、その出自からしても、人工知能とはほとんど関係がない」です。

人工知能はダメなの?

まず対象が弱いAIなのか強いAIなのかでかなり話が変わります。弱いAIであれば、1996年には既にチェスで人間に勝利を納めていますし*60、今となっては Deep Learning が大活躍し、クイズ番組で優勝し*61、車の自動運転が実用化されつつあります。今後も進化していくことでしょう。

強いAIは、脳科学、神経科学といったアプローチから、機械学習による脳の一部のシミュレーションまで、様々な角度からの研究が進んでいますが、強いAIに直接繋がる今のところ輝かしい成果はありません*62
脳のごく一部の機能については役割や仕組みがわかりつつあるのですが、それらをどう組み合わせればいいのか、他の部分はどのような仕組みなのか、そもそも意識とはなんなのかといった部分がほとんどわからないので、まだまだ道程は険しいといってよいでしょう。

また、数学の証明をしたり、チェスやクイズでは人間に勝てるのにも関わらず、一方で不安定な場所を安定して2足歩行したり、簡単な受け答えをしたり、犬と猫を見分けたりするなど、人間なら子供でも出来るような簡単な分野ほど、実は難しいという問題が障壁になっています(モラベックのパラドックス*63

ですから、

  • 弱い AI は1980年代には既に実用的なものが存在し、理論も実践も申し分なし。さらに Deep Learning で弾みがついた。
  • 強い AI は様々な分野から研究がなされているものの、まだ「どういう方向性で行けばいいのか」「そもそも知能とはなにか」すらよくわからない段階。

といったところです。

2つのシナリオ

強いAIが出現するための現実的な今後の流れは2つ考えられます。

トップダウンシナリオ

ひとつは、弱いAIを改良しつづけて人間と遜色のないレベルまで進歩させるというシナリオです。この場合だと、例えて言うなら Siri や Pepper がバージョンアップしていって、いつか人間と同等の知能を獲得するといった流れになります。今のところ、 Siri や Pepperは、「こういう状況のとき、相手がこういうことを話しかけてきたら、こう応える」といった脚本のようなものを収録しているのですが、もちろんそれは人間が作らなければならないので、これには膨大な量のプログラミングが必要になりそうです*64

ボトムアップシナリオ

もうひとつは、強いAIを作ってそれを進化させる方法です。例えば、まず魚類や両生類くらいの脳を模倣するシステムを作り、そこから次第に鳥類や哺乳類レベルまで改良していき、最後に人間と同等(かそれ以上)のものとするシナリオです。こちらは理論さえわかればプログラミングの量は相対的に減るかもしれませんが、脳科学の膨大な蓄積が必要不可欠になります。この場合は初めは人間の赤ちゃん同様、最初はなにもできないロボットができ、誰かが親や教師として教育していくことで賢くなっていく、という形になるはずです*65

f:id:kazoo04:20151008201638p:plain
人工知能を実現する2つのアプローチ。知能がなす高度な振る舞いの模倣から始める(トップダウン)か、生き物が共通して持っている神経基盤を明らかにしていくか(ボトムアップ)が考えられる。実際にはこの2つの協力・融合が必要になる。

当然このふたつのシナリオは相反するものではなく、片方で得られた知見をもう片方に適用するといったことを繰り返していくことで成されるものであり、どちらを主眼に置くか程度の話ではあります。当然上下からの挟み撃ち、中間くらいのレベルから広げていくといったアプローチも有効でしょう。
フィクションの世界では、「2001年宇宙の旅」の HAL9000トップダウンシナリオで生まれ、「チャッピー」の主人公チャッピーはボトムアップシナリオで生まれたタイプの人工知能に見えます。

人工知能と Deep Learning はなにが同じ?なにが違う?

Deep Learning を研究している人は別に人工知能を作ろうと思っているわけじゃないし、人工知能を研究している人はDeep Learningを使っているわけでもないのです。両者はお互いに関連はあるものの、別々のことをしています。

Deep Learning 研究者からしてみると、「うーん、別にわたしたちは人工知能(強いAI)を作ろうと思ってるわけじゃないんだけどなあ」と思っていて、人工知能(強いAI)の研究者からしてみると、「Deep Learning は確かに素晴らしいし参考になることも多いけれど、生理学的な根拠はそこまでないなあ」と思っている、といった感じです(私の肌感覚だと)。

まとめ

Deep Learning は素晴らしいアルゴリズムであり、今までできなかった分野にブレークスルーをもたらしたことは間違いなく、これからも幅広い範囲で実用化されていくことでしょう。
ただ、そこまで便利だからこそ、Deep Learningはこれからパッケージ化が進んで、ちょっとプログラミングができるよという人だったらすこし設定するだけで簡単にDeep Learningのプログラムが動くような流れになっていくはずなので、今のタイミングで「Deep Learningの勉強をしたら私も一流の人工知能研究者に!」みたいなことは、ちょっと起こりそうもありません。

昨今のブームに乗じて「Deep Learning で人工知能(強いAI)ができるぞ!」というのはちょっと早とちりしすぎではないかな、と思います。弱いAIは目覚ましい進化を続けていますが、だからといってただちに強いAIができるわけでもなく、このあたり明確に分けて考えている人は多くはありません。

さて一方で、今のところ日陰者ではありますが本当にAIを作ろうと思っている人たちもまたおり、そちらはそちらで非常にゆっくりとではありますが着実に進歩しているのも確かです。
その2つの人工知能は開発動機もアプローチの仕方も随分異なるわけで、これを「人工知能」という言葉で一括りにしてしまうと、本質がぼやけてしまうかもしれません。

人工知能」という言葉を毎日のようにニュースで見かけるようになりましたが、このあたりは乱暴にひとくくりにせず、各々が正しい知識をもっていただければいいなと思います。

せっかく我々には知能があるのですから。

我々は、短期的には技術を過大評価し、長期的には技術を過小評価する

意識はいつ生まれるのか――脳の謎に挑む統合情報理論

意識はいつ生まれるのか――脳の謎に挑む統合情報理論

ゲーデル、エッシャー、バッハ―あるいは不思議の環 20周年記念版

ゲーデル、エッシャー、バッハ―あるいは不思議の環 20周年記念版

謝辞: この記事は @laco0416, @vaaaaanquish, @olanleed, @sonicair にレビューしてもらいました。ありがとうございます。

*1:人々の関心を集めるためだけに利用される、明確な定義や中身のない専門用語。たとえばクラウドWeb2.0

*2:Phil Simon (March 18, 2013). Too Big to Ignore: The Business Case for Big Data. Wiley. p. 89. ISBN 978-1-118-63817-0.

*3:正確には、今挙げたものは機械学習のひとつの分野である 教師あり学習 で、以後は特に明示しない限り、教師あり学習の意味で機械学習と表記する

*4:実際には Random Forest という改良アルゴリズムがよく使われる

*5:SVMニューラルネットワークとして表現できるが、普通はそうしないのでここでも別物としている

*6:ここで挙げているアルゴリズムは表現としてあまり適切・正確ではなく、本来であれば識別モデルと生成モデルで分けたりする必要もあるだろうし、自然言語処理では線形分類器がよく使われる

*7:この方法は Bag of Words (BoW) と呼ばれる

*8:これはかなり乱暴なまとめ方であり、たとえば決定木であれば出力は木であるし、Boosting なら弱学習機の集合である

*9:"良さ" にもいろいろな考え方があるが、ここでは触れない

*10:Warren S. McCulloch; Walter Pitts (December 1943). "A logical calculus of the ideas immanent in nervous activity". The bulletin of mathematical biophysics (Kluwer Academic Publishers) 5 (4): 115–133.

*11:繰り返しになるが、「ニューロンから着想を得た」レベルであって、実際の神経細胞とはまったく異なる

*12:非線形な関数が学習できない

*13:普通、教師あり学習しようとする場合は多くの問題が非線形分類になる

*14:ミンスキーによって線形分離可能なものしか学習できないと指摘されてからBPが考案されるまでの期間をここでは17年とした

*15:少なくとも3層で、非線形の活性化関数、十分な隠れニューロンを持つなら、任意の連続な関数を任意の精度で近似できるようなパラメータが存在する

*16:わざわざ「明示的に意識して」と提案者の意図を定義に含むような書き方をしたのは、一般的にはニューラルネットワークとされていないが、実際にはニューラルネットワークのように書き表すことができるアルゴリズムが多いため

*17:Vanishing Gradient Problem など

*18:カーネルトリックが発案されてからHintonがRBMを発表するまでをここでは14年とした

*19:パーセプトロンのような左から右へ一方向に計算されていく手法とは別に、ホップフィールドネットワークやボルツマンマシンなどの双方向にデータが流れていくような方法もあるが、この記事では触れない(ただし、ボルツマンマシンは Deep Learning を発明する上で重要な役割を果たした)

*20:1層ずつ学習する、Sparsenessの導入, 活性化関数をReLUにする, 局所的に結合する(CNN)、 など

*21:強いAIのことを、人口汎用知能(Artificial General Intelligence, AGI)と呼ぶこともあるが、ここではわかりづらいのでAIあるいは強いAIと呼ぶ

*22:ディープブルーやワトソンに知能があると考える人もいる

*23:"AI効果"というものがある: 従来知的活動だと思われていたものがプログラムで実行されるようになると、「それは自動化であって知性があるわけではない」と思う効果

*24:対象のプログラムに知性があるか=人工知能かどうかを判断するためのテストとして チューリング・テスト があり、成功を収めつつある ものの、チューリング・テストでは 知性の測定には不十分だとも言われている

*25:中国語の部屋

*26:非常に精度良く、かつ大規模データ高速に処理できるのが強みである

*27:というのも、弱いAIについては論じるまでもなく明らかにすでに実現されているから

*28:ここでは、暗黙のうちに脳、あるいは知能はチューリングマシンでシミュレート可能であると仮定していて、量子脳理論などは考えていない

*29:たとえば活性化関数としてSigmoidを選ぶのは、有界微分が簡単だからであり、ReLUを選ぶのは微分が簡単で勾配が消えないからであって、そこに生理学的な根拠はなにもない

*30:そう考えている人を否定するわけではない

*31:脳の一部の処理を参考にすることでアルゴリズムを改善することはある

*32:Deep Learning がどんどん複雑になっていったらある次点で強いAIができたり自我が芽生えたりする可能性はゼロではないが、今のところそれを支持する根拠はない

*33:人工知能においては、飛行機は結局鳥のように羽ばたくのをやめ、異なる仕組みにしたことで飛行可能になったというアナロジーが持ち出される

*34:ここでは唯物論に基づいてリストアップしているので魂的な存在は考えない

*35:車は脚も筋肉もないし、馬には車輪はない

*36:鳥は羽ばたくことによって飛ぶが、飛行機は一般に固定翼。例外的に、オーニソプターは羽ばたくことで飛行する

*37:洗濯機なども人が行っていることを完璧に真似るのではなく、独自の方法を取ることによって成功しているので、こういった考えも重要ではある

*38:Slowness: an objective for spike-timing-dependent plasticity? Sprekeler H, Michaelis C, Wiskott L. PLoS Comput Biol. 2007 Jun; 3(6):e112.

*39:たとえば Tadashi Yamazaki, Jun Igarashi. Realtime Cerebellum: A large-scale spiking network model of the cerebellum that runs in realtime using a graphics processing unit. Neural Networks, 47: 103-111, 2013.

*40:Reservoir Computing は Deep Learning の影に隠れてしまって知名度が低いのですが、個人的にはなかなかアツい分野だと思います

*41:少なくとも線条体

*42:Barto, A.G.: “Adaptive critics and the basal ganglia”, Models of Information, Processing in the Basal Ganglia, pp. 215-232, MIT Press, 1994.

*43:Schultz, W., Dayan, P., Montague,P.R.: “A neural substrate of prediction and reward”, Science, Vol.275, pp. 1593-1599, 1997.

*44:ただし多段階の特徴抽出や Sparse Coding など、脳と Deep Learning で一致している処理も多い

*45:視覚野・聴覚野地図の同一適応アルゴリズムによる解釈. 寺島 裕貴,岡田 真人. 人工知能学会全国大会論文集 人工知能学会全国大会論文集 25, 1-4, 2011

*46:Slow feature analysis yields a rich repertoire of complex cell properties. Berkes P, Wiskott L. J Vis. 2005 Jul 20;5(6):579-602.

*47:Slowness and sparseness lead to place, head-direction, and spatial-view cells. Franzius M, Sprekeler H, Wiskott L. PLoS Comput Biol. 2007 Aug;3(8):e166.

*48:James DiCarlo による How the brain solves visual object recognition

*49:Fellman and Van Essen (1991)

*50:正確には網膜神経節細胞(Retinal Ganglion Cell)

*51:正確には視床にある外側膝状体(Lateral Geniculate Nucleus)

*52:ここに挙げたもの以外だと、表現学習や時系列学習のハードルが下がったこと、様々なネットワーク構造を試せるようになったことなどが挙げられる

*53:ただしネットワーク構造や正規化方法、各種パラメータ調整などとを人間が考える手間は増えたので、トータルではそこまで省力化できていないうえにマシンリソースはたくさん食うようになってしまった

*54:音と映像の両方を元に判断するなど、性質の異なる入力を混ぜて分析する学習

*55:Random Forest を使う方法や Slow Feature Analysis を使う方法などもある

*56:ロボットでよく用いられる、センサからの入力を元に出力を調整するような制御

*57:山崎匡, 小脳の計算機構の完全理解とその応用を目指して

*58:実際に、Deepでない、Shallowなネットワークによっても、ポイントさえ抑えればかなりの精度が出ると示した研究もある。 Coates の An Analysis of Single-Layer Networks in Unsupervised Feature Learning など

*59:Convolutional Neural Network (CNN) などの進歩によって従来よりはずっと高速に学習できるようにはなった

*60:IBM の Deep Blue

*61:IBM Watson

*62:脳科学自体は非常に進んでいるが、それでもまだ足りないという意味で、脳科学に進歩がないわけではない

*63:モラベックのパラドックスを「人工知能研究最大の発見」とする意見もある

*64:会話自体を学習させる方法もあります: LSTM + Seq2Seq や RNN を使うなど

*65:そのためおそらく身体が必要になるし、感情や本能の組み込みも必須になる