14

画像分類に畳み込みニューラル ネットワーク(特徴を検出するための教師なし特徴学習 + Softmax 回帰分類子) を使用しています。この分野の Andrew NG によるすべてのチュートリアルを確認しました。( http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial )。

私が開発したネットワークには次のものがあります。

  • 入力層 - サイズ 8x8 (64 ニューロン)
  • 隠れ層 - サイズ 400 ニューロン
  • 出力レイヤー - サイズ 3

スパースオートエンコーダーを使用して入力レイヤーを非表示レイヤーに接続する重みを学習したため、400 の異なる機能があります。

任意の入力画像 (64x64) から連続した 8x8 パッチを取得し、それを入力レイヤーに供給することで、サイズ (57x57) の 400 個の特徴マップを取得します。

次に、サイズ 19 x 19 のウィンドウで最大プーリングを使用して、サイズ 3x3 の 400 個の特徴マップを取得します。

この特徴マップをソフトマックス レイヤーにフィードして、3 つの異なるカテゴリに分類します。

隠れ層の数 (ネットワークの深さ) や層ごとのニューロンの数などのこれらのパラメーターは、すべての画像のサイズが 64x64 である 1 つの特定のデータセットで正常に使用されたため、チュートリアルで提案されました。

これを、画像がはるかに大きい(400x400など)独自のデータセットに拡張したいと思います。どうやって決めるの

  1. レイヤーの数。

  2. 層ごとのニューロンの数。

  3. プーリング ウィンドウのサイズ (最大プーリング)。

4

2 に答える 2

32

隠れ層の数: 必要な隠れ層の数は、データセットの本質的な複雑さに依存します。これは、各層が何を達成するかを見ることで理解できます。

  • 隠れ層がゼロの場合、ネットワークは線形関数のみをモデル化できます。これは、ほとんどの画像認識タスクには不十分です。

  • 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 が必要になる場合があります) を実行します。

まとめ 適切なネットワーク レイアウトを見つける最善の方法は、文字どおり試行錯誤を繰り返すことです。たくさんのテスト。万能のネットワークはなく、データセットの本質的な複雑さを知っているのはあなただけです。必要な数のテストを実行する最も効果的な方法は、相互検証を使用することです。

于 2014-08-21T08:47:21.703 に答える
1

簡単に言えば、パラメーターの可能な値を決定し、それらの値を使用してモデル構築の一連のシミュレーションを実行し、次に予測を実行して、最小の予測エラーとより単純なモデルを与える最適なパラメーター値を選択します。

データ分析の用語では、偏りのない方法で予測することが重要であるため、ホールドアウト、クロス検証、ブートストラップを使用してモデル パラメーターの値を決定します。

于 2014-07-01T19:48:10.460 に答える