1 归一化处理
归一化是一种数理统计中常用的数据预处理手段,在机器学习中归一化通常将数据向量每个维度的数据映射到(0,1)或(-1,1)之间的区间或者将数据向量的某个范数映射为1,归一化好处有两个:
(1) 消除数据单位的影响:其一可以将有单位的数据转为无单位的标准数据,如成年人的身高150-200cm、成年人体重50-90Kg,身高的单位是厘米而体重的单位是千克,不同维度的数据单位不一样,造成原始数据不能直接代入机器学习中进行处理,所以这些数据经过特定方法统一都映射到(0,1)这个区间,这样所有数据的取值范围都在同一个区间里的。
(2) 可提深度学习模型收敛速度: 如果不进行归一化处理,假设深度学习模型接受的输入向量只有两个维度x1和x2,其中X1取值为0-2000,x2取值为0-3。这样数据在进行梯度下降计算时梯度时对应一个很扁的椭圆形,很容易在垂直等高线的方向上走大量的之字形路线,是的迭代计算量大且迭代的次数多,造成深度学习模型收敛慢。
2 L2范数归一化的概念
L2范数归一化处理操作是对向量X的每个维度数据x1, x2, …, xn都除以||x||2得到一个新向量,即
\[{
{\bf{X}}_2} = \left( {\frac{
{
{x_1}}}{
{
{
{\left\| {\bf{x}} \right\|}_2}}},\frac{
{
{x_2}}}{
{
{
{\left\| {\bf{x}} \right\|}_2}}}, \cdots ,\frac{
{
{x_n}}}{
{
{
{\left\| {\bf{x}} \right\|}_2}}}} \right) = \left( {\frac{
{
{x_1}}}{
{\sqrt {x_1^2 + x_2^2 + \cdots + x_n^2} }},\frac{
{
{x_2}}}{
{\sqrt {x_1^2 + x_2^2 + \cdots + x_n^2} }}, \cdots ,\frac{
{
{x_n}}}{
{\sqrt {x_1^2 + x_2^2 + \cdots + x_n^2} }}} \right)\]
若向量A = (2, 3, 6),易得向量X的L2范数为
\[{\left\| {\bf{A}} \right\|_2} = \sqrt {
{2^2} + {3^2} + {6^2}} = \sqrt {4 + 9 + 36} = \sqrt {49} = 7\]
所以向量A的L2范数归一化后得到向量为
\[{
{\bf{A}}_2} = \left( {\frac{2}{7},\frac{3}{7},\frac{6}{7}} \right)\]
![1180694-20190713142905186-1211224097.png](https://i-blog.csdnimg.cn/blog_migrate/297fd40f69c677fbed7dab18b0612fc4.png)
图1 L2范数可以看作是向量的长度