Caffe(カフェ)とは、オープンソースのディープラーニングライブラリです。画像認識に特化しており、高速処理が可能です。
C++で実装されています。C++/Python/MATLABで使用できます。
「高速動作」「GPU対応」「洗練されたアーキテクチャ/ソースコード」「開発コミュニティが活発」などの特徴があります。
Yangqing Jia氏が、カリフォルニア大学バークレー校博士課程在籍中に開発がスタートしました。
その後、カリフォルニア大学バークレー校の「コンピュータビジョンおよび機械学習に関する研究センター(Berkeley Vision and Learning Center)」が中心となって開発しています。
ヤフージャパンは、2014年6月から同センターのスポンサーとなり、Caffe開発の支援を行っています。
→Caffe(Caffe | Deep Learning Framework)
Caffeのライセンスは「BSDライセンス」です。
詳細について、こちらを参照ください。
→GitHub →BVLC/caffe →caffe/LICENSE
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「TensorFlow」「Chainer」「Keras」など。
Caffeは、畳み込みニューラルネットワーク「CNN(Convolution Neural Network)」を利用しています。
CNNとは、ディープラーニング技術の1つです。全結合していない順伝播型ニューラルネットワークで、畳み込み層を通常の活性化関数でつないでいく手法です。
全結合しているニューラルネットワークに比べて高速に学習を行えるメリットがあります。
CaffeはGPUを利用できます。GPUを利用して高速で動作させるためにNVIDIAのCUDA(Compute Unified Device Architecture)が必要です。
CUDAとは、NVIDIAが提供する並列コンピューティングアーキテクチャです。GPU向けC言語統合開発環境で、コンパイラ/ライブラリなどで構成されています。CUDAは、NVIDIA製ハードウェア(GPU)性能を最大限引き出せるように設計されており、計算処理能力を劇的に向上できます。
CaffeはCPUのみでの使用も可能です。
Python用数値計算ライブラリ「Theano」と「Caffe」のスピード比較において、「Theano」で約56分かかる処理を「Caffe」では約4分で完了できたというテスト結果も報告されています。
画像識別に関する論文において、高精度を出した論文にCaffeを利用した研究が数多く報告されています。
Caffeには、学習済モデル配布フレームワーク「Caffe Model Zoo」があります。ネットワーク定義を1から作成しなくても、リファレンスモデルを使用して処理を実行できます。
大規模画像認識コンテスト「ILSVRC 2012」でトップとなった、畳込みニューラルネットワーク画像分類モデルをすぐに利用できます。
Caffeを紹介する記事は多く、公式ドキュメントも充実しています。
・CNNを利用した画像の多クラス分類
・CNNによる特徴ベクトルの抽出
・CNNの転移学習
・Stacked Auto Encoder など
Caffeは、コア言語として「C++」で実装されています。
インターフェースとして「C++」「Python」「MATLAB」などを利用できます。
「MATLAB」とは、数値解析ソフトウェア(プログラミング言語)です。
「行列計算機能」「関数とデータの可視化機能」「アルゴリズム開発機能」「グラフィカルインターフェース」「他言語(C/C++/Java/Python)とのインターフェース」などの機能を有しています。
設定ファイル(lenet_train_test.prototxt)に、処理順番(Convolution層/Pooling層など)とパラメータ設定を定義します。
JSONのような形式で、レイヤーごとに分けて記載します。
重みの学習方法を設定するための「solver定義ファイル」を作成します。
コマンドで学習を開始します。
AI研究プロジェクトなどをサポートする主要なオープンソースAIツールを紹介。 ①Apache Mahout 統計と線形代数を含む一般的な数学問題の作業を簡素化するように設計されている。 ...
OSS×Cloud ACCESS RANKING