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

畳み込みニューラルネットワーク (CNN または ConvNet) は、ディープラーニングで最も一般的なアルゴリズムです。ディープラーニングは機械学習モデルの一種で、このモデルでは画像、動画、テキスト、音声から直接分類方法を学習します。

畳み込みニューラルネットワークが特に優れているのは、画像内のパターンを発見して物体や顔、場面を認識する機能です。直接画像データからパターンを使った画像分類を学び取ることで、手作業での特徴抽出が不要になります。

自動運転車顔認識アプリケーションなどの物体認識コンピュータビジョンを必要とする用途は、畳み込みニューラルネットワークに大きく依存しています。アプリケーションに応じて、ゼロから構築したり、用意したデータセットに合わせて事前学習済みモデルを使用したりすることも可能です。

畳み込みニューラルネットワークが広く使われる理由とは?

3 つの重要な要因により、ディープラーニングにおける畳み込みニューラルネットワークの利用はますます一般化しています。

  • 畳み込みニューラルネットワークは、特徴量を画像から直接学習するため、手作業により特徴を抽出する必要がない
  • 畳み込みニューラルネットワークは最高水準の認識結果を提供する
  • 畳み込みニューラルネットワークは新しい認識タスクのために再学習ことができ、既存ネットワークに基づくネットワークの構築が可能

ディープラーニングのワークフロー: 画像が畳み込みニューラルネットワークに渡されると、特徴量を自動的に学習して物体を分類します。

畳み込みニューラルネットワークによる最先端の物体検出と物体認識

畳み込みニューラルネットワークアーキテクチャは、画像認識とパターン検出に最適化されています。GPU および並列計算の進歩とともに、畳み込みニューラルネットワークは自動運転および顔認識の分野における新しい発展のための基幹テクノロジーとなりました。

たとえば、ディープラーニングアプリケーションは、畳み込みニューラルネットワークを使用して数千件もの病理報告を解析し、視覚的にがん細胞を検出しています。また、CNN は自動運転車にも採用されており、物体検出や、道路標識と歩行者の違いを識別するための学習に活用されています。

関連情報

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

畳み込みニューラルネットワークは、数十または数百の層から構成され、各層が 画像の異なる特徴を検出できるような学習を行います。それぞれの学習画像に対して異なる解像度でフィルタが適用され、畳み込まれた画像は次の層への入力として使用されます。フィルターは明るさやエッジなどのごく単純な特徴の検出から開始し、オブジェクトを一意に定義する特徴へと複雑さのレベルを上げていきます。

畳み込みニューラルネットワークは画像、文字、音声、動画の特徴を識別して分類します。

特徴学習、層、分類

その他のニューラルネットワークと同様に、CNN は入力層、出力層、その間にある多くの隠れ層で構成されます。

各層はデータに固有な特徴を学習する目的で、データを改変するような操作を実行します。最も一般的な層は、畳み込み層、活性化 (ReLU) 層、プーリング層の 3 つです。

  • 畳み込み層は、入力画像を複数の畳み込みフィルターに通します。それぞれのフィルターが画像の持っている特定の特徴に対して活性化します。
  • 正規化線形ユニット (ReLU) 層は、負の値をゼロにマッピングして正の値を保持することで、より高速かつ効率的な学習を実現します。この処理は、活性化された特徴のみが次の層へ送られるため、活性化とも呼ばれます。
  • プーリング層は、非線形のダウンサンプリングを実行して出力を単純化し、同時にネットワークの学習に必要なパラメーター数も削減します。

これらの処理は数十層または数百層にわたって繰り返され、それぞれの層が異なる特徴を識別するように学習が行われます。

数多くの畳み込み層を含むネットワークの例。解像度が異なる学習画像ごとにフィルターが適用され、畳み込まれた画像が次のレイヤーへの入力として使用されます。

分類層

多くの層で特徴を学習した後、CNN アーキテクチャは分類タスクにシフトします。

最後から 2 番目の層は、K 次元のベクトルを出力する全結合層です。K はネットワークで予測可能なクラスの数を示します。このベクトルには、分類されるすべての画像の各クラスに対する確率が含まれています。

CNN アーキテクチャの最終層では、ソフトマックスなどの分類層を使用して分類結果を出力します。

GPU を使用したハードウェア高速化

畳み込みニューラル ネットワークでは、数百、数千、あるいは数百万もの画像データを使用して学習を施します。大量のデータを複雑なネットワーク アーキテクチャで処理する場合、GPU はモデルの学習に必要な処理時間を大幅に短縮します。学習済みの CNN は、先進運転支援システム (ADAS) での歩行者検出などのリアルタイム アプリケーションで使用できます。

