ようこそ、小山明雄のホームページへ



ロボットの作成は子供のころからの夢でした。ですが、何をすればよいのか分からず、暗中模索で勉強するだけで、学生時代、会社時代を過ごしてしまいました。

1995年にWindows95が登場したことにより、私にも個人的な努力でロボットができると感じました。それいらい、ずっと人工知能の研究をしています。


本ホームページの内容は、プログラムを作りながら考えたことを綴っています。少しでも、人工知能、そしてその向こうのロボットの時代に向けて何か貢献できることがあればいいな と思っています。



JOY



過去記事1

過去記事2




共起というものを基本的な着想として、自己組織化と自律システムという人工知能を追求してきた事への解答です。永い年月でした。これが私の根本的な成果となります。

(注意:「モーダル」は「メディア」の書き間違いです。ですが、モーダルは生きていく上での内発的感覚というかんじで、メディア・モーダルで良いかもとも思っています)




汎用人工知能の実現に向けて




[汎用人工知能の為のファイルシステム]

汎用人工知能は、巨大な量のデータ群を蓄え、高速に処理し、結果を得ていくものです。想定されるのは、データが主記憶に置いておけなくなるほど巨大になることです。部分的にファイル化して、主記憶を有効活用していく必要があります。

Pythonで汎用人工知能のソフトウェアを構築するとして、Pythonのファイル化機能を使っていこうとするのは自然なことです。そのとき、データの型というものをできるだけ簡単に管理して、ファイル化によるシステムの複雑化を避けたい物です。

画像や音声のイメージは配列で実現できます。世界の表現の基本は、配列の集合体として実現できるということです。あと、汎用人工知能の設計で導入したセットとグラフとニューロです。これらも、配列で表現できることが分かりました。

つまり、セットは、適当な1次元配列(2次元で表現しても宜しい)にメンバとなるオブジェクト名を保持すればよく、グラフは、ノードを1次元配列にしてそこにエッジの名前を登録するようにすればいいわけです。エッジは2個の配列で、両端のノード名を持つだけです。ニューロもグラフの一種です。

配列は整数の集まりです。データを名前で管理し、名前アドレス変換テーブル(辞書)によって、配列が保持するデータの名前から実際のオブジェクト(配列とリストと辞書)を得ます。このオブジェクトは(key,value)がセンサーとアクチュエータのデータの表現によって支えられるものです。

また、コマンドは記号世界を体現します。(key,value)とコマンドはリストとか辞書で表現されますから、汎用人工知能のデータ世界は、配列とリストと辞書で全てを尽くすと言えます。

汎用人工知能の中核的データである、コマンドとステートマシンとプロダクションシステムはグラフとリストと辞書によって表現できます。一方で、プロダクションシステムのプロセスは実行時にファイルから読み込んで動かせば良いでしょう。

以上のことから、汎用人工知能はファイルシステムによって支えられることが言えました。


[検索の高速化の為のハッシュ辞書]

例えば、言語の獲得のために、グラフを交差法によって造っていくことを考えて見ます。「私はカモメ」、「あなたはツバメ」という言語から交差法を適用していくことを例にします。「私」と「あなた」という単語が「は」によって獲得できます。

ノードとして「私」と「あなた」と「は」ができ、それらをエッジが結びます。このとき、「私」が全く新しい単語であれば、ノードを即座に造れば良いですが、すでにノードとして存在するかもしれません。その既存か新規かという判定に、工夫がいります。

「私」として、名前が既に振られた単語があるかということを検査するということです。それには、Pythonの辞書があれば良いとして、それは、名前から単語「私」を検索する名前管理辞書の転置辞書になっています。

単語の例はそれでいいですが、画像だったりしたらどうでしょうか。画像の特徴を取り出しkeyにしなくてはなりません。特徴群を羅列して、一つの単語で表現するということで、それはハッシュコードに成っている物です。

このように名前をオブジェクト(イメージやテキスト)から逆引きし、検索を高速化していく機構も必要になることが言えました。