強いAIの実現方法 ~実用化に向けた実践的な作り方~

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

作って動かすALifeを読んだ(中編)

作って動かすALife 実装を通した人工生命モデル理論入門(中編)

岡 瑞起、池上 高志、ドミニク・チェン、青木 竜太、丸山 典宏 著
2018年07月 オライリージャパン

 前編の続き。第5章までは、自己複製を扱っていた。しかし、人工生命(Alife)の意義は、進化により機能を発達させることにあるため、第6章「個体の動きが進化する」では、自己複製が可能なモデルを前提として、進化の概念を導入する。思えば、人工生命が最初にメジャーになった時、進化をさせれば人間まで辿り着くのではないかという期待もあった。しかし、著者が5章で述べているように、1994年のシムズの研究「Evolving Virtual Creatures(進化する仮想生物)」以降、目立った仮想動物の出現には至っていないというのが現状である、とのこと。

 適応度地形なる概念が紹介される。適応度は、より高い適応度の動物が数を増やし、低い動物は数を減らすというもの。環境に応じ各生物が適応度が高くなる方向に進化することで、縦軸が適応度で、いくつも山があるような等高線がかけるようである。進化に従い複製の成功率が高くなったり個体数が増えることを「適応度の山を登る」と言う。人工生命の世界では重要な概念らしいが、結局は後付で生物の進化の方向を説明するものであり、本書の著者は否定的であった。むしろ、進化は高機能化とともに多様性を生み出す装置である、という考え方を述べており、ブログ筆者も共感する。

 また、OEE(Open-Ended Evolution)という概念があり、ある戦略が優位になっても必ずそれを凌駕する戦略が生まれ、進化は終わらないというものである。

 これらを背景に、実際にエージェントをGA(遺伝的アルゴリズム)で進化させるのが6章の中心である。GAは、15年ぐらい前に流行ったものですね。

 入力層に9つ、出力層に4つのニューロンを持つエージェントで、中間層(隠れ層)はニューロン4個1層のシンプルなニューラルネットワーク。隠れ層と出力層にはバイアスも入力できる。Kerasで実装。
 入力層のうち、実際のセンサ入力は7層、出力層のうち2つをコンテキストニューロンということで入力層にフィードバックさせ、入力層を7+2で9層としている。(コンテキストニューロンというのは、RNNの簡単なものと考えていいのかしら)
 実際の出力層は、速度と進行方向角度の2つを出力する。センサ情報を元に、エサが分布している空間において、エサをたくさん集められるエージェントをGAで作り出す。遺伝子数がニューロン間の重み係数で60個。
 紹介されているプログラムでは、個体数は50個、ランダムに1/3はそのまま残し、1/3は交叉、残り1/3は突然変異で進化させる。

 この実装内容はシンプルであるが、ごはんを知的に集めるというエージェントの目指すべき基本的な姿は自分がやりたいことと同じで、実装例として参考になる。
 最初この本を手にした時、実は、自分がやりたいことをこの本のプログラムベースで改造していこうとちょっと思っていた。しかし、入力層の数をもっと多く、中間層を多層にしたぐらいでは全く追いつかないであろうということも良く分かった。身体モデルにおいてセンサ入力の設計、出力の設計を固めることで、AI部分の実装をどうしていけば良いのかが見えてくると思われる。身体を複雑にしていくと出力層の数も増えていくのだろうけど、幸い意識はシングルタスクであり、上手く一つの行動をとるようにしていくことになるだろう。

 自分の環境ではグラフィックに問題があり、走らせるにしても魔改造をしなくてはならないので、実施例はまた機会があれば。

 また、本章ではTierraが少し言及されているが、インターネットで見る限り、活動は15年ぐらいまでに終わっているようだ。生物学者だったTom Rayの作ったAlifeの初期の代表的な研究成果であり、CPUの占有時間、メモリ占有量等を争うプログラムを生物の進化に見立てた。
 シムズにしてもレイ博士にしても、誰かが立ち上げた人工生命プログラムは、天才が残した成果から、その後が続いていないようにみえる。必要なのはオリジナリティと才能なのかもしれない。
 独自性という意味では、外界と身体を記号化すべきという自分の主張は、まだオリジナリティを失っていないように見える。

 なお、人工生命のプログラムとして、ARTILIFEというドワンゴの人工生命ゲームプロジェクトがあるようなので、ちらっと見てみたが、動きが気持ち悪かった…別記事にしよう。