07年1月 diary

最新の日記へ  前の月へ  次の月へ  日記INDEX  HOME

1月31日(水) 

物理学ではarxiv.orgプレプリントサーバによって、 全ての論文が誰でもタダで読めるようになっている。 また、計算機科学では研究者が自分のwebページに論文をのせるのが一般的であり、やはり誰でも読める。 対して、生命科学ではまだ論文は出版業者によって閉じ込められている。(私も自分の論文をwebに載せたいが、業者からクレームをつけられる可能性が恐くてしていない。)

この違いはどこから生じたのだろうか?

計算機科学や物理学における計算機、特にネットワークの、利用はきわめて早かった。www以前からネットワーク化して、それを論文の公表に使っていた。これで自分の論文の公表が既得権益として確立してしまった。 それに対して生命科学の計算機利用は出版業者にくらべて充分には先んじる出来なかったのがいけないのだろう。

センター試験に挑戦(笑)(安原宏美--編集者のブログ)

なんつーか、最近のセンター試験はツッコミ所が多い問題を出しているんだねえ。 あとナカムラさんがツッコんでいるのこれなんかも。

なぜこんなにツッコミ所が出来てしまうかと考えるに、 「試験勉強なんかしても社会に出てから役にたたないぜ」みたいな 中二病的な言い分を真面目に聞いてつい、コンテンポラリーでホットな話題を出しちゃったからなんじゃ無いかと想像します。

人の人生を左右するようなテストには、人によって意見や解釈が別れるようなコンテンポラリーな問題など出題せず、きちんと確立した事柄だけを出題した方がいいと思うなあ。

1月30日(火) 

ときどき泣いた後のような気分になることがある。 おかしな事に、それは嫌な事があった時ではなく、 思い掛けないことを上手に捌いたあとの喜ぶべきような時だ。 でも、大人として事態を捌いている時でも、心の中のどこかにはまだ無力な子供がいて、困った時の子供のように泣き喚いているのかも知れない。

磁気画像法の技術を利用した、拡散テンソル画像法というのがある。 これを使えば非侵襲に脳の配線(の束)が走っている方向が分かる。

ただし、拡散から繊維の走行を求めることはill-posedな問題である。 たとえば繊維がX状に交差しているのか、> と< のようなものが一度接して離れていっているのか区別がつかないはずである。

しかしそれにも関わらず、「えいやっ」とやった結果は結構、解剖学の知識と合っているように見える。何の保証も無いにもかかわらず、なぜこんなに上手く行くのかを不思議に感じていた。

で、考えてみると、拡散テンソルの方法はXの交差でも> <でも同じく、 > <と認識されてしまう。これは交差が最小になるような解を求めていると解釈できる。 そして、当の脳の方も配線をするにあたって、交差が最小になるようにしているに違い無い。だから一致が良いのかも知れない。

1月27日(土) 

かき回すとなぜ茶葉はまん中に集まるかという、「アインシュタインの茶葉パラドックス」についてyoriyukiさんの説明で分かりました。

分かってみると簡単で、底に近いところでは摩擦によって回転が遅くなる。逆に表面に近いところでは回転が速いので、表面に近いところでは遠心力によって外向きの流れが起きる。で、それを埋め合わせるために底に近い部分では中心へ向かう流れが起きて、この流れによってお茶の葉が中心に集められるという仕組み。

わたしも永く気持ち悪く思いつつ、きちんと考えてなかったんだけど、そう言う事でしたか。アインシュタインが取り組んだというのもらしい話。

でもまだ100%確信した訳では無い。答えを知っている時の理由の説明を間違える事は私にもよくある事なので。

まつもとさんが、 mapとreduce、あるいはマクロ不存在の理由で、私の 8日の話に答えてくださいました。数日後の

今さらながらJavaScriptって面白い言語だね。 同じ動的言語でもRubyとは姿勢が対極。 簡単な仕組みで中身までさらしていろいろできるようにしたいJavaScriptと、 必要そうな機能は一通り組み込みで持ってしまって、中身は見せずにスマートに書かせたいRuby。 http://www.rubyist.net/~matz/20070113.html#p01

というこれも関係した興味深い話題です。

中身が見えない方は、言語が許していないことはとたんに難しくなるけど、

これが、まさに私が嫌いな事です。とすると、やはりどちらが良いかでは無くて、ユーザの種類によりけり、ということなんでしょう。

Lisp:S式の理由 なんかも私には関連したテーマに見えます。

1月26日(金) 

