CNN
from 東大1S情報α
- 「行列とベクトルの掛け算」の代わりに、空間フィルタの処理もやるニューラルネットワーク
- 「小さいベクトルをスカラーに変換」するフィルタを、大きいベクトル(元画像)の色々な部分(カーネル)に対してやることで、大きいベクトル(元画像)をちょっと小さくしたベクトルを得る
- みたいな感じかな
- この動作、確かに「畳み込み」って感じ
- これをやることで、画像の中で必要な特徴を抽出する / いらない情報を排除する
- その抽出方法も当然訓練される
- 「小さいベクトルをスカラーに変換」するフィルタを、大きいベクトル(元画像)の色々な部分(カーネル)に対してやることで、大きいベクトル(元画像)をちょっと小さくしたベクトルを得る
- あと、畳み込みの後にプーリングという処理もやることが多い
- これは、シンプルに画像の解像度を下げる処理
from #Udacity_Intro_to_Deep_Learning_with_PyTorch
フィルタを、自動で学習するのがCNN
複数のフィルタを自動で作り出す、そのカーネルの数がConvolutional Layerの数
- あるフィルタは、犬の耳を検出できる物かもしれない
- 別のフィルタは、犬の目を検出するかも
間にpooling layerってのも挟むことがある
- 情報をできるだけ保ったまま、サイズを小さくするためのもの
- 平均とる手法や、最大値取る手法などがある
- 最大値のやつが、画像検知には向いてる(特徴のある部分を強調するから)
CNNは、画像のdepthを増やして、widthとheightを減らしていく処理
- 最初のlayerはdepthは3(rgbの場合)、だからwidthとheightの方が圧倒的に大きい
- Conv Layerがdepthを増やす、Pooling layerがwidthとheightを減らす