tensorflow2.0---笔记5 过拟合及解决方法

tech2022-08-04  150

文章目录

欠拟合与过拟合欠拟合过拟合小结减轻过拟合的方法 交叉验证规范化(Regularization)early stopping & dropoutearly stoppingdropout 动量与学习率动量采取可变(衰减)的学习率 随机梯度下降

欠拟合与过拟合

模型越复杂(层数,每层神经元数量),表达能力越强。

欠拟合

欠拟合特点:

过拟合

过拟合特点(模型泛化能力差): 若训练集数据足够多,则不易ovefitting;若训练数据量少,则易受噪声影响,发生过拟合。

小结

减轻过拟合的方法

增加训练集数据量;使用 validation_data ,即提前停止(early stopping)策略。用validation_data 可以检测并且减轻过拟合(当验证集准确率下降时终止训练);简化模型----规范化(权重衰减)、dropout。

交叉验证

以前数据集划分为训练集和测试集:

(tf.split 默认的axis=0)

now,数据集划分为训练集、验证集和测试集: (验证集进行模型参数的挑选,测试集进行最终模型的性能检测)

train两个epoch做一次validation测评。 训练的时候,指定的epoch数量一般指最大数量,可根据验证集准确率提前停止。 此时validation_data不参与反向传播模型训练。

为了让更多的数据参与训练,进行交叉验证:

或者:

规范化(Regularization)

注: (1)规范化可以使w变小(weight decay),减小模型复杂度; (2)λ也是一个需要设置的超参数。

在创建层时指定l2规范化和λ的值。 或者手动,实现更灵活的规范化:

early stopping & dropout

early stopping

dropout

注意trainning参数。

动量与学习率

避免陷入局部最小值;减少训练时间。

动量

使得权重更新的方向与当前梯度和历史方向(惯性)有关。

Adam优化器已将momentum作为优化策略。

采取可变(衰减)的学习率

原因: 有时减小lr可能导致loss骤减(开始lr太大来回震荡,减小后一下到了loss函数底部): 采取可变的lr:

随机梯度下降

(即训练时每次选取一个batch,每个batch训练之后更新一次权重)

最新回复(0)