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

知っておくべき3つの事柄

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

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

CNNが特に优れているのは,画像内のパターンを発见してオブジェクト,颜,场面を认识する机能です。パターンによる画像分类を使用して画像データから直接学习することで,手作业での特徴の抽出が不要になります。

自动运転车颜认识アプリケーションなどのオブジェクト认识およびコンピュータービジョンを必要とする用途は,CNNに大きく依存しています。アプリケーションに応じて,CNNをゼロから构筑したり,用意したデータセットに合わせて事前学习済みモデルを使用したりすることも可能です。

CNNの利用価値を高めている要因

3つの重要な要因により,ディープランニングにおけるCNNの利用はますます一般化しています。

  • CNNは,特徴を画像から直接学习するため,手作业により特徴を抽出する必要がない
  • CNNは最先端の认识结果を提供する
  • CNNは新しい认识タスクのために再学习できるため,既存ネットワークで构筑が可能

ディープラーニングのワークフロー:画像がCNNに渡されると,CNNは特徴を自动的に学习してオブジェクトを分类します。

CNNによる最先端のオブジェクト検出とオブジェクト认识

CNNアーキテクチャは,画像认识とパターン検出用に最适化されています.GPUおよび并列计算の进歩とともに,CNNは自动运転および颜认识の分野における新しい発展のための基干テクノロジーとなりました。

たとえば,ディープラーニングアプリケーションは,CNNを使用して数千件もの病理报告を确认し,视覚的にがん细胞を検出しています。また,CNNは自动运転车にも采用されており,オブジェクト検出や,道路标识と歩行者の违いを识别するための学习に活用されています。

关连情报

CNNの仕组み

畳み込みニューラルネットワークは,数十または数百のレイヤーから构成され,各レイヤーが1つの画像の异なる特徴の検出を学习します。学习画像ごとに,解像度が异なる复数のフィルターが适用され,各畳み込み画像の出力が次のレイヤーへの入力として使用されます。フィルターは明るさやエッジなどのごく単纯な特徴の検出から开始し,オブジェクトを一意に定义する特徴へと复雑さのレベルを上げていきます。

CNNは画像,文字,音声,动画の特徴を识别して分类します。

特徴学习,层,分类

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

各层はデータに固有な特徴を学习する目的で,データを改変する处理を実行します。最も一般的な层は,畳み込み层,活性化(RELU)层,プーリング层の3つです。

  • 畳み込み层は,入力画像を复数の畳み込みフィルターに通します。それぞれのフィルターが画像の持っている特定の特徴に対して活性化します。
  • 正规化线形ユニット(RELU)层は,负の値をゼロにマッピングして正の値を保持することで,より高速かつ效率的な学习を実现します。この处理は,活性化された特徴のみが次の层へ送られるため,活性化とも呼ばれます。
  • プーリング层は,非线形のダウンサンプリングを実行して出力を単纯化し,同时にネットワークの学习に必要なパラメーター数も削减します。

これらの处理は数十层または数百层にわたって缲り返され,それぞれの层が异なる特徴を识别するように学习が行われます。

数多くの畳み込み层を含むネットワークの例。解像度が异なる学习画像ごとにフィルターが适用され,各畳み込み画像の出力が次のレイヤーへの入力として使用されます。

分类のための层

多くの层で特徴を学习した后,CNNアーキテクチャは分类タスクにシフトします。

最后から2番目の层は,K次元のベクトルを出力する全结合层です.Kはネットワークで予测可能なクラスの数を示します。このベクトルには,分类されるすべての画像の各クラスに対する确率が含まれています。

CNNアーキテクチャの最终层では,ソフトマックスなどの分类层を使用して分类结果を出力します。

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

畳み込みニューラルネットワークでは,数百,数千,あるいは数百万もの画像データを使用して学习を施します。大量のデータを复雑なネットワークアーキテクチャで处理する场合,GPUはモデルの学习处理时间を大幅に短缩します。学习済みのCNNは,先进运転支援システム(ADAS)での歩行者検出などのリアルタイムアプリケーションで使用できます。

MATLABをCNNで使用する

