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

trainingOptions

深層学習ニューラル ネットワークの学習のオプション

説明

选项=trainingOptions(solverName)は、solverNameによって指定されるオプティマイザーの学习オプションを返します。ネットワークに学习させるには,学习オプションを关数trainNetworkへの入力引数として使用します。

选项=trainingOptions(solverName,的名字,Value)を返します

すべて折りたたむ

反復ごとに64個の観測値があるミニバッチを使用します。学習の進行状況プロットをオンにします。

选项=trainingOptions('新加坡元',...'LearnRateSchedule',“分段”,...'LearnRateDropFactor',0.2分,...“LearnRateDropPeriod”5,...'MaxEpochs',2个0个,...'MiniBatchSize',64,...“情节”,“训练进步”)
选择= TrainingOptionsSGDM属性:动力:0.9000 InitialLearnRate: 0.0100 LearnRateScheduleSettings: [1 x1 struct] L2Regularization: 1.0000 e-04 GradientThresholdMethod:“l2norm”GradientThreshold:正MaxEpochs: 20 MiniBatchSize: 64详细:1 VerboseFrequency: 50 ValidationData: [] ValidationFrequency: 50 ValidationPatience:正洗牌:一旦CheckpointPath:”ExecutionEnvironment:‘汽车’WorkerLoad: [] OutputFcn:[]阴谋:“训练进步”SequenceLength:“最长的”SequencePaddingValue: 0 SequencePaddingDirection:“right”DispatchInBackground: 0 ResetInputNormalization: 1

深层学习のネットワークに学习させる场合,学习の进行状况を监视すると役に立つことがよくあります。学习中のさまざまなメトリクスのプロットにより,学习の进行状况を知ることができます。たとえば,ネットワークの精度が改善されているかどうか,その改善の速度,さらにネットワークで学习データへの过适合が始まっているかどうかを判定できます。

trainingOptions“情节”の値として“训练进步”を指定してネットワークの学習を開始すると,trainNetwork图12工作流程图各反复は,勾配の推定と,ネットワークパラメーターの更新で构成されます。trainingOptionsに検证データを指定すると,trainNetworkによってネットワークが検証されるたびに图に検証メトリクスが表示されます.Figureには次がプロットされます。

  • 学習精度——個々のミニバッチの分類精度。

  • 平滑化後の学習精度——学習精度に平滑化アルゴリズムを適用することによって求められる,平滑化された学習精度。精度を平滑化していない場合よりノイズが少なく,傾向を見つけやすくなります。

  • 検証精度— (trainingOptionsを使用して指定された) 検証セット全体に対する分類精度。

  • 学習損失平滑化後の学習損失検证损失それぞれ、各ミニバッチの損失、その平滑化バージョン、検証セットの損失。ネットワークの最後の層がclassificationLayerである場合、損失関数は交差エントロピー損失です。分類問題と回帰問題の損失関数の詳細は、出力層を参照してください。

回帰ネットワークの场合,图には精度ではなく平方根平均二乘误差(RMSE)がプロットされます。

Figure では、影付きの背景を使用して各学習エポックがマークされます0.1エポックは,データセット全体を一巡することです。

学習中、右上隅の停止ボタンをクリックして学習を停止し、ネットワークの現在の状態を返すことができます。たとえば、ネットワークの精度が横ばい状態に達し、これ以上改善されないことが明確な場合に、学習の停止が必要になることがあります。停止ボタンのクリックの後、学習が完了するまでしばらくかかることがあります。学習が完了すると、trainNetworkが学習済みネットワークを返します。

学習が終了すると,[结果]に最終検証精度と学習の終了理由が表示されます。最終検証メトリクスには,プロット内で[最后]というラベルが付いています。ネットワークにバッチ正規化層が含まれている場合、通常、最終検証メトリクスは学習中に評価される検証メトリクスとは異なります。これは、最終的なネットワークのバッチ正規化層では、学習中とは異なる処理が実行されるためです。

右側には、学習の時間と設定に関する情報が表示されます。学習オプションの詳細は、パラメーターの設定と畳み込みニューラル ネットワークの学習を参照してください。

学習時の進行状況のプロット

ネットワークに学习させ,学习中にその进行状况をプロットします。

26908页

[XTrain, YTrain] = digitTrain4DArrayData;idx = randperm(大小(XTrain, 4), 1000);XValidation = XTrain (:,:,:, idx);XTrain (::,:, idx) = [];YValidation = YTrain (idx);YTrain (idx) = [];

数字のイメージ データを分類するネットワークを構築します。

层=[imageInputLayer([28 28 28 1])卷积2dlayer(3,8,'填充','same')batchNormalizationLayer reluLayer maxPooling2dLayer(2,'跨步'2)convolution2dLayer(16日'填充','same')batchNormalizationLayer reluLayer maxPooling2dLayer(2,'跨步'32岁的,2)convolution2dLayer (3'填充','same')batchNormalizationLayer reluLayer fullyConnectedLayer(10)softmaxLayer classificationLayer];

