2

Caffe と Theano になるまでに、さまざまな深層学習フレームワークを学習 (および比較) しようとしています。

http://caffe.berkeleyvision.org/gathered/examples/mnist.html

http://deeplearning.net/tutorial/lenet.html

チュートリアルに従って、これらのフレームワークを MNIST データセットで実行します。ただし、精度とパフォーマンスの点でかなりの違いがあることに気付きました。

Caffe の場合、精度が最大 97% まで上がるのは非常に高速です。実際、プログラムを完了するのに 5 分しかかからず (GPU を使用)、テスト セットでの最終的な精度は 99% を超えています。なんて印象的!

ただし、Theano では、はるかに貧弱です。92% のテスト パフォーマンスを達成するだけで、(同じ GPU を使用して) 46 分以上かかりました。

同じデータセットで比較的同じアーキテクチャを実行しているフレームワーク間にそれほど大きな違いはないはずなので、私は混乱しています。

だから私の質問はです。Caffe によって報告される精度の数値は、テスト セットでの正しい予測のパーセンテージですか? もしそうなら、不一致の説明はありますか?

ありがとう。

4

1 に答える 1

6

Theano と Caffe の例は、まったく同じネットワークではありません。私が考えることができる 2 つの重要な違いは、Theano の例では sigmoid/tanh アクティベーション関数を使用し、Caffe チュートリアルではReLUアクティベーション関数を使用し、Theano コードでは通常のミニバッチ勾配降下法を使用し、Caffe では運動量オプティマイザーを使用していることです。どちらの違いも、ネットワークのトレーニング時間に大きく影響します。また、ReLU ユニットの使用も精度に影響を与える可能性があります。

Caffe はディープ ラーニング フレームワークであり、モメンタム オプティマイザーなどの一般的に使用される多くの機能に対して、すぐに使用できる関数が既に用意されていることに注意してください。一方、Theano は、ニューラル ネットワークの構築に使用できるシンボリック数学ライブラリです。ただし、ディープ ラーニング フレームワークではありません。

あなたが言及した Theano チュートリアルは、畳み込みネットワークやその他のニューラル ネットワークが基本レベルでどのように機能するかを正確に理解するための優れたリソースです。ただし、最新の調整をすべて実装するのは面倒です。最先端の結果をすばやく取得したい場合は、既存の深層学習フレームワークのいずれかを使用することをお勧めします。Caffe 以外にも、Theano に基づくフレームワークが多数あります。私はkerasblockspylearn2、そして私のお気に入りのラザニアを知っています。

于 2016-02-16T14:11:57.337 に答える