昨日のアラン・ケイに触発されて二題。

OSによる抽象化について

現在のようなモデルでは無くて、 むしろ仮想マシンのような、アプリから見たらハードウェアを占有しているように見える抽象化の方がOS層の厚さを劇的に削減できるかなとか思い付いた。

最近、仮想マシンでWindowsとLinuxなど複数のOSを一緒に走らせているのを見たりする。 また仕事場で複数のPCを並べて作業していることは極めてしばしばであるけど、そう言う場合でも計算やI/O資源の限界から考えると一台でも充分こなせる仕事しかしていないことは多い。 そういう様子などを見ると、普通のOSが提供している抽象化とハードの資源分配はユーザが望んでいるものと違うのでは無いかと思える。

また、OSのAPIは物凄い数になってOSのコードは肥大している。 そうなる理由はOSにAPIを追加するからで、 なぜ追加したくなるかと言うと、OSの行う抽象化が狭苦しくてハードの能力を殺してしまうから、APIを加えてパフォーマンスを絞らなければならないからだ。でも、そのAPIも一部の場合にしか絞れないからさらに別のAPIが必要になると言うような事で限り無く増大する。 ハードの能力を殺すような(単なる理想主義に毒された)抽象化をするからいけないのでは?

いや、ファイルシステムとか、データの共有とかで明らかに共有しなければならない物もあるので、ハードの占有モデルは不十分なのは分かっている。 ただ、共有が前提に合った上でどう分割するかと言うモデルを一度解体して、その上で何を共有するか考えてみると、いまとは違った形が見えるのでは無いかなどと考える。

素人の妄想。 ソフトウェアのバグの修正を誤り訂正符号で行うことは出来ないか。

たとえばCで考える。コンパイルを通るプログラムの空間の中で、バグがないプログラムというのはわずかしか無い。ここでバグとはヌルポインタへのアクセスやメモリリーク、バッファオーバランなどである。このような大きな空間の中に小さな空間がスパースに存在するような問題は誤り訂正符号の対象のように思える。

特にメモリリークのような確保と解放の間が辻褄が合っていなければならない場合と言うのはどちらかが間違っていてもどちらかが合っていれば、復元可能なはずであり、誤り訂正符号に似ている。

それからPCPって言ったかな、確率的証明の方法では、対象の長さに対して多項式時間で、間違った証明は至る所が間違った証明に変換できると聞いた。(伝聞。)その方法を使ったら、リークしているプログラムは、明らかにそれと分かる形に変換できるのではないか。

まあ、静的検証の研究って言うのは行われているので、これがやられていないとしたら、もっと良い方法があるのかも知れないけど。

あと、そんな事をやるより、Cipherみたいなヌルポインタ、リーク、オーバランが不可能な言語を作る方が効率が良いか。いやしかしセキュリティなんかは、もしかしたら。

29日追記:yoriyukiさんの コメント

1月25日(木) 

アラン・ケイの東大での講演 (hatena:squeaker)

Encyclopedia Britannicaは11200冊からなる百科事典で、各分冊は1000ページほどでありそれぞれ1.5インチ(?)ほどの厚さである。積み重ねると、だいたいエンパイヤ・ステートビルディングくらいの高さになる。

最初素直に驚いたけど、どうも違う気がする。 wikipedia:enを見たけど最大で15edの32巻だし。 online版は"The online version has more than 120,000 articles"だからプリントより多いけど、多めに見積もって一項目10ページで1巻1000ページとしてさえ1200巻にしかならない。

1000バイト程度のDNAであるということだった。

これはタイポ。1000Mバイトくらいでは無いかな。

大事なのは、Squeakも含めて今のソフトウェアは駄目だということである。特に東工大のほうでの講演はやや話し方にあいまいさが合ったともいえるが、Squeakはすでに大きすぎるし、中身もIanのやつのように柔軟性が無いのであまりよろしくない。Squeakを卒業して、もっと良いものを作るのがこれからの目標である。

なんと。それは凄い。最近失礼にも「アラン・ケイも過去の人だな」とか思ってましたが認識を改めます。

上の講演で述べられているsqueakが23万行というのも、他のシステムにくらべれば驚くべき短さではある。 別に聞いた話では、この短さは深い継承と多重継承によって実現されていると言う事だけど、 深いそして多重の継承はソフトを変更する自由度を小さくするのでは無いかという心配をしてしまう。

1月24日(水) 

グーグルは今のままでは日本人の人生を変えることはできない - GIGAZINE

