朱鷺の杜(IBIS)ブログ

情報論的学習理論(IBIS)に関する管理人の独断と偏見に満ちた意見

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Machine Learning that Matters (ICML2012) 読んで考えたこと

糞ネット弁慶ブログに表題の ICML2012 論文 "Machine Learning that Matters" が紹介されていて,「機械学習やってる人は皆読むべきだと思う.」と書いてあったので読んでみました. 英語はしんどいのでブログ内の日本語訳をベースにします.

全体としていろいろまっとうなことが書いてあるのですが,個人的には「こんな方向ばっかり進まれると辛いなー」というのが正直な感想なのでその路線で意見を述べてみます. まあ私が機械学習研究者を代表しているとも到底思えませんので,一個人のたわごとだと思って読んでいただければ幸いです.



さて,この論文の基本的な主張は,「機械学習と実世界の間には乖離があるからそれを埋めるような研究の進め方をするべきべきべき!」ということです. うちの職場でも,「基礎研究と応用の間の死の谷を乗り越えるために本格研究(←たぶん造語)しましょう」というキャッチフレーズでいろいろな政策が進められています.

入口から出口まで全部面倒を見ようという意味で研究のグローバリゼーションととらえることもできるし,視点としてはかなりマクロな感じになり,研究テーマはニーズ志向で,マネージメントはトップダウン的に行う必要があります.

でも,実際の研究はローカルで行われており,個性豊かな研究者が多様なベクトルを持って自発的に活動しているわけですから,ちゃんとミクロなところを見て,ボトムアップなシーズも大事にしないとうまくいかないと思います.

ちょっと抽象的になってきたので論文の論点に戻りましょう.

> 機械学習のための機械学習(要約: マッシュルームやアヤメの分類器を死ぬほど作って何の役に立ったの?)

機械学習には No free lunch theorem というのもあって,確かにベンチマークの問題は難しいです.
でも,機械学習のすばらしいアルゴリズムは,コミュニティの人たちのたくさんのひらめきと試行錯誤の数限りない反復の中から生まれてくるもので,それをいちいち実問題でやっていては,労力がいくらあっても足りない.というか,その労力をアイディアの創出に注いでほしいと思います.

逆に個人的には人工データで十分だと思っていますが,本論文の著者も認めているようなメリットもあるわけですから,「UCIレポジトリ限定チューニングアルゴリズム」とかでなければ(そんなのそもそもアクセプトされない),機械学習的価値観で書かれた論文で一向に構わないのではないかと思います.

>フォロースルーの欠如

本論文では「インパクト」という言葉を狭くとらえ過ぎているように思います.
実世界へのインパクトというと即効性のある近視眼的なものになりやすいし,今現在ではなんに使えるかわからないけどすごい!みたいなインパクトだって長期的には重要だと思います.

本論文では実世界的なインパクトがなければ
>意味が無い.
>研究と実世界とを紐付けるのはコミュニティが成熟する過程の一部である.
とまで言っていますが,それはそのコミュニティの役割によるでしょう.
コミュニティの役割は一つに決まっているものではありません.
逆に,同じ役割を果たすコミュニティは二つもいらないでしょう.

まあ ICML はどちらかというと実用志向と言われていて,NIPS が基礎志向なので
「みんな NIPS に毒されるな.目を覚ませ!」
っていうメッセージなのかもしれません.(NIPS も最近は変わってきてしまっているようですが)

>機械学習の外の世界と関われ

これも研究者による話だと思います.
いろいろ外に広げていくのが向いている人もいれば,中でがっつり頑張る人もいます.
両方の人材がそれぞれ重要だと思います.

あと,どちらかといえば外の世界で本当にインパクトがあれば,ICML なんかに出さずに Nature とかに出すとか,
儲かる話なら起業したりすればいいわけで,実際そうしている人たちもたくさんいるのではないでしょうか.
ICML はむしろ中でがっつり頑張っている人たちを支えてあげる大切な場だと思います.

> Machine Learning Impact Challenges

これはあまりどれも個人的に興味ないので特にコメントなしです.

>課題になってくること

ここに書いてあることは意外に?いい点をついている気がします.

>ジャーゴン

>feature extractionとかbias-variance trade-offとかensemble methodsとかcross validationとか
>low dimensional manifoldとかregularizationとかmutual informationとかkernel methodsとか
>専門用語使いすぎ.研究者だけでなく,統計学者にすら伝わらない.別の言い方を考えろ.

もともと機械学習みたいに統計・数学・物理・生物 etc. の融合領域では,用語の問題は常に問題になります.
同じものに別の名前がついていたり,同じ名前が別の意味につかわれたり日常茶飯事.
ただし,この問題は奥が深く容易ではないと思います.

>リスク

これは非常に重要な問題で,実応用をする場合にはネガティブな面も全部含めて責任を取る覚悟が必要だと思います. だから私は安易に「役に立つ研究」を標榜したくない気持ちです.

最初の方の話に戻りますが,「基礎と応用の間の死の谷」というのは必然的な面もあると思うのです.
基礎のところで十分に練られたものだけが応用にちょっとだけ出ていくというのがリスクの面からも健全で,そこをスルーにしてしまうと,何か事が起きた時に元から全部否定されてしまうということにもなりかねません.





