ここから本文です
AI(人工知能)& IoT
AIとIoTについて、ともに学びましょう。

書庫全体表示

 畳み込みニューラルネットワーク(Convolution Neural Network)とは、AIが画像分析を行うための学習手法の1つで、略してCNNとよばれることもある。

 CNNは、「畳み込み層」「プーリング層」という2種類の層を繰り返して構成される。

【畳み込みニューラルネットワークを利用した画像処理の流れ】
①入力画像の全体に対して畳み込み層でフィルター処理を行う。
②処理した画像をプーリング層に流し込む。
③プーリング層で画像の解像度を下げる処理を行う。
④出力層で、1次元の列データにフラット化し、全結合のニューラルネットワークにより、10個のノードに集約する。
⑤SoftMax関数により、それぞれのノードを確率に変換する(全て足すと1になる)。
 ※非線形な要素を入れるため、畳み込み層の後に「活性化関数」が挿入される。 (参考:AI人工知能テクノロジー 「やっぱりよく分からない活性化関数とは」)

【SoftMax関数】
参考ページ:Qiita:softmax関数を直感的に理解したい


イメージ 2

【畳み込み(Convolution)】
 「畳み込み(Convolution)」処理では、画像の特徴を見つけるためにフィルターをかける。すなわち、素性(Feature)マップを生成する。画像をインプットとしてフィルターをかけ、フィルターの枚数分の画像を出力する。コンボリューション(Convolution)は数学用語で、日本語では「畳み込み」。掛け算の結果を足し集める演算からなり、コンボリューションを画像処理に使うと、画像を滑らかにしたり、シャープにしたりできる。掛け算の係数は、3×3などのサイズのマトリックスで指定。これをオペレーター、フィルター、マスク、カーネルなどと呼ぶ。

イメージ 7

【フィルター】

[具体的な処理]
◆入力画像例

イメージ 8

◆ゼロパディング
 入力画像と出力画像のTensor(テンソル)を同一にするために、周囲をゼロで埋める処理を「ゼロパディング」という。
イメージ 9

◆フィルター例
イメージ 10

◆掛け算と足し算
イメージ 6

あとは、ひとつずつずらして計算を繰り返す。

【プーリング(Pooling)】
 素性マップの局所的なパッチに対して、そのパッチに含まれる素性の「プール」(かたまり)を作り、その中で最も値の大きいものだけを取り出し、特徴を粗く整理する。

[具体的な処理]
◆画像例(プーリング処理前の畳み込み)
イメージ 1

◆プーリング
イメージ 3


イメージ 4

イメージ 5



参考
Qiita:【入門者向け解説】畳み込み処理入門(TensorFlowで説明)
https://qiita.com/FukuharaYohei/items/702eb2430ee9dfbe763a

Qiita:【入門者向け解説】プーリング処理入門(TensorFlowで説明)
https://qiita.com/FukuharaYohei/items/73cce8f5707a353e3c3a

Udemy:畳み込みニューラルネットワークとは?手順も丁寧に解説
https://udemy.benesse.co.jp/ai/convolution-neural-network.html

CodeZine:コンボリューションを用いた画像の平滑化、鮮鋭化とエッジ検出
https://codezine.jp/article/detail/129

顔アイコン

顔アイコン・表示画像の選択

絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
  • 名前
  • パスワード
  • ブログ

開くトラックバック(0)

本文はここまでですこのページの先頭へ
みんなの更新記事