とあるアニメを見ていたときのことだ。
その作品では、人間はデジタルデータとして存在することが可能であり、かつ生身の人体へも人間を転送することが可能、という設定だった。
さてここで根本的な疑問が出た。
デジタルデータの領域と生身の人体の領域を行き来するためには、人間の脳の記憶構造についての理解が不可欠であり、それを模擬したものをデジタルの領域でエミュレートできる必要がある。
ではその人間の脳の記憶構造とはいったいどういうものか?
・・・というものだ。
しばらく考えてみた結果、次のようなものではないかとわたしは推察するに至った。
なお以下に記すことは、以下に記してある以上には特に根拠はない。
PC上のデジタルデータとは、(最も低い階層では)常に番地で管理される。
デジタルデータを検索する場合には、(最も低い階層では)常に番地で検索し、いちばんシンプルな方法でいえば、番地のいちばん小さいところからいちばん大きいところへ1つづつ順番に検索していく。
この方法は、記憶領域そのものに検索能力がなく、検索機能を持つプロセッサの個体の処理能力が高く、かつプロセッサの並列個数が少ない場合に効果を発揮する。
たとえば今の人類の手にするPCはそうなっている。
では脳はどうか?
たぶんそうはなってはいない。
脳の構造とは、単体の記憶情報と、それに関連する情報への接続、くわえて重みづけでできているのではないかと考える。
PCでいうと、単体の記憶情報と、それとセットで関連する情報へのポインタ(=ある情報が収納されている番地の情報を意味するプログラミング言語用語)とそれの重みづけ変数をペアにした構造体を複数個(しかも可変長)、で持っているのではないかという感じだ。
これをもとに脳の記憶へのアクセス方法を推定したものを説明したい。
たとえば「おっぱい」で検索してみる。
まずCPUでいう命令フェッチユニットに相当するものが走る。
そこで「おっぱい」という文字または音声から「おっぱい」という意味だと解釈するという自然言語解析が行われる。
その「おっぱい」情報素子には「巨乳」イメージの情報素子と「貧乳」イメージの情報素子へのポインタが収納されている。
ではそこから「巨乳」と「貧乳」のどちらを優先的に検索するか?
それはポインタの重みづけ変数の値が大きいほうを優先する。
ではその変数の値は何で決まるか?
たとえば、アクセスしたたびに値をインクリメントし、時間の経過でデクリメントする。
デクリメントしきってカウンタが0になるとその情報へのアクセス経路を失う、つまりこの経路からでは思いだせなくなる。
これはわたしがちっぱい星人で貧乳のほうに関心があるので、「おっぱい」→「貧乳」へのアクセス頻度が圧倒的に高い。
したがって貧乳ポインタの重みづけ変数はインクリメントされまくっている。
わたしの場合は貧乳ポインタの重みづけ変数のほうが値が大きいので、そちらを優先的に検索する。
「貧乳」イメージの情報素子には「貧乳」という文字へのポインタのほか、「青いロングの髪のアイドル」イメージや「黒髪ツインテールの弓道着の女の子」イメージへのポインタなどが保存されている。
「青いロングの髪のアイドル」イメージの情報素子には「アイドルマスター」「如月千早」という文字へのポインタが保存されており、
「黒髪ツインテールの弓道着の女の子」イメージの情報素子には「艦これ」「瑞鶴」という文字へのポインタが保存されている。
だからわたしの脳へ
「『おっぱい』と言われて思いついたことを何か言え」
と命令を発行すると、
「おっぱい」イメージ→「貧乳」イメージ→「青いロングの髪のアイドル」イメージ→「如月千早」文字へと検索が進み、
「千早のちっぱいはすばらしい」
と答えるように動作する。
「貧乳」イメージの情報素子には「赤髪ロングでちょいSな死神娘」イメージへのポインタも収納されており、それも検索にひっかかる。
しかしその先にあるはずの作品名「だから僕は、Hができない。」とキャラクター名「リサラ」はなかなか出てこない。
なぜかというと、リサラのおっぱいが際立ってすばらしかったのは鮮明に覚えているのだが、作品の設定やシナリオが際立ってすばらしかったという印象がないため、思いだす機会も少なく、重みづけ変数はなかなかインクリメントされないため、検索に時間がかかるからだ。
ここまでの仮説がもっともらしいとするならばまあ、デジタルデータの運用でというので考えるとかなりヘンテコリンなデータベースではあるが、そういう実装を作れと言われればすぐ作れそうなものだ。
ではなぜデジタルデータの運用でそういうものが無いのか?
それは、人間の脳には記憶素子そのものに検索機能がついており、検索機能の処理能力は1クロック50msくらい(PCに比べれば8桁くらい)遅いかもしれないが、並列個数がかなり多いため、10~20クロックもあればたいていのことは思いだせるようになっているから…ではないだろうか。
PCで検索すれば速いには速いけど1万クロックくらいいるかもね。
たぶん人間の脳は、ソフトウエアで実装するよりも、脳みそエレメントみたいな単位機能をFPGAみたいにハードウエアで実装して並列処理させたほうが実装に向いているんじゃないかという気がする。
ちょっと別の問題へ。
では記憶は意図的に改ざんしたり忘れさせたりすることは可能なのか?
いちばんカンタンに思いつくのは、該当する記憶素子をつぶしてしまえばいいという解決策になる。
だがPCでいうとポインタに変なものが入っている相当の動作になりそうなわけで、それでマトモに動くかハングアップするかどうかは処理系に依存するかもしれない。
いちばん美しい解決策は、該当する記憶素子へのポインタを全部削除してしまうという解決策になる。
本来忘れるとはこういう挙動を示すのだと思われる。
だが、該当する記憶素子へのポインタを持つ記憶素子がどこにあるのかを検索するすべは無いかもしれない。
しかし、はじめっからデジタル空間でしか存在しない人間なら、それは可能だ。
ポインタを双方向に持つように実装すれば実現できるからだ。
ようするに、脳に実装されている人間は意図的な記憶改ざん耐性が極めて高く、PCに実装されている人間は容易に改ざんできるように実装することも可能、ということか。
その作品では、人間はデジタルデータとして存在することが可能であり、かつ生身の人体へも人間を転送することが可能、という設定だった。
さてここで根本的な疑問が出た。
デジタルデータの領域と生身の人体の領域を行き来するためには、人間の脳の記憶構造についての理解が不可欠であり、それを模擬したものをデジタルの領域でエミュレートできる必要がある。
ではその人間の脳の記憶構造とはいったいどういうものか?
・・・というものだ。
しばらく考えてみた結果、次のようなものではないかとわたしは推察するに至った。
なお以下に記すことは、以下に記してある以上には特に根拠はない。
PC上のデジタルデータとは、(最も低い階層では)常に番地で管理される。
デジタルデータを検索する場合には、(最も低い階層では)常に番地で検索し、いちばんシンプルな方法でいえば、番地のいちばん小さいところからいちばん大きいところへ1つづつ順番に検索していく。
この方法は、記憶領域そのものに検索能力がなく、検索機能を持つプロセッサの個体の処理能力が高く、かつプロセッサの並列個数が少ない場合に効果を発揮する。
たとえば今の人類の手にするPCはそうなっている。
では脳はどうか?
たぶんそうはなってはいない。
脳の構造とは、単体の記憶情報と、それに関連する情報への接続、くわえて重みづけでできているのではないかと考える。
PCでいうと、単体の記憶情報と、それとセットで関連する情報へのポインタ(=ある情報が収納されている番地の情報を意味するプログラミング言語用語)とそれの重みづけ変数をペアにした構造体を複数個(しかも可変長)、で持っているのではないかという感じだ。
これをもとに脳の記憶へのアクセス方法を推定したものを説明したい。
たとえば「おっぱい」で検索してみる。
まずCPUでいう命令フェッチユニットに相当するものが走る。
そこで「おっぱい」という文字または音声から「おっぱい」という意味だと解釈するという自然言語解析が行われる。
その「おっぱい」情報素子には「巨乳」イメージの情報素子と「貧乳」イメージの情報素子へのポインタが収納されている。
ではそこから「巨乳」と「貧乳」のどちらを優先的に検索するか?
それはポインタの重みづけ変数の値が大きいほうを優先する。
ではその変数の値は何で決まるか?
たとえば、アクセスしたたびに値をインクリメントし、時間の経過でデクリメントする。
デクリメントしきってカウンタが0になるとその情報へのアクセス経路を失う、つまりこの経路からでは思いだせなくなる。
これはわたしがちっぱい星人で貧乳のほうに関心があるので、「おっぱい」→「貧乳」へのアクセス頻度が圧倒的に高い。
したがって貧乳ポインタの重みづけ変数はインクリメントされまくっている。
わたしの場合は貧乳ポインタの重みづけ変数のほうが値が大きいので、そちらを優先的に検索する。
「貧乳」イメージの情報素子には「貧乳」という文字へのポインタのほか、「青いロングの髪のアイドル」イメージや「黒髪ツインテールの弓道着の女の子」イメージへのポインタなどが保存されている。
「青いロングの髪のアイドル」イメージの情報素子には「アイドルマスター」「如月千早」という文字へのポインタが保存されており、
「黒髪ツインテールの弓道着の女の子」イメージの情報素子には「艦これ」「瑞鶴」という文字へのポインタが保存されている。
だからわたしの脳へ
「『おっぱい』と言われて思いついたことを何か言え」
と命令を発行すると、
「おっぱい」イメージ→「貧乳」イメージ→「青いロングの髪のアイドル」イメージ→「如月千早」文字へと検索が進み、
「千早のちっぱいはすばらしい」
と答えるように動作する。
「貧乳」イメージの情報素子には「赤髪ロングでちょいSな死神娘」イメージへのポインタも収納されており、それも検索にひっかかる。
しかしその先にあるはずの作品名「だから僕は、Hができない。」とキャラクター名「リサラ」はなかなか出てこない。
なぜかというと、リサラのおっぱいが際立ってすばらしかったのは鮮明に覚えているのだが、作品の設定やシナリオが際立ってすばらしかったという印象がないため、思いだす機会も少なく、重みづけ変数はなかなかインクリメントされないため、検索に時間がかかるからだ。
ここまでの仮説がもっともらしいとするならばまあ、デジタルデータの運用でというので考えるとかなりヘンテコリンなデータベースではあるが、そういう実装を作れと言われればすぐ作れそうなものだ。
ではなぜデジタルデータの運用でそういうものが無いのか?
それは、人間の脳には記憶素子そのものに検索機能がついており、検索機能の処理能力は1クロック50msくらい(PCに比べれば8桁くらい)遅いかもしれないが、並列個数がかなり多いため、10~20クロックもあればたいていのことは思いだせるようになっているから…ではないだろうか。
PCで検索すれば速いには速いけど1万クロックくらいいるかもね。
たぶん人間の脳は、ソフトウエアで実装するよりも、脳みそエレメントみたいな単位機能をFPGAみたいにハードウエアで実装して並列処理させたほうが実装に向いているんじゃないかという気がする。
ちょっと別の問題へ。
では記憶は意図的に改ざんしたり忘れさせたりすることは可能なのか?
いちばんカンタンに思いつくのは、該当する記憶素子をつぶしてしまえばいいという解決策になる。
だがPCでいうとポインタに変なものが入っている相当の動作になりそうなわけで、それでマトモに動くかハングアップするかどうかは処理系に依存するかもしれない。
いちばん美しい解決策は、該当する記憶素子へのポインタを全部削除してしまうという解決策になる。
本来忘れるとはこういう挙動を示すのだと思われる。
だが、該当する記憶素子へのポインタを持つ記憶素子がどこにあるのかを検索するすべは無いかもしれない。
しかし、はじめっからデジタル空間でしか存在しない人間なら、それは可能だ。
ポインタを双方向に持つように実装すれば実現できるからだ。
ようするに、脳に実装されている人間は意図的な記憶改ざん耐性が極めて高く、PCに実装されている人間は容易に改ざんできるように実装することも可能、ということか。