Sam*_*m K 6 python machine-learning deep-learning tensorflow
我是机器学习的新手,我正在尝试用3个卷积层和1个完全连接的层来训练卷积神经网络.我使用的辍学概率为25%,学习率为0.0001.我有6000个150x200培训图像和13个输出类.我正在使用tensorflow.我注意到一个趋势,我的损失稳步下降,但我的准确性只是略有增加,然后再次下降.我的训练图像是蓝色线条,我的验证图像是橙色线条.x轴是步骤.
我想知道是否有一些我不理解或可能导致这种现象的原因?从我读过的材料中,我认为低损耗意味着高精度.这是我的损失功能.
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))
Run Code Online (Sandbox Code Playgroud)
那是因为损失和准确性是完全不同的两件事(至少在逻辑上是如此)!
考虑一个您定义loss为的示例:
loss = (1-accuracy)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当您尝试最小化时loss,accuracy会自动增加。
现在考虑另一个定义loss为的示例:
loss = average(prediction_probabilities)
Run Code Online (Sandbox Code Playgroud)
尽管没有任何意义,但从技术上讲,它仍然是有效的损失函数,您weights仍在进行调整以最大程度地减少此类损失loss。
但是正如您所看到的,在这种情况下,两者之间没有任何关系loss,accuracy因此您不能期望两者同时增加/减少。
注意:Loss将始终最小化(因此loss每次迭代后您的减少量)!
PS:请使用loss您要最小化的功能来更新您的问题。
| 归档时间: |
|
| 查看次数: |
7597 次 |
| 最近记录: |