Convolution層

概要

近年の画像入力のニューラルネットワークで活躍しているConvolution層(Conv層, 畳み込み層). 計算はかなりシンプルで、画像の各部分に対して行列を掛け合わせていき、その結果を新しい画像に詰め込んでいく処理。 世の中で解説も多いので簡単な解説に留める。
Facebookシェア Twitterツイート LINEで送る このエントリーをはてなブックマークに追加
この章を学ぶ前に必要な知識
0
条件
  • 入力も出力も画像
  • 掛け合わせる行列の大きさを決めとく
  • ゼロパディングをするか決めとく
効果
  • 画像の特徴を取り出して次の層に渡す
  • Conv層をつなげていくより抽象化された情報になっていく
ポイント
  • 学習では掛け合わせる行列を更新して学んでいく
  • 学習する行列は複数持っておく
  • Pooling層と組み合わせることが多い

解 説

Convolution層は近年のDeepLearningによる画像処理を最も発展させた技術の一つである。 Convolution層の解説は多くのページで行われているため、 ここでは概略、ポイントについてまとめるに済ます。
Convolution導入
Convolution層は、以下の画像に示すように複数の行列を次々画像に掛け合わせていき、 それぞれの行列から新しい画像を作る処理です。 学習時: まず、入力画像に行列をかける。その後、誤差を修正するように行列を更新して学習していく.(行列の値を更新するだけ) 識別時: 学習した行列を使って入力画像に掛け合わせる.
Convolution処理概要
★行列(フィルタ) ここでいう行列は画像処理で一般的なフィルタと思っていただければよいです。 フィルタを画像にかけていくときは、画像の端から少しずつずらして掛け合わせて作っていきます。 フィルタは一つの層で何枚か持つことになりますが、 それぞれのフィルタごとにずらしてかけていく操作を行い、 それぞれのフィルタごとに出力の画像を得ます。 パラメータとしては以下があります。 ・フィルタサイズ(縦と横は基本等しく奇数. 3x3 ~ 11x11等が一般的に使用される) ・フィルタの数(数枚のフィルタ.後半の層になるにつれて増やしていくのが一般的.) ・ストライド(フィルタをかけるところを移動する量) これとは別に入力に関するパラメータもあります。 ・ゼロパディング(入力の画像の周りを0で埋めて大きくする.) 一般的にフィルタを行うと一回り出力が小さくなる. ゼロパディングをすることで入力が大きくなり出力が元の入力と同じ大きさにすることができる.
Convolutionで学習する行列について
この章を学んで新たに学べる
Comments

Reasons
>>隠す