ネットワーク学習のオプションを指定します。学習中に一定の間隔でネットワークを検証するための検証データを指定します。エポックごとに約 1 回ネットワークが検証されるように、“ValidationFrequency”の値を選択します。学習時の進行状況をプロットするため、“情节”の値として“训练进步”を指定します。

选项=trainingOptions('新加坡元',...'MaxEpochs',8岁,...'ValidationData'{XValidation,YValidation}...“ValidationFrequency”30岁的...“详细”,false,...“情节”,“训练进步”);

ネットワークの学習。

净= trainNetwork(XTrain,YTrain,层,选项);

入力引数

すべて折りたたむ

ネットワークの学习用のソルバー,次のいずれかに指定します。

  • '新加坡元'—モーメンタム項付き確率的勾配降下法(SGDM) オプティマイザーを使用します。モーメンタム項の値は、名前と値のペアの引数'Momentum'を使用して指定できます。

  • “rmsprop”- RMSPropオプティマイザーを使用します勾配の二乘の移动平均の减衰率は,名前と値のペアの引数'平方半径衰减因子'を使用して指定できます。

  • “亚当”-二、二'梯度衰减因子''平方半径衰减因子'をそれぞれ使用して指定できます。

さまざまなソルバーの详细は,確率的勾配降下法を参照してください。

名前と値のペアの引数

オプションの引数的名字,Valueのコンマ区切りペアを指定します。的名字は引数名で,Valueは対応する値です。的名字は引用符で囲まなければなりません。名称1,值1,…,名称n,值nのように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例:“InitialLearnRate”, 0.03,“L2Regularization”, 0.0005,“LearnRateSchedule”、“分段”は,初期学習率を0.03,2个正則化係数を 0.0005 に指定し、指定されたエポック数ごとに特定の係数を乗算して学習率を下げるように指定します。

プロットと表示

すべて折りたたむ

ネットワークの学习中に表示するプロット。“情节”と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • '无'——学習中にプロットを表示しません。

  • “训练进步”- 。学习の进行状况をプロットしますプロットには,ミニバッチの损失と精度,検证の损失と精度,および学习の进行状况に关する追加情报が表示されますプロットの右上隅には,停止ボタンがあります。そのボタンをクリックすると,学習が停止し,ネットワークの現在の状態が返されます。学習の進行状況プロットの詳細は,深層学習における学習の進行状況の監視を参照してください。

例:“情节”,“培训,进步”

コマンド ウィンドウに学習の進行状況の情報を表示するかどうかのインジケーター。“详细”と、1个(true) または0个(false)のいずれかで构成されるコンマ区切りのペアとして指定します。

详细出力には次の情报が表示されます。

分類ネットワーク

フィールド 説明
纪元 一、一
迭代 反復回数。反復は、ミニバッチに対応します。
T型我米e Elapsed 経過時間。時間、分、秒で示されます。
小批量精度 ミニバッチの分類精度。
Validation Accuracy 検証データの分類精度。検証データを指定しない場合、このフィールドは表示されません。
小批量损失 ミニバッチの損失。出力層がClassificationOutputLayerオブジェクトの場合、損失は、互いに排他的なクラスを含むマルチクラス分類問題の交差エントロピー損失です。
验证损失 検证データの损失。出力层がClassificationOutputLayerオブジェクトの場合、損失は、互いに排他的なクラスを含むマルチクラス分類問題の交差エントロピー損失です。検証データを指定しない場合、このフィールドは表示されません。
基础学习率 基本学習率。層の学習率係数とこの値が乗算されます。

回帰ネットワーク

フィールド 説明
纪元 一、一
迭代 反復回数。反復は、ミニバッチに対応します。
T型我米e Elapsed 経過時間。時間、分、秒で示されます。
Mini-batch RMSE ミニバッチの平方根平均二乗誤差(RMSE)
验证RMSE 検証データのRMSE。検証データを指定しない場合,このフィールドは表示されません。
小批量损失 ミニバッチの損失。出力層がRegressionOutputLayerオブジェクトの場合、損失は半平均二乗誤差になります。
验证损失 検证データの损失。出力层がRegressionOutputLayerオブジェクトの場合、損失は半平均二乗誤差になります。検証データを指定しない場合、このフィールドは表示されません。
基础学习率 基本学習率。層の学習率係数とこの値が乗算されます。

検証データを指定するには、名前と値のペア'ValidationData'を使用します。

例:“详细”,假的

コマンド ウィンドウへの表示間の反復回数を示す、詳細出力の頻度。'VerboseFrequency'と正の整数で構成されるコンマ区切りのペアとして指定します。このオプションは,“详细”の値がtrueに等しい場合にのみ有効です。

