見出し画像

自己認識システムの実現方法:好奇心を持った知性

この記事では、シンプルなアルゴリズムで、予測システムと自己認識システムの例を示します。これにより、自己認識の本質的なメカニズムを説明します。

これは、自己認識という知能の働きについての、現時点での私なりの仮説です。ただし、子供が自己認識する過程を上手く説明することができるため、説得力があるメカニズムではないかと思います。

その上、アルゴリズムに書き下すことができるため、実証可能性の高いメカニズムです。エンジニアとしての私の経験上、アルゴリズムとしては上手く機能すると思います。

以下、記事の本文になりますが、前半部分で、予測と自己認識のアルゴリズムの説明を行っています。プログラムを書いた経験がない人には少々理解しづらいかもしれません。

後半部分は、主に子供が自己認識をしていく過程を説明します。また、自己認識を基にして、より深い外界認識、自己の拡張、他者との協調をしていることを説明します。そこに、本能的な楽しさが伴っていることも示します。これは好奇心を持った知性の特性と考えられます。

■予測アルゴリズムのシンプルな例

予測と実際の結果を充てようとする予測システムを考えて見ます。予測は時間経過に従って行われます。

仕組みを極限までシンプルにするために、予測対象は1つの数値として、0と1のどちらかだけを取ることにします。
最初は0が入っていることにします。

さらに、予測システムが使える予測モデルは、[A]今回と同じ値が入るか、[B]今回とは逆の値が入るかの2種類しか取れません。最初は、予測システムは[A]今回と同じ値が入る、と仮定してスタートします。また、最初の予測値は0とします。

時間が進むごとに行われる、予測システムのシンプルなアルゴリズムは、以下の通りです。

<初期状態>
予測対象の現在値:0 予測値:0 予測モデル:A 

<アルゴリズム>
ステップ1) 箱の中と、予測値が一致しているかを確認します。
ステップ1-a) 一致してれば予測モデルは変更しない。
ステップ1-b) 一致していなければ、予測モデルを変更する。
ステップ2) 予測モデルに従って予測値を更新します。
ステップ3) 時間を進めて、予測対象の値を更新します。
ステップ4) ステップ1に戻ります。

■自己認識アルゴリズムのシンプルな例

自己認識アルゴリズムを考えます。自己とは、システムがどんな予測値を入れても、必ず対象の値と一致します。これは、私たちが手を動かすイメージをすれば手が動くのと同じです。

ただし、自己認識アルゴリズムは、対象が自己であるか、自己ではないかは事前に知りません。このため、対象の動きを予測しながら、自己であるかをチェックすることになります。

先ほどの予測システムをベースに拡張します。まず、連続成功回数と予測回数を新たにシステムに加えます。初期値はどちらも0です。

また、自己認識という状態も足します。初期値は不明で、自己あるいは外界のラベルを取り得ます。

<初期状態>
予測対象の現在値:0 予測値:0 予測モデル:A 連続正解回数:0 予測回数:0 
自己認識:不明

<アルゴリズム>
ステップ1) 箱の中と、予測値が一致しているかを確認します。
ステップ1-a) 一致してれば予測モデルは変更しない。連続正解回数を1つ増やします。
ステップ1-b) 一致していなければ、予測モデルを変更する。連続正解回数を0に戻します。
ステップ2) 自己認識のラベルを確認します。
ステップ2-a) 自己認識のラベルが「不明」であり、連続正解回数が10以上なら、自己認識を「自己」にセットして終了します。
ステップ2-b) 自己認識のラベルが「不明」であり、連続正解回数が特定の場合、わざと予測モデルを変更します。(※偶然の一致を避けるために自然界は起こりにくい規則性を導入することがポイント。素数でなくても良い)
ステップ3) 予測モデルに従って予測値を更新します。
ステップ4) 時間を進めて、予測対象の値を更新します。予測回数を1増やします。
ステップ5) 予測回数が30を超えたら、自己認識を「外界」にセットします。
ステップ6) ステップ1に戻ります。

■予測と自己認識の本質

ここで挙げたアルゴリズムは、予測と自己認識のコンセプトを説明するためのかなりシンプルな例です。実際の有用な予測のためにはより複雑な予測モデルと学習アルゴリズムが必要になります。

一方で、どんなに複雑なものになったとしても、予測システムは、外界の知覚、予測モデルの探索、予測モデルのに基づいた予測、を繰り返すところに本質がある事は変わりません。この例は、それを示すためのものです。

また、自己認識システムも同様に、予測部分がどんなに複雑なっても、本質は変わりません。自分の予測に現実が追従するものは、自己と認識します。そのためには、自然界には発生し得ないような様々なパターンを試して確度を上げていく必要があります。

■より複雑な自己認識

例示したアルゴリズムでは、対象は1つだけでしたし、対象のために用意した予測値が、現実の制御に直結している例を示していました。

現実には、多数の対象があり、値も二値だけでなく、多くの場合アナログな数値でしょう。また、予測に使うモデルも実際にはもっと複雑なものになります。さらに、予測結果も確率的な予測を行うこと方が現実的でしょう。

こうした現実的な予測には、ニューラルネットワークを使用することが妥当だと思います。実数値を扱う事も、離散的な分類型の予測を行うこともできます。また、確率的に予測することも可能です。

また、現実の例では、最初のうちは予測値を思い浮かべているところと、制御を行っているところのつながりが見つかっていない状態が想定されます。

