CNN の基礎
CNNの基礎
最近AIと言えば、ディープラーニングやCNN / Convolutional Neutal Netorkという言葉と共に語られている。その中でCNNとは何かを基礎から説明したものが中々見つからない。そこで、簡単にまとめる。
CNNの構造例
良くあるCNNの構造
(Convolution N + Pooling) M + Fully Connected * K
N : ~5 のフィルタ M: 〜30前後 K: 0..2
SoftMax関数を使った層がある場合もある。
CNN の階層
CNNの主要な階層は下記三種類。
- Convolution 層
- Pooling層
- Fully Connected層
Convolution層
日本語では畳み込み層お予備、filterを適用して畳み込み計算を行う層。複数のfilterがよく使われる。
Pooling
圧縮して扱いやすくする。例えば、2x2の行列を最大値一つに圧縮する。
Fully Connected
全結合ネットワークにより判断を行う。 各出力ノードは、例えば y = ∑k_i * x_i
filter
元データに適用する行列。
出力= filter( 元データ )
出力は内積。
フィルタに必要なパラメータは、
- フィルタの数K
- 移動幅F
- パディングP
- 大きさS
元画像の両端に0パディングPサイズのパディングをし、大きさSのフィルタを移動幅Fでズラしながら適用する。
y = wT x + b
y product w filter b bias T 転置
ReLU
活性化関数として、良く使われる。
Softmax関数
参考
https://qiita.com/icoxfog417/items/5fd55fad152231d706c2
StanfordのCNN講座