学習中にネットワークを検証する場合、trainNetworkでも、検証時に毎回、コマンド ウィンドウへの出力が行われます。

例:'VerboseFrequency',100

ミニバッチオプション

すべて折りたたむ

学习に使用するエポックの最大回数。'MaxEpochs'と正の整数で構成されるコンマ区切りのペアとして指定します。

反復とは、勾配降下法アルゴリズムでミニバッチを使用して損失関数の最小化を目指して実行される 1 ステップのことです。1 エポックは、データセット全体を一巡することです。

例:'MaxEpochs',20

学習の各反復で使用するミニバッチのサイズ。'MiniBatchSize'と正の整数で構成されるコンマ区切りのペアとして指定します。ミニバッチとは、損失関数の勾配を評価し、重みを更新するために使用される学習セットのサブセットのことです。確率的勾配降下法を参照してください。

例:'MiniBatchSize',256

データのシャッフルのオプション。“洗牌”と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'once'—学習前に 1 回、学習データと検証データをシャッフルします。

  • “永远”— データをシャッフルしません。

  • “every-epoch”— 各学習エポックの前に学習データをシャッフルし、ネットワークの各検証の前に検証データをシャッフルします。ミニバッチのサイズによって学習標本の数が均等に分割されない場合、trainNetworkは、各エポックの最後の完全なミニバッチに収まらない学習データを破棄します。すべてのエポックで同じデータが破棄されるのを回避するには、“洗牌”の値を“every-epoch”に設定します。

例:“洗牌”,“每个历元”

検証

すべて折りたたむ

学习中に検证に使用するデータ。イメージデータストア,2列の表または2列の细胞配列のデータを返すデータストア,表,または细胞配列として指定します。検证データの形式はタスクのタイプによって异なり,关数trainNetworkへの有効な入力に対応します。

このオプションは,単一の入力のみがあるネットワークをサポートします。

イメージデータ

イメージデータの場合、検証データを次のいずれかに指定します。

入力 説明 詳細
イメージ データストア

绝对的ラベル付きの图像数据存储オブジェクト。

trainNetworkの引数imds公司
データストア 表2列のまたは2列の细胞配列のデータを返すデータストア。ここで,2つの列はそれぞれネットワーク入力と予測される応答を指定します。 trainNetworkの引数ds公司
table

れます

trainNetworkの引数待定
细胞配列{X,Y}

イメージの数値配列。

trainNetworkの引数
是的

ラベルの categorical ベクトル、数値応答の行列、またはイメージの配列。

trainNetworkの引数是的

シーケンス データおよび時系列データ

シーケンス データおよび時系列データの場合、検証データを次のいずれかに指定します。

入力 説明 詳細
细胞配列{序列,Y} sequences

シーケンスデータまたは時みデータの列单元

trainNetworkの引数sequences
是的

(二)

trainNetworkの引数是的
table

1ァイルパスが含まれる表

trainNetworkの引数待定

学習中に、trainNetworkは検証データの検証精度と検証損失を計算します。検証頻度を指定するには,名前と値のペアの引数“ValidationFrequency”を使用します。検証データを使用して、検証損失が減少しなくなったときに学習を自動的に停止することもできます。自動検証停止をオンにするには、名前と値のペアの引数“ValidationPatience”を使用します。

ネットワークに予測時と学習中で動作が異なる層 (ドロップアウト層など) がある場合、検証精度が学習 (ミニバッチ) 精度より高くなる可能性があります。

検証データは、“洗牌”の値に従ってシャッフルされます。“洗牌”の値が“every-epoch”に等しい场合,検证データはネットワークの各検证の前にシャッフルされます。

ネットワークの検証の頻度 (反復回数)。“ValidationFrequency”と正の整数で構成されるコンマ区切りのペアとして指定します。

“ValidationFrequency”の値は,検证メトリクスの评価间の反复回数です。検证データを指定するには,名前と値のペアの引数'ValidationData'を使用します。

例:“ValidationFrequency”, 20

ネットワークの学習の検証停止までの待機回数。“ValidationPatience”と,正の整数または中导で构成されるコンマ区切りのペアとして指定します。

“ValidationPatience”の値は,ネットワークの学習が停止するまでに,検証セットでの損失が前の最小損失以上になることが許容される回数です。自動検証停止をオンにするには,“ValidationPatience”の値として正の整数を指定します。既定値の中导を使用すると、最大回数のエポックの後に学習が停止します。検証データを指定するには、名前と値のペアの引数'ValidationData'を使用します。

例:“ValidationPatience”,5个

ソルバー オプション

すべて折りたたむ

学習に使用する初期学習率。'InitialLearnRate'と正のスカラーで構成されるコンマ区切りのペアとして指定します。既定値は、'新加坡元'第0.01条“rmsprop”および“亚当”合、贷

例:'InitialLearnRate',0.03

データ型:|

