过拟合现象就是模型在train data上表现很好,但是在test data上表现不好。在神经网络的loss中表现为train loss一直在下降,但是dev set上的loss在某个节点开始上升。
过拟合 == 泛化能力差
过拟合出现的原因:
对应的解决方案:
只有在优化方法是SGD时,l2-norm == weight decay。
相同的点:都可以用来解决过拟合问题的,提高模型的泛化能力。
不同的点:
常用的最优化方法:SGD,Adagrad,Adadelta,Adam,Adamax,Nadam。
transformer和bert中用的最优化方法都是Adam,所以着重问一下Adam的原理。
核心思想:利用梯度的一阶矩和二阶矩动态的调整每个参数的learning rate(自适应learning rate),即当我们知道某些参数确实需要比其他参数变化更快时,此时继续像SGD那样用固定的lr是不合适的。
优点:动态调整learning rate,所以收敛速度很快。
缺点:Adam无法对权重过大的项做出惩罚,如果引入l1-norm,只会导致越大的权重惩罚越大。
作用:
归一化加快了梯度下降求解最优解的速度;
未使用归一化时,模型训练需要迭代很多次才能收敛;当时用了归一化时,使用梯度下降求解时能较快较准的收敛。
归一化可能提高精度。
一些分类器需要计算样本之间的距离(如欧式距离、曼哈顿距离等)。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,可能实际情况是此时值域范围小的特征更重要,从而有可能提高精度。
归一化的类型:
a.线性归一化;b.标准差标准化;c.非线性归一化。
作用:为解决内部协方差偏移问题
参考资料:
算法面试问题一