主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

実験マネジャ

深層学習ネットワ,クの学習および比較に向けた実験の設計と実行

説明

実験マネジャアプリを使用すると,さまざまな初期条件でネットワークに学習させ,結果を比較するための深層学習実験を作成できます。たとえば,深層学習実験を使用して次のことができます。

  • ハパパラメタ値の範囲のスプ,またはベズ最適化の使用による最適な学習オプションの検出。ベ▪▪ズ最適化には,统计和机器学习工具箱™が必要です。

  • さまざまなデ,タセットを使用してネットワ,クに学習させた結果の比較。

  • 複数のネットワークでの同一学習データセットの再利用による,さまざまな深いネットワークのアーキテクチャのテスト。

実験マネージャーは,学習プロットや混同行列などの可視化ツール,実験結果を絞り込むためのフィルター,および結果を評価するためのカスタムメトリクスを定義する機能を提供します。再現性を向上させるために,実験マネ,ジャ,は,実験を実行するたびに,実験定義のコピ,を保存します。過去の実験定義にアクセスして,各結果を生成するハイパーパラメーターの組み合わせを継続的に追跡できます。

実験マネ,ジャ,は,実験および結果をプロジェクトに整理します。

  • 同じプロジェクトに複数の実験を保存できる。

  • 各実験には,毎回の実験に対する"結果"のセットが含まれる。

  • 結果の各セットは,ハイパーパラメーターのさまざまな組み合わせに対応する1つ以上の"試行"で構成される。

既定では、実験マネ、ジャ、は一度に1の試行を実行します。并行计算工具箱™がある場合は,複数の試行を同時に実行するように実験を構成できます。実験を並列で実行することにより,学習の進行中にもmatlab®を使用できます。

[実験ブラウザ]ペesc escンには,プロジェクトの実験と結果の階層が表示されます。たとえば,このプロジェクトには2の実験があり,それぞれにいくかの結果があります。実験の構成を開いてその結果を表示するには,実験の名前または結果のセットをダブルクリックします。

实验浏览器显示两个实验。实验1有四个结果。实验2有两个结果。

実験マネ,ジャ,アプリを開く

  • Matlabルストリップ:[アプリ]タブの[機械学習および深層学習]にあるアプリア@ @コンをクリックします。

  • Matlabコマンドプロンプト:experimentManagerと入力します。

すべて展開する

この例では,既定の実験セットアップ関数を使用して,ハイパーパラメーターをスイープしてイメージ分類ネットワークに学習させる方法を示します。実験マネジャを使用したメジの分類問題の解決に関するその他の例にいては,分類用の深層学習実験の作成および実験マネ,ジャ,を使用したネットワ,クの並列学習を参照してください。ハ▪▪パ▪▪パラメ▪タ▪をス▪▪プするための代替手法の詳細に▪いては,ベズ最適化を使用した実験ハパパラメタの調整を参照してください。

例を開き,検査と実行が可能な事前構成済みの実験を含むプロジェクトを読み込みます。実験を開くには,[実験ブラウザ]ペesc escンで,実験の名前(Experiment1)をダブルクリックします。

または,次の手順に従って,自分で実験を構成することもできます。

1.実験マネジャを開きます。

2.[新規作成][プロジェクト]をクリックし,新しいプロジェクトの場所と名前を選択します。実験マネジャによって、プロジェクトで新しい実験が開きます。[実験]ペインには,実験を定義する説明,ハイパーパラメーター,セットアップ関数,およびメトリクスが表示されます。

3.[説明]ボックスに,実験の説明を次のように入力します。

数字分类,使用不同的初始学习率。

4.[ハ]で,myInitialLearnRateの値を0.0025:0.0025:0.015に置き換えます。[手法]详尽的扫描に設定されていることを確認します。

