畳み込み層の出力サイズを計算する
1. 概要
このチュートリアルでは、畳み込み層の出力サイズを計算する方法を説明します。最初に、畳み込み演算子と畳み込み層を簡単に紹介します。 次に、出力サイズを計算するための一般式に進み、詳細な例を示します。
2. 畳み込み演算
一般に、畳み込みは2つの関数の数学演算であり、2つの情報ソースを組み合わせて出力関数を生成します。信号処理、コンピュータービジョン、物理学、微分方程式など、幅広いアプリケーションで使用されます。方程式。 畳み込みには、連続、循環、離散など多くの種類がありますが、畳み込み層では離散データを扱うため、後者に焦点を当てます。
コンピュータービジョンでは、画像と小さな行列として定義されたフィルターの間で畳み込みが実行されます。最初に、フィルターは2D入力画像のすべてのピクセルを連続して通過します。
ここで、簡単な例を使用して、上記の手順をもう一度説明しましょう。 畳み込みたい画像とフィルターがあります。 以下では、入力画像のどのピクセルが畳み込みの各ステップで使用されているかを太字で示しています。
前述のように、各ステップで、選択したピクセルの値(太字)に対応するフィルターの値を掛け、その結果を1つの出力に合計します。 以下の例では、中央のピクセルの畳み込みを計算します(ステップ= 5):
まず、フィルターの各ピクセルと画像の対応するピクセルの乗算を計算します。 次に、すべての製品を合計します。
したがって、出力アクティベーションマップの中央のピクセルは129に等しくなります。 この手順は、入力画像のすべてのピクセルに対して実行されます。
3. 畳み込み層
畳み込み層は、すべての畳み込みニューラルネットワークのコアビルディングブロックです。 各レイヤーには、学習可能なフィルターのセットがあります。 順伝播中に各フィルターで入力を畳み込み、そのフィルターの出力アクティブ化マップを生成します。その結果、特定の特徴が入力画像に表示されると、ネットワークはアクティブ化されたフィルターを学習します。 以下に、エッジ検出に使用されるクリアフィルターであるPrewitt演算子の例を示します。
4. ハイパーパラメータ
畳み込み層の出力サイズを計算する方法を定式化するには、最初に2つの重要なハイパーパラメーターについて説明する必要があります。
4.1. ストライド
畳み込み中、フィルターは入力画像全体を通過するまで左から右、上から下にスライドします。 ストライドをフィルターのステップとして定義します。したがって、入力画像をダウンサンプリングして出力を小さくしたい場合は、を設定します。
以下に、前の例を次の場合に示します。
4.2. パディング
畳み込み層では、コーナーとエッジにあるピクセルが、中央のピクセルよりもはるかに少なく使用されていることがわかります。たとえば、次の例では、入力画像とフィルターがあります。
以下に、:を使用して畳み込みを適用するときに、入力画像の各ピクセルが使用される時間を示します。
中央のピクセルが9回使用されているのに対し、ピクセルは1回だけ使用されていることがわかります。 一般に、中央にあるピクセルは、エッジやコーナーのピクセルよりも頻繁に使用されます。 したがって、画像の境界の情報は、中央の情報と同様に保存されません。
この問題の簡単で強力な解決策は、入力画像にゼロの行と列を追加するパディングです。 サイズの入力画像にパディングを適用すると、出力画像のサイズはになります。
以下に、でパディングする前後の画像の例を示します。 ご覧のとおり、寸法はからに増加しました:
畳み込み層でパディングを使用することにより、学習手順へのコーナーとエッジのピクセルの寄与を増やします。
5. 方式
次に、このチュートリアルの主な目標である、畳み込み層の出力サイズを計算するための式を提示することに移りましょう。次の入力があります。
- 寸法の画像。
- 次元のフィルター。
- ストライドとパディング。
出力アクティベーションマップのディメンションは次のとおりです。
出力ディメンションが整数でない場合は、ストライドが正しく設定されていないことを意味します。
2つの例外的なケースがあります。
- パディングがまったくない場合、出力ディメンションはです。
- 畳み込みレイヤーの後で入力のサイズを変更しないようにしたい場合は、同じパディングをwhereと。に適用します。 s = 1の場合、を設定します。
6. 例
最後に、畳み込み層の出力サイズを計算する例を示します。サイズの入力画像、サイズのフィルター、パディングP = 2、ストライドS=2があるとします。 その場合、出力ディメンションは次のようになります。
したがって、出力アクティベーションマップのディメンションはになります。
7. 結論
このチュートリアルでは、畳み込み層の出力サイズの計算について説明しました。