多数の対象を予測しているうちに、制御を行っている部分と高い相関があるものが見つかることがあります。その相関を見つけ出すことで、予測値と制御を結び付けることができます。また、多数の対象に外界か自己かのラベル付けをしていくことで、システムは自己認識の範囲を広げ、同時に外界を認識していきます。

■外界の深い理解

また、自己の部分、つまり自分で制御できる部分を動かすと、外界だと思っていた対象に、作用を及ぼすことができるという事に気が付くことがあります。これが外界への操作です。自己認識の先には、外界へ操作を及ぼすことができるという理解が認識されます。

これは、例えば、腕が制御できるようになれば、積み木を動かすことができるようになり、やがて積み木を積み上げることもできるようになるというイメージです。

自分で外界を操作することで、外界の法則を理解していくことができます。こうして、外界について単に受動的に感知した情報だけで予測するだけなく、予測できたと思ったパターンや法則を試すように、何度も実験を繰り返して知識を確かなものにしていくことが可能になります。

■自己の範囲の拡張

さらに、道具を使いこなすこともできるようになります。道具は、初めは外界です。しかし、使いこなしかたを習得していくうちに、予測に現実が追従するようになっていきます。そして、最終的には自己と同じように、意のままに制御できるようになります。

これは、自己の拡張です。

自転車を乗りこなしたり、箸を使いこなしたりすると、あたかもそれらが自分の体の延長のように感じれらるようになります。また、これは自動車を運転する人が、自分の体の大きさが自動車の大きさにまで拡張されたように感じることがあるという現象にもつながります。

制御できるということ自体が、自己認識であると私が考える理由は、こうした点にあります。

■複数人での呼吸合わせと、自己認識と外界認識の楽しさ

複数人でぴったり意図域を併せて、何かをするというのは独特の面白さがあります。合唱や合奏でもいいですし、手拍子やダンスなども考えられます。

例えば、ジャンケンは、それ自体のゲーム性も面白いですが、ぴったりと息を合わせて手を出さないとゲームが成立しません。きちんとタイミングを合わせて出すことは少し練習すれば誰でもできるシンプルさです。小さな子供でもジャンケンをすることがありますので、それほど難しいものではないという事です。

この、動作を合わせることの楽しさは、自己の制御可能な部分を見つけることも、楽しい過程だったのではないかと想像できます。これを楽しいことだと認識することで、私たち、幼児の頃にい、夢中になって自己を認識しようとして、あれこれ試してきたのでしょう。

そして、自己認識をする楽しさを生み出す仕掛けは、ある程度成長した後でも働きます。これにより、例えば自転車の運転や箸の使いこなし、文字の読み書きなど、いろんなスキルを身に着けていきます。このスキルは自己の制御ができる部分の拡張のようなものです。また、人と呼吸を合わせて行動することも、同種の楽しさなのかもしれません。

また、自己認識だけでなく、外界の認識の楽しさでもあります。積み木を積み上げて物理法則やメカニズムを経験的に学習する事も、友達と遊んでコミュニケーションの法則やメカニズムを学習する事も、楽しいのです。

だから、子供たちは同じような遊びを、何度も、しかし少しずつパターンを変えながら楽しそうに繰り返します。そこから、自己認識と外界認識を進めているのでしょう。

■さいごに

この記事では、シンプルなアルゴリズムで、予測システムと自己認識ステムの例を示しました。これにより、予測と自己認識がどのようなメカニズムで実現できるのかを理解しやすくなったと思います。

自己認識は、同時に外界の認識を行う事です。これにより外界と自己の境界を認識していくこともできます。外界の認識は、より自己の認識に確信を与えていきます。

また、自己認識を基礎として、自己の拡張、他者との協調を行うこともできることが見えてきました。そして、こうした自己認識、外界認識、他者との協調は、基本的に本能的な楽しさがあるようです。これは好奇心を持った知性の特性です。

この理論の応用は、やはり人工知能という事になるでしょう。

自己認識の仕組みを理解して、アルゴリズム作っていけば、最初は仮想的な空間上で、仮想的な身体を与えられた人工知能が、自分認識をする様子を確認できるような技術段階までは進めることができるでしょう。

その後、それをロボットに適用すれば、技術的にはロボットに搭載された人工知能が、自己認識をすることになるでしょう。

ただし、現在はこのようなシステムは、人工知能の倫理問題に抵触するため、技術の実現自体には慎重な対応が必要になります。人工知能の倫理については現在進行形で議論が進んでおり、規制やガイドラインの整備も進みつつあります。このため、これらの議論や規制について十分に注意を払いつつ、研究や開発を進める必要があるという点は、強調しておきます。

私は、人工知能の技術リスクには、特に注意を払う必要があると考えています。このため、活発に研究開発が進んでいる人工知能が、その内部メカニズムを研究者自身もよく分からない状態のままで進化していってしまう事を、懸念しています。試しにニューラルネットのサイズを大きくしたり、構造を色々試したりしていたら、よくわからないけれど上手くいった、という状況は望ましくないと考えているのです。

リスクを適切に理解して管理するためには、しっかりと知能のメカニズムを明らかにしていく研究が、重要になると考えています。

サポートも大変ありがたいですし、コメントや引用、ツイッターでのリポストをいただくことでも、大変励みになります。よろしくおねがいします!