なんだGIGAZINEもやればウスくない記事を書けるじゃありませんか。これも「人には仕事の話をさせるのが一番面白い」という例。

平野啓一郎さんの「巧みに生きるか、善く生きるか」を巡って - My Life Between Silicon Valley and Japan

旧聞だけど自分の備忘のために、例の納豆ダイエットの、「あるある」捏造について。

3. 番組で実験を行った8名の被験者について、放送では「中性脂肪値が高くてお悩みだった2人は、完全な正常値に!」とコメントし数字をスーパーしておりますが、コレステロール値、中性脂肪値、血糖値についての測定は行っておりませんでした。

4. あるあるミニ実験として、納豆を朝2パックまとめて食べた場合と、朝晩1パックずつに分けて食べた場合の比較実験ですが、血中イソフラボンの測定は行っておらず、比較結果は架空のものでした。

http://www.ktv.co.jp/070120.html (関西テレビ)

納豆ダイエット実験ねつ造…手口悪質、番組打ち切りも(読売) (Web魚拓)

1月20日(土) 

穀物原料のエタノールを自動車燃料にするのは無駄だと思う。 単にエタノール製造の原料を燃やして発電して、その分だけ石油を使う発電所を廃止すれば、より多くのガソリンがネットのゲインになる。(発電用の重油をガソリンに改質する。)

しかしそれ以前の問題として、そもそも可食部分を燃料に使うのは無駄だし環境破壊だ。

妖精現実: 社会に感染する異端、星に感染する異端

切なく美しいお話。話の中ではどっちも男みたいに書いてある。で、カワリダネは滅びる。

でも「ヤサシイ」と「カワリダネ」が女と男とか、その反対の組み合わせもあり得る訳で、子供を作ったりして、意外と彼らの子孫は繁栄していたりして。

1月14日(日) 

他人に「信者」みたいな言葉を投げ付ける人間はそもそも信用できない。

自分に理解できない事をする人間を、狂信だと決めつけて、それによって自分を正当化する思考だ。

自身が狂信に陥らないためには、常に自分の思考を疑う必要があるし、そういう知的習慣を持つ人間は他人を容易に狂信だと決めつけたりしないものだ。

1月11日(木) 

ポストマップは皆で日本全国の郵便ポストの位置を書き込むサイトだ。で、これはあまり荒らしにあいそうにないな。とか思ってみていた。

そしてそれは現実世界で建物がめったに放火に遭わない理由と同じではないだろうか。第一に普通の世界では悪意を持った人間の割合は少ない。第二にそこらへんにある物は悪意を向けるにはつまらなさ過ぎる。

今後誰もがネットに参加するようになると普通の世界に近付いていって悪意を持った人の割合は下がって行き、悪意の対象としてはつまらない当たり前のものが増えていくのではないか。そんなことを想像した。(証拠は無いけど。)

仮に、今まで悪意に満ちた人の割合が高かったのだしたら、それはなぜだろうか? 考えられる仮説1、インターネットの匿名性が悪意をもった人間をいち早く引き付けた。2、だれでも小学生くらいの時はクラスメートと悪意の応酬をした事がある。新しいメディアではまた行動パターンを学び直さなくてはならない。とかかな?

なぜCではコードが再利用されないか

リストについてとしてすでに書いたけど、要するにそれはメモリ管理がなされていないからだ。 メモリ管理にも、tracing GC, リファレンスカウント、完全な手動といろいろある。コードを再利用しようとしてもメモリ管理のポリシーが違うと再利用不能である。

さらに、sweepの際のフラグをどこに入れるかとか、カウントはどこに入れるのかとか、のデータ構造の違いが限り無くあって、これが合っていないと再利用が出来ない。これでは事実上再利用不可能である。

C++では少しは改善しているが、 他の言語では普通にライブラリにできるようなものが C++ではテンプレートと言うメタレベルのライブラリになってしまうのは、以上のような理由だ。マクロとかメタなんとかは一般に強力だけど使用は最小限にするべきで、使用しなければ何も出来ないような言語はやはり問題がある。

1月10日(水) 

はてなブックマークとかを見ているとブログの記事は長いほどウケが良いように感じる。「あとで読む」とかを差し引いても。 500から1000文字で鋭くまとまった記事が好きで、長いと読む気がなくなる私から見ると不思議。

http://d.hatena.ne.jp/osakaeco/20061211 のコメント欄が興味深かった。

