畳込みニューラルネットの処理メモ

畳込みニューラルネットワークの各処理をよく忘れるのでメモ

以下の画像で畳み込みニューラルネットの処理を説明

f:id:ttt242242:20170320171712j:plain

①:入力

入力画像。今回は(32,32)を想定

②:畳込み

(3,3)のフィルタを用いて畳込みを行う。

畳後の出力(特徴量マップ)のサイズは以下の式で計算できる。

\begin{equation} (W-2(H/2),W-2(H/2)) \end{equation}

で計算できる。

(W,W)は入力画像のサイズ、(H,H)はフィルタのサイズ

今回の場合の出力のサイズは

\begin{equation} (32-2(3/2),32-2(3/2)) \\ = (30,30) \end{equation}

になる。ちなみにH/2の小数点以下は切り捨てる。

③:パディング

様々な理由で、画像の大きさを調整する。

今回は入力サイズと同じになるように出力の特徴量マップの外枠を付け加え、

(32,32)サイズにする。

④:プーリング
⑤:畳込み、プーリングを任意の回数繰り返す
⑥:最終的な出力を平坦化(flatten)する

平坦化する。つまり、2次元配列を普通の全結合のニューラルネットに流し込めるように1次元配列に変換する。

あとは普通のニューラルネットと同じ処理

コメント

タイトルとURLをコピーしました