L2正则化

为什么正则化可以防止过拟合?
加入正则化后,w减小了,相当于减小对各方向梯度的影响,也就是减小了对数据集的依赖性,所以会导致欠拟合。过拟合的话就会往right的方向靠拢。
λ↑ w↓ z=wa+b↓
激活函数g(z)就越接近0,越接近一个线性回归函数,所以可以对抗过拟合现象。
dropout正则化
超参数keep.prop= 0.8,就是说0.2的概率舍弃这个神经元。
cv里用的比较多,因为缺数据需要随机舍弃一些特征。
数据增强


early stopping

梯度消失和梯度爆炸
训练神经网络,尤其是深度神经所面临的一个问题就是梯度消失或梯度爆炸,也就是你训练神经网络的时候,导数或坡度有时会变得非常大,或者非常小,甚至于以指数方式变小,这加大了训练的难度。
在深度神经网络中,激活函数将以指数级递减,虽然我只是讨论了激活函数以与 L LL 相关的指数级数增长或下降,它也适用于与层数 L LL 相关的导数或梯度函数,也是呈指数级增长或呈指数递减。

如何预防?
神经网络的权重初始化 (Weight Initialization for Deep Networks)



它确实降低了梯度消失和爆炸问题,因为它给权重矩阵 w ww 设置了合理值,你也知道,它不能比1大很多,也不能比1小很多,所以梯度没有爆炸或消失过快。
Batch Norm

先计算z=wx+b,然后对z进行batchnorm,做法是将值进行Batch归一化,简称BN,此过程将由 β和γ两个参数控制,对方差和均值进行归一化,这一操作会给你一个新的规范化的z值

,然后再输入到激活函数中得到a。
Batch归一化的过程中,你要计算 z 的均值,再减去平均值,在此例中的mini-batch中增加任何常数,数值都不会改变,因为加上的任何常数都将会被均值减去所抵消。所以,如果你在使用Batch归一化,其实你可以消除这个参数b,或者你也可以,暂时把它设置为0。

















