強いAIの実現方法 ~実践的な作り方~

強いAIの実践的な作り方を検討しています。メイン記事に主張をまとめています。人工知能関係の書評もあり。なお、今後、任意団体として活動してみたいと考えており、手伝ってみたいという方は是非ご連絡下さい。詳しくは、メイン記事の7を参照下さい。

強いAI アーキテクチャの基本原理について

 以前、脳モデルをどうするのかの検討を試みたが、なんらかの成果をあげるには、当初の目論見通り、外界モデルと身体モデルを作っていき、脳モデルは実際に動かしていくしかなさそうという結論になった。

  従って、話を前に進めるため、以下を整理していく。

  • 強いAIを実現するための基本原理を整理する
  • 簡易なモデルにおいて、原理の有効性を示す

 基本原理は、以下の4つとする。ブログで述べてきたことを、アーキテクチャとして構築できるよう、かつ本質を捉えるように整理した。ここで、エージェントとは、身体モデルと脳モデルで構築される、独立して行動する一単位である。

  1. 強いAIのアーキテクチャは、外界モデルー身体モデルー脳モデルを組合せ構築しなくてはならない。
  2. 個々のエージェントは探知→行動を原理とする
  3. エージェントは言語能力を有する。
  4. アーキテクチャは十分に複雑であること


 以下は補足、あるいはアーキテクチャの構築方針である。

1-1
人間は意味を記号で扱っているため、外界モデル、身体モデルは記号レベルで再現出来れば良い。知能を工学的に実現するには、脳では無く、まず外界と身体を記号化するべきである。

