主要内容

。

深层学习における学习の进行状况の监视

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

培训选项'plots'の値として'培训 - 进步'を指定してネットワークの学习を开始すると,trainNetworkによって图が作成され,反复ごとに学习メトリクスが表示されます。各反复は,勾配の推定と,ネットワークパラメーターの更新で构成されます。培训选项に検证データを指定すると,trainNetworkによってネットワークが検证されるたびに图に検证メトリクスが表示されます。图には次がプロットされます。

  • 学习精度- 个々のミニバッチの分类精度。

  • 平滑化后の学习精度- 学习精度に平滑化アルゴリズムを适用することによって求められる,平滑化された学习精度精度を平滑化していない场合よりノイズが少なく,倾向を见つけやすくなります。

  • 検证精度- (培训选项を使用して指定された)検证セット全体に対する分类精度。

  • 学习损失平滑化后の学习损失検证损失-それぞれ,各ミニバッチの损失,その平滑化バージョン,検证セットの损失。ネットワークの最后の层がclassificationLayerである场合,损失关数は交差エントロピー损失です。分类问题と回帰问题の损失关数の详细は,出力层を参照してください。

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

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

学习中,右上隅の停止ボタンをクリックして学习を停止し,ネットワークの现在の状态を返すことができます。たとえば,ネットワークの精度が横ばい状态に达し,これ以上改善されないことが明确な场合に,学习の停止が必要になることがあります。停止ボタンのクリックの后,学习が完了するまでしばらくかかることがあります。学习が完了すると,trainNetworkが学习済みネットワークを返します。

学习が终了すると,[结果]に最终検证精度と学习の终了理由が表示されます。最终検证メトリクスには,プロット内で[最终的]というラベルが付いています。ネットワークにバッチ正规化层が含まれている场合,通常,最终検证メトリクスは学习中に评価される検证メトリクスとは异なります。これは,最终的なネットワークのバッチ正规化层では,学习中とは异なる处理が実行されるためです。

右侧には,学习の时间と设定に关する情报が表示されます。学习オプションの详细は,パラメーターの设定と畳み込みニューラルネットワークの学习を参照してください。

学习时の进行状况のプロット

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

5000个の数字のイメージが格纳されている学习データを読み込みます。ネットワークの検证用に1000个のイメージを残しておきます。

[xtrain,ytrain] = DigitTrain4darraydata;idx = randperm(大小(xtrain,4),1000);xvalidation = XTrain(::::,IDX);XTrain(::::,idx)= [];YValidation = Ytrain(IDX);Ytrain(IDX)= [];

数字のイメージデータを分类するネットワークを构筑します。

层= [imageInputLayer([28 28 1])convolution2dLayer(3,8,'填充''相同的')BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,'走吧',2)convolution2dLayer(3,16,'填充''相同的')BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,'走吧',2)卷积2dlayer(3,32,'填充''相同的')BatchnormalizationLayer Rublayer全连接列(10)SoftMaxLayer分类层];

ネットワーク学习のオプションを指定します。学习中に一定の间隔でネットワークを検证するための検证データを指定します。エポックごとに约1回ネットワークが検证されるように,'ValidationFrequency'の値を选択します。学习时の进行状况をプロットするため,'plots'の値として'培训 - 进步'を指定します。

选项=培训选项('sgdm'......'maxepochs'8,......'vightationdata'{XValidation,YValidation}......'ValidationFrequency'30,......'verbose',错误的,......'plots''培训 - 进步');

ネットワークに学习をさせます。

net = trainnetwork(xtrain,ytrain,图层,选项);

参考

|

关键词トピック