ディープ ネットワーク デザイナーを使用したネットワークの学習
ディープ ネットワーク デザイナー アプリでは、深層ニューラル ネットワークの構築と学習ができます。ディープ ネットワーク デザイナーは、イメージ データまたはデータストア オブジェクトを使用した trainNetwork
での学習をサポートしています。未学習のネットワークをエクスポートしてコマンド ラインで学習させることもできます。たとえば、カスタム学習ループを使用してネットワークに学習させることができます。
ネットワークに学習させるには、以下の手順に従います。
ネットワークの作成
データのインポート
学習オプションの選択
ネットワークの学習
ネットワークのエクスポート
ディープ ネットワーク デザイナーを使用してネットワークを対話的に構築することも、ワークスペースからネットワークをインポートすることもできます。ディープ ネットワーク デザイナーのスタート ページから、転移学習用に事前学習済みネットワークを選択することもできます。詳細については、ディープ ネットワーク デザイナーを使用したネットワークの構築を参照してください。
深層学習モデルに学習させるには、適切なネットワークと学習データが必要です。クラスごとのイメージのサブフォルダーを含むフォルダーから、または imageDatastore
オブジェクトからイメージ データをインポートするには、[データ] タブで [データのインポート] 、 [イメージ分類データのインポート] をクリックします。任意のデータストアをインポートするには、[データ] タブで [データのインポート] 、 [カスタム データのインポート] をクリックします。インポート後、ディープ ネットワーク デザイナーは、インポートされたデータのプレビューを表示します。それにより、データが想定どおりであることを学習前にチェックできます。詳細については、ディープ ネットワーク デザイナーへのデータのインポートを参照してください。
学習オプションの選択
ネットワークとデータを取得したら、次のステップは学習オプションの選択です。[学習] タブで、[学習オプション] をクリックします。使用する学習オプションがわからない場合は、既定の設定で学習を試みてから、ネットワークとデータに合わせて調整してみてください。たとえば、初期学習率を調整するか、エポック数を増やして学習時間を延ばしてみてください。深層学習ネットワークの精度を改善する手法の詳細については、深層学習のヒントとコツを参照してください。学習オプションの詳細については、trainingOptions
を参照してください。
ネットワークの学習
学習オプションを選択したら、[学習] をクリックしてネットワークに学習させます。ディープ ネットワーク デザイナー アプリでは、学習の進行状況がアニメーション化されたプロットで表示されます。プロットには、ミニバッチの損失と精度、および学習の進行状況に関する追加情報が表示されます。検証データを指定した場合、プロットには検証の損失と精度も表示されます。プロットの右上隅には、停止ボタン があります。そのボタンをクリックすると、学習が停止し、ネットワークの現在の状態が返されます。学習の進行状況プロットの詳細については、深層学習における学習の進行状況の監視を参照してください。
ディープ ネットワーク デザイナーを使用して、さまざまなネットワークに学習させることができます。たとえば、イメージ分類や回帰ネットワーク、シーケンス ネットワーク、数値データ ネットワーク、セマンティック セグメンテーション ネットワーク、image-to-image 回帰ネットワークなどです。ディープ ネットワーク デザイナーでは、データストア オブジェクトとして表現できる任意のデータに対し、関数 trainNetwork
を使用してネットワークに学習させることができます。以下の例では、ディープ ネットワーク デザイナーを使用したネットワークの構築と学習の方法を示しています。
学習が完了したら、[学習] タブで [エクスポート] をクリックして、学習済みネットワークと結果をワークスペースにエクスポートします。学習の進行状況プロットをイメージとして保存するには、[学習プロットのエクスポート] をクリックします。[エクスポート] 、 [学習用コードの生成] をクリックし、生成されたライブ スクリプトを調べることで、コマンド ライン関数を使用したネットワークの構築と学習の方法を学ぶこともできます。
ディープ ネットワーク デザイナーでは、カスタム学習ループを使用した学習はサポートされません。カスタム学習ループを使用してネットワークに学習させるには、まずネットワークをワークスペースにエクスポートし、dlnetwork
オブジェクトに変換します。その後、dlnetwork
オブジェクトとカスタム学習ループを使用してネットワークに学習させることができます。詳細については、カスタム学習ループを使用したネットワークの学習を参照してください。
次のステップ
学習が完了したら、[エクスポート] 、 [実験の作成] をクリックして、実験マネージャーで深層学習実験を作成します。実験マネージャーを使用してハイパーパラメーター値の範囲をスイープしたり、ベイズ最適化を使用して最適な学習オプションを検出したりすることができます。ディープ ネットワーク デザイナーで学習させたネットワークのハイパーパラメーターを調整するために実験マネージャーを使用する方法を示す例については、Generate Experiment Using Deep Network Designerを参照してください。