Kaggle ScriptsでChainerを使えるようにしてもらったのでその報告です。
Kaggleとは
Kaggleは世界で最も大きなデータサイエンティストのコミュニティであり、企業や研究者がデータを提供し、Kaggleコミュニティに所属する世界194ケ国、30万人以上のデータサイエンティストや研究者が最適モデルを競い合うコンペティションの運営を行っています。
http://www.recruit.jp/news_data/release/2015/0716_15946.html
賞金があるので、賞金目当てで参加するコンペティションというイメージがあるかもしれませんが、何度も参加している印象としては、機械学習に自信のある人たちが自分たちのヤバさを示すために参加する天下一武道会的なサイトです。また機械学習ライブラリ開発者の方もたくさん参加されていて、たとえば、Kerasのfcholletさん、XGBoostやMXNetのTianqi Chenさん、Lasagneのsedielemさん、H2O.aiのmlandryさんもKaggleの常連で、ランキング上位に名を連ねていることやスターターコードを投稿している姿を見ることがあります。
スターターコード?
KaggleにはフォーラムやKaggle Scriptsと呼ばれるコードの実行環境あります。コンペティションの開催中に議論をしたりコードを投稿したりできます。新しいコンペティションが始まると、"Beating the Benchmark"というスレが立ったりコードが投稿されたりします。これは、シンプルな実装でそこそこのスコアを出す初心者/コンペ入門用コードを公開する習わしで、多く方がこれをベースに参加を開始します。機械学習に興味を持っている参加者数百人がよいスコアを出しているスターターコードを試そうとするので、ここでおすすめしたいライブラリを使っておけばよい宣伝になります。
Kaggle Scripts?
https://www.kaggle.com/scripts
Kaggle ScriptsはKaggleがホストするスクリプトの実行環境です。RやPythonのコードをブラウザ上で記述して実行できます。各コンペティションのデータセットに直接アクセスでき、実行結果をそのまま投稿できます。
Kaggle Scriptsのコードは、Dockerのコンテナ上で実行されます。パッケージのインストールはできないので、あらかじめ定義されているパッケージしか使用できません。
この環境には、KerasやLasagne、XGBoostなどがインストールされています。
で、Chainer は?
ChainerはKaggle Scriptsで使えるのでしょうか。気になります。
タイトルでネタバレしていますが、ワシがKaggleの運営に依頼して対応してもらいました。
Kaggle Scripts では Chainer が使えます
バージョンは、現在1.5.0.3になっています。対応していただいた当初は 1.3系だったのでアップデートはされているようです。どんなタイミングでアップデートされるのか、動作確認されているのか、などは不明ですが。
実際にKaggleでChainerを使ってみた話
Chainerを使ったコードでCoupon Purchase Predictionに参加して、1076チーム中5位になりました。
詳細はここでは書きませんが、コードはフォーラムに投稿しています。(Kaggle Scriptsではありません)
https://www.kaggle.com/c/coupon-purchase-prediction/forums/t/16789/approach-sharing/95047#post95047
特にすごいDeep Learningの手法というわけではなく、ただの3層MLPです。
基本Torch7ユーザーである僕がこのコンペでChainerを使った理由は、当時日本ではChainerが流行っていて、主催が日本の企業だったので、優勝した場合を考えると、Torch7とかいうイミフメイ環境で提供するよりはPython+Pandas+Chainerのほうが受けがいいだろうと思ったからです。結局入賞はできなかったので意味なかったですが。
使ってみて、特に困ることはなく、実装の変な癖やバグでスコアが出ないということもなかったので、Chainerはコンペティションでも使えるよいライブラリだと思います。