まず、経済学の専門家と思われる匿名コメントが、相手の学位をやけに問題にするのが面白かった。物理学者がエセ科学やトンデモを批判する時の様子を良く見てほしいが、相手の学位をなどを問題にせずに内容だけを問題にして批判している。それとはずいぶん違うと思った。

また、osakaecoさんの

アメリカなんかは完全に一つの学派といっていい状態ですが、日本やヨーロッパの大学院にいれば、そうではないのはわかると思います。それに経済学部には濱口さんのように実務畑をあるかれた方もおられて、そうした方もアカデミックな領域しかしらない人間と対等に議論できます。この傾向は私は健全だと思っています。もちろん、どんな学派からみてもトンデモな議論はあるし、学派全体がトンデモになっている例もないではないです。(私が何回かあげているケンブリッジ資本論争というのはアメリカ全体がトンデモ学派になった一例です)。

なんかも面白かった。前からアメリカの学会は主流派へ付和雷同する傾向が強いと思っていたけど、それを裏付けている。

毎日新聞2006年12/18日。8面の 伊藤正男先生の記事。 長期抑圧の発見に対して 「学会は疑問を投げかけ、特に米国研究者の反発が強かった。今回の栄誉を「米国でも受け入れられた」と受け止める。」との記述があった。

アメリカの学会は非主流の学説には激しい攻撃をするというまた一例。

1月8日(月) 

ITPro: スペシャルインタビュー: 世界がRubyを愛する理由

最後のページより引用

今注目しているのはマルチコアへの対応です。これからプロセッサがコモディティになってきます。それほど遠くない将来に,机の上のパソコンでも64コアや128コアのプロセッサが珍しくなくなる。そうすると,プロセッサコアへのタスクの割り当てはスレッドなんかでは不可能になる。自動化するしかなくなります。プログラミング言語で並列性をどこまで活用できるか。CやRubyのような手続き型言語ではなく,関数型言語が生きてくるかもしれません。

単にmapとreduceを加えれば良いのでは?と思ってしまった。

mapとreduceと後はsortのような配列演算ライブラリを整備するだけで、並列化可能な部分の99%は自動的に並列化される。Rubyでも簡単に対応できる。あとはiteratorにvariantかpragmaを入れて評価順を不定にし、破壊的変更を不可にするのを加えると良いかも。

なぜ、それはRubyの役目では無いと思うのかと、考える。 上記のような変更は言語の変更としては小さいが、プログラミングのスタイルを大きく変えてしまう。そのことへの忌避感があるのでは無いかと思った。

マクロが無い言語ではプログラムしたくないと考える私のような人間からすると、Rubyにマクロを入れることを拒絶し続けることは前から不思議だった。マクロは言語作者の意図を超えてプログラミングのスタイルを変更してしまう可能性がある。 これも同じくスタイルを破壊される事への忌避感が原因なのかも知れない。

まあ、発言の背後の意図を憶測されることはまつもとさんにとっては迷惑かも知れないけど。 だけど私も言語を作っている身としては、私のmap/reduce当然、マクロ当然という考え方のどこかに欠陥があるのかも知れないと、考えて理由が知りたいのだ。

27日追記:まつもとさんの回答:
mapとreduce、あるいはマクロ不存在の理由。27日にも関係ある記事を書きました。

1月6日(土) 

背負い式ジェットウィングで空を飛ぶ男 (Engadget Japanese)

ジェットエンジンをしょって生身で時速200kmで飛ぶ男。(死にます凡人なら。) 「鳥のように空を飛ぶこと」を生涯の夢にした男。 すごすぎる。心底尊敬する。 ここに到るまでいろいろあったんだろうなあ。 せこい事(学者の生存競争)でちまちま悩む自分が恥ずかしくなる。やはり、やりたい事はやらなくてはね。

封筒の裏で解析的に計算できる事をコンピュータシミュレーションでやるのはいかんよな。

型推論のついでに配列の大きさの推論をしてくれれば、 配列をスタック上に確保できて高速なのでは?

1月4日(木) 

ある人がweb日記に、 P≠NP問題を「誰かがお金と時間をくれれば2年くらいで証明して見せる」と書いていた。

確かにあのひとなら本当にできるかも知れない。 こういう人にチャンスをあげられないのは勿体無いと思う。 これは彼を高く評価し過ぎだろうか。そうとも思わない。 ちょうど以下の話のとおり世界に100人くらいいても不思議では無いと思うからだ。

梅田望夫「 人それぞれの個性について」から引用。 (もとは江島氏のものだけど、改変後の方がしっくり来るので、こちらから引用)

