Main Content

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

分類用の深層学習実験の作成

この例では、Experiment Managerを使用して分類用の深層学習ネットワークに学習させる方法を説明します。ここでは 2 つのネットワークに学習させて、MathWorks 商品のイメージを 5 つのクラスに分類します。各ネットワークの学習に 3 つのアルゴリズムを使用します。どの場合も、混同行列を使用して、検証イメージのセットの真のクラスと、学習済みネットワークによって予測されたクラスを比較します。イメージ分類用のネットワークの学習の詳細については、新しいイメージを分類するための深層学習ネットワークの学習を参照してください。

実験を開く

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

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

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

Merchandise image classification using:
- an untrained network (default) or a pretrained network (googlenet)
- various solvers for training networks (sgdm, rmsprop, or adam)

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

  • Network は、学習を行うネットワークを指定します。このオプションには、"default" (セットアップ関数テンプレートによって指定された既定の分類ネットワーク) および "googlenet" (転移学習用に変更された層をもつ事前学習済みの GoogLeNet ネットワーク) が含まれています。

  • Solver は、ネットワークの学習に使用するアルゴリズムを示します。このオプションには、"sgdm" (モーメンタム項付き確率的勾配降下法)、"rmsprop" (平方根平均二乗伝播)、および "adam" (適応モーメント推定) が含まれています。これらのアルゴリズムの詳細については、確率的勾配降下法を参照してください。

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

この例では、セットアップ関数への入力は、ハイパーパラメーター テーブルのフィールドをもつ struct です。このセットアップ関数は、イメージ分類問題用のネットワークに学習させるために使用する 3 つの出力を返します。このセットアップ関数には 3 つのセクションがあります。

  • イメージ データの読み込みでは、学習データと検証データを含むイメージ データストアを定義します。この例では、MerchData.zip ファイルからイメージを読み込みます。これは、5 つの異なるクラスに属する 75 個の MathWorks 商品のイメージを含む小さなデータセットです。イメージのサイズは 227 x 227 x 3 です。このデータセットの詳細については、イメージ データセットを参照してください。

  • ネットワーク アーキテクチャの定義では、深層学習による分類用の畳み込みニューラル ネットワークのアーキテクチャを定義します。この例では、学習を行うネットワークの選択は、ハイパーパラメーター Network の値によって異なります。

  • 学習オプションの指定では、実験用の trainingOptions オブジェクトを定義します。この例では、ハイパーパラメーター テーブルの Solver エントリで指定されるアルゴリズムを使用して、ネットワークの学習を 10 エポック行います。

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

実験の実行

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

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

結果の評価

実験で得られた最良の結果を見つけるには、検証精度の順に結果テーブルを並べ替えます。

  1. [検証精度] 列をポイントします。

  2. 三角形のアイコンをクリックします。

  3. [降順に並べ替え] を選択します。

検証精度の最も高い試行が、結果テーブルの 1 番上に表示されます。

この試行の混同行列を表示するには、結果テーブルで先頭の行を選択し、[混同行列] をクリックします。

実験を閉じる

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

参考

| | | |

関連するトピック