在选择机器学习或深度学习模型时,我们期望选择能较好解释已知数据同时复杂度不高的模型。也就是希望我们训练得到的模型可以有较好的普适性或泛化性能,要有较强的鲁棒性,而不是仅仅对训练数据友好的模型,只对训练数据有效的模型就发生了过拟合,所以在模型训练时需要避免过拟合,以适应不同的数据集。
结构调整
dropout
一般和全连接层一起用,两部分,一部分是以保留概率p通过伯努利函数生成概率向量,p的概率是1,(1-p)的概率是0;第二步是要进行缩放,使得训练和预测时满足一个确定的期望结果。
由于训练时以一定的概率使某些神经元失活,那么到达输出层时的输入个数就会少很多,导致在输出层上的输入和丢失很多,所以训练时还要对前一层的输出数据除以p再传给输出层神经元,作为失活神经元的补偿,输出层每个神经元的输入和的期望会有量级上的差异(训练时不进行缩放在测试时对权重乘以p可以达到一样的效果)。
规范化
normalization通常在非线性函数之前。一般要求训练集完全乱序,并采用一个比较大的batch值,以达到缩小与全量数据的差别。
BN,对输入激活函数的输入进行归一化,解决输入数据发生偏移和增大的影响,在深度神经网络训练过程中使得每一层神经网络的输入保持相似的分布。通过计算样本均值、方差进行标准化处理后,进行平移和缩放,这里需要学习两个参数,让网络可以学习恢复出原始网络所要学习的特征分布。经过BN后,对每个隐层神经元,把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的比较标准的正太分布,使得非线性变换函数的输入值落入到对输入敏感的区域,以避免梯度消失问题并且加快收敛速度。同时为了保证非线性的获得,对变换后的满足均值为0方差为1的x又进行了缩放平移操作。在预测时无法计算均值和方差,通常需要在训练时根据mini-batch和指数加权平均计算,直接用于预测。
LN,对于RNN来讲,sequence的长度是可变的,所以layernorm是在hidden size进行的,跟batch和seq_len无关,

本文探讨了在深度学习和机器学习中避免过拟合的多种方法,包括dropout、规范化(如BN和LN)、正则项(L1和L2)、权重衰减及其与L2正则化的差异,以及训练策略如交叉验证、早停法和warmup。数据增强也被提及作为提升模型泛化能力的有效手段。
最低0.47元/天 解锁文章
4647

被折叠的 条评论
为什么被折叠?



