stu*_*t17 -1 python machine-learning keras tensorflow
我正在尝试用两个类进行图像分类.我有1000张平衡类的图像.当我训练模型时,我得到的恒定验证精度低,但验证损失减少.这是过度拟合还是过度拟合的迹象?我还应该注意到,我正在尝试使用新类和不同的数据集重新训练Inception V3模型.
Epoch 1/10
2/2 [==============================]2/2 [==============================] - 126s 63s/step - loss: 0.7212 - acc: 0.5312 - val_loss: 0.7981 - val_acc: 0.3889
Epoch 2/10
2/2 [==============================]2/2 [==============================] - 70s 35s/step - loss: 0.6681 - acc: 0.5959 - val_loss: 0.7751 - val_acc: 0.3889
Epoch 3/10
2/2 [==============================]2/2 [==============================] - 71s 35s/step - loss: 0.7313 - acc: 0.4165 - val_loss: 0.7535 - val_acc: 0.3889
Epoch 4/10
2/2 [==============================]2/2 [==============================] - 67s 34s/step - loss: 0.6254 - acc: 0.6603 - val_loss: 0.7459 - val_acc: 0.3889
Epoch 5/10
2/2 [==============================]2/2 [==============================] - 68s 34s/step - loss: 0.6717 - acc: 0.5959 - val_loss: 0.7359 - val_acc: 0.3889
Epoch 6/10
2/2 [==============================]2/2 [==============================] - 107s 53s/step - loss: 0.6633 - acc: 0.5938 - val_loss: 0.7259 - val_acc: 0.3889
Epoch 7/10
2/2 [==============================]2/2 [==============================] - 67s 33s/step - loss: 0.6674 - acc: 0.6411 - val_loss: 0.7160 - val_acc: 0.3889
Epoch 8/10
2/2 [==============================]2/2 [==============================] - 105s 53s/step - loss: 0.6296 - acc: 0.6562 - val_loss: 0.7099 - val_acc: 0.3889
Epoch 9/10
2/2 [==============================]2/2 [==============================] - 67s 34s/step - loss: 0.5717 - acc: 0.8273 - val_loss: 0.7064 - val_acc: 0.4444
Epoch 10/10
2/2 [==============================]2/2 [==============================] - 103s 52s/step - loss: 0.6276 - acc: 0.6875 - val_loss: 0.7035 - val_acc: 0.4444
Run Code Online (Sandbox Code Playgroud)
当模型对训练数据过于具体(或不够具体)时,会发生过度拟合(或欠拟合),并且不能很好地推断到真实域.我只是说从现在开始过度拟合以保存我可怜的打字手指[*]
我认为维基百科的形象很好:
显然,绿线,一个试图将红色等级与蓝色分开的决定边界,是"过度拟合",因为虽然它在训练数据上表现良好,但它缺乏我们在推广时看到的" 正规化 "形式[**].
当测试误差不反映训练误差时,以数字方式观察过度拟合
显然,测试误差将始终(预期)比训练误差更差,但在一定次数的迭代中,测试中的损失将开始增加,即使训练中的损失继续下降.
当维度允许时,可以通过绘制决策边界(如上面的维基百科图片中)来观察过度拟合,或者通过查看在拟合过程中除了训练损失之外的测试损失
你没有给我们足够的积分来制作这些图表,但这里有一个例子(来自某人提出类似的问题),显示这些损失图表的样子:

虽然损失曲线有时更漂亮且更具时间性,但请注意这里的趋势,即训练误差仍在减少,但测试误差正在上升.这是过度拟合的一个大红旗.这里讨论损耗曲线
更简洁,更真实的例子来自CMU关于过度使用ANN的讲座:
如上所述,顶部图形过度拟合.底部图表不是.
这是什么时候发生的?
当模型具有太多参数时,它易于过度拟合(如n度多项式到n-1个点).同样,参数不足的模型也可以是不合适的.
某些正规化技术,如丢失或批量归一化,或传统的l-1正规化,可以解决这个问题.我相信这超出了你的问题的范围.
脚注
[*]没有理由继续写"过度拟合/欠拟合",因为两者的推理是相同的,但指标被翻转,显然(决策边界没有足够地锁定到真正的边界,而不是紧紧包裹着各个点).通常,过度拟合是更常见的避免,因为"更多迭代/更多参数"是当前主题.如果你有很多数据而不是很多参数,也许你真的担心不合适,但我对此表示怀疑.
[**]在维基百科的第一张图片中形式化黑线优于绿线的想法的一种方法是在模型选择期间惩罚模型所需的参数数量
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |