転移学習

転移学習によるディ,プラ,ニングモデルの学習

転移学習(学习)转移とは,あるタスク向けに学習したモデルを,類似したタスクを実行するモデルの開始点として使用するディ,プラ,ニングの手法です。転移学習によるネットワークの更新と再学習は通常、ゼロからネットワークを学習させるよりもはるかに高速で簡単です。この手法は、物体検出や画像認識,音声認識などのアプリケ,ションで一般的に使用されています

転移学習が広く利用されている理由は次のとおりです。

  • 大規模なデータセットで既に学習済みの一般的なモデルを再利用することで,ラベル付けされたデータが少なくてもモデルの学習を行うことができる。
  • 学習時間を短縮し,コンピュ,ティングリソ,スを削減できる。転移学習では,重みをゼロから学習させる必要はありません。事前学習済みのモデルは,以前の学習に基づき,既に重みの学習を行っているためです。
  • ディープラーニングの研究コミュニティによって開発されたモデルアーキテクチャを活用できる(GoogLeNetやResNetなどの広く利用されているアーキテクチャを含む)。

転移学習向け事前学習済みモデル

転移学習の中心となるのは,事前学習済みのディ,プラ,ニングモデルです。このモデルは,ディープラーニングの研究者によって構築されており,学習には,数千または数百万のサンプル画像が使用されています。

利用可能な事前学習済みモデルは多数ありますが,各モデルに次の考慮すべきメリットとデメリットがあります。

  • サ电子邮箱ズ:そのモデルにメモリはどのくらい必要か?モデルのサesc escズの重要性は,展開先や用途によって異なります。組み込みハードウェアとデスクトップのどちらで実行するのでしょうか?ネットワークのサイズは,低メモリシステムに展開する場合に特に重要です。
  • 精度:再学習前のモデル性能はどの程度か?通常ImageNet(100年万枚の画像と1000個のクラスの画像を含む一般的なデータセット)で良好な性能をもつモデルは,同じような新しいタスクでも良好に機能する可能性が高くなります。ただし,ImageNetの精度スコアが低くても,必ずしもすべてのタスクでモデルの性能が低いとは限りません。
  • 予測速度:新しい入力に対するモデルの予測速度はどのくらいか?予測速度は,ハードウェアやバッチサイズなど,その他のディープラーニングによって異なりますが,速度は選択したモデルのアーキテクチャやモデルのサイズによっても異なります。
よく利用される事前学習済みネットワクのモデルのサズや速度,精度の比較。

よく利用される事前学習済みネットワクのモデルのサズや速度,精度の比較。

MATLABおよび深度学习工具箱を使用すると,最新の研究で得られた事前学習済みのネットワ,クに1行のコ,ドでアクセスできます。このツールボックスには,転移学習プロジェクトに適したネットワークを選択するためのガイダンスも用意されています。

転移学習アプリケションに最適なモデルを見けるには?

多くの転移学習モデルの中から選択するため,関連するトレ,ドオフと特定のプロジェクトの全体的な目的に留意することが重要です。たとえば,比較的精度の低いネットワークの方が,新しいディープラーニングタスクに最適である場合があります。さまざまなモデルを試して,お使いのアプリケ,ションに最適なモデルを見,けることをお勧めします。

入門向けのシンプルなモデル。シンプルなモデル(例:AlexNet GoogLeNet, VGG-16, VGG-19)は,迅速に反復処理を行い,さまざまなデータ前処理のステップや学習オプションを使用して試すことができます。適切に機能する設定が分かったら,さらに精度が高いネットワークで試し,結果が改善されるかどうかを確認します。

軽量で計算効率に優れたモデル。展開環境でモデルサイズに制限がある場合には,SqueezeNetやMobileNet-v2, ShuffleNetがお勧めです。

ディプネットワクデザナを使用すると,プロジェクト向けに事前学習済みのさまざまなモデルを迅速に評価できるだけでなく,さまざまなモデルアーキテクチャ間のトレードオフに対する理解を深めることができます。

転移学習ワクフロ

