AIとは何か

3分でわかりやすく解説!畳み込みニューラルネットワーク・CNNとは

CNNのイメージ

AI(人工知能)に関するニュースを見た際に、ディープラーニングやCNN(畳み込みニューラルネットワーク)と言う言葉を目にしたことはありますよね。

このCNNは、AI(人工知能)のトピックなどで扱われることが多い単語ですが、何なのか全く理解できていない方も多いかもしれません。日頃プログラムに触れているエンジニアでも「CNNとは何か」を完璧に理解しきれている人はそう多くはないでしょう。

CNNとは、福島邦彦によって提唱されたネオコグ二トロンに起源を持っています。全世界で使用されていますが、日本人が起源に影響を及ぼしているのは驚きです。

このCNN、現在では自動運転技術や動画像認識に用いられており、10年後にはより多くの場面での使用が期待されています。

そこで今日は、AI(人工知能)に欠かせないCNNとは何なのか。どのように使われているかをわかりやすくお伝えしましょう。

CNN(畳み込みニューラルネットワーク)とは

まず、CNN(Convolutional Neural Network)とは何かを理解するには、ニューラルネットワークについて理解する必要があります。

ニューラルネットワークとは、人間の脳の神経回路を機械で再現する仕組みであり、神経と神経がつながるように情報を伝達していく仕組み。

実は私たちの脳は電気信号によって情報が伝達されているのですが、コンピュータには神経がありませんよね。ですから「コンピュータで人間の脳を再現した」のがニューラルネットワークと覚えておけば大丈夫です。

そして、ニューラルネットは入力層、中間層、出力層の三層に分かれています。入力層に入力されたデータが中間層を経由して出力層へ出力。そして、入力されたデータに重みをつけることで伝わりやすい情報と伝わりにくい情報を区別しています。

これがニューラルネットの基本となるので覚えておいてください。

そしていよいよ本題のCNNについてです。

CNN(畳み込みニューラルネットワーク)とは、先ほどのニューラルネットワークの中間層に、さらに畳み込み層とプーリング層を組み込んだもの。

実はこれまでは計算量の莫大さから実現できていませんでした。しかしコンピュータの処理能力の向上で実現できるようになったのです。

次は詳しい仕組みについてみていきましょう。

CNNの仕組み

AIのイメージ

CNNは、画像を複数のカテゴリに分類するように学習しており、この分野での能力は人間を上回ることもあります。CNNに新しい画像が渡された瞬間にその画像のどこにある特徴が含まれているのか。

例えば、その画像に猫が写っていた場合、あらゆる位置で猫の特徴と画像の特徴を比較し一致点と検出を試みます。この作業を畳み込みといい、それぞれの特徴で行われた畳み込みが画像セットとして出来上がります。

これを畳み込み層と言います。確かにこれまでのコンピュータでは処理できないことが理解できますよね。

次に画像を集約するのがプーリング層です。

先ほど抽出したデータをプーリング(圧縮)します。その結果、4分の1程度に圧縮。ここで圧縮することで処理が簡単になります。

ここまでの一連の流れがCNNの内部構造です。

中での計算や詳しい仕組みを知りたい方はオライリーの「ゼロから作るDeep Learning」で詳しく解説されているので買ってみてください。

CNNがなぜディープラーニング・画像認識でよく使われるのか

CNNのイメージ

CNNとは第一に画像認識をするために作られたものです。しかし、CNN以外にも画像認識をする手法はいくつかあるのですが、画像認識やディープラーニングにCNNが用いられるには理由があります。

これまでの普通のニューラルネットワークでは、入力に単一ベクトルを受け取り、それを一連の隠れ層を通して出力されます。畳み込み層やプーリング層がありません。一応一般的なニューラルネットワークでも画像データを取り扱うことは可能です。しかし、複雑な画像に関してはほとんど正確さを持たないことが多いです。

対してCNNは、畳み込み層で画像セットを作り出しプーリング層で圧縮することで高度な計算を可能としています。そしてCNNは画像内の空間的・時間的な依存関係を正常に取得することができるのです。

これらの理由から画像認識やディープラーニングにCNNが使用されるのが主流になっています。

CNNを使うときの注意点

ノイズのイメージ

このように万能そうに見えるCNNですが、注意すべき弱点が存在します。

それは、人間の目にはわからないようなちょっとしたノイズを写真に追加した場合、全く別物として認識してしまうこと。

でも画像を認識するだけなら、ノイズを入れなければ良いと考えますよね。

画像認識をするだけなら大きな問題にはなりませんが、自動運転技術にCNNを応用した場合のことを考えてみてください。もし、ハッカーがノイズを送り続けた場合どうなるでしょうか。自動走行車が判断を誤って事故を起こす可能性だって大いにあります。
もうひとつの欠点に、プーリング層で圧縮する際に、位置に関する情報をそぎ落としてしまうため、従来のCNNでは、目の上に口が存在していても「人の顔」として認識されてしまうということ。

この問題を解決するためAI(人工知能)の研究者たちが日々新しい技術を提唱しています。

CNNとは何かを語る上で、こういった欠点も存在していることを覚えてくださいね。

CNNを応用するとできること

天気予報のイメージ

これまでCNNとは何か解説してきましたが、ここでは実用例をみていきましょう。

CNNはディープラーニングを用いたほとんどの画像処理にほぼ使われています。今回は身近な応用事例をお伝えしましょう。

  • 日本気象協会の降水量予想
普段、テレビで天気予報を見るときに気象レーダーを目にしますよね。実はこのレーダーで取得した画像5㎞四方で、1時間ごとの予想ができるようになりました。ちなみにこれまでの技術では20㎞四方で3時間ごとの予想しかできませんでした。
  • コンクリート護岸劣化検知
洪水などの河川の災害対策として重要なコンクリートの点検・回収作業は、これまでは熟練した技術者の目視点検が主流でした。しかしCNNを用いた画像認識技術で、コンクリートのひび割れなどの劣化の有無を撮影した画像から判断することが可能に。
  • SNS投稿画像による商品利用実態の解析
私たちは普段SNSに画像を投稿することがあります。CNNはその画像に何が写っているのか判別して抽出することが可能です。これによりどのようなメーカーの商品が他の商品と一緒に写っているかを解析することができるようになりました。この技術はマーケティングに効果が期待されています。

 

CNNのイメージ

今日は、畳み込みニューラルネットワーク・CNNとは何かについて解説してきました。

  • ニューラルネットワークとは、コンピュータで人間の脳を再現したものである
  • CNNは、畳み込み層とプーリング層を持っている
  • CNNにも、欠点があり万能なものではない
ここまでの内容をまとめると、CNNとは「従来のニューラルネットワークに畳み込みという処理を加えることにより、画像認識という分野を超えて活用されている技術」です。

そして今後、AI(人工知能)を搭載する機械、そして自動運転技術やマーケティングに応用されていくことが想定されています。

ですから、今からでも遅くないので、「CNNとは何か」もっと詳しく理解を深めて、今後に備えていきましょう。

トップへ戻る
タイトルとURLをコピーしました