パディング??ストライド??CNNに使われるテクニックと用語
皆さんこんにちは!!
今日も張り切っていきましょう。
ここ最近のブログではCNNについて書いていて、
「畳み込み層」「プーリング層」とまとめてきました。
今日は畳み込み層、プーリング層で使われる代表的なテクニックと
さらにちょっとした用語について説明します。
これでもう1レベルCNNについて詳しくなりましょう!!
CNNについて全体を確認しておきたい方はまずはこちらからどうぞ!
「畳み込み層」「プーリング層」を確認したい方へ
〜今日の内容と参考文献〜
パディング
畳み込み層やプーリング層で行われているテクニック。それは見出しの
「パディング」
という手法です。
これは一言で言うと
のことです。
下の図を見てみて下さい。
この図では様々な値のピクセルを持つ入力画像を
0のピクセルが取り囲んでいますね。
この様なパディング方法をゼロパディングと言います。
0のピクセルで周りを囲んでますね。
これはパディングの中でも代表的な手法の1つです。
なぜこのパディングというテクニックが大事なのでしょうか?
メリットは2点あります。
1 画像のサイズが変わらないようにするため
畳み込み層やプーリング層を行うことで画像のサイズが徐々に小さくなりますよね。
畳み込み層やプーリング層は何度も行うので繰り返していると
次第に画像のサイズが1x1になっていまいます。
このパディングをしてピクセルを配置することで画像サイズを小さくせずに
済むのです。
2 端の特徴量もしっかり捉えることができる!
畳み込みやプーリングを行うとどうしても外側から画像は縮小されていきます。
そのため端にあるピクセルは内側にあるピクセルに比べて畳み込み回数や
プーリング回数は少なくなってしまいます。
しかし!!
このパディングをすれば画像サイズが変わらなくなるだけでなく
しっかり画像の端のピクセルも畳み込まれるのでより精度が高くなります!
ストライド
ストライドというのは畳み込みにおいて使われる
フィルタが画像を移動する間隔のことです。
「ストライド」って言葉どこかで聞いたことあるなと思ってたら
陸上で「ストライド走法」ってありますよね笑
脱線しますが「ストライド走法」というのは簡単にいうと
歩幅をかなり大きくして走る?走法です。
しかしCNNにおいて「ストライド」とは
CNNの「ストライド」=フィルタが移動する幅
めっちゃ覚えやすい!!
パディングのところの図のストライドは1ですね。
基本的にストライドは1ですが、かなり大きな画像を縮小するときとかにストライドを1以上に設定するときがあります。
参考文献・サイト
はじめてのディープラーニング -Pythonで学ぶニューラルネットワークとバックプロパゲーション- (Machine Learning)
- 作者: 我妻幸長
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/08/28
- メディア: 単行本
- この商品を含むブログを見る
次回もまた見てください!!