正则化为什么这么好用?

直观上理解就是如果正则化𝜆设置得足够大,权重矩阵𝑊被设置为接近于 0 的值,直观理解就是把多隐藏单元的权重设为 0,于是基本上消除了这些隐藏单元的许多影响。

背景知识:

方差&偏差

L1 L2正则化

下面给出说明:
image-20211015140823880

左图是高偏差(欠拟合) 右图是高方差(过拟合) 中间是just right。

你可以想象一下上图中的右图是一个过拟合的神经网络(高方差)。

下图右上角是我们的代价函数J 包含参数W,b。

我们添加正则项,它可以避免数据权值矩阵过大,这就是弗罗贝尼乌斯范数,为什么压缩L2范式,或者弗罗贝尼乌斯范数或者参数可以减少过拟合呢?

image-20211015141101660

如果正则化𝜆设置得足够大,权重矩阵𝑊被设置为接近于 0 的值。如果是这种情况,这个被大大简化了的神经网络会变成一个很小的网络,小到如同一个逻辑回归单元,可是深度却很大(上图左上角红圈中所示),它会使这个网络从过度拟合的状态更接近左图的高偏差状态,但是𝜆会存在一个中间值, 于是会有一个接近“Just Right”的中间状态。

直观理解就是𝜆增加到足够大, 𝑊会接近于 0,实际上是不会发生这种情况的,我们尝试消除或至少减少许多隐藏单元的影响,最终这个网络会变得更简单,这个神经网络越来越接近逻辑回归,我们直觉上认为大量隐藏单元被完全消除了,其实不然,实际上是该神经网络的所有隐藏单元依然存在,但是它们的影响变得更小了。神经网络变得更简单了,貌似这样更不容易发生过拟合,因此我不确定这个直觉经验是否有用,不过在编程中执行正则化时,你实际看到一些方差减少的结果。

我们再来直观感受一下 正则化为什么可以预防过拟合

假设我们用的是这样的双曲线激活函数。

image-20211015142237974

用𝑔(𝑧)表示𝑡𝑎𝑛ℎ(𝑧),那么我们发现,只要𝑧非常小,如果𝑧只涉及少量参数(中间红括号部分),这里我们利用了双曲正切函数的线性状态,只要𝑧可以扩展为这样的更大值或者更小值(左右红括号部分),激活函数开始变得非线性。

image-20211015142737487

现在你应该摒弃这个直觉,“ 如果正则化参数 λ 很大, 激活函数的参数会相对较小”

【我的理解是因为𝑧也可以扩展为更大值,(如果理解的不对,请大家及时指出)】

特别的,如果𝑧的值最终在中间这个范围内,都是相对较小的值, 𝑔(𝑧)大致呈线性,每层几乎都是线性的,和线性回归函数一样。 如果每层都是线性的,那么整个网络就是一个线性网络,即使是一个非常深的深层网络,因具有线性激活函数的特征,最终我们只能计算线性函数,因此,它不适用于非常复杂的决策,以及过度拟合数据集的非线性决策边界。

总结一下,如果正则化参数变得很大,参数𝑊很小, 𝑧也会相对变小,此时忽略𝑏的影响,𝑧会相对变小,实际上,𝑧的取值范围很小,这个激活函数,也就是曲线函数𝑡𝑎𝑛ℎ会相对呈线性,整个神经网络会计算离线性函数近的值,这个线性函数非常简单, 并不是一个极复杂的高度非线性函数,不会发生过拟合

image-20211015143744527

执行方面的小建议,在增加正则化项时,应用之前定义的代价函数𝐽,我们做过修改即增加了一项,目的是预防权重过大。

如果你使用的是梯度下降函数,在调试梯度下降时,其中一步就是把代价函数𝐽设计成这样一个函数,在调试梯度下降时,它代表梯度下降的调幅数量。可以看到,代价函数对于梯度下降的每个调幅都单调递减。如果你实施的是正则化函数,请牢记, 𝐽已经有一个全新的定义。如果你用的是原函数𝐽,也就是这第一个项正则化项,你可能看不到单调递减现象,为了调试梯度下降,请务必使用新定义的𝐽函数,它包含第二个正则化项,否则函数𝐽可能不会在所有调幅范围内都单调递减。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与 或

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值