概要
畳み込みニューラルネットワーク(以下、CNN)は顔認識で使用されている
CNNは通常のNNではないような機能をもったレイヤーがある
この章では以下の項目を学んだ
・CNNの構造
・畳み込み層
・パティング
・チャンネル
・プーリング層(確認テスト1つ含む)
・ハンズオン
CNN構造
CNNは入力層、畳み込み層、プーリング層、全結合層、出力層からなる
基本的なCNN構造は下図のようになっている
畳み込み層
畳み込み層では画像の場合の、縦、横、チャンネルの3次元のデータをそのまま学習し、次に伝えることができる
CNNでは入力画僧をフィルタを通すことで画像がもつ特徴を抽出する
畳み込み層のイメージは下図のようになっている
パティング
畳み込みを行うと出力画像は入力画像より小さくなる。フィルターに対して入力画像の大きさがイマイチだった場合に計算が面倒になるため画像の端を何らかの数字で埋める
パティングを行うことで以下のようなメリットがある
①端のデータに対する畳み込みの回数が増えるので端の特徴量も考慮される
②畳み込みの回数が増えるのでパラメータの更新が多く実行される
フィルターサイズや層の数を調整できる
パティングのイメージは以下のようになる
ストライド
フィルターをかける適用間隔
ストライドのイメージは以下のようになる
畳み込み層後の出力される画像のサイズは以下のように計算できる
入力画像のサイズをH,W
出力画像のサイズをOh,Ow
フィルターのサイズをFn,Fw
パティングをP,ストライドをSとすると
チャンネル
カラー画像だとR,G,B
プーリング層
対象領域の最大値や平均値を取得する
以下のようなメリットがある
情報をなるべく失わず圧縮
並行移動に対するロバスト性
パラメータ数の削減
プーリングのイメージは以下のようになる
<<確認テスト>>
サイズ6×6の入力画像を、サイズ2×2のフィルタで畳み込んだ時の出力画像のサイズを答えよ。なおストライドとパディングは1とする。
ハンズオン
フィルターサイズ、パティング、ストライドを変更する
各要素を変更することで出力されるshapeが変化しているのを確認できた