数据的归一化和标准化是特征缩放(feature scaling)的方法,是数据预处理的关键步骤.

虽然存在决策树和随机森林这种少数不需要特征缩放的机器学习演算法,但是对于大部分机器学习演算法和优化演算法来说,如果特征都在同一范围内,会获得更好的结果.

归一化

归一化就是将数据映射到指定的范围之内(通常映射到[0, 1]或者[-1, 1]之间)

常见的归一化方法有最小-最大缩放(min-max scaling)

公式如下:

x_{norm}^{(i)} = frac{x^{(i)}-x_{min}}{x_{max}-x_{min}}

标准化

标准化就是将数据缩放到以0为中心,标准差为1

标准化后的特征形式服从正态分布,这样学习权重参数更容易。此外,标准化后的数据保持异常值中的有用信息,使得演算法对异常值不太敏感,这一点归一化就无法保证。

标准化的公式如下:

x_{std}^{(i)} = frac{x^{(i)}-mu_{x}}{sigma_{x}}

下面用一张表来展示标准化和归一化的区别

可以看出,标准化将数据集中在了0的两侧,归一化则将数据映射到[0,1]范围内


正则化

正则化是用来引入模型复杂度的惩罚项,防止模型过拟合的方法.

正则化的几何解释:

假设损失函数是差平方损失函数(sum of the squared errors, SSE),且只含有两个权重参数 w_{1}w_{2} ,易知损失函数是凸函数。对于给定的损失函数,我们的目的是找到损失函数取最小值时对应的权重值,如下图损失函数等高线所示,当( w_{1}w_{2} )取椭圆中心点时,损失函数值最小:

图片来自<<python机器学习>>

而正则项是对现在损失函数的惩罚项,它鼓励权重参数小一点的值,换句话说,正则项是惩罚的大权重参数.

因此,如果增大正则系数 lambda 的值,也就增加了正则项的威力,导致权重参数变小(趋向于0),从而减小模型对训练数据的依赖.

L1正则:

L1:||w||_{1} = sum_{j=1}^{m}{|w_{j}|}

L1正则是权重参数的绝对值的和 |w_{1}|+|w_{2}|leqfrac{1}{lambda} 如下图所示:

图片来自<<python机器学习>>

正则化以后:新损失函数=原始损失函数+正则项

所以权重参数必须在图中的阴影中

L2正则:

L2:||w||_{2}^{2} = sum_{j=1}^{m}{|w_{j}^{2}|}

L2正则上图中的表示为阴影球 w_{1}^{2}+w_{2}^{2}leqfrac{1}{lambda}

图片来自<<python机器学习>>

正则化以后:新损失函数=原始损失函数+正则项

所以权重参数必须在图中的阴影球中


推荐阅读:
相关文章