深度学习——过拟合和欠拟合处理
深度学习中过拟合和欠拟合的处理方式
·
训练集,验证集,测试集:
训练集用于模型的训练
验证集用于模型选择和调参(监控模型是否过拟合)
测试集用于评估最终模型的泛华性能
过拟合
过拟合是表示模型在训练数据上效果很好,但是在验证机和测试集上效果较差。
常用的解决办法有:
- dropout(随机失活):以一定概率将神经元失活,但保持均值不变E(x)=E(x’)E(x)=E(x’)E(x)=E(x’)
x’={0, px1−p, 1−px’=\begin{cases} 0,\ p\\ \frac{x}{1-p},\ 1-p\\ \end{cases}x’={0, p1−px, 1−p - weight decay(权重衰退,在sgd中与正则化类似)
min f(x)=l(x)+λ∑iθi2min\ f(x)=l(x)+\lambda\sum_{i}\theta_{i}^{2}min f(x)=l(x)+λi∑θi2
对值较大的参数进行惩罚,使得网络参数较小,能够满足预测函数更加平滑 - early stop
提前停止训练,即设置较小的epoch - 增大数据集
增加训练集,使得训练域包含到验证集和测试集 - 降低模型复杂度
当模拟过于复杂时,将不属于数据集的特征也捕捉到,因此尝试降低模型复杂度(深度,宽度)
欠拟合
欠拟合是表示模型在数据集上的效果都很差,即没有捕捉到数据的特征
- 提高模型复杂度
- 加大训练次数(train epoch)
- 合适的参数初始化
常用的有xavier初始化,constant,normal初始化 - 选择合适的优化器
常用的由SGD,Adam,AdamW,BFGS等,可以多个结合 - 学习率
学习率过大会导致忽略掉最优解,而过小会导致模型训练效率低下。
更多推荐
所有评论(0)