2

對這個問題的啓發:爲什麼深度學習不會遇到浮點或數值精度錯誤,如果其大部分訓練都是在平均值0和標準差1的數據上?

Why do different methods for solving Xc=y in python give different solution when they should not?

,似乎有數值的問題,由於浮動點,反轉矩陣和限制值[-1,1],我很好奇,現在爲什麼不深的學習不是來自浮遭受或如果大多數訓練數據的平均值爲0和標準差1(假設我假定大部分數據已經被預處理到該範圍內,再加上我認爲這應該基本正確批量標準化的高使用率)。是因爲深度學習不是通過高度提高多項式來進行訓練,或者爲什麼深度學習通常很好?是否有一些特殊的SGD或者(流行)激活函數relu,elu等不是數值不穩定的(與高次多項式相比)?或者,也許GPU培訓一起避免浮點表示?或者爲什麼深度學習訓練在數值上穩定?

回答

1

對於DL來說,沒有什麼是真正的神奇 - 它總是有數字錯誤。然而,由於非線性的規模和數量,DL中的數值不穩定性通常會導致無窮大或無規律,而不是錯誤的答案。因此他們通常很容易被發現。特別是[0,1]區間沒有任何困難,事實上,它對於浮動物來說是一個很好的存儲空間,因爲quarter of representable floats actually live in [0,1]!你所指的問題在於採用這樣一個數字的巨大指數,這個數字危險地接近機器精度。任何標準的DL技術都不需要任何激活的30次方。實際上,大多數最成功的DL技術(基於S形,tanhs和relus)幾乎是線性的,所以數值不穩定性主要來自概率估計中的exp操作。

所以:

  • 是關於高次多項式? ,這是主要問題,在DL中不會遇到。
  • SGD有什麼特別之處?不是真的。
  • 是關於激活功能嗎?是的,他們不會讓這麼大的精度下降(指數是個例外,但它確實會導致數值問題)
  • 是GPU避免浮動嗎?不,它不是,GPU與它無關。
相關問題