Regularization

Hypothesis set可以表示如下。

{H_2} = {w_0} + {w_1}x + {w_2}{x^2}

{H_3} = {w_0} + {w_1}x + {w_2}{x^2} + {w_3}{x^3}

{H_{10}} = {w_0} + {w_1}x + {w_2}{x^2} + {w_3}{x^3} + {w_4}{x^4} + ... + {w_{10}}{x^{10}}

可以看出H2=H3 when w3=0。或者H2=H10 when w3…w10=0。

因此可以得出结论{H_0} \subset {H_1} \subset {H_2} \subset ... \subset {H_{10}} \subset ...

上篇文章说到,H2中找到的h*的Eout会比H10中找到的h*的Eout要小,因为H10中的h*产生了overfitting。

假如说现在要在H10中找h*,那么就是要

 {\min }\limits_{w \in {\mathbb{R}^{10 + 1}}} {E_{in}}(w)       (1)

如果要在H2中找h*,也可以做(1)式的动作,只不过要加上约束条件w3=w4=…w10=0。

即H2可以 表示为{H_2} \equiv \left\{ {\begin{array}{ccccccccccccccc}
{w \in {\mathbb{R}^{10 + 1}}}\\
{{w_3} = {w_4} = ... = {w_{10}} = 0}
\end{array}} \right.

现在我们把约束条件放松一点,不要让特定的w3…w10=0,只需要有8个w=0即可。定义为

H_2^' \equiv \left\{ {\begin{array}{ccccccccccccccc}
{w \in {\mathbb{R}^{10 + 1}}}\\
{ \ge 8{\rm{ of }}{w_q} = 0}
\end{array}} \right.

因此,对H_2^'求h*的过程要保证w=0的个数小于等于3.

{H_2} \subset H_2^' \subset {H_{10}}

但是求解这样一个h是NP-hard的问题。于是,我们把约束的目标变成\sum\limits_{q = 0}^{10} {w_q^2 \le C} ,之所以可以这样替代的原因是,如果当大部分的w都为0时,它们的平方和也应该小于某个数,这里引入了C。于是原来的H_2^'变为

H(C) \equiv \left\{ {\begin{array}{ccccccccccccccc}
{w \in {\mathbb{R}^{10 + 1}}}\\
{\left\| {{w^2}} \right\| \le C}
\end{array}} \right.

可以看出,H_2^'H(C)的空间有overlap,但是并不是完全一样的,比如H(C)中确实满足{\left\| {{w^2}} \right\| \le C},但是可能是每个w都很小但不等于0,这部分的h并不是重叠部分。如果C无穷大时,说明木有约束条件,也就是H10了。

现在在H(C)中求h*,需要minEin(w),对于linear regression的问题

image_thumb7

对于约束条件的物理意义就是w要在半径为\sqrt C 的球内部,如下图红色部分。

image_thumb8

对于min的部分,w减小的方向就是梯度 - \nabla {E_{in}}(w)的方向,现在有个w已经在球的边缘,因为有约束条件的限制,意思是w只能最多在球面上滚动,不能滚出球的范围。然后求出的梯度是蓝色的部分,如果梯度的方向垂直于球的切面,即normal那个方向,这样就违反了约束条件,其实normal向量的方向就和w的方向一致。如果求出的梯度的方向如图所示,可知梯度在垂直于normal向量的绿色方向有一个分量,可知w可以往绿色的方向滚,这样就更加接近了位于山谷的wlin了。

当求出的梯度和normal,也就是w的方向一直的话,则说明再滚下去就会滚出球的范围,违反了约束条件。把此时的w称为{w_{REG}},有 - \nabla {E_{in}}({w_{REG}}) \in {w_{REG}},即这两个方向平行。

既然平行,我们可以加入拉格朗日乘子,把这两项写在一个式子里,如式(2)

\nabla {E_{in}}({w_{REG}}) + \frac{{2\lambda }}{N}{w_{REG}} = 0     (2)

其中\nabla {E_{in}}({w_{REG}}) = \nabla (\frac{1}{N}{(Z{w_{REG}} - y)^T}(Z{w_{REG}} - y)) = \nabla (\frac{1}{N}({Z^T}w_{REG}^T - {y^T})(Z{w_{REG}} - y))

 = \nabla (\frac{1}{N}({Z^T}w_{REG}^TZ{w_{REG}} - {Z^T}w_{REG}^Ty - {y^T}Z{w_{REG}} - {y^T}y) = \frac{1}{N}(2{Z^T}Z{w_{REG}} - 2{Z^T}y) = \frac{2}{N}({Z^T}Z{w_{REG}} - {Z^T}y)

所以(2)式变为

\frac{2}{N}({Z^T}Z{w_{REG}} - {Z^T}y) + \frac{{2\lambda }}{N}{w_{REG}} = 0

\lambda 已知时,解关于{w_{REG}}的一次方程,有

{w_{REG}} = {({Z^T}Z + \lambda I)^{ - 1}}{Z^T}y

叫做ridge regression (L2-norm)

如果没有\lambda 那一项,就是之前没有正规化的w的求法w = {({Z^T}Z)^{ - 1}}{Z^T}y

其实求式(2),等价于求式(3)\min ({E_{in}}(w) + \frac{\lambda }{N}{w^T}w),就是把式(2)积分回去的结果。

定义{E_{AUG}}(w) = {E_{in}}(w) + \frac{\lambda }{N}{w^T}w

这样,原来求解一个带有C的约束条件的方程,变成求解一个没有约束条件,但是带有一项regularizer{w^T}w的方程,即

{w_{AUG}} =  {\arg \min }\limits_w {E_{AUG}}(w)

这种方法叫做weight-decay regularization.

其实就是给定一个C,就可以求出对应的\lambda

有个问题需要讨论,如果当x的取值范围在-1到1之间,那么经过polynomial的转换以后,高次的{x^q}就会变很小,前面的系数{w_q}则需要很大,但是这和regularization所希望的是相矛盾的。

image_thumb10

因此如果要做多项式的regularization,用右图的变换比左图的,得到的效果更好。

从VC bound的角度来说,如果算法没有经过regularized,{d_{vc}}(H) =  d\limits^ \sim   + 1,这是个很大的数字。但是如果regularized的话,{d_{vc}}(H(C)) = {d_{EFF}}(H,A),这个值其实很小(A是用于min {E_{AUG}}(w)的算法)

以上是在讨论L2 regularizer,接下来稍微介绍一下L1 regularizer:\sum {\left| w \right|}

L1的解出来的w是sparse的,有很多的w是0,因为往往求得的{w_{REG}}会跑到顶点去,这边的w就会有很多是0.

image_thumb11

posted on 2015-06-26 20:37  CaseyZ  阅读(235)  评论(0编辑  收藏  举报

导航