CNNの密な層の数とサイズ


10

私が見たほとんどのネットワークには、最後のsoftmaxレイヤーの前に1つまたは2つの密なレイヤーがあります。

  • 密な層の数とサイズを選択する原則的な方法はありますか?
  • 同じ数のパラメーターについて、2つの高密度層は1つよりも代表的ですか?
  • ドロップアウトは、各密なレイヤーの前に適用する必要がありますか、それとも一度だけ適用しますか?

回答:


14

まず第一に:

入力と出力の数だけから適切なネットワークトポロジを決定する方法はありません。トレーニングの例の数と、学習しようとしている分類の複雑さに大きく依存します。[1]

ヨシュアベンジオは非常に単純なルールを提案しました:

テストエラーが改善されなくなるまで、レイヤーを追加していきます。[2]

さらに:

ConvNetの初期の機能には、多くのタスクに役立つはずのより一般的な機能(エッジ検出器やカラーBlob検出器など)が含まれていますが、ConvNetの後のレイヤーは、元のデータセットに含まれるクラスの詳細に徐々に特定されます。[ 3]

たとえば、特徴検出器を学習する方法では、次のようになります。

最初の層はエッジ検出器を学習し、後続の層はより複雑な機能を学習し、より高いレベルの層はより抽象的な機能をエンコードします。[4]

したがって、1つの層よりも2つの密な層を使用することをお勧めします。

最終的に:

ドロップアウトに関する最初の論文は、ドロップアウトを実際に使用する際に検討すべきいくつかの有用な発見的方法を提供しています。それらの1つは、次のとおりです。 着信(表示)および非表示のユニットでドロップアウトを使用します。ネットワークの各層でドロップアウトを適用すると、良い結果が得られました。[5]

CNNでは、通常、ドロップアウトレイヤーは各プーリングレイヤーの後に、また高密度レイヤーの後に適用されます。良いチュートリアルがここにあります[6]

参照:

[1] https://www.cs.cmu.edu/Groups/AI/util/html/faqs/ai/neural/faq.html

[2]ベンジオ、ヨシュア。「ディープアーキテクチャの勾配ベースのトレーニングに関する実用的な推奨事項。」ニューラルネットワーク:貿易の秘訣。スプリンガーベルリンハイデルベルク、2012年。437-478。

[3] http://cs231n.github.io/transfer-learning/

[4] http://learning.eng.cam.ac.uk/pub/Public/Turner/Teaching/ml-lecture-3-slides.pdf

[5] https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/

[6] https://cambridgespark.com/content/tutorials/convolutional-neural-networks-with-keras/index.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.