CNN 
 基本的仕組み 
 畳み込み演算 
 出力サイズ 
 3次元データ 
 バッチ処理 
 代表的CNN 

 構成・方式など
 タスク
 導入
 Sample

 用語
 CNN(畳み込みニューラルネットワーク)
 ・畳み込み
画像から「特徴」を抽出する操作
Convolution(二項演算という計算の一方法)
 ・入力データが画像の場合、通常はチャネル・縦・横の3次元の形状
Affineレイヤ(全結合層)では3次元データを1次元にする。
Convolutionレイヤ(畳み込み層)では形状を維持する。
 ・CNNで行う処理は畳み込み演算
(画像処理におけるフィルター演算)
入力データに対してフィルターを適用
バイアス項の加算は、フィルター適用後のデータに対して行う。
 ・パディング
出力サイズを調整できる。
空間サイズを一定にしたまま次の層へデータを渡せる。
 ・ストライド
フィルターを適用する位置の間隔

 基本的な仕組み
 ・データを入力
 ・畳み込み層
畳み込み層で画像内の特徴を発見
 ・プーリング層
抽出された特徴を集約(情報を圧縮)し、次の畳み込み層へ
 ・畳み込み層
 ・全結合層
 ・一次元で出力

 畳み込み演算
 ・フィルターのウインドウを一定の間隔でスライドさせて適用
 ・フィルターの要素と入力の対応する要素を乗算し、その和を求める。(積和演算)
 ・和を出力の対応する場所に格納する。全ての場所で行う。
 ・バイアスは一つ、フィルター適用後の全ての要素に加算

 出力サイズ
 ・入力サイズ(H,W)、フィルターサイズ(FH,FW)、出力サイズ(OH,OW)
  パディング(P)、ストライド(S)
OH=(H+2P-FH)/S +1 分数は割り切れるようにする。
OW=(W+2P-FW)/S +1
 ・分数は割り切れるようにする。

 3次元データ
 ・画像の場合、縦・横方向とチャネル方向の3次元データとなる。
チャネルごとに入力データとフィルターの畳み込み演算を行う。
チャネルの数は入力データのチャネル数と同じ。
 ・フィルターが1個の場合、出力データのチャネル数は1になる。
 ・畳み込み演算の出力をチャネル方向にも複数(N個)持たせる。
複数(N個)のフィルター(重み)を用いる。
出力(次の入力)のチャネル数はNになる。
 ・バイアスはチャネル毎に一つ、フィルター適用後の全ての要素に加算                                  

 バッチ処理
 ・バッチ用の次元を追加

 代表的CNN
 ・LeNet
 ・AlexNet