学習中に学習率を下げるオプション。'LearnRateSchedule'と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • '无'- 学习率は学习全体を通じて一定のままです。

  • “分段”——特定のエポック数ごとに特定の係数を乗算して学習率が更新されます。この係数の値を指定するには,名前と値のペアの引数清除速率因子を使用します。乗算の間隔のエポック数を指定するには、名前と値のペアの引数LearnRateDropPeriodを使用します。

例:'LearnRateSchedule', '分段'

学習率を下げるまでのエポック数。“LearnRateDropPeriod”と正の整数で構成されるコンマ区切りのペアとして指定します。このオプションは,一earnRateScheduleの値が“分段”の場合にのみ有効です。

指定したエポック数が経過するたびに,グローバル学習率と低下係数が乗算されます。名前と値のペアの引数清除速率因子を使用して低下系数を指定します。

例:'LearnRateDropPeriod',3

学习率を下げる系数。'LearnRateDropFactor'一earnRateScheduleの値が“分段”の場合にのみ有効です。

清除速率因子は,特定のエポック数が経過するたびに学習率に適用される乗法係数です。名前と値のペアの引数LearnRateDropPeriodを使用してエポック数を指定します。

例:'LearnRateDropFactor',0.1

データ型:|

2个正則化 (重み減衰) の係数。'L2Regularization'と非负のスカラーで构成されるコンマ区切りのペアとして指定します。详细は,L2正則化を参照してください。

学習可パラメーターのあるネトワ゘クに対してL2个正則化の乗数を指定できます。詳細は、畳み込み層と全結合層のパラメーターの設定を参照してください。

例:'L2Regularization',0.0005

データ型:|

モーメンタム項付き確率的勾配降下法における前の反復から現在の反復へのパラメーター更新ステップの寄与。'Momentum'と0から1までのスカラーで构成されるコンマ区切りのペアとして指定します。値0は前のステップからの寄与がないことを意味し,値1は前のステップからの寄与が最大であることを意味します。

'Momentum'の値を指定するには、solverName'新加坡元'に設定しなければなりません。ほとんどの問題において、既定値で良い結果が得られます。さまざまなソルバーの詳細は、確率的勾配降下法を参照してください。

例:'Momentum',0.95

データ型:|

Adamソルバーの勾の移動平均の減衰率'梯度衰减因子'と0から1までのスカラーで構成されるコンマ区切りのペアとして指定します。[四]では、勾配の減衰率はβ1个で表されています。

'梯度衰减因子'の値を指定するには、solverName“亚当”に設定しなければなりません。ほとんどの問題において、既定値で良い結果が得られます。さまざまなソルバーの詳細は、確率的勾配降下法を参照してください。

例:“GradientDecayFactor”, 0.95

データ型:|

亚当·姆斯普罗普(AdamおよびRMSPropソルバーの勾の二乗の移動平均の減衰率)'平方半径衰减因子'と1未満の非负のスカラーで构成されるコンマ区切りのペアとして指定します。[四]では,勾配の二乗の減衰率はβ2个で表されています。

'平方半径衰减因子'の値を指定するには、solverName“亚当”または“rmsprop”に設定しなければなりません。減衰率の一般的な値は 0.9、0.99、および 0.999 であり、平均化の長さとしては 10、100、および 1000 回のパラメーター更新にそれぞれ対応しています。さまざまなソルバーの詳細は、確率的勾配降下法を参照してください。

solverName“亚当”の場合、'平方半径衰减因子'の既定値は0.999です。solverName“rmsprop”の場合、'平方半径衰减因子'の既定値は0.9です。

例:“平方半径衰减因子”,0.99

データ型:|

亚当およびRMSPropソルバーの分母のオフセット“小量”と正のスカラーで構成されるコンマ区切りペアとして指定します。ソルバーは、ネットワーク パラメーターの更新時に分母にオフセットを追加して、ゼロ除算を回避します。

“小量”の値を指定するには、solverName“亚当”または“rmsprop”に設定しなければなりません。ほとんどの問題において、既定値で良い結果が得られます。さまざまなソルバーの詳細は、確率的勾配降下法を参照してください。

例:“Epsilon”,1e-6

データ型:|

入力層の正規化をリセットするオプション。次のいずれかに指定します。

  • true- 入力层の正规化统计量をリセットし,学习时に再计算します。

  • false– 正規化統計量が空の場合、学習時に計算します。

勾配クリップ

すべて折りたたむ

勾配のしきい値。'GradientThreshold'中导または正のスカラーで構成されるコンマ区切りのペアとして指定します。勾配がGradientThresholdの値を超えた場合、勾配はGradientThresholdMethodに応じてクリップされます。

例:“GradientThreshold”6

