深度学习:过拟合问题

一 过拟合和欠拟合

当模型的容量过大时,网络模型除了学习到训练集数据的模态之外,还把额外的观测误差也学习进来,导致学习的模型在训练集上面表现较好,但是在未见的样本上表现不佳,也就是模型泛化能力偏弱,我们把这种现象叫作过拟合(Overfitting)。 当模型的容量过小时,模型不能够很好地学习到训练集数据的模态,导致训练集上表现不佳,同时在未见的样本上表现也不佳,我们把这种现象叫作欠拟合(Underfitting)

当观测到过拟合现象时,可以从新设计网络模型的容量,如降低网络的层数、降低网络的参数量、 添加正则化手段、 添加假设空间的约束等,使得模型的实际容量降低,从而减轻或解决过拟合现象;当观测到欠拟合现象时,可以尝试增大网络的容量,如加深网络的层数、 增加网络的参数量,尝试更复杂的网络结构。

二 数据集的划分

数据集需要划分为训练集(Train set)和测试集(Test set),但是为了挑选模型超参数和检测过拟合现象,一般需要将原来的训练集再次切分为新的训练集和验证集。训练集、验证集和测试集可以按着自定义的比例来分,比如常见的 60%-20%-20% 的划分。
验证集的作用:

1.根据据验证集的性能表现来调整学习率、 权值衰减系数、 训练次数等。
2.根据验证集的性能表现来重新调整网络拓扑结构。
3.根据验证集的性能表现判断是否过拟合和欠拟合。

三 训练该何时停止

一般把对训练集中的一个 Batch 运算更新一次叫做一个 Step, 对训练集的所有样本循环迭代一次叫做一个 Epoch。验证集可以在数次 Step 或数次 Epoch 后使用,计算模型的验证性能。验证的步骤过于频繁,能够精准地观测模型的训练状况,但是也会引入额外的计算代价,一般建议几个 Epoch 后进行一次验证运算。

一般来说,在训练的前中期,神经网络的过拟合现象没有出现, 当随着训练 Epoch 数的增加,过拟合程度越来越严重。
那么如何选择合适的 Epoch 就提前停止训练(Early Stopping),避免出现过拟合现象呢?
我们可以通过观察验证指标的变化,来预测最适合的 Epoch 可能的位置。

当发现验证准确率连续n个Epoch没有下降,说明可能已经到达了最合适的Epoch次数附近,即模型达到了最佳状态,应停止训练。

四 正则化

为了防止过拟合出现,一般通过在损失函数上添加额外的参数稀疏性惩罚项实现, 即优化目标变为了:
在这里插入图片描述
其中,参数λ表示关于网络稀疏性惩罚项的权重,Ω(θ)表示关于网络参数的约束函数,Ω(θ)一般有L0,L1,L2范数计算而来。

实际训练时,一般优先尝试较小的参数λ,观测网络结构是否会出现过拟合的现象,人后增加参数λ来增加网络的稀疏性,提高网络的泛化能力,但若参数λ系数过大,则会使得网络不收敛。当参数λ小的时候,网络中权值数值和范围都相对较大, 当参数λ变大的时候,网络中权值数值和范围都开始减小。

五 Dropout层

在全连接层中,每条连接是否断开符合某种预设的概率分布,如断开概率为p的伯努利分布,具体如下图所示。随着Dropout层的加入,会增加模型的泛化能力,降低发生过拟合现象的可能性。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值