MATLAB®神经网络工具箱™で使用すると,独自のCNNをゼロから学习したり,事前学习済みのモデルを使用して転移学习を実行したりすることができます。

选択する方法は,使用可能なリソースと构筑するアプリケーションの种类に応じて异なります。

ネットワークをゼロから学习させる场合,レイヤーとフィルター,その他の调整可能なパラメーターの数を定义する必要があります。正确なモデルをゼロから学习させる场合も,膨大な量のデータ(数百万件ものサンプル)が必要で,その准备には莫大な时间がかかります。

CNNをゼロから学习させる代わりに,事前学习済みモデルで新しいデータセットから特徴を自动抽出する方法もよく使用されます。この方法は転移学习と呼ばれ,ディープラーニングを简単に适用でき,膨大なデータセットや长时间の计算と学习も必要ありません。

ゼロからの学习

ゼロからネットワークを构筑する场合,ネットワーク构成を自分で决定する必要があります。この方法では,ネットワークのほとんどを自分で制御し,优れた结果を出すことができる一方,ニューラルネットワークの构造や,レイヤーの种类と构成に关する数々のオプションについて把握する必要があります。

転移学习を上回る结果を得られることもありますが(下记参照),新しいネットワークは,特徴のバリエーションを理解するためにオブジェクトサンプルが多く必要であるため,この方法では学习に必要な画像の数が多くなる倾向にあります。学习期间も长くなりやすく,ネットワーク层の组み合わせが多いため,ネットワークをゼロから构成するのは困难な场合もあります。通常,ネットワークを构筑してレイヤーを整理するとき,他のネットワーク构成を参考にすると,実际に成功した事例を活用できます。

关连情报

転移学习における事前学习済みモデルの使用

通常,転移学习を使用して事前学习済みネットワークを微调整する方法は,ゼロから学习させる方法よりも迅速で简単に使用できます。必要なデータとコンピューターリソースの量は最小限に抑えられます。転移学习は,ある种类の问题からの知识を利用して类似の问题を解决します。事前学习済みネットワークから开始して,新しいタスクを学习します。転移学习の利点の1つは,事前学习済みネットワークは数多くの特徴を学习済みであることです。学习済みの特徴は,他の类似问题に幅広く応用できます。たとえば,数百万の画像を使用して学习済みのネットワークを利用すると,わずか数百の画像を使用して新しいオブジェクト分类用に保持できます。

神经网络工具箱を使用すると,事前学习済みCNNモデル(GoogLeNet,AlexNetvgg16vgg19など)および来自CaffeとTensorFlow-Kerasのモデルを使用して転移学习を実行できます。

关连情报

CNNを使用するアプリケーション

オブジェクト検出

オブジェクト検出は画像や动画内のオブジェクトを特定して分类するプロセスです。计算机视觉工具箱™には,R-CNN(与CNN区域),快速R-CNN,および更快R-CNNを使用してディープラーニングベースのオブジェクト検出器を作成するための学习フレームワークが用意されています。

统计和机器学习工具箱™の机械学习手法と计算机视觉工具箱を并用して,オブジェクト认识システムを构筑できます。

神经网络工具箱には,学习済みのCNNモデルを使用して予测を行うだけでなく,CNNの作成および学习を行うための机能が含まれています。

ディープラーニングによるオブジェクト検出
この例では,ディープラーニングとR-CNN(与卷积神经网络的地区)を使用して,物体検出器を学习させる方法を说明します。
快速R-CNNディープラーニングによるオブジェクト検出
この例では,更快R-CNN(与卷积神经网络的地区)と呼ばれるディープラーニングの手法を使用して,物体検出器を学习させる方法を说明します。

CNNの详细を知る方法

画像解析にCNNを使用する制品には,MATLAB®计算机视觉工具箱™统计和机器学习工具箱™神经网络工具箱™などがあります。

畳み込みニューラルネットワークの利用には神经网络工具箱が必要です。学习と予测は计算能力3.0以上のCUDA®対応GPUでサポートされます.GPUの使用が推奨されるほか,并行计算工具箱™が必要となります。

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

无料评価版を入手する

30日间の无料评価版はこちら

质问はありますか。

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