勾配のしきい値を超えた勾配の値をクリップするために使用する勾配しきい値法。“GradientThresholdMethod”と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • ‘L2型’-学習可パラメーターの勾のL2个ノルムがGradientThresholdより大きい场合は,L2个ノルムがGradientThresholdに等しくなるように勾配をスケーリングします。

  • “全球l2norm”-グローバルL2个ノルムLがGradientThresholdより大きい场合は,すべての勾配を梯度阈值/大号倍にスケーリングします。グローバル大号2个ノルムでは,すべての学習可能なパラメーターが考慮されます。

  • 'absolute-value'- 学习可能なパラメーターの勾配に含まれる个々の偏微分の绝対値がGradientThresholdより大きい場合、偏微分の符号を維持したまま、大きさがGradientThresholdに等しくなるように偏微分をスケーリングします。

详细は,勾配クリップを参照してください。

例:“GradientThresholdMethod”,“全球l2norm”

シーケンス オプション

すべて折りたたむ

入力シーケンスのパディング、切り捨て、または分割を行うオプション。次のいずれかに指定します。

  • '最长'——各ミニバッチで,最長のシーケンスと同じ長さになるようにシーケンスのパディングを行います。このオプションを使用するとデータは破棄されませんが,パディングによってネットワークにノイズが生じることがあります。

  • '最短'- 各ミニバッチで,最短のシーケンスと同じ长さになるようにシーケンスの切り舍てを行いますこのオプションを使用するとパディングは追加されませんが,データが破弃されます。

  • 正の整数——各ミニバッチで,ミニバッチで最長のシーケンスより大きい,指定長の最も近い倍数になるようにシーケンスのパディングを行った後,それらのシーケンスを指定長のより小さなシーケンスに分割します。分割が発生すると,追加のミニバッチが作成されます。シーケンス全体がメモリに収まらない場合は,このオプションを使用します。または,'MiniBatchSize'オプションをより小さい値に設定して、ミニバッチごとのシーケンス数を減らしてみます。

入力シーケンスのパディング,切り舍て,および分割の效果の详细は,シーケンスのパディング、切り捨て、および分割を参照してください。

例:'SequenceLength', '最短'

パディングまたは切り捨ての方向。次のいずれかに指定します。

  • '对'— シーケンスの右側に対してパディングまたは切り捨てを行います。シーケンスは同じタイム ステップで始まり、シーケンスの末尾に対して切り捨てまたはパディングの追加が行われます。

  • 'left'— シーケンスの左側に対してパディングまたは切り捨てを行います。シーケンスが同じタイム ステップで終わるように、シーケンスの先頭に対して切り捨てまたはパディングの追加が行われます。

一、二输出模式プロパティが'最后'の场合,最后のタイムステップでパディングを行うと层の出力に悪影响を与える可能性があります。シーケンスデータの左侧に対してパディングまたは切り舍てを行うには,'SequencePaddingDirection'オプションを'left'に設定します。

sequence-to-sequence ネットワークの場合 (各 LSTM 層について输出模式プロパティが'sequence'である場合)、最初のタイム ステップでパティングを行うと、それ以前のタイム ステップの予測に悪影響を与える可能性があります。シーケンスの右側に対してパディングまたは切り捨てを行うには、'SequencePaddingDirection'オプションを'对'に設定します。

入力シーケンスのパディング,切り舍て,および分割の效果の详细は,シーケンスのパディング、切り捨て、および分割を参照してください。

入力シーケンスをパディングする値。スカラーとして指定します。このオプションは、SequenceLength'最长'または正の整数の場合にのみ有効です。ネットワーク全体にエラーが伝播される可能性があるため、でシーケンスをパディングしないでください。

例:'序列填充值',-1

ハードウェア オプション

すべて折りたたむ

ネットワークの学习用のハードウェアリソース。次のいずれかに指定します。

  • '自动'- 利用可能な场合,GPUを使用しますそうでない场合,CPUを使用します。

  • '中央处理器'—CPU を使用します。

  • 'GPU'-通用公共事业部

  • “multi-gpu”—既定のクラスター プロファイルに基づいてローカルの並列プールを使用して、1 つのマシンで複数の GPU を使用します。現在の並列プールがない場合、使用可能な GPU の数と等しいプール サイズの並列プールが起動されます。

  • 'parallel'-通用公共事业单位12409;てのCPUワーカーで学習が実されます

さまざまな実行環境をどのような場合に使用するかの詳細は、并列およびクラウドでの深层学习のスケールアップを参照してください。

GPU,マルチGPU,および並列オプションには并行计算工具箱™が必要です。深層学習にGPUを使用するには,以3.0计算能力上のCUDA®対応英伟达®GPUも必ですこれらのいずれかのオプションの選択時に并行计算工具箱または適切なGPUを利用できない場合,エラーが返されます。

並列学習の実行時に性能の改善を確認するには、MiniBatchSizeおよびInitialLearnRate学习オプションをGPUの数でスケールアップしてみてください。

れます

マルチGPUでの学習または並列学習に使用されるデータストアは分割可能でなければなりません。詳細については,并列学习およびバックグラウンドディスパッチへのデータストアの使用を参照してください。