口には出さずとも同等以上にわかってる奴はつねに1000人はいる。それを論文にまとめたりブログに書いたりできるやつが100人ぐらいいて、本気でそれの実現に自分の人生を賭けるやつは1人

私もこれは正しいと思う。また学術においても同じだと思う。 なにか重大な事がなされる時、それが「やればできる」と思っている(そして実際できる)人は世界に100人はいるものだ。

では、なぜ99人はやらないのかというと、失敗した時に自分の人生が狂うのが恐いからだ。特に再チャレンジが出来ない状況がある時は恐ろしい。

本当にそういう人は少ないのだ。エンジニアだからそうだ、というのではなく、人間としてそういう狂気を持った人というのは、とても少ないのである。

という具合にその恐ろしさを乗り越える事ができる「狂気」もった人だけがチャレンジをするから、100人に一人なのだ。

シリコンバレーでは起業をしても人生を棒に振らなくてよい仕組みが発達しているという。それがシリコンバレーが独創的な企業を生み出す秘けつだと言われる。 つまり起業家は個人保証を行わなくともよいし、借金をする必要も無い。失敗しても普通の暮らしをするには不自由しない。そしてむしろ一度会社を潰した人の方が、再び起業のするときに、一度学んだと言う事で高く評価されたりするらしい。

そして狂気が必要と言うのは研究者の世界も同じことだ。 むしろpermanentを取る前の若い研究者というのは、もっと厳しい状況にある。2,3年のプロジェクトが一度失敗したら、研究者としての職を失う可能性が高く、そうなればもう一生チャレンジの目はない。 それにくらべたら失敗が許される状況にあるはずのシリコンバレーの技術者ですら、本当にトライアルをするなら「狂気」が必要だと言うのだ。ならば研究者はどうだろうか。

いま研究者の世界は身分が不安定化し、また競争し続けなくてはならないように制度が改変されつつある。 そうなる理由にも納得できるところが無い訳では無いのだけど、基礎研究の世界において若い研究者がrisk takingしにくくなりつつあるのは良い事なのかと考えたりもすることがある。

仮に非常に重要だけど、遂行に2,3年かかり成功する確率が30%くらいの基礎研究が目の前にあったとする。 基礎学術の重要な問題についてはこれは充分高い確率だと思うし、3人に一人が、あるいは3回に一回つまり10年に一回成功すれば充分、社会全体としてはもとがとれる。 しかし、そのようなプロジェクトを思い付いても、それを行う若い研究者は余りいないと思う。年限付きのjobである限りは。またpermanentであっても大きな研究予算を必要とする分野は同様だろう。

研究を一生断念することになっても良いので無ければ、90%の確実性のプロジェクトですら手を出すにはかなりの勇気がいる。多くの人は99%くらいのプロジェクトを選ぶのでは無いかな。 これは、ちょっと残念な状況ではなかろうか。

ところで、ポアンカレ予想に決着をつけたとされるペレルマンは証明に7年かかったらしい。彼は髪も爪も伸びっぱなしの異様な風体で引きこもって研究していたらしい。

さて、これがまあ、臭く無い程度にお風呂に入ったり、洋服を洗濯したり、服に穴があいたら買いに行ったり、床屋に行ったりしたとしよう。われわれは、そういう人間らしい見た目を保つために平均して一日の起きている時間の一割くらいは使っているだろう。これで証明まで7年が8年にのびるだろう。

さらに大学に通勤して1時間、これで、8年が9年。 教務などをこなしたり、会議に出たり、科研費などの書類を書いたりの様々な雑務をこなせば、使える時間のうち半分くらいは使うだろう。これで9年が18年。

さらに、本当にできるどうか分からない研究に専念できるのはかなりの度胸というより(上の意味で)狂気がある人間だけなのだ。 で、残った時間の半分を安全パイの研究に使ったら、18年が36年である。おそらく一生証明できない。こうして普通の研究者の人生は終わるのである。

まあ、これはこういうこまごまとした事柄に割り込まれる事が本質的な思考の妨害にならないと仮定しての話である。 反対に意外と風呂に入ったりの時間のようなそのテーマについて集中して無い時間も役にたつ事がある。 だからこれは漫画的に単純化した図式だけど。


最新の日記へ  前の月へ  次の月へ  日記INDEX  HOME

| Home |
T. Mogami
e-mailはmogami@yugiri.bnf.brain.riken.go.jpまで