hirax.net::Keywords::「行列」のブログ



2006-10-09[n年前へ]

「オッパイ星人」だって、ハッカーになりたい……!? 

■  「ハッカー」でない私ですが…

 高校時代の同級生だった川合史朗さんからバトンが回ってきましたが、私は「ハッカー」ではありません。コンピュータを使い出したのは'80年くらい*1でしたから、コンピュータ歴だけは長いことになります。けれど、プログラミングをしていたと言えるのは、地震予知のための計測システム開発*2のためにCで岩盤変形のシミュレーション・プログラム*3を組んでいた大学院時代だけで、「ハッカー」の「ハ」の字も知らないうちに現在に至ってしまいました。たまに、遊びで小さなプログラムを作ることもありますが、アイデア一発型のネタばかり*4で作った後はいつも放置してしまう…という情けない状態です…。
 そんな私ですが、スイカに塩を振りかければより甘くなる、という例もあります。ハッカー猛者の方々に「ハッカーになれなかった人」が混じってみるのもちょっと面白いかもしれない*5と期待し、ハッカーの気持ちを適当に想像(妄想)しながら*6、思いついたことを書いてみます。

*1 あまり表だっては言いづらいのですが、秋葉原でapple][ コンパチの部品を買って組み立て使っていた世代です…。

*2 この研究を数年後に引き継いでいたのが「スーパー・ハッカー」近藤淳也 はてな社長です。私とはまさに天と地ほどの差がある方です…。

*3 そのときに使った参考書が「C言語による有限要素法入門」著者は(今ではベストセラー推理小説を量産する作家として有名になってしまった)森博嗣氏です。

*4 日本語変換のATOKにPerl・Ruby・Cなどで各種拡張機能をさせるプログラムとか、ノートPC内蔵の加速度センサを利用して立体ディスプレイモドキを実現するソフトとか…。

*5 なにしろ、川合さんが私にバトンを放り投げた理由も「見慣れた面子ばかりだと面白くないので、趣向を変えて(ハッカーというわけではないが)平林さんを」なのですから… _|‾|○

*6 2006年3月号で高林 哲氏がハッカーの習性として書かれていたハッカー精神「深追い、佳境、バッドノウハウ」と共通することもあるかもしれません→「オッパイ星人とバッドノウハウ」を参考に。

■ 「自分のための勉強」を楽しくやろう

 就職して数年した頃、「自分の知識・技術を向上させる機会」や「考えたことを残しておく場所」がほとんどないことに気づきました。そこで、自分が知りたいことを定期的に学び・考えてみることにしたわけです。そして、その「学び・考えた」結果を残しておく場として作ったのが、"hirax.net"です。ですから、サイト"hirax.net"というのは私にとって「自分のための勉強ノート」です。

 当初、この「自分のための勉強ノート」は勤務先のイントラ内サイトとして作りました。しかし、企業内インフラの利用制限が厳しくなってきたこともあり、'98年頃に勤務先のイントラ内部から外のインターネットの世界に引っ越して、現在の"hirax.net"になりました。また、それと同時に「自分のための勉強ノート」の内容を「役に立たない(ように見える)こと」に変えました。それは、「書く内容を業務から離れたものにする」ためです。企業内で研究開発という仕事をしていると、やはり業務内容に近いことを考えていることが多いわけですが、そういう内容を外で公開するわけにはいきません。そこで、(勤める会社のためでなく)自分自身のために「高度な技術」を勉強するけれど、その技術を適用して考えてみる対象・内容は「実利的には何の役にも立たないこと」にしよう、と決めたわけです。

 その結果、流体力学のナヴィエ・ストークスの方程式の解法プログラムの勉強をするけれど、その計算対象は「スクール水着の周りの水の動き」であったり…、有限要素法のプログラムを勉強はするけれど、その解析対象は「女性のバスト」であったり「男性のアレ」だったり、ということになってしまいました…。つまりは、それが、"hirax.net"の「高度な技術を無駄に使う」というスタイルです。そういうスタイルにしたことで、「自分の勉強」を楽しくやることができました。何しろ、難解な流体力学の教科書も(女性のバストと同じような感覚を空気抵抗で再現することができると想像すると)ワクワクする気持ちで読むことができますし、行列計算プログラムを作る作業も(女性のバストの変形を計算できると思えば)素晴らしく楽しい作業に変わるのですから*7

*7 男とはそういうものです(女性読者の方々へ)。なお、女性のためには、科学の粋を凝らした「豊胸ブラジャー」「美人化ソフト」も用意しています。

■ 「やりたいこと」はやってみないとわからない

 「自分のための勉強ノート」ですから、いつでも私は「自分がやりたい」勉強をしていました、と言いたいところですが、そういうわけではありませんでした。なぜかと言うと、「自分のやりたいこと(勉強したいこと)」はこれだ、と自分でハッキリわかっていなかったからです。「(自分がやりたい)何か一つのこと」がよくわからないまま、「ずっと、その場その場で気になったことを勉強して(遊んで)きた」感じでした。その瞬間その瞬間の好奇心の赴くままに、目の前の謎・パズルを(その秘密を解くことができそうな科学技術を勉強しつつ)、楽しみながら考え続けるということを長く続けているうちに、自分のやりたいこと、「楽しくなる科学技術」という方向性*8がようやく見えてきたというのが本当のところです*9

 「やりたいこと」をいきなり思いつき、一晩ノリノリ体力バリバリにプログラミングをして、それを作り出すことができるスーパー「ハッカー」も世の中にはいるだろうと思いますが、私のように、「自分のしたいこと」を自分自身でもよくわからないという方も多いと思います*10。そんな人(時)は、とりあえず何でもいいから続けてみるのもコツだったりするのかもしれません。そうすれば、「将来長い時間をかけて自分がやりたいこと」も浮かび上がってくるだろうし、そういった「将来・現在やりたいこと」が「これまでにやったこと」と繋がってくること*11も多いと思うのです。

*8 Tech総研の編集者いわく「平林さんのやりたいことは、科学技術と男と女ですね、」だそうですから。

*9 「数字がバラバラに書いてあって、その数字を順番になぞっていくと最後に絵が浮かび上がるパズル」みたいなものですね。

*10 川合史朗さんが訳されたPaul Grahamの「知っておきたかったこと」には、若い人がやりたいことを見つけるにはどうしたら良いかが書かれています。

*11 自分用のプログラム・ライブラリを作っていくと、作業が楽になるようなものです。

■ 「長く続ける」コツ

 「とりあえず何でもいいから続けてみる」と書きましたが、「続けるということ」は実は難しいことだろう、と思います。(飽きっぽさでは天下一品の)私が比較的長く続けることができた理由の一つは、「その瞬間その瞬間の好奇心の赴くまま」=「いつでも、その瞬間に好きなことを楽しんでいた」からだったと思います。だから、飽きることなく(内容は実は変わっているわけですから)続けることができたわけです。

 「自分の好きなことをする」と長く続けることができると思うのですが、そのためには「自分の好きなことを見失わないようにする」ことが必要です。そして、「自分の好きなことを見失わないようにする」ためには、「他人の感想を(あんまり)気にしない」ということが一番です。一回、自分のイメージをどん底まで突き落としてみるのも良いかもしれません*12

 自分が「これは凄い!」と思うことが、他の人にとっては「これ、何だか全然面白くないなぁ…」と感じられることはよくある話です。人それぞれ、好みも背景も色々なことが違うのですから、それは当然です。「ただ一つの正解があるようなこと」を追求したいなら別だと思うのですが、そうでない「自分の好みを追求」しようとするならば「他人を参考にして学ぶのは良いけれど、あんまり他人の感想は気にしない」ということが結構良いような気がします。他人の感想を気にしすぎると否定的な感想に凹んでしまうこともありますし、他人の期待に沿ってやることを変えていってしまうと、いつの間にか「自分の好きでないあたり」まで流れていってしまうことも多いと思います。

*12 私の場合、「オッパイ大好きな変態じゃないの?」というような感想を言われまくりで、自分のプライドなんかどっか遠くに消えていってしまいました。その結果、他の人の感想(的確な指摘とも言う)を気にしないというワザが使えるようになったのです…。

■ やっぱり他の人に伝えたいから「わかりやすく」

 他人は自分とは違うものですから、他の人をあまり気にしないようにしたいと思ってはいます。それでも、やっぱり「自分が楽しいと思うことを他の人に伝えたい」とも思っています。自分が面白いと思うことを見つけた時、それに共感してくれる人がいたらうれしいものです。他の人を過剰に気にしないようにした方がいいとは思う一方で、「自分の考えたこと・感じたことを他の人に伝え」「自分の作ったものを公開する」上で「他の人にもわかりやすく・他の人が眺めやすい」ようにしようという試行錯誤は続けていこうと思っています*13

*13 そんな「他の人に伝える」ための試行錯誤の結果、面白く人にわかりやすくプレゼンテーションをするにはどうしたら良いか?という書籍「理系のためのプレゼンのアイデア」を技術評論社から11月に刊行予定です

■ 「バトン」が次に飛ぶ先は…?

 さて、次回へのバトンは増井俊之さんに渡そうと思います。「わかりやすさ」「スーパー・ハック」を華麗に両立させている増井さんの秘密を伺ってみたいと思います。

2007-07-04[n年前へ]

オカルトと「説明・制御への欲望」 

 MatLabで制御工学に浸っていると、「物理系の類似性」なんていう言葉が出てくる。電気系・力学系…全く異なる対象なのに、なぜか似通った関係・同じような描写がされるものは多い。それと同じように、全然違う分野の本を読んでいても、なぜか少しづつ重なることが書かれていることが頻繁にある。制御工学に浸かりながら思い浮かべたのは、こんな言葉だ。

科学と現代オカルトに共通するものは何か。それは原理への欲望とコントロール願望であろう。 「科学とオカルト」P.143 現代オカルトは科学の鏡である
 科学とオカルト(池田清彦 講談社学術文庫)」が書く「原理への欲望」と「制御への欲望」を言い換えるなら、それは「説明が欲しい・納得したい」という欲望と「望むような自分になりたい・世界を変えたい(制御したい)」という欲望だろう。少なくとも、原始の科学やオカルトは、「原理」と「制御」という欲望の下に、完全に同じものだったに違いない。

1入出力系システムで可制御行列が正則でなければ、可制御、すなわち、任意の状態に制御することはできない。
1入出力系システムで可観測行列行列が正則でなければ、可観測、すなわち、状態量を正確に知ることはできない。
 現在では、むしろ科学の方が原理・説明や制御において、「できないこと」を声高らかに謳うようになった。今では、「原理的にできないこと」が証明されることを面白く感じる人もきっと多いことだろう。
 科学は、原理的に説明できない現象は説明できないままに放置せざるを得ない。それは科学の欠点ではなく最大の美点である。 「科学とオカルト」P.145 現代オカルトは科学の鏡である  
 とはいえ、「科学」という広い言葉より実社会にもう少し近い、工学としての科学という側面においては、やはり「できないこと」「制御できないこと」「説明できないこと」が、表だって語られることは少ないと思う。
 オカルトは、科学では説明できない現象を説明すると称して、いとも簡単にこの禁欲を破ってしまう。 …一回性の出来事を説明できない科学に、頼りなさを感じている人々の一部は、こういったオカルトに引きつけられてゆくのであろう。 「科学とオカルト」P.145 現代オカルトは科学の鏡である  
 科学を使って何かを把握・制御しようとする人の行動も、「科学は老化の原理を教えてくれても、人が生きる意味は教えてくれない」と思う人の行動も、それらの行動や言葉の原動力は、いずれも「説明と制御への欲望」であるという一点で、ピタリと重なり合うものなのかもしれない。

2007-07-05[n年前へ]

「制御」と「物語」 

 制御工学の教科書のページをめくれば、どんなに少なく見積もっても、ページの半分ほどがフィードバック制御に関することに費やされている。
 フィードバック制御、それを実に大雑把に言うならば、「現在の状態に応じて"足りないもの"を補う」「"不安定なもの"を"安定"にする」制御だ。つまり、不安定性になっていまうものを回復し、安定にさせること、である。乱暴に言ってしまえば、世の中に満ちあふれている制御は、全部そんなものに見える。

 物語の基本パターンは、怪物退治と聖杯探求です。怪物は外側からこの世界を脅かすものです。英雄はその怪物を退治して、世界の秩序を回復します。一方、聖杯探求では、世界の秩序の中心が不意に消失し、世界が迷宮化してしまいます。英雄はその消失したものを探し出すことで世界の秩序を回復することになります。

文学を科学する 」 P.76 3.5 小説はいかに語るか
 「文学を科学する 」を読みながら、人は「現在の世界の"足りないもの"を補い」「"不安定な世界"を"安定"にする」物語を読みながら、同時に、「現在の自分の"足りないもの"を補い」「"不安定な自分"を"安定"にしようとする」ものなのだろうか、と思う。心の中の足りないものを補い不安を和らげる、つまり、心を癒す、そんな制御を物語はしているのだろうか。

 「可観測行列行列が正則でなければ、現在の状態を正確に知ることはできないし、可制御行列が正則でなければ、任意の状態に制御することはできない」とクールに断言する制御工学の教科書を読みながら、次世代の制御理論は人や世界の制御・安定化をいかに実現するのだろうか?とふと思う。
心の癒しというテーマ、それはぼくにいわせれば、とても単純な物語です。物語というものはそういう性格をもっている。

文学を科学する 」 P.125 ストーリー性の重視
 心の制御工学というものがあるのなら、それは一体どういうものだろうか。

2007-12-27[n年前へ]

「ファミリーレストランで待たされないコツ」と「高速計算プログラミングのコツ」 

 雑学本を読んでいると、「ファミリーレストランでは焼き物・揚げもの・ゆで物といった種別ごとに調理担当者が決まっていて、一つの種類に注文が集中すると一度に何人分も処理できなくて、できあがりが順次遅れていくことになる。だから、ファミレスで早く同時に料理ができあがって欲しい時には、バラバラな種類をオーダーするのがコツだ」というようなことが書かれていた。

 これを読んで、思い出したのは「コンピュータで処理速度を速くしたいときのプログラミングの基本」である。たとえば、計算機の中で、処理がどのように行われるかを考えて、できるだけ効率的に並列化されるようにプログラミングをする。特定のユニットの処理が全体のボトルネックにならないように考える、といった話だ。 ファミレスの厨房の中で働く人たちに流れてくる注文や、計算機の中の色々なユニットに流れてくるさまざまなジョブを、それぞれの役割・機能に応じた処理を行っていく。 どこか一つに仕事が集中すれば、そこの速さで全ての処理速度が決まってしまう。 だから、上手く並列化・分散化するようにJOBを流すように工夫することで、早く料理を食べたり、計算結果を早く得たりする。

 しかし、振り返って考えてみれば、こういった「ファミリーレストランで待たされないコツ」と「高速計算プログラミングのコツ」といったことは、結局どんなことに対しても当てはまるのだろう。 どんなものも、どう中身が動いているかを考えて、上手く動かせば効率化できるに違いない。 もちろん、効率だけを考えるのも、それはそれで少しつまらないかもしれない。 どんなに調理に時間がかかっても、食べたいものは食べたい、と思うこともある。 人気ラーメン屋の前で、何時間も行列に並ぶ人たちがいるように。

2009-11-17[n年前へ]

【OpenCV】行列の積(cvMul、cvMatMul)での注意点 

 【OpenCV】行列の積(cvMul、cvMatMul)での注意点

 行列の積の場合、正しくは、cvMulではなくcvmMulだそうで...さらに調べてみると、このcvmMulという関数は古いそうなので、cvMatMulを使うのが正解みたいです。
 cvMulは行列の各要素の積で、cvMatMulは行列の積となります。そのため、行数と列数の異なる行列の積の場合、cvMulではエラーとなり、cvMatMulでは正しく行列の積を計算してくれます。



■Powered by yagm.net