主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

事前学習済みの深層ニューラル ネットワーク

自然イメージから強力で情報量の多い特徴を抽出するよう既に学習させてある事前学習済みのイメージ分類ネットワークを用意し,新しいタスクを学習させるための出発点として,そのネットワークを使用できます。事前学習済みのネットワークの大部分は,ImageNetデータベース[1]のサブセットで学習しています。このデータベースは ImageNet大规模视觉识别挑战赛(ILSVRC)[2]で使用されています。これらのネットワークは、100万枚を超えるイメージで学習しており、イメージを 1000個のオブジェクト カテゴリ (キーボード、マグ カップ、鉛筆、多くの動物など) に分類できます。通常は、転移学習によって事前学習済みのネットワークを使用する方が、ネットワークにゼロから学習させるよりもはるかに簡単で時間がかかりません。

事前学習済みのネットワークは,次のタスクで使用できます。

目的 説明
分類

事前学習済みのネットワークを分類問題に直接適用します。新しいイメージを分類するには,分类を使用します。事前学習済みのネットワークを分類に使用する方法を示す例については、GoogLeNetを使用したイメージの分類を参照してください。

特徴抽出

層の活性化を特徴として使用することで,事前学習済みのネットワークを特徴抽出器として使用します。これらの活性化を,サポートベクターマシン(SVM)などの別の機械学習モデルの学習で特徴として使用できます。詳細については,特徴抽出を参照してください。例については、事前学習済みのネットワークを使用したイメージの特徴の抽出を参照してください。

転移学習

大規模なデータセットで学習させたネットワークから層を取り出し,新しいデータセットで微調整します。詳細については,転移学習を参照してください。簡単な例については、転移学習入門を参照してください。他の事前学習済みのネットワークを試してみるには、新しいイメージを分類するための深層学習ネットワークの学習を参照してください。

事前学習済みのネットワークの比較

事前学習済みのネットワークには、問題に適用するネットワークを選択する際に重要になるさまざまな特性があります。最も重要な特性は、ネットワークの精度、速度、およびサイズです。ネットワークの選択には、通常、これらの特性の間のトレードオフが生じます。以下のプロットを使用して、ネットワークを使用した予測に要する時間と 图像网検証精度を比較します。

ヒント

転移学習を始めるには,SqueezeNetやGoogLeNetなど,高速なネットワークのいずれかを選択してみてください。繰り返しを迅速に実行でき,データの前処理手順や学習オプションなどのさまざまな設定を試すことができます。適切に機能する設定の感触を得てから,Inception-v3やResNetなどのより正確なネットワークを試し,結果が改善されるか確認します。

メモ

以上のプロットは、さまざまなネットワークの相対速度の指標のみを示しています。厳密な予測と学習の反復回数は、使用するハードウェアとミニバッチ サイズによって異なります。

精度が高く高速なものが優れたネットワークです。プロットには、最新の GPU(英伟达®特斯拉®128年P100)およびサイズがのミニバッチを使用した場合の,予測時間に対する分類精度が表示されています。予測時間は,最も高速なネットワークを基準にして測定されます。各マーカーの面積は,ディスク上でのネットワークのサイズに比例します。

图像网検証セットでの分類精度は、图像网で学習させたネットワークの精度を測定する最も一般的な方法です。多くの場合、图像网において正確なネットワークは、転移学習または特徴抽出を使用して他の自然イメージ データセットに適用した場合にも正確です。このような汎化が可能である理由として、これらのネットワークが自然イメージから強力で情報量の多い特徴を抽出するよう学習済みであり、それらの特徴が他の類似データセットに汎化される点が挙げられます。ただし、图像网での高い精度は、必ずしも他のタスクにそのまま移行されないため、複数のネットワークを試すことをお勧めします。

制約のあるハードウェアを使用して予測を実行する場合やインターネットを介してネットワークを分散させる場合は,ディスクやメモリ上でのネットワークのサイズも考慮してください。

ネットワークの精度

图像网検証セットでの分類精度を計算するには複数の方法があり、ソースによって異なる方法が使用されます。複数モデルのアンサンブルを使用する場合もあれば、複数のトリミングを使用して各イメージを複数回評価する場合もあります。場合によっては、標準的な (最上位の) 精度ではなく、上位 5.つの精度を見積もります。このような違いがあるため、異なるソースでの精度を直接比較することができないことがよくあります。深度学习工具箱™ の事前学習済みネットワークの精度は、単一モデルとイメージの中心での単一のトリミングを使用した、標準的な (最上位の) 精度です。

事前学習済みのネットワークの読み込み

SqueezeNetネットワークを読み込むには,コマンドラインで挤压网と入力します。

净=挤压净;

その他のネットワークについては,水壶などの関数を使用すると、アドオン エクスプローラーから事前学習済みのネットワークをダウンロードするためのリンクを取得できます。