4-1
生物が複雑な行動をとるのは、環境が複雑だからである。従って、知性と呼べるほど複雑な行動をとるためには、外界モデルと身体モデルは十分に複雑であるべきである。脳モデルは、最初から複雑に作り込む必要は無いが、結果として十分複雑に動作するべきである。

 以上の内容は、以下をバックグラウンドとしている。

  • 人工知能には身体が必要である(ファイファー他
  • 意味は外界にある(柴田正良
  • 意味とは差異である(ソシュール)→外界、身体もモデルで良いことが分かる
  • 人間は、記号を知っている対象しか認識できない(ソシュール
  • 判断は不要であり、探知→行動のループにするべき。生物が複雑な動きをするのは、環境が複雑だからだ(ブルックス


 次回以降、4つの基本原理を元に、プログラム構想をまとめていく。

 

 ブルックスが身体性についての原理を論文で発表した時、ロボット学者が好む数式表現等を用いておらず学術的ではなかったため、眉をひそめる人も多かったと聞く。上記の4つの基本原理も全く数式では無いが、その逸話には勇気づけられる。
 ブルックス自身は、知能を実現するための数式表現が見いだされていないとその著作で述べているが、自分の当時のことを思い出したりはしないのだろうか…

(追記)

 生き物の行動原理である探知→行動のループが複雑になり、シンギュラリティを越えることで人類が知性を獲得した、というストーリーである。
 探知→行動の間には、何らかの回路は入る。その回路は脳モデルであり、最終的には十分複雑になる必要があるが、判断モジュールとして作りこむのではなく、探知→行動の回路が複雑になったものとしていきたい。

「人工知能はなぜ椅子に座れないのか」を読んだ 松田雄馬 著

人工知能はなぜ椅子に座れないのか ~情報化社会における「知」と「生命」
松田雄馬著 2018年 新潮選書

 

 以前、同じ著者の「人工知能の哲学」を読んで、その参考文献の多さに感銘を受けたものである。今回は脳神経学で名前を良く聞くダマシオが多く引用されている。
 予め断っておくが、松田氏は本来なら一介のブログ筆者が言及して良いような方では無く、この文章に変なところがあれば、それはブログ筆者が松田氏の主張を理解出来ていないためであろうと思うので、原著をあたられたい。

 松田氏がこのような著作を多く書かれる原動力は、現在の人工知能ブームへの違和感と、シンギュラリティへの懐疑である。人工知能は過去にも多くブームを起こしたが、人類の知能を上回るかのように喧伝され、やがて期待がしぼむ、ということを繰り返している。松田氏によれば、今回の第3次人工知能ブームもまた同じ恐れがあり、まして、シンギュラリティを迎えることはない。なぜなら、今の人工知能ブームでもてはやされている機械学習、ディープラーニングもまた弱い人工知能であり、人間の知性とは本質的に違っている。従って、カーツワイルの言うようにいくらシステムの進歩が「収穫加速の法則」に則っていても、本質が異なる以上強い人工知能は実現しないのである。その本質の違いは、松田氏によれば、人間がコンピュータと異なり「生命」であること、に依る。

 本書は 5章+終章で構成されている。また、序章において「あらゆる労働がコンピュータによって代替され人間には生きることだけが残された未来」について疑問を投げかけ、「科学技術と生命との対話の中にこそ科学技術文明の未来がある」と宣言されている。

 第1章 人工生命、そして人工社会とはなにか
 生命への工学的アプローチとして、人工生命というジャンルがある。本書では、いわゆるLIFEゲームのようなセルオートマトン、群知能、過去に一世を風靡した遺伝的アルゴリズム(GA)、が紹介されている。しかし、セルオートマトンでは「カオス」や「カオスの縁」という概念が生まれたものの、群知能で高度な最適化問題を解くにしても問題設定は人間(プログラマ)がやる必要があり、GAもまた最適解探索手法であり、いずれも「生命」の本質に迫る研究とは別の方向になった、とまとめられている。また、人工生命をエンジニアリングに応用した人工社会とは、例えば災害時のシミュレーションで効率の良い避難誘導等をシミュレーションモデルで解くものであり、その有用性は疑いようのないものだが、個々の人をモデル化しているため、「生命」とはまたちょっと違っているとのこと。
 上記の状況から、人をモデルでは無くて「生命」として扱うために、次章で人工知能そのものを取り上げる。
 余談だが、ブログ筆者は大学時代に群知能を扱っており、単純なルールで例えば最適搬送経路が創発される、かのようなシミュレーションを研究していた。30年ほど前だが、個々のエージェントがQラーニングを実装し、環境内でうろうろしていると、自然と最適な搬送形態(バケツリレー方式とか)が形成されるというものである。創発は面白い。

 第2章 人工知能の研究はどのように始まったのか

 人工知能の歴史について、興味深い見方をしている。すなわち、人工知能は想定外のことに対処することが苦手であり、その想定外への対処方法には次の3つがある。

  • 環境の変化を起こさないようにする
  • 環境の変化をすべて予測する
  • 環境の変化に対しシステム自らが対処する

 最初の例は産業用ロボットが成功した理由になっている。
 次の環境の変化を全て予測するのは、大量のデータを用いる機械学習でも用いられており、第3次人工知能ブームを牽引しているわけであるが、松田氏は、学習にニューラルネットワークを用いているからと言って人間のように予測が出来る訳では無いと警鐘を鳴らしている。特に、グーグルがyoutubeで教師無しで猫を認識したという有名な件は、決して、人間のように猫を学習した訳では無い。むしろ、1000台のコンピュータを3日間フル稼働させたその計算能力が特色であり、「これまでにない、脳のような情報処理を実現した研究では無い」とのこと。例えば、ワインをワイングラスに注ぐ写真を身体の無い弱い人工知能に見せたところで、人間のように、ワインを楽しむ空間を想うことは決して出来ないのである。

 第3章 脳はどのようにして世界を知覚するのか

 では、人間のような情報処理を実現するにはどうすれば良いのか。前著でも錯覚について注目されていたが、本書がより分かりやすかった。私たちの見ている世界は「主観的に作り出された世界」であり、赤ちゃんは最初視覚が弱いが、自らの体を動かして主観的な世界を構築できるような視覚を学習していく。大胆な書き方であるが、前章で問題になった「想定外の環境の変化=無限定空間」において自らが対処できるよう、環境との相互作用により自己を確立するのが生命だ、という見解を披露している。その証左として、ゴンドラ猫の実験結果があげられている。自分が動くと風景が連動して動く猫と、自分が動けないが同じく風景が動く猫を育てると、前者は普通に動けるが後者は動けなくなるとのこと。

 第4章 意識にみる人工知能の限界と可能性

 自己の確立においては、意識という考え方が欠かせない。本ブログでも良く出てくるが、「強い人工知能」を最初に定義したサールによれば、「強い人工知能は精神を宿す」としている。Wikipedia等では、意識を持つ、ということになっている。そして、意識を持たせるには人間の精神を研究することが重要だが、脳神経学の権威であるダマシオによれば「半導体に感情は生み出せない」。美しい風景を見た時には、美しい風景を見て美しいと感じている自己も認識しており、来てよかった等の感情が生まれる。「自己を認識する」ということそのものが、「意識を持ち精神を宿すこと」なのかもしれない。そして、プログラムとして埋め込まれた結果として物事を認識しているだけでは、自己の認識は出来ないのである。
 ダマシオによれば、身体が環境に適応した状態を維持することを目的に「心」が存在する。内部状態を維持するための生理的反応をホメオスタシス(恒常性)を呼ぶ。ホメオスタシスは、自律神経系、内分泌系、免疫系等の研究が盛んであり、脳や心については論じてこなかったとダマシオは指摘する。この心のホメオスタシスが、自己確立の鍵となるかもしれない。そして、弱い人工知能が直面する無限定問題に対する解答が、自己確立、あるいは、自分と環境の相互作用で自己を作り出す自己言及サイクルにあるかもしれないと松田氏は述べる。すなわち、身体と脳は有機体として一体であり、環境と相互作用しながら内部状態を維持する中で「自己感」を持ち続け、無限定な環境の中を生きていくことができる。生きようとする「意思」を持つものが「生命体」であると言える。ここで、有名なフレーム問題が紹介される。上記から、自己感こそがフレーム問題を解くカギになりそうなことが分かるであろう。


 第5章 シンギュラリティの喧騒を超えて

 本章では、現代の情報社会と比較し「生命」に立脚したこれからの社会のあり方についての提言が述べられている。
 ダートマス会議については本書でも何回が言及されているが、当会議以降、主流派が楽観的に人の知能を越えることについて発言したことと裏腹に、同時期に「人間とコンピュータとの共生」という観点で発言をしたリックライダーの貢献が紹介される。リックライダーにとっては、計算機はあくまでルーチン化された仕事をするものであり、そのアウトプットは人間の思考の材料に過ぎない。リックライダーはインターネットの先駆けであるARFANETに関わっており、現代の情報社会は、まさしくリックライダーの予見通りに発展してきている。これは情報科学の歴史を学んでいる専門家には広く受け入れられている思想だが、シンギュラリティのような一見派手な「人間を超えるコンピュータがすぐにでも実現するのではないか」という幻想が広まっていることを松田氏は憂いている。弱い人工知能では無限定の状況に対応できず、人間の知性を超えるというよりは、共生こそが計算機の役割なのだ。

 以降、人間と計算機の共生を考えるに当たり、人間、すなわち生命とは何かを理解することが不可欠であると松田氏は考えている。それは物質の循環であったり、環境との相互作用による動的秩序の形成(受動歩行機械のような)であったり、魚の模様を作り出すチューリングパターンであったりする。また、動的秩序だけではなく、シャノンの情報理論から、①記号を正確に伝える②意図を伝える③受信者の行為に作用するという観点で、人間においては意図のやり取りも重要だとする。最後、弱い人工知能との共生において、まことしやかにささやかれるコンピュータに人間が支配される、などということは、人間が生命として意図をもってコンピュータに対峙していれば、そのようなことはなく、生命を理解することにより、計算機と共生していく社会はより豊かになるであろうとしている。
 

 前著と比較して本書では、

  • 人間も細胞の集まりであり群知能かもしれない
  • リックライダーはダートマス会議の時期から、コンピュータは(人の知能の代替では無く)人と共生することで発展すると予測しており、インターネットの前進であるARPANETに関わっていた

 との2点に言及していることが目立った。人工知能ブームに踊る科学者のアンチテーゼなのか、リックライダーを情報科学の真の発展の寄与者として取り上げている。
 また著者の松田氏はシンギュラリティ騒動とともに「この情報社会は何かがおかしいのではないか」と感じており、人間が主体性を失わないこと、それには生命への理解を深めることが大事であると述べている。

  結論としては、情報工学の歴史上、計算機は人間と共生して発展してきており、弱い人工知能と違い人間の知性は本質的に生命である。生命に対する理解が無いまま、弱い人工知能がシンギュラリティを迎えるというような過度な期待はおかしく、強い人工知能は全く目途が立っていない、ということであろう。

 

 さて、本ブログの趣旨は、「強い人工知能を作るにはどうすれば良いか」ということである。松田氏はシンギュラリティ懐疑派であり、弱い人工知能が発展していくだけではシンギュラリティを迎えることは無く、むしろ、計算機と人間の共生をより豊かにしていくために、生命への理解を深めていくべきというご指摘にはうなずける部分も多くある。

 一方、人間の知性を計算機で越えるというのは人類の夢である。また、ブルックスの言うように、地動説、進化論に次ぐ規模のパラダイムシフトになる。だからこそ、多くの人工研究者が、リックライダーの現実的な提言もありながら、夢を実現しようと努力をしてきたのではないか。
 また、カーツワイルシャナハンの著書からは、なんとしてもシンギュラリティを超える、それについての工学的アプローチはこうである、という気概を感じた。論理、合理性のパワーのもと工学の発展を信じ、今でも人類は果てしない成長の途中にいて今後も発展していくであろう、自らがその牽引車になろうという、西洋人の力がそこにはあると思う。

 なお本書でも、知能のあり方として環境、身体、脳の相互作用ということが繰り返し述べられていたが、この概念はブルックスがもたらし、 ファイファーらが「人工知能には身体が必要である」としてまとめた。このように新しい概念をもたらす著書を、本ブログでは必読書として扱っている。本書ではブログ筆者は、自己の確立ということ、強い人工知能の要件が無限定環境で動作できるということを学んだと思うが、まずは関連書としておく。

AIが「意味が分かる」とはどういうことか。弱いAIに欠けているもの

 今回もポエム色が強いので、ひとりごと扱いにしようかと思ったが、思ったより固い話ができたので、普通のエントリとする。
 完全に余談だが、カタカナで3文字以上の技術用語の最後は延ばさないのがJISで決まっているそうな。エントリーでは無くエントリで良い。リレーは、リレでなくリレー。

 本ブログの基本的な主張である、強いAIを作るには外界、身体、脳モデルが必要である、それはソフトウェアで実現すれば良いというところは揺らがないが、外界、身体モデルの構想はある程度進められるとしても、残る一つの脳モデルを考えようとすると進まない。
 これは当然でもあり、1950年代から延々と天才たちが考えてきて成果が出ていないのだから、欲求をいれれば良いのではないかぐらいの思いつきで解決するはずがないのである。
 自分のオリジナリティは、「構成論的アプローチ」に取り組むのに実世界でロボットを動かす必要は無いというところ、外界を言語の枠組みで構築すれば良い、すなわち脳では無く外界、身体の記号化を進めよ、というところにあるので、次回以降、基本に立ち返り、基本原理を整理するとともに、簡易なモデルにおいて原理の有効性を示す、という形で作業を再開させようと思う。

 今回はその前に、脳モデルの構想を考える最後のあがきとして、意味が分かるとはどういうことか、について、分かりやすく整理を試みた。これは実は、メイン記事の1に相当する内容だが、メイン記事1が出来ていない。

 弱いAIと強いAIの間のギャップの一つに、弱いAIには意味が分からないという指摘があり、シンギュラリティ否定派の根拠の一つとして取り上げられることもある。
 バナナの写真を見せて、これはなんだと聞くと「バナナである」と出力するAIは、機械学習の進展により実現できるようになった。汎用的な画像識別すら出来るようになったのは、一昔前の画像処理技術からすると驚異的である。

 しかし、実際には以下のことが起きている。

  • AIに、バナナが写った画像データを入力する
  • AIは、「バナナ」と出力する
  • 人間が、AIに入力した画像データと、AIの出力結果を見比べ、「AIがバナナを識別した」と解釈する。

 すなわち、バナナの意味を扱っているのは人間であり、AIでは無い。AIは、機械学習によりプログラムされた結果を出力しているのみである。ここを理解せず、AIがバナナを理解した、というような記事も見かけるので注意されたい。AIが意味を扱うには、まずバナナを食べる身体と、外界においてバナナ自体が必要であるというのが、本ブログのスタートになっている。

 また、古い話だが、IBMのワトソンがクイズ番組でクイズ王を破ったという例も同じであり、ワトソンの出力が正解であること、クイズ王より正解率が高いというのは人間の観測結果であり、こちらでもワトソンはプログラムされた通りに入力に対し出力を行い、その出力がクイズの正解だった等の、意味を扱っているのは人間である。ワトソンは、クイズに正解したいとか、クイズ王になりたいとかは全く考えていない。

 このように、弱いAIはプログラムされた通りに動作するプログラムであり、意味を扱っていない。弱いAIプログラムの強化によりチューリングテストに受かるようなAIが出来たとしても、意味を扱うことが出来ない以上、一応意味を扱っているように見える人間の知性には及ばず、強いAIにもならないのである。

 繰り返しになるが、本ブログでの主張は、意味は外界にあるので、意味を扱うには外界、身体、脳の相互作用を扱わなくてはならず、そのためにはAI本体以外に外界、身体が必要である、ということだ。また、外界、身体をロボットや実世界に求めても上手くいかないので、全てソフトウェアでやるべきであり、人間は意味を扱うのに記号を用いているから、外界、身体も記号で表現すれば良い。

 では、外界、身体のモデルがソフトウェアで用意できたとして、脳モデルがどのように動作すれば、人間と同じように意味を扱えたと言えるのか。本エントリの最初に書いたように、簡単にこうすればよいと言える問題では無いのだが、整理を試みる。
 以下は、バナナと人間の関係を、バナナとエージェントで実現するには、どのようなことが出来なくてはならないかのリストである。

  • エージェントがバナナを見たら、「バナナ」と出力する
    →脳モデルでプログラム出来る。ただし、あらゆる見たものを出力するのかというと、いわゆるフレーム問題が頭をもたげてくるであろう。しかしこの問題は、エージェントをプログラミングする際に意識をすれば、解決できるように思う。

  • エージェントには身体があり、バナナなど食べ物を食べないと死んでしまう
    →そのようなモデルを組むことは出来る

 問題は以下である。

  • エージェントは、食べ物を食べたら空腹が改善されることを知っている
  • エージェントは、空腹時に食べ物を食べたいと思う
  • エージェントは、空腹時に食べ物を探しに行こうと思う
  • エージェントは、空腹時に食べ物を見つけたら、食べる

 特に、「食べ物を食べたら空腹が改善されることを知っている」、すなわち食べ物と空腹の因果関係を知る、というところが難しい。ここが分かれば、他も出来るのではないか。
 食べた時の空腹の改善具合を強化学習で学習する、という案はあるが、強化学習は基本的に動作に対する報酬を学習する。すなわち、空腹になった時に食べ物を食べて空腹が改善されたことを学習すれば、空腹になった時にまた食べ物を食べるであろう。しかし、それは「改善されることを知っている」とは違う事象である。

 強化学習による行動最適化と「改善されることを知っている」の隙間にあるのが、自意識というものなのだろうか。思えば、空腹の時に食べ物を食べるのは動物でも出来る行為であるが、人間と動物の間にある違いは何か。言語能力なのか。例えば実際の動作の前にシミュレーションをして、その結果を見て「空腹が改善されることを予測する」のであろうか。あるいは、動物と人間の間にそれほど違いは無いのかもしれない。いずれにせよ、この「隙間」を埋める脳モデルを実現できるかが、肝心な部分であろう。

 「~ということではないだろうか」という終わり方は、特に結論を出しておらず、AIで心を実現するには…というようなタイトルで良く出てくるフレーズであり、ブログ筆者も全く好きではないのだが、今回は仕方がない。もともと、外界と身体モデルを構築し、あとは強いAIを実現するには脳モデルをいろいろ試していけば良いという立場からスタートしており、結論が出るにはシミュレーションによる試行錯誤が必要である。

 脳モデルを作るには入力層を定義しなくてはならず、どのような脳モデルを作りたいかを考えなくてはならないというのを以前述べており、ここで足踏みをしているのだが、冒頭でも書いたように、次回以降、

・強いAIを実現するための基本原理を整理する
・簡易なモデルにおいて原理の有効性を示す


という形で話を進めていく。

「哲学入門」を読んだ(前編) 戸田山和久 著

哲学入門
戸田山和久著 2014年 ちくま新書

 GW10連休等もあり、しばらく更新できませんでしたが、落ち着いたので再開します。といいつつ、書評の記事ですが…

 本書は、amazonで自動でお勧めされたので買ってみました。著者は名古屋大学情報科学研究科教授、専攻が科学哲学、ということで、本書の中でも、唯物論から哲学を科学していく、というスタンスを取られており、多少なりとも人工知能に親和性のある哲学書なのではないかと思います。文章は口語体で、ユーモアもあり、難解な内容が分かりやすく解説されています。イラストも面白い。ワンタンを買いに行く中国の部屋ロボットとか…

 全体は序と8章に分かれ、1章意味、2章機能、3章情報、まで読み進めた。以降、表象、目的、自由、道徳、人生の意味、と続く。

 1章「意味」について、以下の文章がまず目をひく。
 「意味とは何かを考えるにあたり、もうちょい小さくて具体的な問いから始めよう。意味を理解するロボットあるいはコンピュータを作るにはどうすれば良いか」
 そうすると、このブログで扱っているのは、小さくて具体的な問いなのか…ということで読み進めた。

 チューリングテストの話について有名な精神科医プログラムのイライザの例が挙げられており(「母が私を叩くことをどう思うか→家族の話をもっと聞かせて下さい」)、一見会話しているようだが、実際には母というキーワードが出たら家族の質問をする等の形式的記号操作であり、イライザは意味を理解していないっぽいが、これは本当に意味を理解していないのか、理解するとはどういうことか、ということで、中国語の部屋の話題になる。ちなみに、イライザはロジャース派という、出来るだけ相槌などで患者の語りを引き出し、患者自身の気づきを促すという精神分析の流派に属しているそうだ。イライザで効果があったという話も聞いたりする…

 中国語の部屋については、著者はサールには否定的な立場であった。中にいてマニュアル操作をしているジョンは意味を理解していないが、部屋を見ている人からは意味を理解しているように見える、という立場である(ブルックスも著書でそう言っていた)。ただ、そこから一歩話を進め、部屋だけでも駄目であるという指摘もあった。すなわち、ワンタンの話題になって、部屋として「ワンタンは美味しいですね~」と回答をしていても、それは会話だけであり、実体を伴ってない。中国語の部屋を搭載したロボットがあり、実際にワンタンを食べることが必要なのではないか、ということでロボットの絵が出てくる。

 さらに、ワンタンと言われてワンタンを食べることで意味を理解していると言われると、掃除機ロボットは一応掃除をしたりするので、掃除機ロボットも意味を理解しているロボットになってしまうかもしれない、ということで、「ロボットに心をもたせる」ことを「意味を分かるロボット」のゴールにするとのこと。そして、著者としての「ロボットに心をもたせる」ための要件は以下の通り。

  • 環境の中で適切な行動をとらなければ自己を存続させられない仕組みになっていること(バッテリーが切れると壊れるとか…)
  • 自分のプログラムを書き換え、変化する環境に適した行動の幅を広げることが出来る
  • うまく自己を存続させたときにだけ、自己を複製できる

 また、この見解はブルックスの見解と重なる、とのこと(そうかな…)

 

 1章の後半は、意味を人間が扱うため、言語が意味を表彰している、という思考の言語仮説にたいし、ミリカンという哲学者の「目的論的意味論」を紹介している。意味は、その「本来の機能」による、というものらしい。著者にならい分かりやすく口語で書くと、「はさみは紙を切るのが本来の機能であり、背中を掻くとかははさみの意味では無い」というようなことだ。思考の言語仮説だと、人間の脳内の処理がコンピュータと同じ統語論的処理になり、表象を記号的に取り扱うことで、人間ですら意味の理解を持ちえない、ということが問題だそうで、さらに、因果意味論という反論では不十分で、目的論的意味論が必要だという議論が繰り広げられている。


 さて、意味とは何か、心を持つロボットを作るにはどうすれば良いかということで、ブログ筆者の根本は「ロボットの心 7つの哲学的物語」が元になっている。すなわち、意味は外界にある、意味を扱うには外界と脳を結ぶ身体が必要、ということである。本書でもバナナがよく出てくるが、バナナの意味はバナナ本体にあり、それ以上でもそれ以下でもないという立場。
 実は、戸田山教授が言う心の要件「自己を存続させられない仕組み」というのは、人間が死すべき定めにある以上、人間と同じような意味理解をするためには必要であるが、死なないエージェントでも外界と身体があれば意味を扱うことは可能であり、「自己を存続させられない仕組み」は必要条件では無い。外界と身体が必要ということの方が、広義でかつ明快、コンパクトな定義だと思う。
 中国語の部屋を装備したロボットというのは、「意味を扱うには身体が必要」ということを言っており、中国語の部屋の議論から発展した結論としては同じような方向ではあるが、ブログ筆者としては「ロボットの心 7つの哲学的物語」を推したい。

 また、ブログ筆者の主張のもう一つの柱である、意味とは言語で定義されるというソシュールの見解が本書には入っていない。思考の言語仮説(脳内で意味は表象として言語処理される)というより、ソシュールによれば、表象と言語、意味と言語は一体なのである。
 そのため、ブログ筆者としては、外界、身体モデルを作るに当たり、それらを言語をベースに生成することで、脳内で扱う表象と、身体を通じた外界モデルの一致が保証された状態を作るのが良いと思う。
 ただ、脳内で表象を記号的に扱えば良いかどうかは分からない。どうしても扱いたくなるが、ブルックスの「表象無き知性」が知能の元であるという主張に反してしまう。


 ここまで1章「意味」の話に終始してしまったが、2章は「機能」について「目的論的意味論」の解説が展開される。3章の「情報」では、シャノンの情報定理を始めとして、工学的な勉強になった。世界は情報であるとか…

 本書を読んで、脳内では世界は表象になっているということを意識する必要性はあらためて感じた。外界を記号で構築するとして、表象無き知性を貫くか、脳内で表象を扱ってみるか、どちらが良いのかは、やってみないと分からない。

脳モデルの構造について(その2)

 最近pythonネタが続いてしまったので、原点に立ち戻り、考えを進めたい。

 もともとのブログの趣旨は、外界及び身体モデルを作って、あとは脳モデルをいろいろ試していけば良いということだった。しかし、身体モデルを作る場合でも、直結する脳モデルの構想が無いと、脳モデルへの出力の形をどうすれば良いのか分からないので、具体的な実装が進まない。

 身体モデルの構成要素は、大まかにはセンサ、アクチュエータ、ステータスに分ける。狩猟時代の人間レベルを目指すものとして、

  • センサ
    視覚、聴覚、味覚、気温…
  • アクチュエータ
    摂食、移動、発声、攻撃、生殖活動…
  • ステータス
    性別、年齢、体力、疲労、空腹感、睡眠…

 等を作るのは、オンラインRPGのエージェントを作るのと似たような形になるが、出来るであろう。

 これらの「身体」と「外界」があるとして、問題は、
「未知の状況において、知性に基づいた行動をとるにはどのような脳モデルが必要か」
ということに集約される。いくつかのパターンに分けて考える。

  1. 強化学習
     人間は一見考えて行動できるようにみえるが、全て学習の結果であるとして、DQN以降の高度な強化学習で実現できるのでは、という説。ただし、強化学習が汎用人工知能を実現したという話は出て来ておらず、汎用人工知能実現のためにDeepMind社を立ち上げた天才Demis Hassabisでさえまだ辿り着いていない。
     本質的に、プログラムされたことの中から何かをやってみる、やってみて報酬で学習していくという手法であり、未知の状況においてどうすれば良いか考える、ということは、少なくとも強化学習だけではできないであろう。

  2. 世界モデル系
     なにかの行動をとる前に、こうしたらどうなるかを脳内でシミュレーションして、その結果をみて判断するということが行われているのかもしれない。一部で行われている、世界モデルを脳に構築する、ことで、このような手法が取れるであろう。ただし、フレーム問題の最後にひっかかると思う。すなわち、選択可能なあらゆる行動についてシミュレーションをする必要が出てくる、ということだ。
     あるいは、そのシミュレーションを強化学習でやっておけば、いつもあらゆる選択肢を試すということは必要ないのかもしれない。ただし、行動の選択肢がプログラミング済みであるという話は残る。
     
  3. リアクティブ+言語型
     
    センサ入力に対する反射的行動が生物の基本原理であり、人間も同じ原理にて動いているという原則を元に、言語能力も反射的行動であるとして、あらゆるセンサ入力に対しなにかをしゃべり、及びそれを自分が耳にしてまたしゃべるような形での行動を行わせてみる。会話で人間が喋る内容は実は反射的であり、口から自然と言葉が出てきているはずだ。
     誰かがものを投げているのを見ると、自分が投げる動作をする時に反応するニューロンが同じように反応すると言われているが、「Bがボールを投げた」とAに発声させることで、AがBの動作を理解したことになるのかもしれない。ここには、ソシュールが提言した言語の魔力が潜んでいる。すなわち、人は言語で認識する、ということだ。

     自分がしゃべり、それを聞いてまた自分がしゃべるのは、2台の対話エージェントが機械的に話を続けるのと似ている。ただし、普通の対話エージェントは、膨大な会話事例を元にこういう入力に対しては統計的にこう喋るのが良いという出力をしているので、身体と外界に対話が結びついておらず、会話に意味が無い。本ブログで提唱しているように、身体と外界モデルを用意した上であれば、意味を伴う会話に近づく。従来とは違った試みにはなるであろう。

     ただ、対話エージェントのように機械的にしゃべるのと、意味を分かってしゃべるのと間を埋めるには、まだ何かが足りていないと思われる。

     少なくとも、言語能力が無いのに知性があるという状況が想像できないので、言語能力自体は必要だ。言語能力“だけ”で知性が生まれるというものではなさそうであるが。

     
  4. 欲求ドライブ型
     いわゆる弱いAIは、プログラムされたことしか出来ない。ディープラーニング等の機械学習は、人間には手におえない複雑なプログラムを実現できる、いわば弱いAIの強力なプログラミング手法である。強化学習は、環境に対し、"予め用意された"行動選択肢から行動を選択し、報酬を評価することで自律的にプログラミングが進むが、学習のためにまず行動をしなくてはならず、やってみた結果を使ってプログラミングをしていく手法である。それらの既存スキームから離れ、プログラムされていないことをAIプログラムがやるにはどうすれば良いか(自己矛盾しているさまが面白い)。
     人間でも、どうしようかと考えこんだ時に、こうすれば良いんだとひらめくことがある。仕事をしていて良いアイデアが出た時に、なぜ自分はこれをひらめいたのだろうと考えると、必死に考えているからなのだが、解決したい、という欲求が裏にあるのではないかと思う時がある。すなわち、知性とは欲求であると。
     脳内には欲求以外にも報酬系があり、報酬系の報酬が高くなるように人間は行動しているだろうが、その報酬を高くするように行動を促すのが欲求であると思われる。欲求自体は動物にもあるので、欲求だけだけでは駄目であろうが、今まで上げてきた項(強化学習、脳内シミュレーション、言語能力)等と比べ、脳が自ら行動を起こす要素となっており、強いAIの実現にあたって、大きな役割を出来るのではないかと期待する。

  5. 意識型
     そもそも、強いAIの提唱者であるサール自身による強いAIの定義が「意識がある」ことなので、「意識」を再現した脳モデルにするべきなのかもしれない。ただ、意識ってなんだ?という話がまず出てくる。入力に対し反応する回路が動いているのか動いていないかの違いなのであれば、プログラムが動いている時点で意識がある、と言えるのかもしれない。別の定義で考えられるのは、自分が喋って自分で聞いてというループがずーっと成立している時かもしれない。
     逆に、サールが言いたかったことは、ブログ筆者が上に書いた「プログラムされていないことが出来るプログラム」程度のことかもしれない。私自身は「意識」を意識してプログラミングしなくても良いと思っている。ただ、意識が有るがゆえなのか、人間がシングルタスクである、ということは活用していきたい。

  6. 全部のせ
     今まであげてきたもの全てを何らかの形で導入した脳モデルを持ったエージェントを作るべきなのだろうと思う。特に、欲求、言語能力、ミラーニューロン、強化学習。
     欲求は、強化学習にあたり行動の選択を絞る役割があるのではないか、等、創造の幅が広がる。あるいは、強化学習で評価を上げる、ということ自体が欲求なのかもしれないが。
     世界モデルを作って脳内でシミュレーションをすることは、「こうすればいいんだ」と喋ることと同じかもしれないので、積極的には取り入れない。

  7. 感情、クオリア
     良く、AIには感情があるのか、という話が出る。感情は、人間にとっては次に取る行動を左右するとともに、現状のステータスを(外からも)分かりやすくしたり、怒りの感情によって行動力を強化する、哀しみによって精神的に楽になる?等、人間の行動のなかで大きなウェイトを占めてはいるだろうが、知性、との結びつきがあるとは思えない。身体モデルを構築していくなかで、究極には辞書に載っている要素は全て実装していきたいので、何らかの形で導入することにはなると思う。
     クオリアは、そもそも定義が良く分からない。美しいという質をクオリアと呼んだりするようではあるが…。なにかを見て美しいと思うこと自体は、辞書にも載っており実装していきたい内容ではあるので、実プログラミング段階で実装方法を考えていけば良いと思う。


 まとめると、欲求、言語能力、ミラーニューロン等を意識して強化学習型のエージェントを作ってみるということになる。欲求と報酬系がある時点で、強化学習ではなくても良いのかもしれない。
 まだ根幹が整理しきれていないが、次回で、プログラム全体の構造が整理できるような気がする。

直感 Deep Learning を読んだ(その3)4章GAN

直感DeepLearning Python×Kerasでアイデアを形にするレシピ
Antonio Gulli 著 2018年 オライリー・ジャパン

 前回に引き続き、今回は4章のGANのうち手書き文字生成。GAN(generative adversarial network)は、本物そっくりの画像をAIが学習して作れるようになるというもので、ブログ筆者が最終的にやりたいことからは離れているがやってみた。GANの応用で、最新では実在しない人物画像等を作れてしまう。もはや写真があってもそれが本物なのか分からない時代になりつつある。
 サンプルプログラムはこちらも正常に動いた。テキスト記載通り、GITでkeras-adversarialというライブラリを追加する。また、こちらも訳注通り、kerasバージョンを2.1.2にしないと動かなかった。インストールしていたのは2.2.4だったので、pipで2.1.2に落とした。anacondaを使っているが、kerasは
condaでは駄目でpipでした。この本は、内容が高度だがちゃんと確実に動くところが素晴らしい。

 デフォルトでは100エポックだが、1エポックに私の環境では3時間かかる。手違いで途中で終わってしまったが、数エポックから先はあまり違いがみられないようだ。

 本書ではCIPHERでカラー画像を学習するものも紹介されているが、こちらはそれこそ90エポックぐらいしないと駄目らしいので諦める。

f:id:tomotomo47:20190331201629p:plain

0エポック

f:id:tomotomo47:20190331201651p:plain

2エポック

f:id:tomotomo47:20190331201712p:plain

4エポック目

f:id:tomotomo47:20190331201806p:plain

6エポック目

f:id:tomotomo47:20190331201827p:plain

8エポック目

 

直感 Deep Learning を読んだ(その2)3章CNN

直感DeepLearning Python×Kerasでアイデアを形にするレシピ
Antonio Gulli 著 2018年 オライリー・ジャパン

 前回に引き続き、今回は3章の畳み込みニューラルネットワーク。サンプルプログラムは、windows7、JupyterNotebookで正常に動いた。

 前回のニューラルネットワーク基礎でも対象にした手書き数字認識に対し、以下の構造のLeNetを試す。
 入力:28×28の手書き数字画像48000枚
 畳み込み:5×5のフィルターで20層に畳み込み→28×28×20
  ※28なのはsame指定のため
 プーリング:2×2を1→14×14×20
 畳み込み:5×5のフィルターで50層に畳み込み→14×14×50
 プーリング:2×2を1→7×7×50
 全結合:500個のニューロン
 出力:10個の出力層(0~9の数字なので) 

 

  細かい結果は異なるが、概ねテキストと同じ結果になった(識別率0.9915)。
 ただし、全結合ニューラルネットワークと比べ非常に時間がかかるようになった。1エポック(48000枚学習)に210秒程度を要する。10エポックで30分ぐらいかかる。corei5でGPUも無いノートPCでやっている訳ですが…

 時間を減らすために、畳み込みの層を、20→10、50→20にしてみる。時間は1エポックで110秒程度と半分になった。かつ、10エポック経過後の識別率は、学習データとは別の12000毎に対し、0.9915→0.9901とほとんど変わらない。層は多くなくても、CNNの効果は得られるのかもしれない。全結合のニューラルネットより識別率は明らかに高い。

 全結合の500個を250個にしてみたが時間は全く変わらない、識別率も0.9903で有意な差は無さそうだった。

 3つの方法について、TenorBoardで識別率グラフを出力した。グラフがオートスケールなので比べづらいが、最初の設定(全結合20、50)の方がほんの少し識別率は高くなっている。

f:id:tomotomo47:20190324184103p:plain

畳み込み20、50

f:id:tomotomo47:20190324184133p:plain

畳み込み10、20

f:id:tomotomo47:20190324184442p:plain

全結合250

 

 畳み込み層の数だけではなくて、畳み込みの形についても、大きさを変える、形を長方形にする等でも結果は変わるかもしれず、いろいろパラメータがありますね。

 

 手書き文字でなくて、10種類の対象が写っている60000枚のデータを分類する有名なCIFARにもチャレンジできる。こちらも正常に動き、おおよそテキスト通りの結果が得られた。ネットワークは、LeNetにドロップアウトを追加したもの、さらに畳み込みを1段増やしたものがある。ネットワークの図だけ載せておく。ドロップアウトを追加しただけでは、あと細かい設定が異なっているが、実行時間はLeNetとあまり変わらなかった。さらに畳み込みを追加した場合、さらに時間がかかった。

 

f:id:tomotomo47:20190324185248p:plain

LeNet

f:id:tomotomo47:20190324185356p:plain

CIFAR用(ドロップアウト追加)

f:id:tomotomo47:20190324185438p:plain

畳み込みを追加

シンギュラリティの夢

 プログラミング、人工知能関連の話題を書くブログといえば、Qiitaという選択もある。他の人も悩むようで、はてな、Qiita等で検索すると、どちらに書くべきかという記事がいくつかあった。それらを読むと、Qiitaのガイドラインは、

  • Qiitaには再利用性、汎用性の高い情報を集める

 なのだから、ポエム系は自分のブログで書こう、という記事があり、なるほどと了解した。ということで、当面はてなブログに書き続けることになります(^^)。

 今回は特にポエム系なので、「ひとりごと」カテゴリー。

 

 強いAIを作るというのは、人間の知性を工学的に実現することを目指すことだ。

 その人間の知性は、自己複製をするタンパク質が、複製を繰り返しているうちにシンギュラリティを突破したものだと言える。従って、コンピュータにシンギュラリティを越えさせようというのであれば、タンパク質が(利己的な遺伝子が命じるがまま?)どのようにシンギュラリティ越えを実現したのかというのを考えたくなる。
 人類が直立二足歩行を始めた境界はミッシングリングであり、直立二足歩行で重い脳を支えられるようになったということ以外、未だに良く分かっていないようだ。アーサーCクラークはシンギュラリティの訪れをモノリスで表現していた(と言えると思った。今となってではあるが。2001年宇宙の旅は古い小説・映画なので…)。

 他に知的な振る舞いをする生物の例として、蟻はマルチエージェントシステムであり、単機能のエージェントが多数集まることで高機能を実現している。自己複製をすれば良いという観点からでは、人間でも蟻でもゾウリムシでもタンパク質的にはなんでも良いのかもいれない。しかし、蟻塚程度の生成物では人工物とは比べ物にならず、シンギュラリティを越えたのは唯一人類である。

 なお、人間においても狩猟時代、農耕時代、工業時代、情報時代と段階がいろいろあるが、これは人間が使いこなせる道具が進歩したのであって、人間の知性の質はあまり変わっていないであろう。そのため、外界モデル、身体モデルを作る際にも、まずは狩猟時代を想定するので良いと思う。ちなみに、道具の進歩は加速度的であるが、ようはシステムの進化は加速度的であるというのがカーツワイルの著書の本質である。

tomotomo47.hatenablog.com

 

 別項で、具体的に脳モデルのニューラルネット入力層をどうするべきかについて考え始めているが、視覚についてはCNN、言語認識ではRNN?、エージェントアプローチ等種々のアルゴリズムがあり、それらを複合したニューラルネットを作るなど、どうするべきか良く分からない。特に、以下に迷いがある。

 作ろうALifeに載っていたエサの量や方向を探知して行動を決めるニューラルネットエージェントは、知性には遠く及ばないが、実は私の信じる「探知→行動」アルゴリズムに則っている。やっぱり「探知→行動」では駄目なのではないか。あるいはこれに視覚センサのCNNを通した認識結果を入力するべきなのか。しかし、ニューラルネットエージェントへの入力は1ニューロンに対するスカラー量であり、CNNでの認識結果など入力できないであろう。やはり、認識結果を判断するユニットが必要なのかもしれない。等。

 そこで、自分の立ち位置を今一度明確にしておこうと思った。

  • 生物は探知→行動のループで動作する(探知→判断→行動ではない)byブルックス
  • 生物が複雑な動作をするのは環境が複雑だからだ byブルックス

  この2つの原理が正しいことは譲らない。
 環境が複雑になっていけばエージェントはより複雑な動作をするようになり、いずれシンギュラリティを越えるであろう(脳の容量の担保があれば)。従って、外界モデル、身体モデルを通し脳モデルに複雑さを味あわせることが基本であることに変わりはない。


 環境には別個体のエージェントも含む。それらと会話することが環境の複雑さを大いに増すであろう。会話をすることも、探知→行動のループであり、「判断」は入らないのではないか。実世界で会話していても、実は自分の発言は自然に反射的に出てきて、考えていないことがある。また、そもそも人が何かを考えるということは、自分の発言を自分が聞くことではないか。
 ようは、判断という機能を脳モデルにはいれず、他エージェントや自分の発言も入力として、判断という機能が介入せずに会話を含む行動をとっていくことを目指したい。(End-to-Endと似たような形になっていくのかもしれない。自動運転で言われるEnd-to-Endは、あくまで判断をやらせようというものではあるが)

 なお、外界と身体を記号化する、というのがブログ筆者の主張の一つであるが、エージェントに会話機能を持たせるには、記号化された外界と身体に基づいた独自言語を導入するのが良いと思う。独自言語とは、トールキンのようであるが。

 結論としては、複雑な環境に応じ(会話を含む)複雑な行動をさせていく、それが十分複雑になれば、シンギュラリティを越えていけるのではないか、ということです。

 

 それにしても、おなかがすいたと誰かが発言したのを聞いたら、あいつはおなかがすいたんだなぁと理解するにはミラーニューロン系の仕組みが必要になる可能性が高い。エージェント内部に外部モデルみたいのが必要になってくると、ブルックスの言う「表象無き知性」に反するのであまり良いとは思えないのだが…。 

直感 Deep Learning を読んだ(その1)

直感DeepLearning Python×Kerasでアイデアを形にするレシピ
Antonio Gulli 著 2018年 オライリー・ジャパン

 作って動かすAlifeに続き、Pythonでのネットワーク実装のために参考とする。
 アナコンダをインストールしたWindows7で、正常に動いた。プログラムの苦労として、つまらないことで動かないのの解決に時間を要するので、わりとあっさり動いたのに感謝。

 表題にもKerasとあり、tensorflowのさらに上位のKerasを使うことで簡単にニューラルネットワークが組める。第1回として、1章「ニューラルネットの基礎」にて手書き数字認識を一通りこなした。たったの70行で28×28=784の入力があるニューラルネットを組めてしまい、Kerasのコンパクトさは異常。1章はまだディープラーニングでは無いが、3章のCNNでも100行しかない。

 1章の内容にしたがい、中間層が1層、隠れ層を2層追加(5行で追加出来る)、さらにドロップアウト層の追加をして、それぞれテキスト通りの結果を得た。また、学習回数を変える等で、自分で効果のほどを確認できる。手書き数字識別で95%程度の識別率になった。まぁ、数字なので10種類しかないし。CNNだと99%を越えてくる。

 TensorBoardの使い方が分かると、学習結果のグラフ化、ネットワークの視覚化が出来る。以下に3種類のネットワークの視覚化したものを載せる。これがネットワーク構造と言ってよいのかはちょっと自信が無い。

f:id:tomotomo47:20190321223929j:plain

中間層1層 Dense(全結合)

f:id:tomotomo47:20190321224009j:plain

隠れ層2層追加

f:id:tomotomo47:20190321224046j:plain

ドロップアウト追加

 

 なお、本書は、他のオライリーの「ゼロから作るDeepLearning」とかに比べやや敷居が高そうだが、取りあえず1章で行き詰ったのは2か所。

  1. アナコンダをインストールした状態で、JupyterNotebookで保存先のフォルダにいき、terminalからソースを実行したところ、以下のエラーが出た。
    ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
    これは、pipで一度tensorflowをアンインストールし、condaで再インストールしたら解決。こちらのページを参考にしました。

    qiita.com

  2. TensorBoardの使い方。
     起動時に指定しなくてはならないディレクトリ位置の指定が良く分からず。ターミナルで打ち込むコマンドが、最後のでないと駄目なのだが、これにたどり着くまでに1時間ぐらいかかったかも。こういうところで時間を取られる。
     ログディレクトリの名前が長いのは、本書がログファイルの保管場所を毎回時間で変えている設定のためで、ディレクトリがどんどん出来てしまうのでいまいち。TensorBoardも、ログファイルの場所をエクスプローラー風に探せるようにすれば良いのに。
    × tensorboard --logdir=./keras_MINST_V2_Thu_21_Mar_2019_08_27_18
    × tensorboard --logdir=./keras_MINST_V2_Thu_21_Mar_2019_08_27_18/
    ○ tensorboard --logdir=keras_MINST_V2_Thu_21_Mar_2019_08_27_18

身体モデルから脳モデルへの入力層の構造について(その1)

 脳モデルへは何らかの深層学習系を導入しなくてはならないので、各種のニューラルネットワークにおける入力層の構造から、採用すべき入力層の構造を検討する。
 この構造を決定するには、身体モデルにおいてどのようなセンサ入力があるか、また、脳モデルにどのようなニューラルネットを持たせるべきか、という2つの観点から決心しなくてはならない。

(1)身体モデルにおいてどのようなセンサ入力があるか

 こちらは、前回にざくっと書いたものがある。その中から、脳への入力に関連することのみとすると、

性別(男女)
体力→満足感~空腹感
摂食インタフェース→食べ物を食べる
視覚センサ→視界内の物体を認識
味覚センサ→味の好み
聴覚→人の発言の認識
気温センサ→快不快
疲労→疲労感(不快感)

 狩猟時代レベルの複雑さが再現出来れば良いと考えれば、まずは案外この程度かもしれない。
 ただし、身体モデルを複雑にしていくことを見据えると、当然拡張性を持たせなくてはならない。

 

(2)脳モデルにどのようなニューラルネットを持たせるべきか

 (1)のセンサ入力に対応してどのようなニューラルネットを持たせるべきか、全く分からない。そもそもブログ筆者の当初意見は、もし強いAIを作りたいなら、外界モデル/身体モデルをシミュレーション環境として充実させるべきであり、あとは脳モデルはいろいろ試せばよいだろうというものだった。いろいろ試せるところが、ロボットへAIモデルを実装して現実世界で動かし、なかなか上手くいかない従来の構成論的アプローチと比べた時の利点である。
 ただし、身体モデルを作る場合、脳モデルへの出力(=ニューラルネットワークの入力層)をどうするべきか、という議論がついて回るため、世にあるニューラルネットの入力層の構造を整理し、今回の目的に沿うためにどのような入力層構造が考えられるかの議論を進めていく。1回では絶対終わらない。

 

(3)ニューラルネットにおける入力層の事例

  1. 「作って動かすALife」より、エサ取りエージェントの入力構造
     別項で紹介した。
     入力層にはニューロンが9つあり、そのうち7つがエサのセンサになっている。センサの詳細な機能は明記されておらず、プログラムを追っても良く分からないところがあるが、エサの量、方向、距離が入力になっているであろう。
     これは、エージェントに対する外界入力がエサという1種類しかないから出来る構造である。もしこの方法にならうとすると、食べ物の種類が増えるたびに一連のセンサのセットを用意することになる。また、エサ以外の外界にある対象すべてについてセンサのセットを用意することにもなる。
     実装が簡単というメリットはありそう。

  2. オライリージャパン「直感DeepLearning」より、手書き数字認識CNN
     一般的な画像処理用のディープラーニングの場合、入力層は画素数だけのニューロンがある。本書の例では28×28=784個であった。以下、畳み込み→プーリングを繰り返していく。VGG16で16層等。
     ディープラーニングのすごいところは、畳み込み等によって、従来収束しなかった多数の中間層のニューラルネットが収束するようになったことだと思っていたが、畳み込みにより空間特徴を活かすことが出来る点であると、本書で再認識した。畳み込みは1次元でも使えるので、音声生成技術等にも応用されている。

  3. オライリージャパン「直感DeepLearning」より、RNN
     リカレントネットワークは、ブログ著者の原点の一つであるチャーチランド著「認知哲学」1995年、において、もう人工知能は実現出来たも同然だという中で紹介されており、人間の脳にも搭載されているため必須のアーキテクチャになるであろうと考えている。現状では、時系列データの処理に使われることが多く、本書の事例でも、文字列からの次の文字の予測等に使われていた。


 他の例も逐次リストアップしていくとして、身体モデルの視覚センサにCNNを用いることは無いであろう。やりたいことは、CNNを通してエージェントが何かを認識したとして、その認識結果を入力として、行動するエージェントである。すなわち、CNNの先のニューラルネットをどうするかを考えなくてはならない。人工生命というだけあって、1.の方がやりたいことに近いのである。1.の入力ニューロンに、CNNから出力される認識結果がつながっているというか。

 今回取り上げた、入力層の構造をどうするのかというのは、根本的な問題と思われるので、引き続き検討していく。マルチモーダルにすれば良い、というだけでは片付かないであろう。