文档章节

谈谈我对 归一化 与 标准化 作用 区别 的理解

o
 osc_g8254g7s
发布于 2019/08/19 16:37
字数 1584
阅读 10
收藏 0

精选30+云产品,助力企业轻松上云!>>>

https://www.cnblogs.com/Lin-Yi/p/10387648.html

为什么要做归一化或者标准化?

  主要是为了调整样本数据每个维度的量纲,让每个维度数据量纲相同或接近。 为什么要调整量纲?目的是什么?

  1 量纲不一样的情况是什么?

    比如一个2分类任务,预测一批零件是合格品还是残次品。

     这个零件把他假象成是细长细长的棍子,有两个维度特征, 半径都是 1 cm左右,  长度都是1000cm左右

    合格的零件半径都在1cm左右差距不大, 长度都在1000cm左右差距不大, 差距稍微大了点 可能就不合格了。 至于差距多少算不合格, 要建立模型自己去学一下。

      一个特征1cm左右  一个特征1000cm左右, 这个就叫量纲不一样。

      1cm左右的特征,上差下差 也都是0.几cm的差距, 1000cm的特征上差下差可能差出10cm多 或者更多, 这就是量纲不一样!

  2 量纲不一样会造成什么样的后果?

    会误导误导我们的模型学习过程!!

    比如这个零件合不合格的问题, 用k近邻算法,或者svm算法,或者什么其他算法,

    当算 点到点距离 或者 点到超面距离 的时候,

      半径带来的差的平方 可能是(0.75 - 1)^2 = 0.25^2  基本连1都不到

      长度带来的差的平方  可能是 (1020-1000)^2 = 400, 它很大, 甚至可能都超过1000这个数量级

      再把 半径的残差和长度的残差加和   400.00xx 

      结果 半径的残差 可以忽略不计了!!

      模型认为 长度差距带来的影响巨大!

      get不到半径细小的差距 也是导致合不合格的原因! 可能学不明白到底因为啥合格因为啥不合格!

 

  3 怎么解决这个问题??

    把每个维度特征的量纲调整到一样或者相近!

    目前,最常用的两个方法是:

      归一化

      标准化

 

  4 归一化 和 标准化 是咋回事?干了什么? 怎么做到缩放的量纲?

    在这里我只说说最简单常用的标准化和归一化, 变形的形式我就不说了,

     因为我了解的也不深入!简单的我都整不明白呢! 整复杂的再整错了挨揍啥的不好。

    对于一个样本X 是n行*d列 的矩阵,  有n条样本数据,每个数据占一行, 每条数据有d个的特征

      比如刚才内个零件的 X 就是n行*2列的矩阵, 有n个零件的数据  每个零件有2个特征 分别是半径和长度

      用Xi 表示所有n个样本的第i列特征,

      归一化和标准化他俩分别干啥了呢? 不要急 且听我继续胡说八道。

    归一化:

      对样本X的每个列Xi,   

          Xi = (Xi - min(Xi))  /  ( max(Xi) - min(Xi) )

          把Xi这列的每个数都减去 这列的最小值 再 除以  这列最大值和最小值的差

      结果: 所有列的数据,都缩放到 0到1之间,且最大值是1,最小值是0

         这个变换 保留了 这列中每个数 到最小值的差距的比例, 

         量纲大的给缩小了,量纲小的给扩大了 全都在0到1之间, 量纲严格相等

    标准化:

      对样本X的每个列 Xi

          Xi = (Xi - mean(Xi)) / 方差(Xi)

          把这列的每个数都 减去 这列的均值 再 除以这列的方差

      结果: 所有列的数据 均值为0 方差为1

         这个变换,保留了每列原本的分布, 保留了每个数 距离均值的差距比例

         所有数在 均值 为中心周围分布, 并且方差为1

         对于不同列 最大值与最小值之间的差距 不一定是多少, 

         量纲大的列被缩小 量纲小的列被放大, 量纲不严格相等,只是比原来更接近 而且很接近了。

 

  5 归一化和标准化 怎样选择用哪个预处理数据? 有什么区别??

    1 现实中,用归一化更多, 因为需要严格要求数据在0到1之间且量纲相等。

       比如现在在深度学习中 cnn中的分类任务,都使用梯度下降BP反向传播算法更新参数,

      在梯度下降中是为了逼近最优解,如果不同维度特征的量纲差距大,在超空间中,会形成超椭球的形状

       梯度下降过程会反复震荡,如下:

              

        当量纲完全一致,样本分布在空间是超正圆,梯度下降才最高效,如图:

                 

 

    2 但是不尽然! 有的时候真的需要使用标准化, 归一化效果不好。

      比如 就预测零件是否合格的问题,

      往往合格的零件,长度和半径 都在样本均值附近 才最好 才是合格的。

      长度过短或者过长都不合格, 半径太大太小也都不合格。

      我们需要保留样本距离均值的差距比例, 

        如果使用归一化,

           我们只考虑样本到最小值的距离比例,最小值估计应该是个残次品,

          我们丢失了最想要的 均值 周围的分布情况。 

          均值左侧的被缩放程度小, 均值右侧被缩放程度大!

 

  3 总结一下:

    有的人说,一般只用 标准化! 这个保留了样本原来的分布!!

    有的人说, 一般只用 归一化! 这个梯度下降收敛效果好!!

 

    我个人的理解,

      如果样本噪声不大,污染不严重, 采用归一化比较好, 量纲缩放到严格相同, 计算距离的时候带来的影响是等价的。

      如果 均值的信息是有意义的, 建议不实用归一化,实用标准化。 量纲不同但很接近, 不要丢失核心关键!!

 

以上内容纯属个人理解! 欢迎批评指正!

谢谢阅读。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

如何防止单击按钮时对话框关闭 - How to prevent a dialog from closing when a button is clicked

问题: I have a dialog with EditText for input. 我有一个使用EditText输入的对话框。 When I click the "yes" button on dialog, it will validate the input and then close the dialog.......

富含淀粉
13分钟前
7
0
访问者模式Visitor

一 概述 场景:通常来说,用于封装数据所用到的pojo类,其只包含get、set,对应的业务逻辑是在Service上完成的;但如果出现多个pojo类都共用一套逻辑时,则应该考虑将逻辑进行抽象,不同类型...

小明不觉小
37分钟前
5
0
jQuery Ajax错误处理,显示自定义异常消息 - jQuery Ajax error handling, show custom exception messages

问题: Is there some way I can show custom exception messages as an alert in my jQuery AJAX error message? 有没有什么方法可以在我的jQuery AJAX错误消息中显示自定义异常消息作为警报...

法国红酒甜
43分钟前
24
0
告别传统机房:3D 机房数据可视化实现智能化与VR技术的新碰撞

前言 随着各行业对计算机依赖性的日益提高,计算机信息系统的发展使得作为其网络设备、主机服务器、数据存储设备、网络安全设备等核心设备存放地的计算机机房日益显现出它的重要地位,而机房...

xhload3d
昨天
51
0
spring源码解析-xml配置文件读取

整个 XML配置文件读取的大致流程如下: 通过继承自AbstractBeanDefinitionReader中的方法,来使用ResourLoader将资源文件路径转换为对应的Resource文件(读取资源文件并将其转为Resource) ...

wc_飞豆
昨天
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部