02年 9月、10月 diary

前の月へ  次の月へ  日記INDEX

10月21日(月)

「Mooreの法則」というのを聞くたびに意味もなくなんか悔しい。「そんな誰にでも思いつきそうなことで名前が付いちゃうなんて」と。おそらく最初にそれに気づいたのもMooreでもないだろう。それに物理限界から遙かに遠いところでは技術は指数関数的に発展するというのはほとんど何にでも当てはまるものなのだ。たとえば粒子加速器なんかもそうだった。さて、そういうわけで私も誰にでも思いつくようなことを早い者勝ちでとにかく言ってしまうことにした。

最上の法則
量子コンピュータがW通りの組み合わせの空間を検索したとき
S = k log W
のエントロピーの増大が起きる。

これのいいところは、証明されたときはもちろん反証されても言及されそうなことだな。でもなんかすでに誰かが言ってそう。ま、「誰にでも思いつきそうなこと」なんだから当たり前だけど。


10月19日(土)

自分で書いた行列演算ライブラリに機能追加をする必要ができたが、手間を掛けるよりもこの際全てLINPACKに置き換えた方が良いだろうと考えた。 それで調べたら、どうやらLINPACKはすでに時代遅れで、代わりにLAPACKとその下層としてATLASを使うのが良いことがわかった。

で、調べているところで発見した大石先生の講義の記録
http://www.oishi.info.waseda.ac.jp/‾oishi/interpreter/interpreter.htm
では学生たちがなにげに線形代数用のインタープリタを作ったりしてます。すごいですね。

実は私も自分で使うための数値計算とシンボリックマニュピレーション用のインタープリタを日曜日などにちびちびと作っていた。これは実用の物なので開発は遙かに大きいのだが、現状できているところはこの学生たちのレポートと同じ程度である。しかしおそらく学生たちは私の半分以下の時間で仕上げただろうことを考えると、適任ではない自分がインタープリタを作ることはないかとか意気消沈。

そもそも SAL とかをみると、その手の言語は限りなくたくさんあって、自分がさらに一個つくる意義があるかという疑問は何度も感じた。しかし、やはり自分にしっくりくる言語はないのだ。言語を作る人というのは自分で数学を重用する人というのはあまり居ないのではないか。で、なぜこれを作るのか確認してみることにする。

理由1,自然な数学的記法がつかえる。
たとえば 2x+1と書けるのと2*x+1では、やはり前者の方が自然だ。それになれているからである。自然だということはつまり思考の流れを遮らないということだ。これは重要なことである。この程度では大した問題ではないと思うかもしれないが、たとえば
f(x,y) = 2x y + x +1

float f(float x, float y) {
return 2*x*y+x+1;
}
ではどうか。
a = Σi=1 i^2

a=0;
for(i=1; i<=n; n++){
a = a+i*i:
}
ではどちらが簡単か、どちらが数学的思考をじゃましないか。
∫dx ∂x x sin x
はトリビアルな式だが
Integrate[Diff[x Sin[x], x], x]
となると括弧を追いかけなければなんだか分からない。 それに一項オペレータが定義できるとたいていの括弧で鬱陶しい式が簡単になるのになぜその程度のことができないか。
image( clip( sqrt(double(x)/20.0) ))

image clip sqrt (1/20) double x
と書けるように言語を設計しても何の問題もない。括弧の一致を気にするだけでもかなりの脳力の無駄だ。このような一項関数をオペレータの形に書くのは数式の世界では一般的なことだ。

このような数学の常識的な表記を使えないのはアンビギュイティーがあってコンピュータ言語にできないのだろうと長らく思っていたが、検討してみると数学の表記法はほとんどが合理的でプログラミング言語としても何の問題もないことが分かった。なのにたとえば掛ける記号なしでかけ算ができないのは単なる発想のとらわれにすぎないのではないか。

2,シンボリックマニュピレーションができる。
しばしば導関数が必要になることとかがあります。目の前に表式があるというのに。導関数はたいてい長ったらしくなっていやなものです。

3,アルゴリズム変形支援がつかえること
ちょっとループを入れ替えたいとか、変数名や関数名を変えたいとき、それを支援する機能がshellについていたら、どんなに楽なことか。 ある関数を使っているところを全て見つけたいとき、構造体にアクセッサ関数を通さずに触っているところを全て見つけたいとき、文字列サーチだと要らない物まで引っかかるけど、なぜ文法の情報をつかって探せないのか。

まだまだいっぱいあるけど。


10月16日(水)

昼食の時に、脳の中で確率の見積もりが使われているかと言う話をしていたのだが、やっぱり意識のことが話に出てくるとみな混乱してしまうようだ。(もう一つの混乱点は知識として知っている確率と体験としての確率の混同だがこれは今日は扱わない。) 私の考えでは、意識の関与しない低次過程は確率を扱っていて、一方意識は確率を扱わないと考えている。そもそも意識と言うものは確率に限らず連続量を扱うことが出来ない。何かするにも意識がしゃしゃり出てくると連続量の把握が不可能になる。 意識は本質的に離散化された記号を扱う性質があるのだ。ではなぜ意識は確率などの連続量が不得手なのだろうか。

私はそれには訳があると思う。意識というのは私の用語で言うところのレベル3の複雑さを実現するために生まれた物だからである。レベル3というのは要するにチューリングマシンの持っているのと同等の計算論的万能性のレベルで、これを達成するためには、絶対に誤差と誤動作のない確実な単位演算を必要とする。そのために、どうしても誤差の蓄積のさけられない連続量をあえて意識から排除するように進化したのではないかと考えている。

視覚刺激を非常に短時間提示して、当人が「いや見えなかった」といっても無理に選択させると有意に正解するという強制選択実験はその証拠だろう。つまり、連鎖的な演繹のできないような曖昧な事実はむしろあえて意識から排除されるような仕組みになっているのだろう。


10月4日(金)

PRhは発火数が10Hzを下回るような静かな領野だと思っていたが、noveltyにたいしては50Hzを越えるような発火数で応答することもあることから考えが変わった。 どうやら、どの領野でも、その領野固有機能を探し当てれば50Hzから100Hz位の発火数が得られるものらしい。反対に言えば50を越える発火数が見られないならそのタスクは領野固有機能をlocateしていないと言うことだ。

Prhではnoveltyが一つであるが、もう一つ50を越えるアクティビティがある。それはprestimulus attentionだ。後もう一つはLiu&Richmondの結果と我々の結果の矛盾をから考えると、あれはreward effectなのではなくattentionによってstimulus selectivityがgateされているのだ。TEなどではこれほど強い(all or nothing)のatttentionによるgatingはない。


9月20日(金)(木)

そういえば、なぜcomplex cellは二次なのか、いやそもそもなぜcomplex cellは存在するのか。確かにexp(-f(x2+y2))のような分布をするモデルではrとθの極座標に分解することが相関の除去になる。しかし、それを自然発生で行うようにするのは難しい。では、なぜこのような物が現れるか。
ま、ネットワークの中間次元は後段の便宜のために動くと考えれば良いような気もするけど。


| Home |