ストライド(Stride)とは、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)において、フィルタ(カーネル)を画像などの入力データ上でスライドさせる際の移動量を指します。ストライドは、畳み込み演算の出力サイズを制御し、特徴マップの空間的な次元を削減するために重要な役割を果たします。
ストライドの概念
CNNでは、フィルタを入力データ上でスライドさせながら、各位置で畳み込み演算を行い、特徴マップを生成します。ストライドは、このフィルタのスライド量を決定するパラメータです。
- ストライド1: フィルタを1ピクセルずつ移動させます。
- ストライド2: フィルタを2ピクセルずつ移動させます。
- ストライドN: フィルタをNピクセルずつ移動させます。
ストライドを大きくすると、出力される特徴マップのサイズは小さくなります。これにより、計算量の削減や、より粗い特徴マップの抽出が可能になります。
ストライドの役割
ストライドは、CNNにおいて以下の役割を果たします。
- 出力サイズの制御: ストライドを調整することで、出力される特徴マップのサイズを制御できます。
- 特徴マップのダウンサンプリング: ストライドを大きくすることで、入力データをダウンサンプリングし、特徴マップの空間的な次元を削減できます。
- 計算量の削減: 出力される特徴マップのサイズが小さくなるため、後続の層における計算量を削減できます。
- 位置不変性の獲得: ストライドを大きくすることで、入力データ内のわずかな位置のずれに対して、出力が変化しない性質(位置不変性)を獲得できます。
ストライドの応用
ストライドは、CNNにおける様々な層で利用されます。
- 畳み込み層: 畳み込み層において、フィルタのスライド量を制御するために使用されます。
- プーリング層: プーリング層において、プーリングウィンドウのスライド量を制御するために使用されます。
- 転置畳み込み層: 転置畳み込み層において、特徴マップをアップサンプリングする際に使用されます。
ストライドは、CNNの性能に大きな影響を与える重要なパラメータです。適切なストライドを選択することで、モデルの精度と計算効率を向上させることができます。