Deep Learning のフレームワーク Chainer を公開しました

beam2d
リサーチャー

2015-06-09 15:09:35

こんにちは、得居です。最近は毎晩イカになって戦場を駆けまわっています。

本日、Deep Learning の新しいフレームワークである Chainer を公開しました。

Chainer 公式サイト
GitHub – pfnet/chainer
Chainer Documentation

Chainer は、ニューラルネットを誤差逆伝播法で学習するためのフレームワークです。以下のような特徴を持っています。

  • Python のライブラリとして提供(要 Python 2.7+)
  • あらゆるニューラルネットの構造に柔軟に対応
  • 動的な計算グラフ構築による直感的なコード
  • GPU をサポートし、複数 GPU をつかった学習も直感的に記述可能

ニューラルネットをどのように書けるか

次のコードは多層パーセプトロンの勾配を計算する例です。

from chainer import FunctionSet, Variable
import chainer.functions as F

# 多層パーセプトロンの定義
model = FunctionSet(l1=F.Linear( 784, 1000),
                    l2=F.Linear(1000, 1000),
                    l3=F.Linear(1000, 10))
def forward(x_data, y_data):
    x, t = Variable(x_data), Variable(y_data)
    h1 = F.relu(model.l1(x))
    h2 = F.relu(model.l2(h1))
    y  = model.l3(h2)
    return F.softmax_cross_entropy(y, t)

# 勾配計算
x_data, y_data = ...            # ミニバッチを初期化
loss = forward(x_data, y_data)  # 順伝播
loss.backward()                 # 逆伝播

ここで x_datay_data はともに NumPy または PyCUDA の配列です。順伝播の処理をそのまま書けば、あとは最終的な結果に対して backward 関数を実行することで、それまでに行った処理と逆順で誤差逆伝播が実行されます。この例はもっとも単純な例なので現れませんでしたが、順伝播の処理には分岐やループなど Python の制御構造を自由に含めることができます。

なぜ今新しいフレームワーク?

Deep Learning のフレームワークとしては Caffe, Theano/Pylearn2, Torch7 の 3 つが人気です。これらはフィードフォワードなネットワークを書くことが基本的な目標として開発されています。ですが、最近では Deep Learning の進展に伴い、より複雑なネットワークを柔軟に書けることの必要性が高まっています。そこで、この中でも特に自由度が高い Theano をベースに、新しいフレームワークがたくさん模索されています(例:Blocks, Keras, Lasagne, deepy など)。

これらのフレームワークを含め、既存の実装のほとんどは、一度ニューラルネット全体の構造をメモリ上に展開して、その処理を順に見てその通りに順伝播・逆伝播を実行するというアプローチを取っています。これは、独自のミニ言語に対するインタープリタを実装しているようなものです。例えば Caffe ならば Protocol Buffer で定義されたスキーマがミニ言語に対応します。Torch7 の場合には、コンテナと呼ばれる特殊なモジュールが制御構造の役割を果たします。Theano はより柔軟な定義が可能ですが、ループを書くために scan と呼ばれる特殊な機能を使います。このアプローチにおいて、より複雑な計算フローをサポートしようと思ったら、基本的にはこのミニ言語を拡充していく必要があり、学習コストや記述コストは高くなっていきます。基本的には今後、ニューラルネットの構造はさらに複雑化していくことを考えると、この展開は好ましくありません。

Chainer はこれとは異なるアプローチを取ります。Python をベースとしていますが、Theano は使いません。制御構造はすべて Python のものがそのままつかえます。Chainer は、実際に Python のコードを用いて入力配列に何の処理が適用されたかだけを記憶しておき、それを誤差逆伝播の実行に使います。このアプローチは、複雑化していく Deep Learning の研究・開発速度を保つために必要だと考えており、私たちが新しいフレームワークの開発に乗り出した理由です。

使い方

ドキュメントも同時に公開しました。チュートリアルとリファレンスを提供しています。チュートリアルでは、基本的な多層パーセプトロンの書き方から、リカレントネットの書き方、GPGPU の利用法などを紹介しています。今のところドキュメントはすべて英語のみとなっていますが、要望が大きければ日本語への翻訳も検討します。

また、公式リポジトリ内の examples ディレクトリの中にサンプルがいくつか入っています。こちらは、実際にデータの読み込みから学習までを Chainer で書く方法を知るのに適しています。

質問やバグ報告

Chainer はまだ公開されたばかりのフレームワークで、機能面ではまだまだ足りない部分もあります。PFI/PFN の Chainer 開発チームでは、これから継続的に開発を行い、定期的に新しいバージョンをリリースしていく予定です。プルリクエストも受け付けます(今のところ Contribution Guide のような文書はありませんが、今後用意する予定です)。