5.[セットアップ関数][編集]をクリックします。MATLABエディターでセットアップ関数が開きます。セットアップ関数では、実験用の学習データ、ネットワーク アーキテクチャ、および学習オプションを指定します。既定では、セットアップ関数のテンプレートに 3 つのセクションがあります。

  • イメージデータの読み込みでは,実験用の学習デタと検証デタを含むメジデタストアを定義します。実験では,0 ~ 9の数字から成る28 x 28ピクセルのグレースケールイメージ10000個で構成される数字データセットを使用します。このデタセットの詳細にいては,イメージデータセットを参照してください。

  • ネットワ,クア,キテクチャの定義では,深層学習による分類用のシンプルな畳み込みニューラルネットワークのアーキテクチャを定義します。

  • 学習オプションの指定では,実験用のtrainingOptionsオブジェクトを定義します。既定では,テンプレトによって,ハパパラメタテブルのmyInitialLearnRateエントリから学習オプション“InitialLearnRate”の値が読み込まれます。

実験を実行すると,実験マネージャーはセットアップ関数で定義されたネットワークに6回学習させます。各試行で,ハイパーパラメーターテーブルで指定された学習率の1つが使用されます。既定では、実験マネ、ジャ、は一度に1の試行を実行します。并行计算工具箱がある場合は,複数の試行を同時に実行できます。最良の結果を得るには,実験を実行する前に,gpuと同じ数のワ,カ,で並列プ,ルを起動します。詳細にいては,実験マネ,ジャ,を使用したネットワ,クの並列学習を参照してください。

  • 一度に1の実験の試行を実行するには,[実験マネジャ]ルストリップで[実行]をクリックします。

  • 複数の試行を同時に実行するには,[並列の使用][実行]の順にクリックします。現在の並列プールがない場合,実験マネージャーは既定のクラスタープロファイルを使用して並列プールを起動します。次に,実験マネ,ジャ,は,使用可能な並列ワ,カ,の数に応じて,複数の同時試行を実行します。

結果テ,ブルに,各試行の精度と損失が表示されます。

実験の実行中に[学習プロット]をクリックすると,学習プロットが表示され,各試行の進行状況を追跡できます。Matlabコマンドウィンドウで学習の進行状況を監視することもできます。

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

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

各試行の性能をテストするには,試行で使用した学習済みネットワークまたは試行の学習情報をエクスポートします。[実験マネ,ジャ,]ルストリップで,[エクスポ,ト][学習済みネットワ,ク]を選択するか,[エクスポ,ト][学習情報]を選択します。詳細は,信息を参照してください。

実験を閉じるには,[実験ブラウザ]ペ电子邮箱ンでプロジェクトの名前を右クリックし,[プロジェクトを閉じる]を選択します。実験マネ,ジャ,によって,プロジェクトに含まれるすべての実験と結果が閉じられます。

この例では,ハイパーパラメーターをスイープしてイメージ回帰ネットワークに学習させるように実験を構成する方法を示します。実験マネジャを使用した回帰問題の解決に関する他の例にいては,回帰用の深層学習実験の作成を参照してください。

例を開き,検査と実行が可能な事前構成済みの実験を含むプロジェクトを読み込みます。実験を開くには,[実験ブラウザ]ペesc escンで,実験の名前(Experiment1)をダブルクリックします。

または,次の手順に従って,自分で実験を構成することもできます。

1.実験マネジャを開きます。

2.[新規作成][プロジェクト]をクリックし,新しいプロジェクトの場所と名前を選択します。実験マネジャによって、プロジェクトで新しい実験が開きます。[実験]ペインには,実験を定義する説明,ハイパーパラメーター,セットアップ関数,およびメトリクスが表示されます。

3.[説明]ボックスに,実験の説明を次のように入力します。

回归预测手指的旋转角度,使用不同的初始学习率。

4.[ハ]で,myInitialLearnRateの値を0.001:0.001:0.006に置き換えます。[手法]详尽的扫描に設定されていることを確認します。

5.[セットアップ関数][編集]をクリックします。MATLABエディターでセットアップ関数が開きます。

  • 4の出力を返すようにセットアップ関数のシグネチャを変更します。これらの出力は,関数trainNetworkを呼び出して,。

