畳み込みニューラルネットワークを理解したい
目次
1.畳み込みニューラルネットワークとは?
2.ニューラルネットワークの弱点
3.畳み込みニューラルネットワークの利点
4.畳み込み層について
5.プーリング層について
6.おわりに
1.畳み込みニューラルネットワークとは?
畳み込みニューラルネットワークはCNN(convolutional neural network)とも呼ばれ、画像認識のコンペなどでよく利用されています。イメージとしては、ニューラルネットワークに畳み込みを追加したものとして捉えてください。
また、畳み込みニューラルネットワークの特徴として、畳み込み層とプーリング層が存在します。これらを簡単に表現すると
・畳み込み層…入力データとフィルタに対して畳み込み演算を行う層
・プーリング層…単純な計算によって画像の圧縮などを行う層
となります。
2.ニューラルネットワークの弱点
多層パーセプトロン(MLP)を考えます。多層パーセプトロンは、入力層、隠れ層、出力層が全結合されているため、入力画像が4×4の場合は、ニューラルネットワークに入力する時に16次元のベクトルに変換する必要があります。この変換を行ってしまうと入力画像の位置データを保持することができません。
また、画像データは3次元形状ですが全結合層に入力を行う時は、一次元のデータにする必要が出てきてしまいます。
3.畳み込みニューラルネットワークの利点
2.で説明した弱点に対して、畳み込みニューラルネットワークでは位置情報を保持したまま行うことができます。つまり、三次元の入力データに対して出力データも三次元になるということです。
このことにより、複数の画像を認識する時に物体などの位置や向きが異なっていても正しい判定をする可能性が高くなります。
4.畳み込み層
畳み込み層とは、簡単に表すと入力データとフィルタに対して畳み込み演算を行う層のことです。
<ストライド>
→フィルタを適用する間隔のこと。ストライドを大きくすると出力データのサイズは小さくなる。
<パディング>
→入力データの周囲に0などのデータを埋めること。パディングを大きくすると出力データのサイズは大きくなる。
パディングを行わないまま畳み込み演算を行うと出力データのサイズが縮小されてしまいます。実装をする時は畳み込み演算を複数繰り返すため、出力データのサイズを一定にする必要があります。
5.プーリング層について
プーリング層とは、単純な計算によって画像の圧縮などを行う層のことです。
<Maxプーリング>
→特定の領域内の最大値を取り出す演算。画像認識の分野で主に使用されている。
<Averageプーリング>
→特定の領域内の平均値を取り出す演算。
プーリング層の特徴とは、以上のように単純計算を行うことです。よってパラメータの学習が必要ありません。また、この演算では入力データと出力データのチャンネル数は変化しません。
おわりに
最後まで読んでいただきありがとうございます。
大学の授業で畳み込みを勉強していることがきっかけで畳み込みニューラルネットワークについて少し勉強しました。ただ、まだ分からないことだらけなので完全に理解するには時間がかかりそうです…
コメント入力