“multi-gpu”オプションを分割可能な入力データストアおよび'DispatchInBackground'オプションと共に使用すると、既定のプール サイズと等しいサイズの並列プールが起動されます。固有の GPU を持つワーカーは学習計算を実行します。残りのワーカーはバックグラウンド ディスパッチ用に使用されます。

例:“ExecutionEnvironment”、“cpu的

GPUまたはCPU間での並列ワーカーの負荷分割。'工作负载'と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • クグウわドィスパチを効にしほニバッチデータストアのデータを使用してネットワークの学習を行う場合、残りのワーカーはバックグラウンドでデータを取得して処理します。

  • 正の整数 — ネットワーク学習計算に使用する各マシンのワーカー数。バックグラウンド ディスパッチを有効にしたミニバッチ データストアのデータを使用してネットワークの学習を行う場合、残りのワーカーはバックグラウンドでデータを取得して処理します。

  • 数値ベクトル — 並列プール内の各ワーカーのネットワーク学習の負荷。ベクトル西の场合,ワーカーW(我)/ (W)和一、二、三バックグラウンドでのデータ取得に使用できます。指定するベクトルには、並列プール内のワーカーごとに 1 つの値が含まれていなければなりません。

并列プールからGPUにアクセスできる场合,固有のGPUを持たないワーカーは学习计算に使用されません.GPUを持つプールの场合,既定では,固有のGPUを持つすべてのワーカーを学习计算に使用し,残りのワーカーをバックグラウンドディスパッチに使用します。プールからGPUにアクセスできず,CPUを学习に使用する场合,既定では,マシンあたり1つのワーカーをバックグラウンドデータディスパッチに使用します。

バックグラウンドディスパッチ(非同期事前取得キュー)を使用した,データストアからの学習データの読み取り。falseまたはtrue并行计算工具箱

DispatchInBackgroundは、分割可能なデータストアでのみサポートされます。詳細については、并列学习およびバックグラウンドディスパッチへのデータストアの使用を参照してください。

チェックポイント

すべて折りたたむ

チェックポイントネットワークの保存用のパス。'CheckpointPath'と文字ベクトルで构成されるコンマ区切りのペアとして指定します。

  • パスを指定しない(既定の''を使用する) 場合、チェックポイント ネットワークは保存されません。

  • パスを指定すると、trainNetworkによってエポックの終了ごとにこのパスにチェックポイント ネットワークが保存され、各ネットワークに一意の名前が割り当てられます。その後、いずれかのチェックポイント ネットワークを読み込み、そのネットワークから学習を再開できます。

    フォルダーが存在していない場合,チェックポイントネットワークを保存するパスを指定する前に,まずフォルダーを作成しなければなりません。指定したパスが存在していない場合,trainingOptionsはエラーを返します。

ネットワーク チェックポイントの保存の詳細は、チェックポイントネットワークの保存と学习の再开を参照してください。

例:'CheckpointPath', 'C:\ TEMP \关卡'

データ型:烧焦

学習中に呼び出す出力関数。'OutputFcn'12375ますtrainNetworkは,学习の开始前に1回,各反复后,学习の终了后に1回,指定された关数を呼び出します。trainNetworkは、次のフィールドに情報を格納する構造体を渡します。

フィールド 説明
纪元 现在のエポック数
迭代 現在の反復回数
TimeSinceStart 学習を開始してからの時間(秒単位)
T型rainingLoss 現在のミニバッチの損失
验证损失 検証データの損失
BaseLearnRate 現在の基本学習率
训练准确性 现在のミニバッチの精度(分类ネットワーク)
TrainingRMSE 现在のミニバッチのRMSE(回帰ネットワーク)
验证准确性 検証データの精度 (分類ネットワーク)
ValidationRMSE 検证データのRMSE(回帰ネットワーク)
国家 現在の学習の状態 (可能な値は“开始”“迭代”、または“完成”)

フィールドが計算されない、または出力関数の特定の呼び出しに関連していない場合、そのフィールドには空の配列が含まれます。

出力関数を使用して、進行状況を表示またはプロットするか、学習を停止できます。学習を早期に停止するには、出力関数がtrueを返すようにします。いずれかの出力关数からtrueが返されると,学習が終了し,trainNetworkから最新のネットワークが返されます。出力関数の使用方法を示す例は、深層学習ネットワークの学習時の出力のカスタマイズを参照してください。

データ型:功能手柄|cell

出力引数

すべて折りたたむ

学习オプション。TrainingOptionsSGDM培训选项rmsprop、またはTrainingOptionsADAMオブジェクトとして返されます。ニューラルネットワークに学習させるには,学習オプションを関数trainNetworkへの入力引数として使用します。