次の表に,ImageNetで学習させた利用可能な事前学習済みのネットワークとそれらのプロパティの一部を示します。ネットワークの深さは,入力層から出力層までのパスにある逐次畳み込み層または全結合層の最大数として定義されます。すべてのネットワークの入力はRGBイメージです。

ネットワーク 深さ サイズ パラメーター数 (100 万個単位) イメージ入力サイズ
挤压网 18

5.2MB

1.24

227乘227

水壶 22

27MB

7.0

224年- 224年

inceptionv3 48

89 MB

23.9

299年- 299年

densenet201 201

77MB

20.0

224年- 224年

mobilenetv2 53

13 MB

3.5

224年- 224年

resnet18 18

44MB

11.7

224年- 224年

resnet50 50

96 MB

25.6

224年- 224年

resnet101 101

167MB

44.6

224年- 224年

例外 71

85 MB

22.9 299年- 299年
接收resnetv2 164

209 MB

55.9

299年- 299年

shufflenet 50 5.4 MB 1.4 224年- 224年
nasnetmobile 20 MB 5.3 224年- 224年
nasnetlarge 332MB 88.9 331年- 331年
darknet19 19 78 MB 20.8 256 x 256
黑暗的53 53 155MB 41.6 256 x 256
efficientnetb0 82 20 MB 5.3

224年- 224年

阿列克斯内特 8

227 MB

61

227乘227

vgg16 16

515 MB

138

224年- 224年

vgg19 19

535 MB

144

224年- 224年

*NASNet移动ネットワークおよび NASNet大型ネットワークは、モジュールの線形シーケンスで構成されていません。

Places365で学習させたGoogLeNet

標準のGoogLeNetネットワークはImageNetデータセットで学習していますが,Places365データセット[3][4]で学習させたネットワークを読み込むこともできます。Places365で学習させたネットワークは,イメージを365個の異なる場所カテゴリ(野原,公園,滑走的路,ロビーなど)に分類します。Places365データセットで学習させた事前学習済みのGoogLeNetネットワークを読み込むには,谷歌网('Weights','places365')を使用します。転移学習を実行して新しいタスクを実行する場合、最も一般的な方法は、ImageNet データセットで事前学習させたネットワークを使用することです。新しいタスクがシーンの分類に似ている場合は、Places-365 で学習させたネットワークを使用すると精度を向上できることがあります。

特徴抽出

特徴抽出は,ネットワーク全体の学習に時間や手間をかけずに深層学習の能力を活用できる簡単で高速な方法です。これが必要とするものは学習イメージを一巡する1つのパスのみであるため,GPUがない場合,特に便利です。事前学習済みのネットワークから学習済みのイメージの特徴を抽出し,fitcsvm(统计学和机器学习工具箱)を使用するサポートベクターマシンなどの分類器の学習で特徴として使用できます。

新しいデータセットの規模が非常に小さい場合,特徴抽出を試みてください。抽出された特徴についてシンプルな分類器に学習させるだけであるため,学習は高速です。また,学習するデータがほとんどないため,ネットワークの深い層を微調整しても精度が改善される可能性はあまりありません。

  • 使用するデータが元のデータと非常によく似ている場合は、ネットワークの深い部分で抽出された、より具体的な特徴が役に立つ可能性が高くなります。

  • 使用するデータが元のデータと大きく異なる場合,ネットワークの深い部分で抽出された特徴は,目的のタスクにあまり役立たない可能性があります。初期のネットワーク層から抽出された,より一般的な特徴について最後の分類器の学習を試みてください。新しいデータセットの規模が大きい場合,ゼロからのネットワークの学習を試みることもできます。

resnetは多くの場合に適切な特徴抽出器です。事前学習済みのネットワークを特徴抽出に使用する方法を示す例については、事前学習済みのネットワークを使用したイメージの特徴の抽出を参照してください。

転移学習

事前学習済みのネットワークを開始点として,新しいデータセットについてネットワークに学習させることによって,ネットワークの深い層を微調整できます。多くの場合,転移学習を伴うネットワークを微調整する方が,新しいネットワークを構築して学習させるよりも簡単で時間がかかりません。このネットワークはイメージの特徴を既に多数学習していますが,ネットワークを微調整すると,新しいデータセットに固有の特徴をネットワークに学習させることができます。データセットが非常に大規模な場合,転移学習はゼロから学習する場合に比べて速くならない可能性があります。

ヒント

ネットワークを微調整すると、多くの場合、精度を最大限に高められます。非常に小さいデータセット (クラスごとのイメージ数が約 20未満) の場合、代わりに特徴抽出を試みてください。

