Main Content

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

転移学習用の事前学習済みのネットワークを複数試用

この例では、転移学習のためにさまざまな事前学習済みのネットワークの層を置き換える実験を構成する方法を説明します。目的のタスクに向けてさまざまな事前学習済みのネットワークの性能を比較するには、この実験を編集し、どの事前学習済みのネットワークを使用するかを指定します。実験を実行する前に、googlenet などの関数を使用すると、アドオン エクスプローラーから事前学習済みのネットワークをダウンロードするためのリンクを取得できます。

転移学習は、深層学習アプリケーションでよく使用されています。事前学習済みのネットワークを取得して、新しいタスクの学習の開始点として使用できます。通常は、転移学習によってネットワークを微調整する方が、ランダムに初期化された重みでゼロからネットワークに学習させるよりもはるかに簡単で時間がかかりません。少ない数の学習イメージを使用して、新しいタスクに学習済みの特徴を高速に転移できます。

Deep Learning Toolbox™ には、利用できる事前学習済みのネットワークが多数あります。これらの事前学習済みのネットワークには、問題に適用するネットワークを選択する際に重要になるさまざまな特性があります。最も重要な特性は、ネットワークの精度、速度、およびサイズです。ネットワークの選択には、通常、これらの特性の間のトレードオフが生じます。詳細については、事前学習済みの深層ニューラル ネットワークを参照してください。

実験を開く

まず、例を開きます。Experiment Managerによって、検証と実行が可能な事前構成済みの実験を含むプロジェクトが読み込まれます。実験を開くには、[実験ブラウザー] で実験の名前 (TransferLearningExperiment) をダブルクリックします。

実験の定義は、説明、ハイパーパラメーター テーブル、セットアップ関数、および、実験結果を評価するためのメトリクス関数の集合 (オプション) で構成されます。詳細については、Configure Deep Learning Experimentを参照してください。

[説明] ボックスには、実験を説明するテキストが表示されます。この例の説明は次のようになります。

Perform transfer learning by replacing layers in a pretrained network.

[ハイパーパラメーター テーブル] には、実験で使用するハイパーパラメーターの名前と値が表示されます。実験を実行すると、実験マネージャーによってハイパーパラメーター値がスイープされ、ネットワークの学習が複数回実行されます。試行ごとに、テーブルで指定されたハイパーパラメーター値の異なる組み合わせが使用されます。この例では、ハイパーパラメーター NetworkName によって、学習を行うネットワークと学習オプション 'miniBatchSize' の値が指定されます。

[セットアップ関数] は、実験用の学習データ、ネットワーク アーキテクチャ、および学習オプションを構成します。セットアップ関数を検査するには、[セットアップ関数][編集] をクリックします。MATLAB エディターでセットアップ関数が開きます。この例のセットアップ関数では以下を行います。

  • 花のデータセット (約 218 MB) のダウンロードと抽出。このデータセットの詳細については、イメージ データセットを参照してください。

  • ハイパーパラメーター NetworkName に対応する事前学習済みのネットワークの読み込み。補助関数 findLayersToReplace は、転移学習用に置き換えるネットワーク アーキテクチャの層を判定します。使用可能な事前学習済みのネットワークの詳細については、事前学習済みの深層ニューラル ネットワークを参照してください。

  • 実験用の trainingOptions オブジェクトの定義。この例では、ネットワークの学習を 10 エポック行います。初期学習率は 0.0003 とし、5 エポックごとにネットワークを検証します。

[メトリクス] セクションは、実験結果を評価するオプションの関数を指定します。この例では、メトリクス関数は含まれていません。

実験の実行

[実験マネージャー] タブで、[実行] をクリックします。実験マネージャーによって、セットアップ関数で定義されたネットワークの学習が複数回実行されます。試行ごとに、ハイパーパラメーターの異なる組み合わせが使用されます。結果テーブルに、各試行の精度と損失が表示されます。

実験の実行中に [学習プロット] をクリックすると、学習プロットが表示され、各試行の進行状況を追跡できます。

[混同行列] をクリックし、完了した各試行の検証データの混同行列を表示します。

実験の完了後、列ごとに結果テーブルを並べ替えたり、[フィルター] ペインを使用して試行をフィルター処理したりできます。詳細については、Sort and Filter Experiment Resultsを参照してください。

各試行の性能をテストするには、試行で使用した学習済みネットワークまたは試行の学習情報をエクスポートします。[実験マネージャー] タブで、[エクスポート][学習済みネットワーク] を選択するか、[エクスポート][学習情報] を選択します。詳細については、出力引数を参照してください。

実験を閉じる

[実験ブラウザー] でプロジェクトの名前を右クリックし、[プロジェクトを閉じる] を選択します。実験マネージャーによって結果が保存され、プロジェクトに含まれるすべての実験が閉じられます。

参考

| | |

関連するトピック