隠れ層の数:
必要な隠れ層の数は、データセットの本質的な複雑さに依存します。これは、各層が何を達成するかを見ることで理解できます。
隠れ層がゼロの場合、ネットワークは線形関数のみをモデル化できます。これは、ほとんどの画像認識タスクには不十分です。
1 つの隠れ層により、ネットワークは任意の複雑な関数をモデル化できます。これは、多くの画像認識タスクに適しています。
理論的には、2 つの隠れ層は 1 つの層に比べてほとんどメリットがありませんが、実際には、一部のタスクでは、追加の層が有益であることがわかる場合があります。2 番目のレイヤーがオーバー フィッティングを引き起こす可能性があるため、これは注意して処理する必要があります。2つ以上の隠れ層を使用することはほとんど有益ではない特に複雑なタスクの場合、または非常に大量のトレーニング データが利用可能な場合にのみ有益です (Evgeni Sergeev のコメントに基づいて更新されます)。
簡単に言うと、時間があれば、1 層と 2 層の両方の非表示レイヤーをテストして、どちらが最も満足のいく結果をもたらすかを確認してください。時間がない場合は、単一の非表示レイヤーにパントを実行する必要があります。大きな間違いはありません。
畳み込み層の数:
私の経験では、畳み込み層が多いほど良いです (各畳み込み層が入力特徴の数を完全に接続された層に減らすため)。そのため、主な焦点が一般化の精度とトレーニング時間のどちらであるかを決定する必要があります。とはいえ、すべての画像認識タスクは異なるため、満足のいく結果が得られるまで、畳み込みレイヤーの数を 1 つずつ増やしていくのが最善の方法です。
隠れ層ごとのノード数:
...繰り返しになりますが、ノード数を決定するための魔法の公式はなく、タスクごとに異なります。大まかな目安としては、前のレイヤーのサイズの 2/3 のノード数を使用し、最初のレイヤーを最終的な特徴マップのサイズの 2/3 にします。ただし、これは大まかなガイドであり、データセットによって異なります。もう 1 つの一般的に使用されるオプションは、過剰な数のノードから開始してから、プルーニングによって不要なノードを削除することです。
最大プーリング ウィンドウ サイズ:
私は常に畳み込みの直後に最大プーリングを適用しているため、使用するウィンドウ サイズについて提案する資格がない可能性があります。とはいえ、19x19 の最大プーリングは、文字通りほとんどのデータを破棄するため、厳しすぎるようです。おそらく、より従来型の LeNet ネットワーク レイアウトを確認する必要があります。
http://deeplearning.net/tutorial/lenet.html
https://www.youtube.com/watch?v=n6hpQwq7Inw
畳み込み (通常は 5x5 または 3x3) を繰り返し実行し、続いて最大プーリング (通常は 2x2 プーリング ウィンドウを使用しますが、大きな入力画像には 4x4 が必要になる場合があります) を実行します。
まとめ
適切なネットワーク レイアウトを見つける最善の方法は、文字どおり試行錯誤を繰り返すことです。たくさんのテスト。万能のネットワークはなく、データセットの本質的な複雑さを知っているのはあなただけです。必要な数のテストを実行する最も効果的な方法は、相互検証を使用することです。