談談我對 歸一化 與 標准化 作用 區別 的理解


為什么要做歸一化或者標准化?

  主要是為了調整樣本數據每個維度的量綱,讓每個維度數據量綱相同或接近。 為什么要調整量綱?目的是什么?

  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 總結一下:

    有的人說,一般只用 標准化! 這個保留了樣本原來的分布!!

    有的人說, 一般只用 歸一化! 這個梯度下降收斂效果好!!

 

    我個人的理解,

      如果樣本噪聲不大,污染不嚴重, 采用歸一化比較好, 量綱縮放到嚴格相同, 計算距離的時候帶來的影響是等價的。

      如果 均值的信息是有意義的, 建議不實用歸一化,實用標准化。 量綱不同但很接近, 不要丟失核心關鍵!

 

以上內容純屬個人理解! 歡迎批評指正!

謝謝閱讀。

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM