2006-04-29

マインスイーパー自動処理マシーン マインスイーパー自動処理マシーン - Nao_uの日記 を含むブックマーク はてなブックマーク - マインスイーパー自動処理マシーン - Nao_uの日記 マインスイーパー自動処理マシーン - Nao_uの日記 のブックマークコメント

以前公開したマインスイーパー自動処理マシーンを

ちょっとだけ改良したので再公開します。

これは昔、マインスイーパーに嵌ってた頃、

機械的にカチカチクリックをして、爆弾を探してる最中に

「俺は何でこんな作業的なことをしてるんだ。

プログラマならこういう作業はPCにやらせるべきじゃないか」

と思い立ち作ったモノです。

本当に作ってしまうところが凄い。一人用のコンピューターゲームなんてものは神様からみれば所詮は解き方の分かっているパズルに等しいので、こういうのを見ていると「ゲームを遊ぶ」という行為って何なんだろう、という気分になってくる。面白い。

もしカウンティングが可能なネットカジノのブラックジャックがあったなら、同じような仕組みで自動的に稼ぎ続けたりできるのかな、とか思ったりもしたけれど、ちょっと調べてみるとさすがにどこもカウンティングに関してはほぼ対策済みらしい。モノがギャンブルでリアルにお金がかかっているだけに、当たり前といえば当たり前か。

意識とは何なのかについての私見 意識とは何なのかについての私見 - Nao_uの日記 を含むブックマーク はてなブックマーク - 意識とは何なのかについての私見 - Nao_uの日記 意識とは何なのかについての私見 - Nao_uの日記 のブックマークコメント

1、脳には数秒程度情報を保持しておく機構がある。これをコンピュータになぞらえてレジスタと呼ぶ。生理学的な実体は主に前頭前野である。

2、脳には、長期的な記憶を貯える機構がある。これをコンピュータになぞらえてメモリと呼ぶ。生理的な実体は主に海馬と種々の連合野である。

3、脳には、レジスタを見て次にするアクションを決定する機構がある。より詳しく言うとアクション命令のストックが多数あり、それぞれの命令はレジスタがある条件を満たした時に発動するようになっている。これをここでは仮に命令テーブルと呼ぶ。アクションには筋肉の運動のほかに、レジスタの変更、メモリへの書き込みと読み出しがある。生理的な実体は主に基底核前頭葉である。

(細かいことを言えば、外界の情報がレジスタに入らず直接基底核を通り筋肉運動をトリガーするルートもある。基底核の命令テーブルは強化学習(報酬を最大化する学習)によって獲得される。)

以上の事実を前提にするとチューリング完全性が現れるのは必然である。

  • 意識のブートアッププロセス

0、感覚から基底核を通って直接筋肉運動を指示するレジスタを介在しない単純な反応が報酬/懲罰により多数獲得される。(乳児レベル)

1、レジスタの介在により、数秒程度の時間的なずれのある刺激-行動の反応関係が学習される。(幼児レベル)

2、ある種の行動は、レジスタをわざと改変することにより、より上手く行うことができる。たとえば、隠れている物にたいして「そこにある」と思い描いて行動するとか、あるいはそこに線が引いてあると思ってそれをなぞるとか。このようにして、レジスタ改変系の命令のレパートリーが増えていく。(小学低学年レベル)

3、レジスタ改変系の命令がある程度以上増えると、どこかでチューリング完全に達する。

4、チューリング完全な系は自分自身のモニタやエミュレートをすることができる。もともとセルフモニタの為に用意された経路もあるが、他の経路も利用できる。スキルを磨くことによりモニタできる情報を増大させていく。

5、チューリング完全性を利用してセルフコントロールを増大させていく。コンピュータのセキュリティーホールなどの例と同様に小さな支配経路であってもそれを一回発見し、支配の手順をルーチンとしてプログラムしてしまえば自由に支配できるようになる。このようにして、チューリング完全性のループは、脳のかなりの機能を支配下に置くことができるようになる。

6、観測できてかつ支配できるループの内側に一度入ったものは分かちがたい一体のように見える。一体の物に名前が与えられる。「意識」と。

ここで、3項のチューリング完全性の獲得はまったく不思議なことではない。マイクロプロセッサやプログラミング言語にいつまでも拡張を加えて続けていくと必ずいずれチューリング完全に達する。その拡張が如何に無秩序であり如何に無定見であっても必ずチューリング完全になる。ならない方が難しい。

生物学的な仕組みからチューリング完全が生まれる過程が考察されている。ここで定義されている「意識」とは、脳のハードウェア構成から必然的に構築されるチューリング完全な仕組みであるらしい。とても興味深い。

おそらくプログラマであれば少なくとも一度は、脳や進化の機能をプログラミングで実現したいと考えたことがあるのではないかと思う。個人的にはそういった分野がコンピュータを使ってできる一番面白いことなのではないかと思って、この手の研究分野にはずっと興味を持って追いかけてみている。残念なことに10年単位で見てもさほど目立つ成果は上がっていないけれど、研究そのものは着実には進んでいるようなので、自分が生きている間にこの分野がどこまで発展できるのか、とても楽しみにしている。

また、「言語や命令に無軌道に拡張を繰り返すといつかはチューリング完全になる」という点に関しても、原理はよく分からないけど面白い。

「すべてのコンピュータは等しく万能チューリングマシンである」ために、相互に違った命令セットのCPUであっても計算可能性に関してはすべて等価になる。では、CPUの命令セットをどこまで削れば万能チューリングマシンでなくなるのか、みたいなことを考えると、最終的には任意アドレスに対するロードとストアさえできればあとはどうとでもなるものなんだろうか。

これを見て大昔に、命令セットの違うCPU同士でも相互にプログラムの移植ができるのを不思議に思っていたことがあったのを思い出した。はじめてプログラミング言語に触れてからもう20年近くが経つけれど、いまだにプログラミングするという行為が自分はいったい何をしていて、それがどういう意味になっているのか、ちゃんと理解できていない気がする。