范数是一个在数学领域中常用的工具,同时也是学习机器学习原理中经常碰到的概念。本文将从范数的定义出发,逐步带你理解其在机器学习中的应用。
首先需要明确的是,范数是一个函数,在机器学习中我们通常用它来衡量向量的大小。
1.常见的范数
下面简要介绍一些常见的范数,到这一步暂且只需要记住它们的形式。
1.1
当p = 2时,
1.2 平方
顾名思义就是
1.3
有些情况下平方
1.4
2.深度学习中的正则化
2.1偏差(bias)和方差(variance)
在介绍深度学习中的正则化之前,我们先要从机器学习的场景出发思考,是什么问题促使我们需要用正则化这个工具呢?
偏差和方差通常可以用来判断模型拟合数据的情况,看下面这张图,
第一个坐标系中由于分类器接近于线性,拟合数据的能力比较差,表现出欠拟合,对应高偏差high bias;第三个坐标系对于训练数据过拟合,对应高方差high variance;而中间的坐标系则是恰到好处的,我们比较希望得到的泛化能力较强的模型。
因此:
- if high bias:{更大的网络/更长的训练时长/(更合适的算法)}
- if high variance:{更多的数据/正则化/(更合适的算法)}
我们可以将正则化理解为“对学习算法的修改——目的是为了减少泛化误差,以偏差的增加换取方差的减少,从而抑制过拟合。”
2.2正则化如何抑制过拟合
我们将目标函数定义为
2.2.1
带入正则化后的目标函数
从上文1.2 平方
与之对应的梯度为:
使用梯度下降更新权重,
即:
可以看出加入权重衰减后会引起学习规则的修改,在每步梯度更新之前都会先收缩权重向量——将权重向量前边乘上一个小于1的权重因子
a.在神经网络中,当一些权重趋近于0时,则可以理解为去掉了一些逻辑单元,简化后的网络虽然小但深度很大。从而将高方差的模型往高偏差的方向拉,直到获取一个恰到好处的模型。
b.假设神经网络每层的激活函数为