ネットワークの微調整は、単純な特徴抽出よりも時間と手間がかかりますが、ネットワークにさまざまな特徴セットの抽出を学習させることができるため、多くの場合に最終的なネットワークの精度が向上します。ネットワークには新しい特徴を学習するためのデータがあるので、新しいデータセットの規模があまり小さくなければ、通常は特徴抽出よりも微調整がうまく機能します。転移学習の実行方法を示す例は、ディープネットワークデザイナーを使用した転移学習および新しいイメージを分類するための深層学習ネットワークの学習を参照してください。

ネットワークのインポートとエクスポート

TensorFlow®咖啡,-KerasおよびONNX™(打开神经网络交换)モデル形式からネットワークやネットワークアーキテクチャをインポートできます。学習済みのネットワークをONNXモデル形式でエクスポートすることもできます。

凯拉斯からのインポート

TensorFlow Kerasから事前学習済みのネットワークをインポートするには、进口卡拉斯网络を使用します。ネットワークと重みは、同じ HDF5 (.h5) ファイルから、または個別の HDF5 ファイルと JSON (.json) ファイルからインポートできます。詳細については、进口卡拉斯网络を参照してください。

TensorFlow Kerasからネットワーク アーキテクチャをインポートするには、进口卡拉斯层を使用します。重みと共にまたは重みなしで,ネットワークアーキテクチャをインポートできます。ネットワークアーキテクチャと重みは、同じ HDF5 (.h5) ファイルから、または個別の HDF5 ファイルと JSON (.json) ファイルからインポートできます。詳細については、进口卡拉斯层を参照してください。

咖啡からのインポート

咖啡馆から事前学習済みのネットワークをインポートするには、関数importCaffeNetworkを使用します。Caffe模型动物园[5]には,利用できる事前学習済みのネットワークが多数あります。目的の.prototxtおよび.caffemodelファイルをダウンロードし,importCaffeNetworkを使用して事前学習済みのネットワークを MATLAB®にインポートします。詳細については,importCaffeNetworkを参照してください。

咖啡ネットワークのネットワークアーキテクチャをインポートできます。目的の.prototxtファイルをダウンロードし,importCaffeLayersを使用して MATLABにネットワーク層をインポートします。詳細については、importCaffeLayersを参照してください。

ONNXへのエクスポートとインポート

ONNXを中間形式として使用することで、TensorFlow、PyTorch、Caffe2、微软®认知工具包(CNTK)、核心ML、Apache MXNet™ など、ONNXモデルのエクスポートまたはインポートをサポートしている他の深層学習フレームワークと相互運用できます。

関数exportONNXNetworkを使用して、学習済みの 深度学习工具箱ネットワークを ONNXモデル形式にエクスポートします。その後で、ONNXモデルを ONXXモデルのインポートをサポートしている他の深層学習フレームワークにインポートできます。

事前学習済みのネットワークを ONNXからインポートするには、importONNXNetworkを使用します。重みと共にまたは重みなしで、ネットワーク アーキテクチャをインポートするには、重要人物を使用します。

オーディオアプリケーション用の事前学習済みのネットワーク

深度学习工具箱を 音频工具箱™ と共に使用して、オーディオ処理および音声処理アプリケーション用の事前学習済みのネットワークを使用します。

音频工具箱には,事前学習済みのVGGishおよびYAMNetネットワークが用意されています。関数VGISH(音频工具箱)および亚姆内特(音频工具箱)を使用して、事前学習済みのネットワークを直接操作します。関数classifySound(音频工具箱)は、音を特定して 521個のカテゴリのいずれかに分類することができるよう、亚姆内特に対して必要な前処理および後処理を実行します。関数阴阳图(音频工具箱)を使用すると,YAMNetオントロジーを検索できます。関数VGISH特性(音频工具箱)は,特徴の埋め込みを抽出し,機械学習や深層学習のシステムに入力できるように,VGGishに対して必要な前処理および後処理を実行します。オーディオアプリケーション用の深層学習の使用に関する詳細については,音频应用深度学习简介(音频工具箱)を参照してください。

転移学習や特徴抽出を実行するには,VGGishおよびYAMNetを使用します。例については,基于预训练音频网络的迁移学习(音频工具箱)を参照してください。

参照

[1] ImageNet。http://www.image-net.org

[2] Russakovsky,O.,Deng,J.,Su,H.,et al.“ImageNet大规模视觉识别挑战”,《国际计算机视觉杂志》(IJCV),第115卷,第3期,2015年,第211-252页

[3] Zhou, Bolei, Aditya Khosla, Agata Lapedriza, Antonio Torralba和Aude Oliva。“地点:用于深度场景理解的图像数据库。”arXiv预印本arXiv: 1610.02055(2016).

[4] 地方。http://places2.csail.mit.edu/

[5] Caffe模型动物园。http://caffe.berkeleyvision.org/model_zoo.html

参考

|||||||||||||||||||||||||

関連するトピック