1行定義
ストライドとは、畳み込みやプーリングで、フィルタを入力の上でずらしていくときの移動の幅のことです。
くわしく
ストライドは、畳み込み層やプーリング層で、フィルタ(窓)を入力の上で動かすときの歩幅です。ストライド1なら1マスずつ、ストライド2なら2マスずつずらして計算します。
出力サイズへの影響
ストライドを大きくすると、フィルタを置く位置が減ります。そのため、出力される特徴マップは小さくなります。ストライド2にすると、縦横のサイズはおおよそ半分になり、計算量も減ります。出力サイズは、パディングと合わせて次の式で求めます。
出力サイズ = (入力サイズ + 2 × パディング − フィルタサイズ) ÷ ストライド + 1
たとえば縦横9×9の入力に3×3のフィルタをパディングなしで当てる場合、ストライド1なら7×7、ストライド2なら4×4になります。割り切れない場合は、小数点以下を切り捨てるのが一般的です。
使われ方
プーリング層では、窓の大きさとストライドを同じにするのが一般的です。2×2の窓をストライド2で動かすと、領域が重ならずに縦横が半分になります。
畳み込み層のストライドを2以上にして、プーリング層の代わりに特徴マップを縮める設計もあります。たとえばResNetでは、入口の1か所を除き、プーリング層ではなくストライド2の畳み込みで特徴マップを縮めています。
似た言葉との区別
Dilated Convolutionは、フィルタの要素どうしの間隔を広げる手法です。ストライドは「フィルタの移動の幅」、Dilated Convolutionは「フィルタの内側の間隔」と区別します。
パディングは入力の外側を広げる処理で、出力を大きく保つ方向に働きます。ストライドは出力を小さくする方向に働きます。どちらを変えても、フィルタの重みの数は変わりません。
覚え方
「ストライドは歩幅。大股で歩くほど、足あと(出力)は少なくなる」と覚えます。
G検定での出題
出題のされ方
ストライドを大きくすると特徴マップが小さくなること、パディングやフィルタサイズと組み合わせた出力サイズの計算、プーリング層の代わりにストライド2の畳み込みで縮小する設計が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| ストライドこのページの用語 | 畳み込みやプーリングで、フィルタを入力の上でずらしていくときの移動の幅 |
| パディング | 畳み込みの前に入力の周囲を0などの値で埋めて、縦横のサイズを広げておく処理 |
| Dilated Convolution | フィルタの要素の間に間隔を空けて入力に適用することで、パラメータ数を増やさずに受容野を広げる畳み込み |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
ストライドを大きくすると、フィルタの重みの数が増えるため、畳み込み層のパラメータ数も増える。
答えを見る
答え × 誤り
ストライドは移動の幅で、フィルタの大きさや枚数は変わりません。パラメータ数は同じまま、計算する位置が減る分だけ計算量が減ります。
-
縦横7×7の入力に3×3のフィルタを、パディングなし・ストライド2で適用すると、出力は3×3になる。
答えを見る
答え ◯ 正しい
(7 + 0 − 3) ÷ 2 + 1 = 3です。フィルタを置ける位置が、縦横それぞれ3か所になります。
-
ストライドを大きくしすぎると、細かい位置の情報が失われ、小さな対象を捉えにくくなることがある。
答えを見る
答え ◯ 正しい
フィルタが間を空けて進むため、出力の解像度が粗くなります。ストライドがフィルタより大きいと、計算に使われない画素も出ます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目18 畳み込み層)
- Vincent Dumoulin, Francesco Visin, A guide to convolution arithmetic for deep learning (2016)
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition (2015)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016) (9.5 Variants of the Basic Convolution Function)