Day70 關於 normalize 的 一些疑問
老師我想問說
# 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:28Jeffrey贊同數:0不贊同數:0留言數:0
-
2019/08/06 上午 10:59張維元 (WeiYuan)贊同數:0不贊同數:0留言數:1
想問一下「可以加速學習速度」的原因是什麼?