偏差(Bias)和 方差(Variance)
反映了机器学习的两种主要问题——欠拟合(underfitting)和过拟合(overfitting)。
偏差(bias)反映训练误差与真值之间的差距;
方差(variance)反映训练误差与测试误差之间的差距;
高偏差,需要拟合训练集,通过尝试更大的网络/更长时间训练/更好的网络架构
高方差,需要拟合验证集/测试集,通过获取更多的数据/正则化/更好的网络架构
正则化(Regularization)
L1/L2由于正则化因子的设置,为了使成本函数最小化,权重矩阵 W 就会被设置为更小的值,直观上相当于减弱了很多神经元的影响,大网络从而趋向于小网络,不至于过拟合。
Dropout,输入的特征都存在被随机清除的可能,所以该神经元不会再特别依赖于任何一个输入特征,也就是不会给任何一个输入特征设置太大的权重。通过传播过程,dropout 将产生和 L2 正则化相同的收缩权重的效果。
数据增广/Early Stoping/
归一化输入(Normalizing Inputs)
消除各维数据间的数量级差别,避免因为输入输出数据数量级差别较大而造成网络预测误差较大。
梯度消失与梯度爆炸(Vanishing/Exploding Gradients)
在层数很深的神经网络,可能因为input数据>1或<1的区别,深层的激活函数会指数级的变化,进而激活函数的梯度要么很大,要么很小,使得梯度下降算法性能下降。
这个问题,长期以来也是深度学习网络的一个壁垒。缓解这个问题(但没有彻底解决) 的方法是: better or more careful choice of the random initialization for your neural network.
神经网络的权重初始化(Weight Initialization for Deep Networks)
tanh(Xavier initialization) /Relu(He Initialization)
梯度检验(Gradient Checking)
将解析法(也就是用导数公式求解梯度)计算的梯度与用数值法(也就是通过导数定义求解梯度)计算的梯度进行对比,以检验解析法公式的正确性。数值法通过导数定义进行求解,当步长设置的足够小时,就可以求得较为精确的梯度值,准确性较高但是求解速度慢,而解析法直接按照给定的公式计算梯度,但是当问题比较复杂时,公式往往难以求出,而且容易出错。于是,就有了梯度检验这个过程了。