为什么正则化可以防止过拟合?
整理并翻译自吴恩达深度系列视频教程
https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detail&id=2001702116&cid=2001693033
博主本人的观点将以楷体展示,请留意这点。
加上正则化项之后的损失函数
J
(
w
[
l
]
,
b
[
l
]
)
=
1
m
∑
i
=
1
m
l
(
y
′
,
y
)
+
λ
2
m
∑
l
=
1
L
∣
∣
w
[
l
]
∣
∣
F
2
J(w^{[l]}, b^{[l]})= frac{1}{m}sum_{i=1}^ml(y^{'},y) + frac{lambda}{2m} sum_{l=1}^L||w^{[l]}||^2_F
J(w[l],b[l])=m1i=1∑ml(y′,y)+2mλl=1∑L∣∣w[l]∣∣F2
F表示Frobenius范数(缩减的L2范数),加上第二项(即正则项)惩罚了权值矩阵使其不能取太大值。
如果权重矩阵取值很小,如上图左一,会出现线性拟合高偏差欠拟合的状态;如果权重矩阵取值很大,则会出现过于灵活的非线性拟合高方差过拟合的状态。
这张图里绿色的计算部分表示了正则项对
w
w
w更新的影响,它相当于取了一个
(
1
−
α
λ
m
)
w
(1-frac{alphalambda}{m})w
(1−mαλ)w的值来按照没有正则项时的更新方法更新
w
w
w,因为
(
1
−
α
λ
m
)
(1-frac{alphalambda}{m})
(1−mαλ)小于1,它惩罚性地降低了w的值。
另外,如果在深度网络中某些结点的w取值很小(即权重矩阵中的一部分值很小),将会使得这些结点的作用变得微不足道,就好像根本就没有这些单元一样,其结果是深度网络会退化成越来越接近单纯的Logistic Regression。
事实上,残差网络就是使用降低权重值对结果的影响来减小网络加深对训练准确度降低而产生的影响,所以w取低值虽然不好,但是可以作为设计网络的一种思路。
有关范数请参考之前的一篇博文: [矩阵/向量的范数](https://blog.csdn.net/Solo95/article/details/84324468)。从另一个方面来理解
如果你使用的激活函数是
t
a
n
(
h
)
tan(h)
tan(h), 那么当
λ
lambda
λ取值很大的时候,W取值很小,经W计算得出的z也很小,z很小意味着
g
(
z
)
=
t
a
n
(
z
)
g(z) = tan(z)
g(z)=tan(z)很小,
g
(
z
)
g(z)
g(z)取值集中于上图红色部分,相当于
t
a
n
(
h
)
tan(h)
tan(h)函数的线性部分,整个网络的状态接近第一张图左一的线性高偏差欠拟合状态。
这样一来,你的深度网络将只能计算出跟线性拟合差不了太远的结果,将会得到很接近线性函数的函数,而不是过于复杂的函数,所以也就不太可能出现过拟合的情况。
你最好加上正则化项,因为如果你不加上,在绘制损失函数 J J J的图时,可能不是很明显的像梯度那样的逐渐下降,你会在本周的编程作业里体会到这点。