Why Training Set accuracy decrease dramatically after stopping the trainNetwork?

After stopping manually trainNetworktrainNetwork, the validation error dropped dramatically:
I tested the Training Set accuracy, and got also about 60%:
predY = classify(net,xTrain);
Any ideas what I'am doing wrong?

4 件のコメント

Greg Heath
Greg Heath 2018 年 12 月 30 日
Four curves and none of them labelled ??
Sergy Stepura
Sergy Stepura 2018 年 12 月 30 日
Legend in lower right corner:
Selection_002.png
Don Mathis
Don Mathis 2019 年 1 月 23 日
What is your network architecture? Does it contain dropoutLayers and later BatchNormlization layers?
Sergy Stepura
Sergy Stepura 2019 年 2 月 1 日
編集済み: Sergy Stepura 2019 年 2 月 4 日
The network has simple architecture, 5 fully connected layers with batch normalization + Input layer + Output layer (softmax):
1 '' Image Input 120x1x4 images with 'zerocenter' normalization
2 '' Fully Connected 65 fully connected layer
3 '' Batch Normalization Batch normalization
4 '' ReLU ReLU
5 '' Fully Connected 65 fully connected layer
6 '' Batch Normalization Batch normalization
7 '' ReLU ReLU
8 '' Fully Connected 65 fully connected layer
9 '' Batch Normalization Batch normalization
10 '' ReLU ReLU
11 '' Fully Connected 65 fully connected layer
12 '' Batch Normalization Batch normalization
13 '' ReLU ReLU
14 '' Fully Connected 65 fully connected layer
15 '' Batch Normalization Batch normalization
16 '' ReLU ReLU
17 '' Fully Connected 3 fully connected layer
18 '' Softmax softmax
19 '' Classification Output crossentropyex

サインインしてコメントする。

回答 (1 件)

Don Mathis
Don Mathis 2019 年 2 月 8 日

0 投票

Maybe your minibatch size is too small. The accuracy drop may be due to batchnormalization layers getting finalized, during which time the mean and variance of the incoming activations of each batchnorm layer are computed using the whole training set. If those full-batch statistics don't match the minibatch statistics very well, the finalized batchnorm layers will not be performing a very good normalization.

3 件のコメント

Sergy Stepura
Sergy Stepura 2019 年 2 月 8 日
編集済み: Sergy Stepura 2019 年 2 月 8 日
I’m training on 30,000 data set and using batches of 500, do you sugest to use 30,000 batch size?
I’m want to see some stable performance before increasing to full 2,000,000 data set.
Don Mathis
Don Mathis 2019 年 2 月 11 日
You could try increasing the batch size iteratively to see whether that fixes the problem. I would try exponentially increasing: 1000, 2000, 4000, 8000, etc. Or you can just try the largest amount that will fit in your GPU memory right away.
Don Mathis
Don Mathis 2019 年 2 月 11 日
Also: Why does your plot show "Iterations per epoch: 1"? Were you using miniBatchSize=30000 in that run?
What are you passing to trainingOptions()?

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeDeep Learning Toolbox についてさらに検索

製品

リリース

R2018b

質問済み:

2018 年 12 月 28 日

コメント済み:

2019 年 2 月 11 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by