畳み込みニューラルネットワークにおける特徴マップのサイズ

出力: 計算を押す

式:outputSize = (inputSize - kernelSize + 2 * padding) / stride + 1

畳み込みニューラル ネットワークの特徴マップ サイズの理解

畳み込みニューラル ネットワーク (CNN) は、特に画像やビデオの認識を伴うタスクにおいて、ディープラーニングの分野の基礎となっています。CNN アーキテクチャの重要な側面は、各畳み込み層で変換される特徴マップ サイズです。計算方法を知ることは、効果的なモデルを構築する上で不可欠です。

CNN の畳み込み層後の特徴マップのサイズは、次の式を使用して決定されます。

outputSize = (inputSize - kernelSize + 2 * padding) / stride + 1

関係する各パラメータの内訳は次のとおりです。

入力と出力

入力

出力

実際の例

一般的な使用例で、入力画像のサイズが 224 x 224 ピクセルであるとします。カーネル サイズが 3x3、パディングが 1、ストライドが 1 の畳み込みレイヤーを適用します。特徴マップのサイズを計算する方法は次のとおりです。

inputSize: 224、kernelSize: 3、padding: 1、stride: 1

これらの値を数式に代入します。

outputSize = (224 - 3 + 2 * 1) / 1 + 1 = 224

結果の特徴マップは 224x224 ピクセルのままです。

データ検証

この計算が機能するには、すべての入力パラメータが 0 より大きい必要があります。さらに、ストライドは、変更された入力サイズ (inputSize - kernelSize + 2 * padding) を均等に分割する整数であることを確認してください。そうでない場合、特徴マップのサイズは整数にならず、式が破綻します。

値の例:

出力:

まとめ

畳み込みニューラル ネットワークで特徴マップのサイズを計算することは、モデル アーキテクチャと最適化にとって重要です。データ サイエンティストやエンジニアは、式 (inputSize - kernelSize + 2 * padding) / stride + 1 を理解して正しく使用することで、より効率的なネットワークを設計し、パフォーマンスと有効性を向上させることができます。

よくある質問 (FAQ)

パディングを使用するのはなぜですか?

パディングは、出力フィーチャ マップの空間次元を制御するのに役立ちます。出力で入力サイズを保持する場合に特に便利です。

ストライドが 1 より大きい場合はどうなりますか?

ストライドが 1 より大きい場合、カーネルは入力内のピクセルをスキップし、出力フィーチャ マップが小さくなります。これにより、計算負荷が軽減されます。

この式は正方形の入力にのみ適用できますか?

いいえ、同じロジックを各次元 (高さと幅) に個別に適用することで、正方形以外の入力に合わせて式を調整できます。

これらのガイドラインに従い、各パラメーターを理解することで、畳み込みニューラル ネットワークの可能性を最大限に活用し、ディープラーニング モデルを効率的に最適化できます。

Tags: ディープ ラーニング, イメージ 認識, 機械学習