美文网首页
从范数到正则化

从范数到正则化

作者: 变身的大恶魔 | 来源:发表于2019-05-14 20:59 被阅读0次

    范数是一个在数学领域中常用的工具,同时也是学习机器学习原理中经常碰到的概念。本文将从范数的定义出发,逐步带你理解其在机器学习中的应用。

    首先需要明确的是,范数是一个函数,在机器学习中我们通常用它来衡量向量的大小。L^p​范数定义为:
    \left \| x \right \|_p = \left ( \sum_{i}\left | x^i \right |^p \right )^{1/p}

    1.常见的范数

    下面简要介绍一些常见的范数,到这一步暂且只需要记住它们的形式。

    1.1 L^2范数

    p = 2时,L^2范数也被称为欧几里得范数,表示从远点出发到向量x确定的点的欧几里得距离。这个范数在机器学习中应用的非常频繁,我们先记住它的简化表示:\left \| x \right \|
    \left \| x \right \| = \left ( \sum_{i}\left | x^i \right |^2 \right )^{1/2}

    1.2 平方L^2范数

    顾名思义就是L^2​范数的平方,好处就是它显然比L^2​范数容易计算,可以简单的通过点积x^Tx​计算。

    1.3 L^1范数

    有些情况下平方L^2范数不是很受欢迎,因为它在原点附近增长得十分缓慢。有时候区分恰好是零和非零但值很小的元素是很重要的,这时候就可以使用各位置斜率相同L^1范数:
    \left \| x \right \|_1 = \sum_{i}\left | x^i \right |

    1.4 L^\infty范数

    L^\infty范数也被称为最大范数,表示向量中具有最大幅值的元素的绝对值:
    \left \| x \right \|_\infty = \underset{i}{max}\left | x_i \right |

    2.深度学习中的正则化

    2.1偏差(bias)和方差(variance)

    在介绍深度学习中的正则化之前,我们先要从机器学习的场景出发思考,是什么问题促使我们需要用正则化这个工具呢?​

    偏差和方差通常可以用来判断模型拟合数据的情况,看下面这张图,\bigcirc\times代表两种不同的样本点。

    第一个坐标系中由于分类器接近于线性,拟合数据的能力比较差,表现出欠拟合,对应高偏差high bias;第三个坐标系对于训练数据过拟合,对应高方差high variance;而中间的坐标系则是恰到好处的,我们比较希望得到的泛化能力较强的模型。

    因此:

    • if high bias:{更大的网络/更长的训练时长/(更合适的算法)}
    • if high variance:{更多的数据/正则化/(更合适的算法)}

    我们可以将正则化理解为“对学习算法的修改——目的是为了减少泛化误差,以偏差的增加换取方差的减少,从而抑制过拟合。”

    2.2正则化如何抑制过拟合

    我们将目标函数定义为J(\theta ;X,y),正则化后的目标函数为\tilde{J}(\theta ;X,y),\theta = w + b。通常只对权重w做正则化惩罚而不针对偏置项b,为了简单起见,我们假设没有偏置项:
    \tilde{J}(w ;X,y) = J(w ;X,y) + \alpha 正则项

    \alpha \in [0,\infty)是权衡正则化强度的超参。

    2.2.1 L^2正则化

    L^2​范数正则化也被称为权重衰减,这时
    正则项 = \frac{1}{2}\left \| w \right \|_{2}^{2}
    带入正则化后的目标函数
    \tilde{J}(w ;X,y) = J(w ;X,y) + \frac{\alpha}{2}\left \| w \right \|_{2}^{2}
    从上文1.2 平方L^2​范数的介绍中得到\left \| w \right \|_{2}^{2} = w^Tw​,因此
    \tilde{J}(w ;X,y) = J(w ;X,y) + \frac{\alpha}{2}w^Tw
    与之对应的梯度为:
    \bigtriangledown _w\tilde{J}(w ;X,y) = \bigtriangledown _wJ(w ;X,y) + \alpha w
    使用梯度下降更新权重,\euro为学习率:
    w\leftarrow w - \epsilon (\bigtriangledown _wJ(w ;X,y) + \alpha w)
    即:
    w\leftarrow (1-\euro\alpha)w - \epsilon (\bigtriangledown _wJ(w ;X,y) )
    可以看出加入权重衰减后会引起学习规则的修改,在每步梯度更新之前都会先收缩权重向量——将权重向量前边乘上一个小于1的权重因子(1-\epsilon \alpha),也就是说,正则化惩罚系数\alpha升高会将权重w拉向0。可以从两个角度进一步理解一下这个操作:

    a.在神经网络中,当一些权重趋近于0时,则可以理解为去掉了一些逻辑单元,简化后的网络虽然小但深度很大。从而将高方差的模型往高偏差的方向拉,直到获取一个恰到好处的模型。

    b.假设神经网络每层的激活函数为g(z) = tanh(z),z = w^{[l] }\varepsilon^{[l-1] }+b,正则化惩罚系数\alpha 升高 \rightarrow w减小 \rightarrow z 减小,从而使得g(z)从①③的非线性状态区域进入②接近于线性状态的区域,导致每层几乎是线性的(线性函数叠加仍然为线性),起到抑制过拟合的效果。

    相关文章

      网友评论

          本文标题:从范数到正则化

          本文链接:https://www.haomeiwen.com/subject/mpxyaqtx.html