機械学習
人工知能
Caffe
Chainer
TensorFlow

各機械学習ライブラリの比較をまとめる

More than 1 year has passed since last update.

この部分は需要が高いと思ったので、以下の自分の投稿から抜粋。

TensorFlowのチュートリアルを通して、人工知能の原理について学習する

http://qiita.com/jintaka1989/items/3b70b5c5541620536fa2

以下のことについて知りたい人向けの記事。

・各機械学習ライブラリの比較

ちなみに私はTensorFlowしか触っていないので、

この記事はブログなどを探索して、それをまとめたものである。

追記:実際にライブラリをいろいろ使ってみた人の感想はこちら

https://speakerdeck.com/contaconta/deep-learningraiburari-se-tukatutemitagan-xiang-matome

■他の機械学習ライブラリとの比較

 他の機械学習ライブラリと比較するとなると、そのための開発環境を整えなければならない。よって比較実験は今後の課題とし、今回は文献やインターネットの調査から考察する。以下の表に主な機械学習ライブラリを示す。

追記:caffeはPython, MATLABでも書けます

表1 機械学習ライブラリ一覧

表1.jpg

※公式サイトリンク一覧

TensorFlow:https://www.tensorflow.org/

Chainer:http://chainer.org/

Caffe:http://caffe.berkeleyvision.org/

Theano:http://deeplearning.net/software/theano/index.html

Torch:http://torch.ch/

scikit-learn:http://scikit-learn.org/stable/

PyML:http://pyml.sourceforge.net/

Pylearn2:http://deeplearning.net/software/pylearn2/

PyBrain:http://pybrain.org/pages/home

・TensorFlow

 以下の1.結論、2.背景、7.まとめ、において言及している。

http://qiita.com/jintaka1989/items/3b70b5c5541620536fa2

・Chainer

参考文献:

http://qiita.com/icoxfog417/items/96ecaff323434c8d677b

http://nonbiri-tereka.hatenablog.com/entry/2015/06/14/225706

Chainerは、Preferred Networksが開発したニューラルネットワークを実装するためのライブラリである。記法が直感的かつシンプルなので、単純なネットワークから、複雑なディープラーニングまで幅広くカバーできる。

日本発のライブラリである。

また、短く書ける。Caffe上のコード2058行がChainerでは167行で書ける。

そして、設定ファイルや固定データセットが必要ない。Caffeでは、設定ファイルと構築したデータセットを主に使うことになっていたので、動的にDataArgumentationしようとすると面倒になる。

最後に、インストールが簡単である。

・Caffe

参考文献:

http://caffe.berkeleyvision.org/

 CaffeはPython向けの代表的なディープラーニングライブラリである。C++で実装され、GPUに対応しているため、高速な計算処理が可能である。

 Caffe is a community というキャッチコピーもあるほど、その開発コミュニティーが活発にgithubを更新していたり、サンプルコードも多く初心者に推奨される。

 大規模画像認識のコンテストILSVRCで2012年に1位となった畳み込みニューラルネットワークの画像尾分類モデルがすぐに利用できるようになっている。

 Caffeは、カリフォルニア大学バークレー校のコンピュータビジョンおよび機械学習に関する研究センターであるBVLCが中心となって開発している。ヤフージャパンは2014年6月から同センターのスポンサーになっていて、Caffeの開発を含めたセンターの研究の支援を行っている。

・Theano

参考文献:

http://aidiary.hatenablog.com/entry/20150127/1422364425

http://www.chino-js.com/ja/tech/theano-rbm/#id5

TheanoはPython向けの「ディープラーニング(Deep Learning)」ライブラリである。

 機能としては、ディープラーニングの他に「行列演算」「実行時にCコードを生成してコンパイル」「自動微分」「GPU処理(要CUDA)」もあり、ケースによっては数値計算ライブラリ「Numpy」よりも高速に計算できる。

 Deep learning に関するTutorialの量がとても多い。Theano自体は自動偏微分機能・GPU対応などをサポートする計算ライブラリで、Deep learning専用のパッケージではない。自分で理論から理解してScratchで実装したい人にはとても参考になる。

 Theanoをベースに開発されたライブラリが多いようだ。

・Torch,Lua

参考文献:

http://conditional.github.io/blog/2013/12/07/an-introduction-to-torch7/

畳み込みニューラルネットワークを用いた、低画質画像から高画質画像を生成するソフトであるwaifu2xなどはこれを利用して開発されている。

・scikit-learn

機能としては、分類 (Classification)や回帰 (Regression) 、クラスタリング (Clustering) 、次元削減(Dimensionality reduction)などが実装されている。

・PyML

SVM、再近傍法、リッジ回帰等に適している。

・Pylearn2

 機械学習向けライブラリのPylearn2は、画像の認識処理等に適している。

・PyBrain

 ニューラルネットワーク系に強いライブラリである。