画像認識で多く使われるCNN(Convolutional Neural Network)についてざっくりと解説する記事です
画像認識で良く使われるCNNって何なんだろう?
CNNとは?
CNNとはConvolutional Neural Networkとある通り、Neural Network(神経ネットワーク)にConvolution(畳み込み)を追加したもので、画像認識分野でよく使われている
言葉の意味から何となく分かるような気がしますが、実際はどうなのでしょうか?そこでとりあえず、Convolution(畳み込み)の前にニューラルネットワークを解説します
そもそもニューラルネットワークとは?
簡単に説明すると…
人間の脳の働きを模した方法でデータを処理するようにコンピュータに教える人工知能の1つの手法のこと
一般的なニューラルネットワークはこのような3つの層(入力層、隠れ層、出力層)で構成されています
詳細に知りたい方はこちらをどうぞ↓
CNNの特徴
少し難しいですが、CNNとは入力画像を取り込み、画像内のさまざまな側面やオブジェクトに重要性 (学習可能な重みとバイアス) を割り当て、一方を他方から区別できる深層学習アルゴリズムです。
CNNが画像認識で使われる理由
CNNが画像認識に使われる理由は…
- データの前処理が他の分類アルゴリズムと比較してはるかに少ない
- 原始的な方法ではフィルターを人が設定する必要があるが、十分なトレーニングをすれば、勝手にフィルターや特性を学習してくれる
画像認識に使われる理由が分かったところで、これらの利点が存在するのは何故なのでしょうか?
次にCNNの畳み込み層とプーリング層、全結合層について説明していきます。
畳み込み層
畳み込み層は、CNN の中核となる構成要素です。学習可能なフィルターを使用して入力データに畳み込み演算を適用します。これらのフィルターは入力をスキャンし、エッジ、テクスチャ、パターンなどの特徴を抽出します。
畳み込み層を導入する目的は、画像などの膨大なデータを適切な予測を得るために重要な特徴を失わずに、画像を処理しやすい形式に縮小することにあります。
プーリング層
畳み込み層と同様に、プーリング層は畳み込みの特徴の空間サイズを削減する役割を果たします。これは、次元削減を通じてデータの処理に必要な計算能力を削減するためです。さらに、回転および位置不変の主要な特徴を抽出するのに役立ち、モデルを効果的にトレーニングするプロセスを維持します。
たとえば、最大プーリングは、最も顕著な特徴に焦点を当てて、値のグループから最大値を選択します。
全結合層
完全接続層は、ある層のすべてのニューロンを次の層のすべてのニューロンに接続します。これらの層は通常、ネットワークの終わりに存在し、学習された特徴を予測またはクラス確率に変換します。完全に接続された層は通常、ネットワークの終盤で使用されます。
Tips:カーネルとフィルター
畳み込みニューラルネットワーク (CNN) の文脈では、「カーネル」と「フィルター」という用語は多くの場合同じ意味で使用されます。これらの用語の意味を詳しく見てみましょう。
カーネル
カーネルは、畳み込み演算で使用される小さな行列です。これは、出力特徴マップを生成するために入力データに適用される学習可能な重みのセットとなります。そのため、カーネルはCNN が入力データ内の特徴の空間階層を自動的に学習できるようにする重要な要素です。画像処理では、3×3 や 5×5 のような小さな行列になることがあります。
フィルター
フィルターは複数のカーネルのセットです。ほとんどの場合、畳み込み層は複数のフィルターを使用して、入力データのさまざまな特徴を捉えます。各フィルターは入力と畳み込まれて特徴マップが生成され、ネットワークはトレーニング中にこれらのフィルターの重み (パラメーター) を調整することでさまざまなパターンを抽出することを学習します。
実際の活用例
CNNを利用した画像認識技術の活用例を紹介します。
自動運転
自動運転システムは、道路の標識や他の車、歩行者などを正確に識別するためにCNNが使用されています。実例としてはGoogleの自動運転開発部門が分社化して生まれたWaymoという企業が自動運転タクシーサービス「Waymo One」を展開しています。
Waymo公式サイト→Waymo – Self-Driving Cars – Autonomous Vehicles – Ride-Hail https://waymo.com/
ドライブレコーダーを活用した物体検出
東京大学のベンチャー企業である「Urban X Technology」は、スマートフォンアプリをドライブレコーダーとして活用し、道路の欠陥などを検出して報告するシステムを開発しています。この技術にもCNNが応用されています。
UrbanX Technologies – 低廉迅速な都市のデジタルツイン構築 …
https://urbanx-tech.com/
医療における画像診断
X線やMRIなどの医療画像の解析にもCNNが利用されています。病変の検出や診断のサポートに役立ちます。
国立がん研究センター 画像診断(がぞうしんだん)
https://www.ncc.go.jp/jp/rcc/treatment/diagnostic_imaging/index.html
参考サイト・動画
(1)3Blue1BrownJapan、ニューラルネットワークの仕組み | Chapter 1, 深層学習(ディープラーニング)
https://www.youtube.com/watch?v=tc8RTtwvd5U
(2)予備校のノリで学ぶ「大学の数学・物理」、高校数学からはじめる深層学習入門(畳み込みニューラルネットワークの理解)
https://www.youtube.com/watch?v=xzzTYL90M8s&t=138s
(3)Midium、A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
(4)Medium、Understanding Convolutional Neural Networks (CNNs) in Depth
https://medium.com/@koushikkushal95/understanding-convolutional-neural-networks-cnns-in-depth-d18e299bb438
1つ前の記事はこちら↓
コメント