使用法やバグについての報告も随時受け付けます。使用法の質問については、Google Groupsを開設しましたので、こちらに投稿してください。また、バグの報告や修正については、GitHub の Issue やプルリクエストを登録していただければと思います。GitHub のアカウントをお持ちでない場合は、Google Groups へ投稿していただいても構いませんし、Twitter アカウント (@ChainerOfficial)にメンションを送って頂いても対応可能です。

オンライン機械学習(機械学習プロフェッショナルシリーズ第1期)発売のお知らせ

preferred

2015-04-06 19:01:44

お久しぶりです。徳永です。

講談社からオンライン機械学習というタイトルの本が出版されます。著者はPreferred Infrastructure/Preferred Networksの海野, 岡野原, 得居, 徳永の4人です。

続きを読む »

NIPS2014読み会を開催しました

大野 健太
エンジニア

2015-01-23 19:33:15

大野です。
先日2015年1月20日に、NIPS2014読み会を開催しました。

当日に関する情報はこちらをご覧ください:connpass, togetter
当日の発表タイトルとインターネット上で入手可能な資料は記事の最後に掲載します(connpassからも入手可能です)。

昨年と同時期、同場所での開催にも関わらず、前回の1.5倍以上の方に参加いただきました。また、正確な統計はありませんが、機械学習に限らず様々なバックグラウンド方がいらっしゃったようです。ビジネス系メディアで特集で組まれるなど、機械学習・人工知能への注目度が高まっておりますが、それと並行して機械学習を専門に研究されている方や、最先端の機械学習研究に関心を持つ方の層が広がっているのではないかと思います。このような勉強会で交流が増えて分野の発展につながれば、今回の勉強会を開催したかいがあったと考えています。

改めまして、発表者の皆様、参加者の皆様、そして会場をご提供いただいた東京大学の武田先生・中川先生にお礼を申し上げます。

会議に関する所感

会議全体を見ると、最適化の理論解析もあれば特定の業界への実応用もあり、また特定のトピックについて基礎から応用まで垂直に扱われているワークショップがいくつも開催されました。参加人数からみても、KDDなど他の機械学習・データマイニング系の研究集会と同様に、NIPSもここ数年の規模の拡大が顕著なようです。
個別のトピックで言えば、Deep Learning/Deep Neural Networkが依然として関心を集めているようです。DLを主題としたワークショップが少なくとも2件あり、主題ではなくても、DLに関連と予想される発表が多くのワークショップで散見します。今回の読み会でも7件中2件(山本さん、得居さん)がDL関連でした。
大岩さんに発表していただきましたが、今回のNIPSではのレビュープロセスについての実験的な企画が行われました。同じ投稿論文を独立した2グループ両方に査読してもらいその相関を調べたもので、1つ目のグループでAcceptされた論文のうち57%が2つ目のグループではRejectされたという結果が話題になりました。例えば「NIPS review experiment」などで検索すると、より詳細にこれらを論じた記事がいくつも見つかり、レビュープロセスに関しては多くの方が問題意識や関心を持っているのだと感じました。

読み会発表タイトル一覧

  • 山本浩司さん , Learning Generative Models with Visual Attention : Proceeding arXiv
  • 大岩秀和さん,  Partition-wise Linear Models : Proceeding arXiv
  • 楠本充さん,  Advances in Learning Bayesian Networks of Bounded Treewidth : Proceeding arXiv
  • Quasi_quant2010さん,  Analysis of Learning from Positive and Unlabeled Data : Proceeding
  • 得居誠也さん , Semi-supervised Learning with Deep Generative Models : Proceeding arXiv
  • 加藤公一さん , A Safe Screening Rule for Sparse Logistic Regression : Proceeding arXiv
  • 関喜史さん , Content-based recommendations with Poisson factorization Proceeding

 

発表資料

続きを読む »

Deep Learningと自然言語処理

preferred

2014-12-26 11:22:09

クリスマスイブの夜は男三人しかいないオフィスで関数型言語の素晴らしさについて語っていた西鳥羽です。こんにちは。

昨日のPFIセミナーで「Deep Learningと自然言語処理」というタイトルで発表させていただきました。以下がその時の資料です。


この辺りに興味を持たれた方は今度の1月20日に「NIPS 2014 読み会」http://connpass.com/event/10568/ もどうぞ。残り枠数少ないので申し込みはお早めに。

続きを読む »

PyData Tokyo Meetup #1でCaffeとmafについて発表しました

大野 健太
エンジニア

2014-11-07 12:04:37

10月30日のPyData Tokyo MeetUp #1にて「Caffeとmafを用いたディープラーニング開発・実験方法」というタイトルで発表を行いました。

当日の発表に関する情報はconnpassにまとめられています(私以外の発表の資料へのリンクや当日のUstreamでの配信へのリンクもあります)。また、当日までのtwitterの反応はtogetterにもまとめられています。

 