というわけでいろいろ文句をつけましたが,実際,本論文の影響力に比べるとこのブログ記事は無限に小さいたわごとだなあと思うとちょっと無力感を感じたりして...
スポンサーサイト

金環日食の画像処理

今日は落書きモードです.

前にも書いたように最近は私のところにもいろいろデータ解析の依頼が来ます.
それもたいてい,
「とりあえずたくさんデータ取ってみたんだけどなんか出ない?」
というようなのが多いです.

まあ機械学習は懐が深いので?そういういい加減なデータでもそこそこなんとかできるというのが売りだと思うのですが,解析者のスキルもそこそこ必要で,普段からの訓練が欠かせません.

それで金環日食です(無理矢理ですが).

とりあえずフィルタを望遠レンズにつけたカメラで撮影したのと,天体望遠鏡の太陽投影板を手作りして 投影面を撮影しました.

でも高級な自動ガイドの架台とか当然持っていないので,時間間隔も適当,写っている大きさや位置も適当.
データ解析のちょうどいい練習問題と思ってやってみました.
今回は画像処理が多いのですが,共同研究などを通じて鍛えられて?いるのでそこはなんとか.

まず,カメラ撮影の方は,とりあえずこんな画像がいっぱい
IMG_0035_1.jpg

幸い太陽はほとんど真円なので,
・エッジ抽出
・(外側の)円の抽出
・位置と大きさあわせ
という流れでできそうです.

今回用いたのは matlab の image processing + optimization toolbox ですが,R でも python でも OpenCV でも基本的にそれほど変わらないと思います.

問題はエッジ抽出と円の抽出のところでいくつかパラメータがあること.
エッジ抽出には canny filter というのを使ったのでそこにパラメータが一つ.
エッジ情報からの円の抽出は基本的に「いくつかのランダム点であてはめるというのを繰り返して,inlier ができるだけ大きくなるものを選ぶ」というRANSAC と呼ばれる手法を使いました.
さらに,今回は一番外側の円が欲しいので,内側の点の数とかも数えたりしています.
で,それらにもいくつかのパラメータ.

できればこの辺り全自動でいけば理想的ですが,なんといっても「なんちゃってデータ解析」なので,結果を見てパラメータを適当に変えられるようなインタラクティブなスクリプトを書いて半自動で抽出しました.

これを時間順に並べればアニメーションができます. ただし,撮影間隔も適当だったので,理想的には動的計画法かなんかでできるだけ等間隔のものを抜き出すプログラムとか作ってやるということも考えられましたが,ちょっと面倒だったので,適当な間隔に並んでいるのを抜き出して,あとは目の子で微調整.

で,できたアニメーションがこちら↓↓↓↓


(いろんなところに投稿したのでもう見飽きた方はごめんなさい_o_)

あと,撮影時刻と太陽の軌道計算を使って投影すればこんな図もできます↓↓↓
movement2.jpg



まあこれは比較的すぐにできたのですが,太陽投影板の方は苦労しました.
得られている画像はこんな画像
ixy20120521 101


研究でやっていたレンズのキャリブレーションとはちょっと違って,もっと原始的?なキャリブレーションが必要だったので,自分で一から計算して画像の補正法をプログラム. 基本的には楕円が真円に写るように傾き補正すればいいのですが.

・ピンホールカメラだと思って考えると,円をななめから見た像は楕円.というわけでまずは楕円の抽出.
・楕円の抽出はやはり RANSAC で,円の抽出をちょっと改変してOK
  ちなみに RANSAC の最適化規準を一般化したあてはめに関する論文は藤木さんらとの共同研究で何本か出ています.
・これが円に載っているような面をパラメタライズして方程式を立てると2変数の非線形方程式が出ます.
・まあ2変数ともコンパクトサポートなので,適当に解けばいいのですが,今回は matlab の最適化ルーチンに解かせました.
・その面が正面に見えるように透視射影を求め直して,image processing toolbox に渡してやると円に見える?像が得られます.

結果が下の画像
r-ixy20120521 101-r

なお,この問題を解くためにはカメラの焦点距離と画素のスケールが必要です. 焦点距離は35mm 換算とかで画像ファイルに数値が入っているので今回はそれを利用. ただし,35mm 換算って何?っていうほどの素人なのでその辺りググったりして画像のスケーリングなどを計算しました.

もしかするとこんなキャリブレーションはどこかにコードが落ちているかも知れませんが,まあお勉強ということで.



このプログラムは6月4日の部分月蝕と6月6日の金星太陽面通過でも活躍するはずだったのですが,月蝕も雲の向こうにかすかに見えただけだし,金星太陽面通過も完全に曇ってしまいました.
さすがの機械学習も,ないデータはいかんともしがたいです.
(えっとまあ機械学習と言えるほどすごいことはやっていませんけど)

というわけで,今年起きる金星蝕か,それ以降の日蝕・月蝕までお蔵入りです.
それまでに自分の書いたプログラムの使い方を覚えていられるかが非常に怪しいです.

さらに,今請け負っているいくつかのデータ解析に対するスキルが上がったかというと...これも怪しいです^^;

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。