Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。

まずはとにかく自由を目指すエンジニアのブログです。
「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。
人工知能(AI)

【人工知能】畳み込みニューラルネットワークの仕組み

どうも、とがみんです。

この記事では、画像認識で圧倒的な成果を挙げてきた、畳み込みニューラルネットワーク の仕組みについて紹介していきます。

畳み込みニューラルネットワークとは?

畳み込みニューラルネットワーク(Convolutional Neural Network)は、ニューラルネットワークの中間層に、

「畳み込み層」と「プーリング層」を配置したニューラルネットワーク で、

主に画像認識によく使われます。

  • 画像に含まれる物、人などの検知とラベル付け
  • 音声のテキスト変換
  • 自動車の自動運転技術における道路把握、障害物検知

等、幅広い応用例があります。

通常(全結合)のニューラルネットワークでは1次元の情報しか汲み取れなかったのに対し、畳み込みニューラルネットワークは3次元の空間的な情報も汲み取ることができます。

次に、畳み込みニューラルネットワークの仕組みについて紹介していきます。

畳み込みニューラルネットワークの仕組み

畳み込みニューラルネットワークの仕組みについて紹介していきます。

畳み込みニューラルネットワークの全体構造

畳み込みニューラルネットワークの仕組みの全体像は、以下の図のように、「畳み込み層」、「プーリング層」、「全結合層」で構成されます。

「畳み込み層」と、「プーリング層」の仕組みについて紹介していきます。

畳み込み層の仕組み

畳み込み層は、入力画像に対してフィルタと呼ばれる2次元の重み信号を用いた畳み込み演算を行う層です。

フィルタを次々とスライドさせて畳み込みの計算を行い、特徴マップを作成します。

プーリング層では、畳み込み層から受け取った特徴マップに対して、最大値や平均値を取ることで、重要な特徴を残してデータを圧縮します。

プーリング層の結果は、1次元データに変更され、全結合層へと渡されます。

全結合層の結果が活性化関数で変換されて、出力層に渡され、

出力層の活性化関数によって、値が変換され、最終的な出力結果を得ます。

畳み込みニューラルネットワークは、特徴量をピクセル単位ではなく、領域単位で抽出するため、位置のずれ、見え方によるずれを小さくすることができます。

パディングの仕組み

上記のように、畳み込み層とプーリング層で特徴量を抽出していくと、データのサイズが元のサイズよりも小さくなっていってしまいます。

データのサイズを保ちたい場合は、特徴量の周りをゼロで埋める「ゼロパディング」と呼ばれる手法を用います。

これにより、

  • 端のデータに対する畳み込み回数が増えるので、端の特徴も考慮されるようになる。
  • データのサイズを保つことができるので、層の数を調整できる。

といったメリットがあります。

畳み込みニューラルネットワークの学習

以下の記事で、ニューラルネットワークの学習の仕組みを紹介しました。

畳み込みニューラルネットワークの学習も仕組みは同じです。


出力層で得られた結果と、正解データを比較し、誤差関数を用いて誤差を計算します。

その誤差が最小になるように、「フィルタ」のパラメータを更新していきます。

畳み込み層では、「フィルタ」のパラメータが重みパラメータにあたります。

まとめ

畳み込みニューラルネットワークについて説明しました。

畳み込みニューラルネットワークには、畳み込み層とプーリング層が中間層に導入され、

これらによって、位置のずれや見え方の違いによるずれを小さくしてくれ、画像認識の分野で広く応用されています。

参考文献

>畳み込みニューラルネットワーク

>畳み込みニューラルネットワークの仕組み