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

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

身体モデルから脳モデルへの入力層の構造について(その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から出力される認識結果がつながっているというか。

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