solverName'新加坡元'“rmsprop”、または“亚当”に等しい场合,学习オプションはTrainingOptionsSGDM培训选项rmsprop、またはTrainingOptionsADAMオブジェクトとしてそれぞれ返されます。

ヒント

  • ほとんどの深層学習タスクでは、事前学習済みのネットワークを使用して独自のデータに適応させることができます。転移学習を使用して、畳み込みニューラル ネットワークの再学習を行い、新しい一連のイメージを分類する方法を示す例については、新しいイメージを分类するための深层学习ネットワークの学习を参照してください。または,一ayerGraphオブジェクトを関数trainNetworkおよび関数trainingOptionsと共に使用して,ネットワークを作成してゼロから学习させることができます。

    タスクに必要な学習オプションが関数trainingOptionsに用意されていない場合、自動微分を使用してカスタム学習ループを作成できます。詳細については、カスタム学习ループの定义を参照してください。

アルゴリズム

すべて折りたたむ

初期の重みとバイアス

初期重みの既定値は,平均0,标准偏差0.01のガウス分布に従います。初期バイアス値の既定値は0です。重みとバイアスの初期化は手动で変更できます。畳み込み層の初期の重みとバイアスの指定および全結合層の初期の重みとバイアスの指定を参照してください。

確率的勾配降下法

標準の勾配降下法アルゴリズムは,各反復で損失の負の勾配の方向に小さいステップで進むことによって損失関数を最小化するように,ネットワークパラメーター(重みとバイアス)を更新します。

θ + 1个 = θ α E类 ( θ ) ,

ここで、 は反复回数, α > 0个 は学習率、 θ はパラメーター ベクトル、 E类 ( θ ) は损失关数を意味します。标准の勾配降下法アルゴリズムでは,损失关数の勾配 E类 ( θ ) は,学习セット全体を使用して评価されます。标准の勾配降下法アルゴリズムでは,データセット全体を一度に使用します。

一方,“確率的“勾配降下法アルゴリズムは,各反復で学習データのサブセットを使用して勾配を評価し,パラメーターを更新します。各反復ではミニバッチと呼ばれる別のサブセットが使用されます。ミニバッチを使用して,学習セット全体に対する学習アルゴリズムを一巡することを,1“エポック”と言います。確率的勾配降下が確率的と言われるのは,ミニバッチを使用して計算されたパラメーター更新が,データセット全体を使用して得られるパラメーター更新のノイズを含む推定であるためです。名前と値のペアの引数'MiniBatchSize''MaxEpochs'をそれぞれ使用して,ミニバッチのサイズとエポックの最大回数を指定できます。

モーメンタム項付き確率的勾配降下法

確率的勾配降下法アルゴリズムは,最適値への最急降下経路に沿って振動することがあります。パラメーター更新へのモーメンタム項の追加は,この振動を減らす方法の1つです[2]。モーメンタム項付き確率的勾配降下法 (SGDM) の更新は、以下のとおりです。

θ + 1个 = θ α E类 ( θ ) + γ ( θ θ 1个 ) ,

ここで、 γ は、前の勾配ステップから現在の反復への寄与を決定します。名前と値のペアの引数'Momentum'を使用してこの値を指定できます。モーメンタム项付き确率的勾配降下法アルゴリズムを使用してニューラルネットワークの学习を行うには,solverName'新加坡元'に指定します。学習率 α の初期値を指定するには、名前と値のペアの引数'InitialLearnRate'を使用します。层やパラメーターごとに异なる学习率を指定することもできます详细。は,畳み込み層と全結合層のパラメーターの設定を参照してください。

右MSProp

モーメンタム項付き確率的勾配降下法は、すべてのパラメーターに対して 1 つの学習率を使用します。その他の最適化アルゴリズムでは、パラメーターごとに異なり、最適化対象の損失関数に自動的に適応できる学習率を使用して、ネットワーク学習の改善を試みます。RMSProp (平方根平均二乗伝播) は、そのようなアルゴリズムの 1 つです。これは、パラメーターの勾配について要素単位の二乗の移動平均を維持します。

= β 2个 1个 + ( 1个 β 2个 ) [ E类 ( θ ) ] 2个

β2个は移动平均の减衰率です。减衰率の一般的な値は,0.9,0.99,および0.999です。対応する勾配の二乘の平均化长は,1 /(1-β2个)に等しく,それぞれ10100,および1000回のパラメーター更新です。名前と値のペアの引数'平方半径衰减因子'を使用して β2个を指定できます。RMSProp アルゴリズムでは、この移動平均を使用して各パラメーターの更新を個別に正規化します。

θ + 1个 = θ α E类 ( θ ) + ε

ここで、除算は要素単位で実行されます。RMSProp を使用すると、勾配が大きいパラメーターの学習率は効果的に減少し、勾配が小さいパラメーターの学習率は増加します。ɛ は、ゼロ除算を回避するために追加する小さい定数です。名前と値のペアの引数“小量”を使用して、ɛ を指定できますが、通常は既定値で良い結果が得られます。RMSProp を使用してニューラル ネットワークの学習を行うには、solverName“rmsprop”に指定します。

