模型越复杂越容易出现过拟合状态,所以需要一种机制来保证我们模型的“简单”,这样我们的模型才能有较好的泛化能力,正则化是这类机制之一。
欧几里得范数:
L2 范数:
L1 范数:
推导过程
为什么可以减少过拟合
直观理解就是增加到足够大,会趋近于 0,但实际上是不会发生这种情况。通过正则化方法来消除或减少大量隐藏单元的影响,使这个网络变的更简单,越来越接近逻辑回归,在直觉上认为大量隐藏单元被完全消除了,但实际上是所有隐藏单元依然存在,但是他们的影响变小了。
正则化结果
如果正则化参数很大,很小, 将会相对变小。由于的取值范围很小,会导致激活函数相对呈线性,整个神经网络会计算离线性函数近的值,不会成为一个极复杂的高度非线性函数,不会发生过拟合。
Dropout 正则化
Dropout 正则化是随机减少每层的神经元来实现的。
Dropout 方法——Inverted Dropout
- 定义一个向量,表示一个三层的 Dropout 向量, 表示保留某个隐藏单元的概率:
d3=np.random.rand(a3.shape[0],a3.shape[1])<keep-prob
2. 从第三层中获取激活函数(的值变为了 0 或 1,从而实现随机移除神经元),这里叫做:
a3=np.multply(a3,d3) # a3*=d3
3. 由于我们随机的移除了一些节点,这样最终的预测值会发生改变,所以在这一步骤中对期望值进行补偿:
a/=keep-prob
在测试集中不需要使用 Dropout。
其他正则化方法
- 数据扩增(data augmentation)
- 提前停止训练神经网络(early stopping)