深層学習を知ろう
~畳み込みニューラルネットワーク
自己紹介
氏名 渡辺春希
Twitter @haruaya0423
広島市立大学3年知能工学科
出身 静岡
趣味 ポケモン、シャニマス
最近の出来事 多分来年度の研究室はデータ工学
ダンガンロンパにまたハマった
前回までの復習
ニューラルネットワークは
入力値と重みの積に
バイアスの値を
足して値を出力する。
数式にすると以下のとおり、
Y=XW+B
そして、ソフトマックス関数に
通し、値の大きいものを予測結
果として出力した。
𝑦𝑘=
exp(𝑎𝑘)
𝑖=1
𝑛
exp(𝑎𝑖)
前回までの復習2
・適切な重みとバイアスを設定するために、
誤差関数を使用。
・誤差関数を小さくするためには、
勾配降下法を用いる。
W=W-η
𝑑𝐸(𝑤)
𝑑𝑊
, b=b-η
𝑑𝐸(𝑏)
𝑑𝑏
今回学ぶこと
・畳み込み演算
・パディング
・ストライド
・プーリング
フィードフォワードネットワークの欠点
・空間情報を用いていない。
・例えば28*28の画像は最初に28*28=784個の
入力値がある。
・ところが、画素の並べる順番は、
パフォーマンスに影響しない。
・つまり、画素のピクセル値を取り換えても、
全く同じ精度で学習が可能。
つまり
画像を左右に2分割する。
X1を左側、x2を右側とする。
ところがx1を右側、x2を左側
としても、同じように学習
してしまう。
空間の情報を用いるためにはどうすればいいのか?
畳み込み演算
・畳み込み演算とは、フィルターを使用した画像処理
・画像の一部と、フィルターの要素の積の和を、
画像をスライドしながら求める。
画像の領域を右にスライドして、また畳み込み演算を行う。
1行目が終われば次の行へ移動。再度畳み込み演算
最終的な画像はこんな感じになる。
ちなみに最終的な画像は特徴を抽出した画像のため
特徴マップと呼ばれる。
様々なフィルター
・様々なフィルターを用いれば、縦、横、斜め
のエッジの強調など様々な処理が可能となる。
一番左が元の画像。真ん中は横の線が、
右は、縦の線が強調されている。
パディング
畳み込み演算を行うと、画像の大きさが変わってしまう。
そのため、画像サイズを調整するパディングを用いる。
入力画像の周囲を、0で水増しする。
フィルターのサイズによってパディングの幅は変化する。
ストライド
・フィルターをずらす間隔をストライドという。
・赤線の場合はストライドが1、緑の場合はストライドが2。
・ストライドが大きいと特徴マップが小さくなるので
あまり使われない。
プーリング
・分割した範囲で、最大の値を抽出する。
・要するに特徴抽出。
・範囲での平均を利用するAvg Poolingも存在。
全体のネットワーク
・全結合層の前の層で画像の特徴抽出を行い、
それ以降の層で特徴マップを用いて分類を行う。
仮に特徴マップを
5つ作ると、
全結合層の入力値の数は
28*28*5=3920
となる。
なんで精度が上がるのか?
・畳み込みやプーリングで画像の特徴抽出が可能。
・つまり特徴抽出を行い続ければ、全体の特徴から
局所的な部分の特徴も分かる。
・人間もモノを認識するときまず全体の特徴を
捉え、次に局所的な部分を捉える。
・つまり、人間の脳を疑似的に再現している。
・ただ、特徴抽出をやり過ぎると過学習の恐れが
ある。
まとめ
・プーリングや畳み込み→特徴抽出に利用
・パディングやストライド→特徴マップのサイズ調整
・畳み込みニューラルネットワークは、空間情報
を上手く利用し、人間の脳を再現している。
・ニューラルネットワークは画像認識のみならず
様々な分野で応用されている。

Deeplearn4