为什么正则化可以防止过拟合?

以下理解来源于吴恩达老师深度学习视频

为什么正则化有利于预防过拟合呢?为什么它可以减少方差问题?我们通过两个例子来直观体会一下。

为什么正则化可以防止过拟合?_第1张图片

为什么正则化可以防止过拟合?_第2张图片

左图是高偏差,右图是高方差,中间是Just Right,这几张图我们在前面课程中看到过。

直观上理解就是如果正则化参数设置得足够大,权重矩阵被设置为接近于0的值,直观理解就是把多隐藏单元的权重设为0,于是基本上消除了这些隐藏单元的许多影响。如果是这种情况,这个被大大简化了的神经网络会变成一个很小的网络,小到如同一个逻辑回归单元,可是网络深度却很深,它会使这个网络从过度拟合的状态更接近高偏差状态。

但是会存在一个中间值,于是会有一个接近“Just Right”的中间状态。

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

为什么正则化可以防止过拟合?_第3张图片

我们再来直观感受一下,正则化为什么可以预防过拟合,假设我们用的是这样的双曲线激活函数。

为什么正则化可以防止过拟合?_第4张图片

用表示,那么我们发现,只要非常小,如果只涉及少量参数,这里我们利用了双曲正切函数的线性状态,只要可以扩展为这样的更大值或者更小值,激活函数开始变得非线性。

为什么正则化可以防止过拟合?_第5张图片

现在你应该摒弃这个直觉,如果正则化参数λ很大,激活函数的参数会相对较小,因为代价函数中的参数变大了,如果很小,

如果很小,相对来说,也会很小。

特别是,如果的值最终在这个范围内,都是相对较小的值,大致呈线性,每层几乎都是线性的,和线性回归函数一样。

为什么正则化可以防止过拟合?_第6张图片

如果每层都是线性的,那么整个网络就是一个线性网络,即使是一个非常深的深层网络,因具有线性激活函数的特征,最终我们只能计算线性函数,因此,它不适用于非常复杂的决策,以及过度拟合数据集的非线性决策边界,如同我们在幻灯片中看到的过度拟合高方差的情况。

为什么正则化可以防止过拟合?_第7张图片

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

你可能感兴趣的:(知识点)