亚当

亚当(自适应矩估计、適応モーメント推定)[四]では,RMSPropに似ているが,モーメンタム项が追加されたパラメーター更新を使用します。これは,パラメーターの勾配とそれらの二乘値の両方について要素単位の移动平均を维持します。

= β 1个 1个 + ( 1个 β 1个 ) E类 ( θ )

= β 2个 1个 + ( 1个 β 2个 ) [ E类 ( θ ) ] 2个

減衰率 β1个とβ2个は、名前と値のペアの引数'梯度衰减因子''平方半径衰减因子'をそれぞれ使用して指定できます。亚当では、移動平均を使用してネットワーク パラメーターを次のように更新します。

θ + 1个 = θ α + ε

多数の反復に対する勾配が類似している場合,勾配の移動平均を使用すると,パラメーター更新で特定方向のモーメンタム項を選択できます。勾配のほとんどがノイズである場合,勾配の移動平均が小さくなり,パラメーター更新も小さくなります.ɛは,名前と値のペアの引数“小量”を使用して指定できます。通常は既定値で良い結果が得られますが、特定の問題では、1 に近い大きな値の方がより良い場合があります。Adam を使用してニューラル ネットワークの学習を行うには、solverName“亚当”に指定します。亚当の完全な更新には、学習の最初に現れるバイアスを補正するメカニズムも含まれています。詳細は、[四]を参照してください。

すべての最适化アルゴリズムの学习率αは,名前と値のペアの引数'InitialLearnRate'を使用して指定します。学習率の効果は最適化アルゴリズムによって異なるため,一般的に,最適な学習率も異なります。層やパラメーターごとに異なる学習率を指定することもできます。詳細は,畳み込み層と全結合層のパラメーターの設定を参照してください。

勾配クリップ

勾配の大きさが指数関数的に増加する場合、学習は不安定になり、数回の反復で発散する場合があります。この "勾配爆発" は、学習損失がまたは中导になることによって示されます。勾配クリップでは,学習率が大きい場合や外れ値が存在する場合に学習を安定させることによって,勾配爆発を防ぎます[三]。勾配クリップを使用すると,ネットワークの学習が高速になり,通常は学習済みタスクの精度に影響はありません。

勾配クリップは2种类あります。

  • ノルムベースの勾配クリップでは,しきい値に基づいて勾配を再スケーリングし,勾配の方向は変更しません。GradientThresholdMethod‘L2型’値と“全球l2norm”値は、ノルムベースの勾配クリップ法です。

  • 値ベースの勾配クリップでは、しきい値より大きい任意の偏微分をクリップします。この場合、勾配の方向が任意に変化する可能性があります。値ベースの勾配クリップの動作は予測できないものになる場合がありますが、変化が十分に小さければ、ネットワークが発散することはありません。GradientThresholdMethodの値'absolute-value'は、値ベースの勾配クリップ法です。

例については、深層学習を使用した時系列予測深层学习を使用した序列到序列分类を参照してください。

2个正則化

損失関数 E类 ( θ ) への重みの正则化项の追加は,过适合を抑える方法の1つです[1][2]。正則化項は,"重み減衰" とも呼ばれます。正則化項付きの損失関数は、以下の形式を取ります。

E类 ( θ ) = E类 ( θ ) + λ Ω ( 西 ) ,

ここで、 西 は重みベクトル, λ は正則化係数です。正則化関数 Ω ( 西 ) は以下のようになります。

Ω ( 西 ) = 1个 2个 西 T型 西 .

バイアスは正則化されないことに注意してください[2],名前と値のペアの引数'L2Regularization'を使用して、正則化係数 λ を指定できます。層やパラメーターごとに異なる正則化係数を指定することもできます。詳細は、畳み込み層と全結合層のパラメーターの設定を参照してください。

ネットワーク学習に使用される損失関数には、正則化項が含まれます。ただし、学習中にコマンド ウィンドウと学習の進行状況プロットに表示される損失値はデータのみの損失であり、正則化項は含まれません。

互換性の考慮事項

すべて展開する

右2个0个1个8b での動作変更

右2个0个1个8b での動作変更

参照

模式识别和机器学习。施普林格,纽约,纽约,2006年。

[2]墨菲,K. P.机器学习:一个概率视角。麻省理工学院出版社,剑桥,马萨诸塞州,2012。

[3] 帕斯卡努,R.,T.米科洛夫和Y.本吉奥。”关于递归神经网络训练的困难。第30届机器学习国际会议论文集。第28卷(3),2013年,第1310-1318页。

[4]金玛,Diederik,和Jimmy巴。“亚当:随机优化的方法。”arXiv预印本arXiv: 1412.6980(2014)。

R2016aで导入