研究は料理
今度は料理に例えたいと思う笑
研究は料理的な部分があると思う。
既存の食材や用具で新しい独創的な料理を生み出す
的なところが。
僕たちは(例えると)独創的なフランス料理を作ろうとしていた。
ただ、僕たちの問題は、僕たちの専門料理分野が日本食的な感じで全く違う分野だったことだ。
そこでいざキッチンに立ったのだが、現在、フランス料理界隈で一般的に使用されている食材や包丁のクオリティに納得ができず、「こんなものでは最高の料理はできない!」と言う具合に包丁作りから始めてしまったのだ。。。!
例えすぎると何を言っているか全く意味が分からなくなってしまうので例えずに説明すると、物理屋兼エンジニアが、よりアプリケーション寄りの研究分野に来て、使われている技術の脆さにショックを受け、自分たちでより良いアプリケーションのための技術開発を始めたと言うことだ。
また、当分野で、僕のとてつもない偏見では、
非常に良くないクオリティでデータを取得し、
よく分かんない処理をかけ、
良く使用されているソフトウェアにぶち込み、
出てきたデータをそれとなく解釈して、サイエンス的な理由を後付けし
発表する
と言うことが本当によくある。(これは良い意味でやべえ、凄過ぎる、って研究ももちろんたくさんある!)
これは結構闇が深い問題で、例えば、そのソフトウェアが何をしているのか、どう言う処理をしているのか説明できない人は非常に多い。とてもざっくり言うとそのソフトウェアは物理モデルフィッティングを行い、統計をしているのだが。。。
「あ〜それはあのモデルでフィッティングをやってるんだよ〜」
みたいなことは言えたとしても、そのモデルにはどう言う物理的背景があり、どのような数学(統計)的処理をしているか説明できる人はほとんどいないだろう。自分で作った料理に使用されている食材を理解していないのは問題だろう、と言えば想像しやすいかもしれない。
そして悪いクオリティのデータ問題も根が深い。と言うかこれは本当に闇が深すぎる。
まず、始めに用いられている画像データ自体がめちゃくちゃ圧縮されたものを用いている。
例えば、raw dataは10GBくらいあるのに実際に解析に用いられている元データは200MBくらいだ。
ぶっちゃけこれ自体はそこまで悪いことではないのだが、raw dataから自分で解析することが出来れば、より広いダイナミックレンジが使用できたり、画像再構成でよりrobustな再構成を自分で行うことができ、質の良い画像を得ることができる。
2月にこちらの分野に移ってきて、初の実験を既存のプロダクトを用いて行った際、得られた画像データの質の低さに驚愕した。詳しい話は割愛するが本当に驚愕したのだ。。。
この質の悪いデータを使用して様々な処理をしていると考えると目眩がした。
圧縮されたデータの話に戻るが、そのデータをソフトウェアに食べさせる前に前処理が行われることが多い。その前処理も実際どのようなことが行われているか分からない場合が多く、また、ただでさえ悪いクオリティのデータがされに意味が分からないことになっているケースは非常に多い。これについて語り出したら止まらないので辞めておくが、一言で言うならば、"良く"見えるようにデータを処理しているのだ。
とにかく
garbage in garbage out
過ぎるし、ブラックボックス過ぎるのだ。
それで、僕たちのアプローチは、まず、
質の良いデータを得ること
前処理は最低限にするし、かけるにしても何をしているか理解する。
画像が悪いからといって"良く"見えるようにする補正はかけない。
まずはソフトウェアを使う前に、自分で1からコードを書いてみて自分で処理をする。
出てきた解析結果をしゃぶり尽くす
というものだ。
箇条書きにするのはとても簡単だが骨が折れる。
まず、
質の良いデータを得る
というのが非常に難しい。これはハードウェアの問題とソフトウェアの問題と、画像再構成の問題がある。
(このチームサイズで)ハードウェアを開発するのは現実的ではない。ただ、大事なことは僕たちがハードウェアの原理と物理を理解しているということだ。
ソフトウェアの問題は難しいがアプローチ可能だ。これはこの装置を使ってどのように画像を撮るか、という問題に置き換えられ、たちまち、コンピュータサイエンスと物理の問題に様変わりしてしまうが。。。
画像再構成の問題も難しいがアプローチ可能だ。ただ、再構成のためには物理と数学をある程度分かっていなければならず、プログラムも自分で書かなければならないのだ。
とにかくこのデータを本当に満足できるデータを取るのも非常に難しいのだ。
前処理は最低限にする
これは本当にその通りで例え見栄えが悪くとも、それがどのような経緯で得られたのか、ハードウェアやソフトウェアの観点から考察し、それを受け入れるのだ。もし可能ならば、修正するために開発に戻るのだ。
この界隈では〜〜correctionと呼ばれる悪名高い補正がなされることが多く、僕は本当に好きじゃない。解析する画像自体を変えてしまっているからだ。
ソフトウェアを使わず自分で解析コードをまず書いてみる
これは本当に重要なステップだと思う。とりあえず得られたデータと適当なパラメータを既存のソフトウェアにぶち込めば何か結果は返してくれるのだが、その結果を本当に理解するためには、そのソフトウェアが何をしているか知る必要がある。
ということで、いずれ将来的にそのソフトウェアを使うことになるかもしれないが、まず僕たちで解析プログラムを書くことにした。
これが結構、難しく、苦戦しているがようやく完成しそうだ。嬉しい。
しゃぶり尽くす
これは本当に大切なことで、よく分からない理由で結果を正当化するのではなく、そのデータから得られることを隅々まで理解する、ということだ。なかなか難しいが。
もはや何が言いたいのかよく分からないが、実際に料理を始めるのはまだしばらく先になりそうだ笑
これはぼやきなのだが、僕のボス、プッシュめっちゃするから、他の院生やったら絶対潰れてると思うわ。
なんというか、僕はボスと一緒にわざわざアメリカからオーストラリアまで来て良くやってる方やと思うわ。自分で自分を褒めるで。
というのも、working from homeになってからボスと一緒にソフトウェアを開発したり色々してるのだが、要求が非常に高い。朝晩1日2回進捗は確認されるし、ダメ出しもされるし、これやっといて案件もあるし。
僕はたまに本当に1日2回のskypeが嫌(笑)になる笑。
進捗確認されるのはまあ良い。
することを宣言させられるのもまあ良い。考えるトレーニングになる。ボスもすることの強制はしてこない。
ディスカッションもできるし良い。
けど、ボスの有能さ(進捗やアイディア)を毎日毎日見なければならないのが本当に辛くなることがある笑
僕たちは駆け出しグループで2人しかおらず、ボスもゴリゴリに手を動かして研究するタイプの人間なので、その有能さを毎日見せられるとたまに自分と比較して辛くなるのだ。まあ仕方ないのだが。。。
自分で言うのもアレだが、同じ研究所の3年目のPhD学生の3年分のプロジェクトをこの半年くらいでやり切るんじゃないか感は非常にある。
(ボスと比較せずに他のしょぼいPhD学生と比較して心を落ち着かせるというクソみたいな手法を思いついたのだ!)
まぁ、それだけみっちりしごかれて力がつくということで良しとしよう。。。。
ボスには本当に感謝しているがたまに心が疲れる。
妻と親友との日豪間のテレビゲームがなければ終わってたと思う。
愚痴を言ってばかりでは良くないのでこの超高負荷2人3脚の良いところを上げると、本当にたくさんの知識と経験がついていることだと思う。
この前、研究所の博士学生と色々研究の話をしていた時も、相手を唸らせるような質問をすることができたり、彼ら彼女らを僕の研究に食いつかせ、色々教えることができた。
今やっているcodingや研究も数年前の僕からは想像もできないものだ。
ということでまとまりのない文章だがここで閉じる。
散歩とゲームでいい息抜きができているのでまだ2週間ですがworking from home何とかなりそうです!
ゴキブリはアレ以来見ていません :)