MATLAB による畳み込みニューラルネットワーク

MATLAB®Neural Network Toolbox™ で使用すると、独自の CNN をゼロから学習したり、事前学習済みのモデルを使用して転移学習を実行したりすることができます。

選択する方法は、使用可能なリソースと構築するアプリケーションの種類に応じて異なります。

ネットワークをゼロから学習させる場合、レイヤーとフィルター、その他の調整可能なパラメーターの数を定義する必要があります。正確なモデルをゼロから学習させる場合も、膨大な量のデータ (数百万件ものサンプル) が必要で、その準備には莫大な時間がかかります。

CNN をゼロから学習させる代わりに、学習済みモデルで新しいデータセットから特徴量を自動的に抽出する方法もよく使用されます。この方法は転移学習と呼ばれ、ディープラーニングを簡単に適用できます。膨大なデータセットや長い計算時間は必要ありません。

ゼロからの学習

ゼロからネットワークを構築する場合、ネットワーク構成を自分で決定する必要があります。この方法では、ネットワークのほとんどを自分で制御し、優れた結果を出すことができる一方、ニューラル ネットワークの構造や、レイヤーの種類と構成に関する数々のオプションについて理解しておく必要があります。

転移学習を上回る結果を得られることもありますが (下記参照)、新しいネットワークは、特徴のバリエーションを理解するためにオブジェクト サンプルが多く必要であるため、この方法では学習に必要な画像の数が多くなる傾向にあります。学習期間も長くなりやすく、ネットワーク層の組み合わせが多いため、ネットワークをゼロから構成するのは困難な場合もあります。通常は、幾つかの層を並べてネットワークを構築してゆく際には、他のネットワークの構成を参考にすることで、既に研究者が有用性を証明したものをうまく取り入れることができます。

関連情報

転移学習における学習済みモデルの使用

転移学習を使って学習済みネットワークを微調整する方法は、典型的にはゼロから学習を行うよりもかなり高速で簡単です。学習に必要なデータとコンピューター リソースは最小限に抑えられます。転移学習は、ひとつの問題の知識を利用して類似の問題を解決します。学習済みネットワークから開始して、新しいタスクを学習します。転移学習の利点のひとつは、学習済みネットワークは既に豊富な数の特徴量を学習済みであるということです。こうした特徴量は、他の類似の問題に幅広く応用することができます。例えば、数百の画像で学習させたネットワークを持ってきて、たった数百の画像で再学習させることで新しい物体認識のタスクに使うことができます。

Neural Network Toolbox を使用すると、学習済み CNN モデル (GoogLeNet、AlexNetvgg16vgg19 など) および Caffe と TensorFlow-Keras のモデルを使用して転移学習を実行できます。

関連情報

畳み込みニューラルネットワークを使用するアプリケーション

物体検出

物体検出は画像や動画内の物体を特定して分類するプロセスです。Computer Vision System Toolbox™ には、R-CNN (regions with CNN)、Fast R-CNN、および Faster R-CNN を使用してディープラーニングベースの物体検出器を作成するための学習フレームワークが用意されています。

Statistics and Machine Learning Toolbox™ の機械学習の手法と Computer Vision System Toolbox を併用して、物体認識システムを構築できます。

Neural Network Toolbox には、学習済みの CNN モデルを使用して予測を行うだけでなく、CNN の作成および学習を行うための機能が含まれています。

この例では、ディープラーニングと R-CNN (Regions with Convolutional Neural Networks) を使用して、物体検出器を学習させる方法を説明します。
この例では、Faster R-CNN (Regions with Convolutional Neural Networks) と呼ばれるディープラーニングの手法を使用して、物体検出器を学習させる方法を説明します。

畳み込みニューラルネットワークについてさらに詳しく知る

画像解析に畳み込みニューラルネットワークを使用する製品には、MATLAB®Computer Vision System Toolbox™Statistics and Machine Learning Toolbox™Deep Learning Toolbox™ などがあります。

畳み込みニューラルネットワークの利用には Deep Learning Toolbox が必要です。学習と予測は Compute Capability 3.0 以上の CUDA® 対応 GPU でサポートされます。GPU の使用が推奨されるほか、Parallel Computing Toolbox™ が必要となります。

ソフトウェア リファレンス

無料評価版を入手する

30 日間の無料評価版はこちら

質問はありますか。

ディープラーニングのエキスパートにご質問ください。