logo
Loading...

Day70 關於 normalize 的 一些疑問 - Cupoy

老師我想問說  # normalize inputs from 0-255 to 0-1x_Trai...

ml100-2-d70,ml-100

Day70 關於 normalize 的 一些疑問

2019/08/05 下午 03:09
機器學習共學討論版
嘉瑜陳
觀看數:62
回答數:4
收藏數:0
ml100-2-d70
ml-100

 老師我想問說  


# normalize inputs from 0-255 to 0-1

x_Train_normalize = x_Train / 255

x_Test_normalize = x_Test / 255


除以 255  這個用途是甚麼


因為之前看了一些案例也都是 / 255 再放入模型

我自己的猜想是: 對圖片的像素做 MinMaxSaclar 

但是不能夠理解這樣做的用途為何對圖片訓練有幫助


後來看到模型普遍都使用模型優化器,像是adam

結合SGD跟AdaGrad 的特性


自己又猜說: 是不是因為跟AdaGrad學習速率,隨著loss大小而改變的關係


導致圖片如果沒有除以255 起初的loss值會過大 導致學習速率很慢


然後我用手寫辨識做了2種比對 左邊是標準化的 右邊是沒有標準化的

看到準確率差距非常明顯


想問老師說 這樣的猜想是合理的嘛還是其實不對 QQ

回答列表

  • 2019/08/05 下午 03:16
    嘉瑜陳
    贊同數:0
    不贊同數:0
    留言數:0

    然後之後我做了一些查詢 發現了這篇文章也有講解圖像為何要標準化


    https://zhuanlan.zhihu.com/p/35597976


    雖然挺詳盡的 但他的標準化好像是batch normalization 的精神


    沒有解答到我的疑問QQ 


    我之後在dense層中間加入batch normalization 和 原本的 / 255 做比較 


    發現acc更好了  (左邊是 / 255 , 右邊是加入 batch normalize)


     

  • 2019/08/05 下午 04:54
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    normalize 的目的是避免特定欄位的範圍差異,影響其他欄位權重的計算。常見的 normalize 做法可以把所有的欄位範圍都縮放到 0 - 1 之間。


    這邊會除 255 ,是因為原本的數值範圍就是 0 ~ 255 ,所以除了 255  之後就會縮放到 0 ~ 1。

  • 2019/08/05 下午 10:28
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:0

  • 2019/08/06 上午 10:59
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:1

    想問一下「可以加速學習速度」的原因是什麼?