発表資料はSlideShareで公開しています(当日きちんと答えられなかった質問の回答を資料の最後に追記しました)。

Development and Experiment of Deep Learning with Caffe and maf from Kenta Oono

 

今回はディープラーニングライブラリの中でも特に開発が活発に行われているCaffeと、PFI/PFNで開発している実験ビルドツールのmafをそれぞれ紹介しました。発起人の柴田さんから、Caffeを用いて自分で何か作れるようになるとうれしい人が集まっていると事前に聞いておりましたので、デモを通じてmafとCaffeを用いて実験を行う具体的な方法の紹介を意識したつもりです。

勉強会主催の方々が標榜しているようにとても濃い勉強会でした。勉強会の立ち上げ会での発表で恐れ多かったですが、多くの方に興味を持っていただきました。発表の機会をくださった発起人の皆様、発表を聞いてくださった方々に改めてお礼を申し上げます。今後も微力ながら活動を応援をさせていただければと考えております。

Group Lassoでグループごと重みが0に潰れる理由

海野 裕也
リサーチャー

2014-05-23 18:15:03

海野です。
先日会社の論文読み会で、ICML2014のMaking the Most of Bag of Words: Sentence Regularization with Alternating Direction Method of Multipliersという論文を紹介しました。さて、この時話題になったのが正則化項をグループ化すると何でグループごと重みが0に潰れるのかという話でした。式を見ても直感的にはわからなかったのですが、得居さんがとてもわかり易い説明をしてくれました。この話、日本語で検索してもあまり出てこないのでちょっと紹介します。

続きを読む »

顔認証技術: DeepFace と Pyramid CNN

beam2d
リサーチャー

2014-03-20 14:55:54

得居です。3月下旬とは思えない寒さに凍えています。

Facebook が CVPR2014 に投稿しアクセプトされていた顔認証に関する論文 [1] が MIT Technology Review にて紹介されたことで注目を集めています。DeepFace と名付けられた手法で、同社が集めた4030人の顔写真440万枚を用いた大規模学習によってほぼ人間並の人物識別性能を達成しているということで、なかなかキャッチーな話題です。一方、Face++ という顔認証・分類のプラットフォームを展開する Megvii社 がつい先日公開したプレプリント [2] でも DeepFace と同程度の性能を達成しています。今日はこの2つの論文を解説します。

deepface

続きを読む »

機械学習CROSSをオーガナイズしました

hido
Chief Research Officer

2014-02-03 17:08:14

もう豆まきしましたか?比戸です。

1月17日に、エンジニアサポートCROSSで機械学習のセッションをオーナーとして主催させて頂きました。今回はその報告と内容のまとめをさせて頂きます。

エンジニアサポートCROSSは今年で3回目を迎える、主にWeb系のエンジニアが集まる技術イベントで、今年も800人以上が集まったそうです。すごいですね。

並列開催されるパネルディスカッションを基本とするイベントで、有名なWeb関連サービスを持っているわけではないPFIの私がオーナーということで、持てる人脈をフル活用してパネリストをお願いしたところ、お声がけした方全員にご登壇いただけることになりました。

続きを読む »

第2回全脳アーキテクチャ勉強会でDeep Learningについて講演しました

beam2d
リサーチャー

2014-01-31 17:01:43

得居です。1月30日にリクルートGINZA8ビルで開催された第2回全脳アーキテクチャ勉強会にて、Deep Learningについて講演しました。

Deep Learning技術の今 from Seiya Tokui

続きを読む »

NIPS2013読み会を開催しました

hido
Chief Research Officer

2014-01-31 10:08:27

もう花粉飛んでるらしいですね。比戸です。

昨年開いたICML2013読み会に続き、NIPS2013の論文を紹介する会を開きました。平日夜にも関わらず60名以上の申し込み、50名以上の参加があり、改めて機械学習への興味の高さを裏付けるものとなりました。会場提供にご協力頂いた東大の武田朗子先生、中川裕志先生、および発表者の皆さんありがとうございました。

ここで特筆したいのが、@mooopanさんが選んだ”Playing Atari with Deep Reinforcement Learning“です。

話題のDeep Neural Networkと強化学習を組み合わせて、テレビゲームで人間にも勝ったという、この日唯一のワークショップ論文紹介だったのですが、なんと著者の所属するDeepMind TechnologiesがGoogleに500億円以上で買収されたというニュースが3日前飛び込んできました。買収交渉がいつからあったのかわかりませんが、多くのDeepMindとGoogle関係者がNIPS会場にいたわけで、Deep Learningそして機械学習を取り巻くホットな状況を感じられる一件でした。

以下に改めて発表論文と資料へのリンクを掲載させて頂きます。
続きを読む »