こんにちは、財前です。
本日は、以前からボンヤリと考えていたものの、実現に移せていないプログラムに関して、構想(妄想)を書いていきたいと思います。
今後、土日にでも研究して取り組んでいければと思います。
やりたいこと
- コンピューターの中に、「生命」を作りたい
- プログラムが自己複製(繁殖)をするようにする
- 自己複製の際に、全く同じプログラムをコピーするのではなく、一部をランダムに書き変える
- 環境による自然淘汰が繰り返される中で、環境に適応した個体が生き残る
- プログラムが自然に進化していく
- 自然発生的に、人間の知能のようなものが生まれないか…
ざっくり言うと、上記のようなようなことを夢見ています…
なんだかマッドサイエンティストぽいですが、理系の僕としては、ロマンを感じます…
人工知能との違いは
この開発 (研究?) をやっていく中で、最終的には「知能的なものができて欲しい」という思いがあるわけですが、いわゆる「人工知能」とはアプローチが違いますよね…
人工知能は簡単に言ってしまえば、特定の目的に照らし合わせて、統計的に成功する可能性が最も高い選択肢を選ぶプログラムかと思います。
人工知能は生命ではなく、あくまで特定の目的を達成するためのプログラムなので、プログラム自身に「意識」があるわけではありませんし、文章や現象の「意味」を理解している訳でもありません。
ただ、統計的に最適な解を算出するだけです。
外部から観測したアウトプットだけを見れば、限りなく本物の脳に近い判断をしているように見えたり、あるいは本物の生物の脳よりもずっと正確な判断を下せるようになると思いますが、中でやっていることは、あくまでも単なる統計の計算です。
意識を持って、考えているわけではありません。
一方で、僕たちの脳の仕組みはどうなっているのかと言えば、、、、
…詳細は僕には分かりません(笑)
ただ、本職の学者さん達も、脳の仕組みについては研究中の部分も多いと思います。
人工知能のアルゴリズムとして有名なニューラルネットワークは、もともと人間の脳みその仕組みを真似して作られていますが、それでもやはり、「意識」を持って「意味」を理解して判断する本物の生物の脳とは、本質的な仕組みは違うと思います。
では、僕たちの脳みそはどうやってできたのかと言えば、(ダーウィンの進化論を信じるのであれば)「自然発生的に生じた」ということになりますよね。
もともと海底の温泉に偶然発生したアミノ酸が、たまたま生命になっていき、増殖や自然淘汰を繰り返しながら、現在の生命のような複雑な形状に変化した… ということかと思います。
(アメリカ人の奥さんにこれを言うと、「神が創ったのよ!」と怒られてしまいそうですが…)
その過程で偶然発生した「知能を持った個体」の生存確率が高かったために、人間をはじめとした、高い知能を持った生物が増えていったのでしょう…
誰かが意図して作ったものではないので、設計図があるわけでもなく、詳しい仕組みは誰にも分からない…というのが、現在の生物の「脳」だと思います。
したがって、実際の脳のアルゴリズムをそのまま人為的にプログラムに落とし込むことは不可能なので、脳が発生した過程と同じアプローチをとって、同じようなものを作るしかない(!?)と考えた次第です。
もしくは、「知能を持つ」よりも生存確率が上がる方法があるのであれば、知能ではない、別の何かが出来上がるかもしれない…
そんな妄想をしながら、日々過ごしておりました。
どうやって実現する?
上記の話は、具体性のない漠然とした話ですね。
プログラムで上記のようなことを実現するにはどうすれば良いかを、現在考え中です。
現在考えていることとしては、「プログラムの1ファイルを、生物の1個体として捉えてみたらどうだろう」と考えています。
もしNode.jsのサーバーサイドJavaScriptで実装するのであれば、「A.js」と「B.js」という2つのJavaScriptファイルがあった時、「A」と「B」を、それぞれ別の個体の生物としてみなすような考え方です。
「A.js」内には、自分自身のプログラムをコピーした「C.js」を生成して実行する機能が書かれており、その「C.js」は「D.js」を生成して実行する… というような流れです。
「自己複製(繁殖)」のコンセプトとしては、上記のような方法で実現できそうだとは思うのですが、問題は、以下の2点でしょうか…
- 環境による「淘汰」をどのように実装するか
- 繁殖の際に、完全なコピーではなく、親にはない個性を持つ「突然変異」をどのように実装するか
引き続き少しずつ考えながら、進めていきたいと思います。
実用性はあるの?
今回の件は、正直、世の中の役に立てたり、ビジネスにするような見込みは全くありません…
単純な好奇心です…(笑)
正直、そもそも上記のアプローチで「知能」が発生する可能性はかなり低いと思いますし、何が起こるのかはやってみないと分かりません。
もしかしたら、何も起こらないかもしれません。
もしかしたら「群れ」を成すグループが現れるかもしれないし、「雄」と「雌」という概念が発生するかもしれません。
出たとこ勝負で、もし何かに応用できそうな現象が発生したら、その時考えようかと思います…
世の中の役に立つ可能性は低いですが、まぁ、基礎研究ということで…笑
せめて、人々に害を与えるようなコンピューターウィルスに進化しないよう、気を付けて進めていきたいものです…
とりあえずこの記事はここまでです!
良い考えがあれば、コメントなどでアドバイス頂けますと幸いです。
自分の妄想を最後まで読んでくださり、ありがとうございました!
コメント