上海中汇建设发展有限公司网站,怎么建设网站首页,在合肥注册公司流程及费用,简单的网站建立怎么做一、Loss曲线 在模型的预训练或者微调过程中#xff0c;我们一般通过观察loss曲线来得出模型对于数据集的学习效果等信息。那么我们如何根据loss曲线得到一些信息呢#xff1f; 通常数据集会被划分成三部分#xff0c;训练集#xff08;training dataset#xff09;、验证…一、Loss曲线 在模型的预训练或者微调过程中我们一般通过观察loss曲线来得出模型对于数据集的学习效果等信息。那么我们如何根据loss曲线得到一些信息呢 通常数据集会被划分成三部分训练集training dataset、验证集validation dataset、测试集test dataset。我们在训练模型时也经常会根据训练集的loss和验证集loss来诊断模型从而期望能够优化参数训练处一个更好的模型这个更好指的是能在测试集上表现更好的模型也就是泛化能力generalization强的模型。那怎么根据loss曲线去诊断模型呢 首先根据模型的表现我们把它分成三类
Underfit欠拟合Overfit过拟合Good fit 完美拟合 那我们目标肯定是得到一个good-fit模型但是在训练过程中会出现Underfit和Overfit。那么我们需要做的就是首先根据loss曲线判断模型现在处于哪种拟合情况然后再进行调整参数。那我们先看看每种拟合的loss曲线是怎样的
1.Underfit欠拟合
Underfit指的是模型不能很好的学习训练集。 如下图所示这就是一个Underfit的例子仅根据training loss就可以判断。这个training loss下降的非常平缓以致于好像都没有下降这说明模型根本没有从训练集学到什么东西 下图也是Underfit情况这种情况的特点是在训练结束时候training loss还在继续下降这说明还有学习空间模型还没来得及学就结束了。
2.Overfit过拟合 Overfit指的是模型把训练集学的有点过了以致于把一些噪音noise和随机波动random fluctuations也学进来了。就好像抄别人卷子时候把别人的错别字也照抄一样。这也是我们在训练中最经常出现的问题overfit有时候是因为训练太久造成的。那Overfit的loss曲线长什么样呢 如下图所示overffit时候training loss一直在不断地下降而validation loss在某个点开始不再下降反而开始上升了这就说明overfit我们应该在这个拐点处停止训练。 3.Good fit 完美拟合 Good git是我们的目标它在loss曲线上的特点是training loss和validation loss都已经收敛并且之间相差很小很小。如下图所示模型在20轮过后两个loss曲线都开始收敛而且两者之间并没有肉眼的差距。 通常traing loss会更小这样他们之间就会有个gap这个gap叫做generalization gap。 二、不同Loss表现
3.1 Underfit
我们使用随机梯度下降SGD优化器学习率为0.01训练10轮代码如下
#underfit
epochs 10
sgd optimizers.sgd(lr0.01)
model.compile(lossbinary_crossentropy, optimizersgd, metrics[accuracy])然后我们就得到了一个Underfitting模型如下图所示在训练结束的时候training loss还在下降这说明模型还未学习充分。
3.2 Overfit
然后我们使用sgd作为优化器时候训练30轮
#overfit
epochs 30
sgd optimizers.sgd(lr0.01)
model.compile(lossbinary_crossentropy, optimizersgd, metrics[accuracy])结果出现了过拟合的情况loss曲线如下图 Reference https://machinelearningmastery.com/learning-curves-for-diagnosing-machine-learning-model-performance/