最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。

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

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

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

目的 说明
分类

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

特徴抽出

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

転移学习

大规模なデータセットで学习させたネットワークから层を取り出し,新しいデータセットで微调整します。详细は,転移学习を参照してください。简単な例については,転移学习入门を参照してください。他の事前学习済みのネットワークを试してみるには,新しいイメージを分类するための深层学习ネットワークの学习を参照してください。

事前学习済みのネットワークの比较

事前学习済みのネットワークには,问题に适用するネットワークを选択する际に重要になるさまざまな特性があります。最も重要な特性は,ネットワークの精度,速度,およびサイズです。ネットワークの选択には,通常,これらの特性の间のトレードオフが生じます。以下のプロットを使用して,ネットワークを使用した予测に要する时间とImageNet検证精度を比较します。

ヒント

転移学习を始めるには,SqueezeNetやGoogLeNetなど,高速なネットワークのいずれかを选択してみてください。缲り返しを迅速に実行でき,データの前处理手顺や学习オプションなどのさまざまな设定を试すことができます。适切に机能する设定の感触を得てから,启-V3やRESNETなどのより正确なネットワークを试し,结果が改善されるか确认します。

メモ

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

精度が高く高速なものが优れたネットワークです。プロットには,最新のGPU(NVIDIA®特斯拉®P100)およびサイズが128のミニバッチを使用した场合の,予测时间に対する分类精度が表示されています。予测时间は,最も高速なネットワークを基准にして测定されます。各マーカーの面积は,ディスク上でのネットワークのサイズに比例します。

ImageNet検证セットでの分类精度は,ImageNetで学习させたネットワークの精度を测定する最も一般的な方法です。多くの场合,ImageNetにおいて正确なネットワークは,転移学习または特徴抽出を使用して他の自然イメージデータセットに适用した场合にも正确です。このような泛化が可能である理由として,これらのネットワークが自然イメージから强力で情报量の多い特徴を抽出するよう学习済みであり,それらの特徴が他の类似データセットに泛化される点が挙げられます。ただし,ImageNetでの高い精度は,必ずしも他のタスクにそのまま移行されないため,复数のネットワークを试すことをお勧めします。

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

ネットワークの精度

ImageNet検证セットでの分类精度を计算するには复数の方法があり,ソースによって异なる方法が使用されます。复数モデルのアンサンブルを使用する场合もあれば,复数のトリミングを使用して各イメージを复数回评価する场合もあります。场合によっては,标准的な(最上位の)精度ではなく,上位5つの精度を见积もります。このような违いがあるため,异なるソースでの精度を直接比较することができないことがよくあります.Deep学习工具箱™の事前学习済みネットワークの精度は,単一モデルとイメージの中心での単一のトリミングを使用した,标准的な(最上位の)精度です。

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

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

净= squeezenet;

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

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

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

4.6 MB

1.24

227按227

googlenet 22

27 MB

7

224逐224

inceptionv3 48

89 MB

23.9

299按299

densenet201 201

77 MB

20.0

224逐224

mobilenetv2 53

13 MB

3.5

224逐224

resnet18 18

44 MB

11.7

224逐224

resnet50 50

96 MB

25.6

224逐224

resnet101 101

167 MB

44.6

224逐224

xception 71

85 MB

22.9 299按299
inceptionresnetv2 164

209 MB

55.9

299按299

的ShuffleNet 50 6.3 MB 1.4 224逐224
nasnetmobile * 20 MB 5.3 224逐224
nasnetlarge * 360 MB 88.9 331-通过-331
darknet19 19 72.5 MB 21.0 256×256
darknet53 53 145 MB 41.0 256×256
alexnet 8

227 MB

61.0

227按227

vgg16 16

515 MB

138

224逐224

vgg19 19

535 MB

144

224逐224

* NASNet-Mobile的ネットワークおよびNASNet-大ネットワークは,モジュールの线形シーケンスで构成されていません。

Places365で学习させたGoogLeNet

标准のGoogLeNetネットワークはImageNetデータセットで学习していますが,Places365データセット[3][4]で学习させたネットワークを読み込むこともできます.Places365で学习させたネットワークは,イメージを365个の异なる场所カテゴリ(野原,公园,滑走路,ロビーなど)に分类します.Places365データセットで学习させた事前学习済みのGoogLeNetネットワークを読み込むには,googlenet( '权重', 'places365')を使用します。転移学习を実行して新しいタスクを実行する场合,最も一般的な方法は,ImageNetデータセットで事前学习させたネットワークを使用することです。新しいタスクがシーンの分类に似ている场合は,商家-365で学习させたネットワークを使用すると精度を向上できることがあります。

特徴抽出

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

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

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

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

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

転移学习

事前学习済みのネットワークを开始点として,新しいデータセットについてネットワークに学习させることによって,ネットワークの深い层を微调整できます。多くの场合,転移学习を伴うネットワークを微调整する方が,新しいネットワークを构筑して学习させるよりも简単で时间がかかりません。このネットワークはイメージの特徴を既に多数学习していますが,ネットワークを微调整すると,新しいデータセットに固有の特徴をネットワークに学习させることができます。データセットが非常に大规模な场合,転移学习はゼロから学习する场合に比べて速くならない可能性があります。

ヒント

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

ネットワークの微调整は,単纯な特徴抽出よりも时间と手间がかかりますが,ネットワークにさまざまな特徴セットの抽出を学习させることができるため,多くの场合に最终的なネットワークの精度が向上します。ネットワークには新しい特徴を学习するためのデータがあるので,新しいデータセットの规模があまり小さくなければ,通常は特徴抽出よりも微调整がうまく机能します。転移学习の実行方法を示す例は,ディープネットワークデザイナーを使用した転移学习および新しいイメージを分类するための深层学习ネットワークの学习を参照してください。

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

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

Kerasからのインポート

TensorFlow-Kerasから事前学习済みのネットワークをインポートするには,importKerasNetworkを使用します。ネットワークと重みは,同じHDF5(.h5)ファイルから,または个别のHDF5ファイルとJSON(上传.json)ファイルからインポートできます。详细は,importKerasNetworkを参照してください。

TensorFlow-Kerasからネットワークアーキテクチャをインポートするには,importKerasLayersを使用します。重みと共にまたは重みなしで,ネットワークアーキテクチャをインポートできます。ネットワークアーキテクチャと重みは,同じHDF5(.h5)ファイルから,または个别のHDF5ファイルとJSON(上传.json)ファイルからインポートできます。详细は,importKerasLayersを参照してください。

来自Caffeからのインポート

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

来自Caffeネットワークのネットワークアーキテクチャをインポートできます。目的の.prototxtファイルをダウンロードし,importCaffeLayersを使用してMATLABにネットワーク层をインポートします。详细は,importCaffeLayersを参照してください。

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

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

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

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

参照

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

[2] Russakovsky,O.,邓,J.,苏,H。等人。“ImageNet大型视觉识别的挑战。”国际计算机视觉杂志(IJCV)。第115卷,第3期,2015年,第211-252

[3]周,博雷,阿迪亚斯拉,阿形Lapedriza,安东尼奥托拉尔瓦,和奥德奥利瓦。“Places:一个图像数据库进行深场景的理解。”预印本的arXiv的arXiv:1610.02055(2016)。

[4]的位置]。http://places2.csail.mit.edu/

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

参考

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

关连するトピック