- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对两个类进行图像分类。我有 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
最佳答案
过度拟合(或欠拟合)发生在模型对训练数据过于具体(或不够具体)并且不能很好地外推到真实域时。我只想说从现在开始过度拟合以拯救我可怜的打字手指 [*]
我认为 wikipedia图像很好:
很明显,绿线是decision boundary试图将红色类与蓝色类分开是“过度拟合”,因为尽管它在训练数据上表现良好,但它缺少我们喜欢在 regularized 时看到的“generalizing”形式。 [**].
These CMU slides关于过度拟合/cross validation也把问题说清楚:
And here's some more intuition for good measure
Overfitting is observed numerically when the testing error does not reflect the training error
显然,测试误差总是(在预期中)比训练误差差,但在一定次数的迭代中,测试损失将开始增加,即使训练损失继续下降。
Overfitting can be observed by plotting the decision boundary (as in the wikipedia image above) when dimensionality allows, or by looking at testing loss in addition to training loss during the fit procedure
您没有给我们足够的分数来制作这些图表,但这里有一个示例 ( from someone asking a similar question ) 显示了这些损失图表的样子:
虽然损失曲线有时更漂亮和对数,但请注意这里的趋势,即训练误差仍在下降,但测试误差在上升。这是过度拟合的一个大危险信号。 SO discusses loss curves here
稍微简洁和更真实的示例来自 this CMU lecture on ovefitting ANN's:
上面的图和以前一样过拟合。底部的图表不是。
什么时候发生?
当一个模型的参数太多时,它很容易过度拟合(比如 n 次多项式到 n-1 个点)。同样,参数不足的模型可能欠拟合。
Certain regularization techniques比如 dropout 或 batch normalization,或者传统的 l-1 正则化来解决这个问题。我相信这超出了您的问题范围。
脚注
[*] 没有理由继续写“过度拟合/欠拟合”,因为两者的推理是相同的,但指标显然是翻转的(决策边界没有足够锁定真实边界,因为反对被过于紧密地包裹在个别点上)。一般来说,过度拟合更容易避免,因为“更多迭代/更多参数”是当前的主题。如果你有很多数据但参数不多,也许你真的担心欠拟合,但我对此表示怀疑。
[**] 将维基百科的第一张图片中的黑线比绿线更可取的想法形式化的一种方法是 penalize the number of parameters required在模型选择期间由您的模型
关于python - 如何知道是否发生欠拟合或过拟合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52009816/
gnuplot 中拟合函数的正确方法是什么 f(x)有下一个表格吗? f(x) = A*exp(x - B*f(x)) 我尝试使用以下方法将其拟合为任何其他函数: fit f(x) "data.txt
(1)首先要建立数据集 ? 1
测量显示一个信号,其形式类似于具有偏移量和因子的平方根函数。如何找到系数并在一个图中绘制原始数据和拟合曲线? require(ggplot2) require(nlmrt) # may be thi
我想将以下函数拟合到我的数据中: f(x) = Offset+Amplitudesin(FrequencyT+Phase), 或根据 Wikipedia : f(x) = C+alphasin(ome
我正在尝试使用与此工具相同的方法在 C# 中拟合 Akima 样条曲线:https://www.mycurvefit.com/share/4ab90a5f-af5e-435e-9ce4-652c95c
问题:开放层适合 map ,只有在添加特征之后(视觉),我该如何避免这种情况? 我在做这个 第 1 步 - 创建特征 var feature = new ol.Feature({...}); 第 2
我有一个数据变量,其中包含以下内容: [Object { score="2.8", word="Blue"}, Object { score="2.8", word="Red"}, Objec
我正在尝试用中等大小的 numpy float 组来填充森林 In [3]: data.shape Out[3]: (401125, 5) [...] forest = forest.fit(data
我想用洛伦兹函数拟合一些数据,但我发现当我使用不同数量级的参数时拟合会出现问题。 这是我的洛伦兹函数: function [ value ] = lorentz( x,x0,gamma,amp )
我有一些数据,我希望对其进行建模,以便能够在与数据相同的范围内获得相对准确的值。 为此,我使用 polyfit 来拟合 6 阶多项式,由于我的 x 轴值,它建议我将其居中并缩放以获得更准确的拟合。 但
我一直在寻找一种方法来使数据符合 beta 二项分布并估计 alpha 和 beta,类似于 VGAM 库中的 vglm 包的方式。我一直无法找到如何在 python 中执行此操作。有一个 scipy
我将 scipy.optimize.minimize ( https://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html ) 函数与
在过去的几天里,我一直在尝试使用 python 绘制圆形数据,方法是构建一个范围从 0 到 2pi 的圆形直方图并拟合 Von Mises 分布。我真正想要实现的是: 具有拟合 Von-Mises 分
我有一个简单的循环,它在每次迭代中都会创建一个 LSTM(具有相同的参数)并将其拟合到相同的数据。问题是迭代过程中需要越来越多的时间。 batch_size = 10 optimizer = opti
我有一个 Python 系列,我想为其直方图拟合密度。问题:是否有一种巧妙的方法可以使用 np.histogram() 中的值来实现此结果? (请参阅下面的更新) 我目前的问题是,我执行的 kde 拟
我有一个简单的 keras 模型(正常套索线性模型),其中输入被移动到单个“神经元”Dense(1, kernel_regularizer=l1(fdr))(input_layer) 但是权重从这个模
我正在尝试解决 Boston Dataset 上的回归问题在random forest regressor的帮助下.我用的是GridSearchCV用于选择最佳超参数。 问题一 我是否应该将 Grid
使用以下函数,可以在输入点 P 上拟合三次样条: def plotCurve(P): pts = np.vstack([P, P[0]]) x, y = pts.T i = np.aran
我有 python 代码可以生成数字 x、y 和 z 的三元组列表。我想使用 scipy curve_fit 来拟合 z= f(x,y)。这是一些无效的代码 A = [(19,20,24), (10,
我正在尝试从 this answer 中复制代码,但是我在这样做时遇到了问题。我正在使用包 VGAM 中的gumbel 发行版和 fitdistrplus . 做的时候出现问题: fit = fi
我是一名优秀的程序员,十分优秀!