2010-06-04 omakeはおまけどころではない
■ omakeはおまけどころではない
引き続きコーディング. baselineの実装までにも時間が結構かかるなぁ..
以前,omakeを使っていると書いたが,今日はその使い方について簡単に書いておく. プログラムをコンパイルするとき,いちいちgccほにゃららとうつのは面倒なので, Makefileというものをよく使うのだが,そこで使うGNU makeをより便利にしたような ものがomakeだ.
詳しくはこのブログ記事を読んでほしいが, なにが便利かって,ファイル関係を全自動で解析してくれ, ファイルを書き換えて保存したら,自動でコンパイルしてくれるところだ.
複数のプログラムを自動生成したい時はこんな感じに書けば良い.
Omakefile(ここに書いた設定はサブディレクトリに引き継がれる) LDFLAGS += -lm (ライブラリ指定) CXXFLAGS += -g -Wall (コンパイルオプション指定)
src/Omakefile BIN = ../bin/ CXXFLAGS += -I../lib (ライブラリフォルダ指定) .PHONY: clean .DEFAULT: $(CXXProgram $(BIN)foo, foo) $(CXXProgram $(BIN)bar, bar) \ $(CXXProgram $(BIN)baz, baz) clean: rm *.o
そして,
omake -P
または
omake -P --verbose
としておけば,あとは全部自動でやってくれる. この快適な作業をぜひ試してみてください〜.
■ DMLA
kNNを分割統治で
今日のDMLAはshimboさんの論文紹介. 表のwikiに読んだ論文のタイトルを公開していたので*1軽く触れる.
Jie Chen, Haw-ren Fang, and Yousef Saad. Fast approximate kNN graph construction for high dimensional data via recursive Lanczos bisection. J. Machine Learning Research 10:1989-2012, 2009.
というもの.
kNN*2するのに,普通にやったら計算量O(dn^2)かかるけど*3, デカいグラフだと大変だよね(><)ということで,なんとかしようという話.
この論文ではすごくシンプルな方法を提案していて, グラフを分割して各部分でkNNやったら楽だよね,でも完全に分割すると意味ないから, ある程度のノードをどちらの部分にも含めるようにしてみよう,という話.
途中SVD(特異値分解)とか出てきて,すっかり忘れてるなーとも思ったり. いや〜おもしろかった. グラフかわいいよ(c)の気持ちが少し分かったような気がした笑
論文さーち
今日はM1が結構参加していた. 最初入ったとき,あれ今からD-MATH?(M1向けの数学勉強会)と思ったくらい(笑) 少し分かっていなさそうな人もいたけど,大丈夫,ぼくもあんまりよくわかってないから(爆) というのは冗談で,ぼくが言うのもなんだけど,あんまり心配しなくても良いと思う. 以前にも書いたように,ぼくは一度ドロップアウトしてる. なんかレベル高すぎて,全然ついていけねーって感じになったんだけど, 分からないなりに聞こう,自分で調べて(論文読んで)みようと思っていたら, こんな僕でも(なんとか)論文紹介できるようになったから,だいじょうぶ.
というわけで,今度の金曜に紹介する論文を決める. TOEICもあるし,その次の水曜は進捗発表を自分から言って入れてもらった上に, 金曜の夜から東京に行くし, 月曜・火曜と東京のIBISML(情報論的学習理論と機械学習研究会)にも出るしで, 来週は相当忙しい週になりそうだ. でも,充実してて,たのしい.
おお、IBISML行かれるんですねー。自分もすごく行きたかったのですが(講演者の方が一回目からすごい豪華だし)、M1のときは色々行きづらいですね。。。
報告レポート楽しみにしていますー!
他の予定もあるので,ついでに参加します!
1回目ということでほんと豪華ですね〜.
ちゃんと理解できるか微妙ですが,色々聞いてきたいと思います!