転移学習のア,キテクチャやアプリケ,ションにはさまざまな種類がありますが,ほとんどの転移学習ワ,クフロ,は共通の手順に沿って行われています

  1. 事前学習済みモデルを選択する。初めは,比較的シンプルなモデルを選ぶことをお勧めします。この例では,GoogLeNetを使用しています。1000年GoogLeNetは個のオブジェクトカテゴリを分類するように学習されている22層の深さの一般的なネットワークです。
転移学習ワクフロ-事前学習済みのモデルの選択。
  1. 最終層を置き換える。新しい画像とクラスのセットを分類するようにネットワークの再学習を行うには,GoogLeNetモデルの最終層を置き換えます。最終的な全結合層は,新しいクラスの数と同じ数のノードを含むように修正され,新しい分類層が追加されます。これにより,ソフトマックス層によって計算された確率(尤度)に基づき,出力が生成されます。
転移学習ワクフロ-最終層の置き換え
  • 層を修正すると,最終的な全結合層でネットワ,クが学習するクラスの新しい数が指定され,分類層で利用可能な新しい出力カテゴリの出力が決まります。1000年たとえば,GoogLeNetは元々のカテゴリで学習されていましたが,最終層を置き換えることで,関心のあるオブジェクトの5つ(または他の任意の数)のカテゴリのみを分類するように再学習させることができます。
  1. 重みを凍結する(任意)。ネットワ,クの初期の層の重みを凍結するには,その層の学習率をゼロに設定します。学習中は,凍結された層のパラメ,タ,は更新されないため,ネットワ,クの学習を大幅に高速化できます。新しいデータセットが小さい場合は、重みを凍結することで、新しいデータセットに対するネットワークの過適合を防ぐこともできます。
  2. モデルの再学習を行う。再学習では,新しい画像やカテゴリに関連する特徴を学習して識別するようにネットワ,クを更新します。通常,再学習で必要なデ,タは,ゼロからモデルを学習させる場合よりも少なくて済みます。
  3. ネットワ,ク精度を予測および評価する。モデルの再学習が完了したら,新しい画像を分類し,ネットワ,クの性能を評価できるようになります。

    ゼロから学習するか,転移学習を使用するか?

    ディープラーニングでは,ゼロからモデルを学習する方法と,転移学習の2つの手法が一般的に使用されています。

    既存のモデルを使用できない特殊なタスクには,ゼロからモデルを開発し学習を行う方法が適しています。この手法のデメリットは,正確な結果を得るために通常,膨大なデ,タが必要になるということです。たとえば,テキスト解析を行っている場合に,テキスト解析に事前学習済みのモデルは利用できないが,利用できるデータサンプルが多数あるというときは,ゼロからモデルを開発することが最善の手法であると言えます。

    転移学習は,物体認識などのタスクに有益であり,さまざまな事前学習済みモデルが広く利用されています。たとえば,花の画像を分類する必要があり,利用できる花の画像の数が限られている場合は,AlexNetネットワークから重みと層を転移し,最終分類層を置き換えて,お手持ちの画像でモデルの再学習を行います。

転移学習ワ,クフロ,ネットワ,クの読み込み,層の置き換え,ネットワ,クの学習,精度の評価。

転移学習ワ,クフロ,ネットワ,クの読み込み,層の置き換え,ネットワ,クの学習,精度の評価。

このようなケースでは,転移学習を使用することで,モデルの学習時間を短縮しながら精度を高めることができます。

ゼロからの学習と転移学習のネットワ,ク性能(精度)の比較。

ゼロからの学習と転移学習のネットワ,ク性能(精度)の比較。

転移学習への対話型アプロ,チ

ディプネットワクデザナを使用すると,転移学習ワークフロー全体(事前学習済みモデルのインポート,最終層の変更,新しいデータを使用したネットワークの再学習など)を対話的に完了できます。コ,ドの記述はほとんど,または一切必要ありません。

ディープネットワークデザイナーは,MATLABでディープニューラルネットワークを作成または変更するためのポイントアンドクリック方式のツールです。このビデオでは,転移学習ワクフロでこのアプリを使用する方法にいて説明します。

詳細にいては,深度学习工具箱および计算机视觉工具箱を参照してください。

参考:ディ,プラ,ニング畳み込みニュ,ラルネットワ,クGPU编码器Ai(人工知能)生物医学信号处理