函数[XTrain,YTrain,layers,options] = Experiment1_setup1(params)
  • セットアップ関数の[@ @ @ @ @ @ @ @ @ @ @ @ @]セクションを変更して,実験の学習デ,タと検証デ,タを4次元配列として定義します。この実験では,学習データと検証データはそれぞれ数字データセットからの5000枚のイメージで構成されています。各▪メ▪ジは0 ~ 9の数字で,特定の角度の回転が付けられています。回帰値は,回転角度に対応しています。このデタセットの詳細にいては,イメージデータセットを参照してください。セットアップ関数のこのセクションにある既存のコードはすべて削除してください。

[XTrain,~,YTrain] = digitTrain4DArrayData;[XValidation,~,YValidation] = digitTest4DArrayData;
  • セットアップ関数の[ネットワ,クア,キテクチャの定義]セクションを変更して,回帰用の畳み込みニュ,ラルネットワ,クを定義します。セットアップ関数のこのセクションにある既存のコ,ドはすべて削除してください。

图层= [imageInputLayer([28 28 1])卷积2dlayer (3,8,“填充”“相同”(2,)“步”2) convolution2dLayer(16日“填充”“相同”(2,)“步”32岁的,2)convolution2dLayer (3“填充”“相同”卷积2dlayer (3,32,“填充”“相同”) batchNormalizationLayer reluLayer dropoutLayer(0.2) fullyConnectedLayer(1) regressionLayer];
  • 4 次元配列XValidationおよびYValidationの検証デ,タを使用するようにセットアップ関数の[学習オプションの指定]セクションを変更します。セットアップ関数のこのセクションでは、ハイパーパラメーター テーブルのmyInitialLearnRateエントリから学習オプション“InitialLearnRate”の値を読み込みます。

选项= trainingOptions(“个”...“MaxEpochs”5,...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”30岁的...“InitialLearnRate”, params.myInitialLearnRate);

実験を実行すると,実験マネージャーはセットアップ関数で定義されたネットワークに6回学習させます。各試行で,ハイパーパラメーターテーブルで指定された学習率の1つが使用されます。各試行で,ハイパーパラメーターテーブルで指定された学習率の1つが使用されます。既定では、実験マネ、ジャ、は一度に1の試行を実行します。并行计算工具箱がある場合は,複数の試行を同時に実行できます。最良の結果を得るには,実験を実行する前に,gpuと同じ数のワ,カ,で並列プ,ルを起動します。詳細にいては,実験マネ,ジャ,を使用したネットワ,クの並列学習を参照してください。

  • 一度に1の実験の試行を実行するには,[実験マネジャ]ルストリップで[実行]をクリックします。

  • 複数の試行を同時に実行するには,[並列の使用][実行]の順にクリックします。現在の並列プールがない場合,実験マネージャーは既定のクラスタープロファイルを使用して並列プールを起動します。次に,実験マネ,ジャ,は,使用可能な並列ワ,カ,の数に応じて,複数の同時試行を実行します。

結果テ,ブルに,各試行の平方根平均二乗誤差(rmse)と損失が表示されます。

実験の実行中に[学習プロット]をクリックすると,学習プロットが表示され,各試行の進行状況を追跡できます。Matlabコマンドウィンドウで学習の進行状況を監視することもできます。

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

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

実験を閉じるには,[実験ブラウザ]ペ电子邮箱ンでプロジェクトの名前を右クリックし,[プロジェクトを閉じる]を選択します。実験マネ,ジャ,によって,プロジェクトに含まれるすべての実験と結果が閉じられます。

この例では,実験マネ,ジャ,アプリを使用して実験を設定する方法を示します。

実験の定義は,説明,ハイパーパラメーターテーブル,セットアップ関数,および実験の結果を評価するためのメトリクス関数の集合(オプション)で構成されます。

[説明]ボックスに,実験の説明を入力します。

[ハ]で,実験に使用する手法を選択します。

  • ハイパーパラメーター値の範囲をスイープするには,[手法][網羅的なス苹果平台,苹果平台,苹果平台,プ]に設定します。ハイパーパラメーターテーブルで,実験で使用されるハイパーパラメーターの値を指定します。ハイパーパラメーター値は,数値,逻辑値,または字符串値をもつスカラーまたはベクトルとして指定できます。。

    • 0.01

    • 0.01:0.01:0.05

    • [0.01 0.02 0.04 0.08]

    • ["sgdm" "rmsprop" "adam"]

    実験を実行すると,実験マネージャーは,テーブルで指定されたハイパーパラメーター値のすべての組み合わせを使用してネットワークに学習させます。

  • ベ化学键ズ最適化を使用して最適な学習オプションを見化学键けるには,[手法][ベ电子邮箱ズ最適化]に設定します。ハイパーパラメーターテーブルで,実験で使用される次のハイパーパラメーターのプロパティを指定します。

    • 範囲——実数値または整数値のハイパーパラメーターの下限と上限を示す2要素のベクトル,または直言ハイパーパラメーターが取り得る値をリストする字符串配列または细胞配列を入力します。

    • - - - - - -[実数](実数値のハパパラメタ),[整数](整数値のハパパラメタ),または(分类)(分类ハパパラメタ)を選択します。

    • 変換- - - - - -[なし](変換なし)または[対数](対数変換)を選択します。[対数]の場合,ハイパーパラメーターは[実数]または[整数]で正でなければなりません。ハパパラメタが検索され,対数スケルでモデル化されます。

    実験を実行すると,実験マネジャはハパパラメタの最適な組み合わせを検索します。。実験の期間を指定するには,[ベ电子邮箱ズ最適化オプション]で,実行する最大時間(秒単位)と最大試行回数を入力します。ベaapl . exe,统计和机器学习工具箱が必要です。詳細にいては,ベズ最適化を使用した実験ハパパラメタの調整を参照してください。

[セットアップ関数]は,実験用の学習デ,タ,ネットワ,クア,キテクチャ,および学習オプションを構成します。ルドをも结构体です。セットアップ関数の出力は,関数trainNetworkの入力と一致しなければなりません。以下の表は,セットアップ関数でサポ,トされているシグネチャの一覧です。

実験の目的 セットアップ関数のシグネチャ
入力洛桑国际管理发展学院を使用して,。
函数[imds,layers,options] =实验者设置(params)...结束
デ,タストアdsを使用してネットワ,クに学習させる。
函数[ds,layers,options] =实验者设置(params)...结束
予測子変数を格納する数値配列X,カテゴリカルラベルまたは数値応答を格納するY
函数[X,Y,layers,options] = Experiment_setup(params)...结束
シ,ケンスまたは時系列予測子を格納する序列,応答を格納するYを使用して,シ,ケンス分類問題およびシ,ケンス回帰問題用のネットワ,クに学習させる。
函数[sequence,Y,layers,options] = Experiment_setup(params)...结束
数値デタまたはデタへのファルパスを格納する表资源描述を使用して,分類問題および回帰問題用のネットワ,クに学習させる。
函数[tbl,layers,options] = Experiment_setup(params)...结束
资源描述で応答変数を指定するresponseNamesを使用して,分類問題と回帰問題用のネットワ,クに学習させる。
函数[tbl,responseNames, options] = Experiment_setup(params)...结束

メモ

学習オプションExecutionEnvironment“multi-gpu”または“平行”に設定するか,学習オプションDispatchInBackgroundを有効にした場合,実験マネ,ジャ,は並列実行をサポ,トしません。詳細にいては,実験マネ,ジャ,を使用したネットワ,クの並列学習を参照してください。

[メトリクス]セクションは,実験結果を評価するための関数を指定します。メトリクス関数への入力は,以下の3结构体です。

メトリクス関数の出力は,スカラー数,逻辑値,または字符串でなければなりません。

実験でベ电子邮箱ズ最適化を使用する場合は,[最適化]リストから最適化するメトリクスを選択します。[方向]リストで,このメトリクスの[最大化]または[最小化]を指定します。実験マネージャーは,このメトリクスを使用して,実験に最適なハイパーパラメーターの組み合わせを決定します。学習または検証の標準的メトリクス(精度,RMSE,損失など)を選択することも,テーブルからカスタムメトリクスを選択することもできます。

この例では,実験の実行結果を比較する方法を示します。

実験を実行すると,実験マネ,ジャ,はセットアップ関数で定義されたネットワ,クに複数回学習させます。。実験が終了すると,各試行の学習メトリクスおよび検証メトリクス(精度,RMSE,損失など)がテーブルに表示されます。実験の結果を比較するには,学習メトリクスおよび検証メトリクスを使用して,結果テーブルを並べ替えたり,試行をフィルター処理したりできます。

結果テーブルで試行を並べ替えるには,学習メトリクスまたは検証メトリクスに対応する列のドロップダウンメニューを使用します。

  1. 並べ替える列のヘッダをポントします。

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

  3. [昇順で並べ替え]または[降順で並べ替え]を選択します。

    结果表显示验证精度列的下拉菜单。

結果テ,ブルから試行をフィルタ,処理するには,[フィルタ]ペ@ @ンを使用します。

  1. [実験マネ,ジャ,]ルストリップで,[フィルタ]を選択します。

    [フィルタ]ペ@ @ンに,結果テ@ @ブルの数値メトリクスのヒストグラムが表示されます。[フィルタ]ペンからヒストグラムを削除するには,結果テブルで,対応する列のドロップダウンメニュを開き,[フィルタ,の表示]チェックボックスをオフにします。

  2. フィルター処理する学習メトリクスまたは検証メトリクスのヒストグラムの下にあるスライダーを調整します。

    验证损失直方图,过滤器滑块设置为1.45和1.55。

    結果テ、ブルには、選択した範囲のメトリクス値をも、試行のみが表示されます。

    结果表仅显示验证损失在1.45到1.55之间的试验。

  3. 結果テ,ブルのすべての試行を復元するには,(实验结果)ペ电子邮箱ンを閉じ,[実験ブラウザ]ペ@ @ンから結果を再度開きます。

この例では,特定の結果を生成した実験の構成を検査する方法を示します。

実験を実行した後,【实验ソ,ス】ペインを開いて,実験の説明とハイパーパラメーターテーブルの読み取り専用コピー,および実験によって呼び出されたセットアップ関数とメトリクス関数へのリンクを表示できます。このペインの情報を使用して,各結果を生成するデータ,ネットワーク,および学習オプションの構成を追跡できます。

たとえば,実験を複数回実行するとします。実験を実行するたびに,セットアップ関数の内容を変更しますが,名前は常に同じものを使用します。最初に実験を実行するときは,セットアップ関数テンプレートによって提供される既定の分類ネットワークを使用します。2回目に実験を実行するときは,セットアップ関数を変更して,事前学習済みのGoogLeNetネットワークを読み込み,最終層を転移学習用の新しい層に置き換えます。これら2分類用の深層学習実験の作成を参照してください。

最初の(实验结果)ペ电子邮箱ンで,[実験のソ,スの表示]リンクをクリックします。実験マネジャは、最初の結果セットを生成した実験の定義を含む【实验ソ,ス】ペ@ @ンを開きます。ペesc escンの下部にあるリンクをクリックして,最初の実験の実行時に使用したセットアップ関数を開きます。このセットアップ関数をコピ,し,シンプルな分類ネットワ,クを使用して実験を再実行できます。

2番目の(实验结果)ペ电子邮箱ンで,[実験のソ,スの表示]リンクをクリックします。実験マネジャは、2 番目の結果セットを生成した実験の定義を含む【实验ソ,ス】ペ@ @ンを開きます。ペインの下部にあるリンクをクリックして,2回目の実験の実行時に使用したセットアップ関数を開きます。このセットアップ関数をコピ,し,転移学習を使用して実験を再実行できます。

使用するセットアップ関数とカスタムメトリクス関数のコピーが実験マネージャーによって保存されるため,実験を変更して再実行するときに,これらの関数の名前を手動で変更する必要はありません。

関連する例

ヒント

ハ,構築,学習を行うには,ディプネットワクデザナアプリを試してください。

R2020aで導入