訓練神經網路,特徵必須要在0到1之間
此時就只能加速訓練的方法就是歸一化輸入:
在使用正則化的情況下,必須使用標準化:
因為不用正則時,損失函式只是僅僅在度量**與真實的差距
加上正則後,損失函式除了要度量上面的差距外,還要度量引數值是否足夠小
而引數值的大小程度或者說大小的級別是與特徵的數值範圍相關的
標準化需要兩個步驟:零均值和歸一化方差
希望無論是訓練集和測試集都是通過相同的 μ
μμ 和 σ
σσ2 定義的資料轉換,這兩個是由訓練集得出來的
歸一化特徵後直觀理解是代價函式會更圓一些,而且更容易優化,前提是特徵都在相似範圍內,而不是從1到1000,0到1的範圍,而是在-1到1範圍內或相似偏差,這使得代價函式j優化起來更簡單快速
如果假設特徵x1範圍在0-1之間,x2的範圍在-1到1之間,x3範圍在1-2之間,相似範圍,所以也會表現得很好
訓練神經網路,尤其是深度神經所面臨的乙個問題就是梯度消失或梯度**
也就是導數或坡度有時會變得非常大,或者非常小,甚至於以指數方式變小,這加大了訓練的難度
假設所有權重矩陣都是1.5倍的單位矩陣,計算結果就是 y
^\hat
y^ ,也就是等於 1.5(l-1)
x
xx如果對於乙個深度神經網路來說l值較大,那麼 y
^\hat
y^ 的值也會非常大
實際上呈指數級增長的,增長的比率是1.5l
因此對於乙個深度神經網路,y的值將**式增長
假設所有矩陣都是0.5倍的單位矩陣,計算結果就是 y
^\hat
y^也就是等於0.5l
x
xx ,啟用函式的值將以指數級下降
為了預防z值過大或過小,可以看到神經元的輸入特徵數量n越大,希望wi越小,因為z是wi xi的和
如果把很多此類項相加,希望每項值更小,最合理的方法就是設定wi = 1 / n
實際上,要做的就是設定某層權重矩陣w[l] =np.random.randn(shape) * np.sqrt(1 / n[l-1])
n[l-1]就是餵給第 l
ll 層神經單元的數量(即第 l
ll -1層神經元數量)
如果是用的是relu啟用函式,而不是1/n,方差設定為2/n,效果會更好
其餘的tanh函式等依然是 √(1/n[l-1])
梯度檢驗(grad check)可以幫助除錯節省了很多時間
也可以幫助發現backprop實施過程中的bug
但只用於除錯
假設 hhhθ
( x)
(x)(x
) = θ
θθ0 + θθθ1
x
xx1 + θθθ2
x
xx2 + θθθ3
x
xx3 + ⋯ + θθθn
x xxn
因為計算所有 i 值的權重導數dθdθ
dθ[ i]
[i][i
] 是乙個非常漫長的計算過程,不能與dropout同時使用
首先,要清楚 j
jj 是權重θ的乙個函式,也可以將j函式展開為j
jj(θ1,θ2,θ3,……)
不論權重θ的維度是多少,為了實施梯度檢驗,要做的就是迴圈執行
從而對每個i也就是對每個θ組成元素計算 dθdθ
dθ[ i]
[i][i
] 的值,使用雙邊誤差,也就是
只對 θi 增加ε,ε的值很小,如0.01,其它項保持不變
另一邊一樣,只不過是減去ε,θ其它項全都保持不變
這個值( dθdθ
dθ[ i]
[i][i
] )應該逼近代價函式的偏導數dθ[
i]dθ[i]
dθ[i
] = ∂j / ∂θi(注意代價新增正則項)需要驗證
計算這兩個向量的距離,dθdθ
dθ[ i]
[i][i
] - dθ[
i]dθ[i]
dθ[i
] 的歐幾里得範數,誤差平方之和,然後求平方根,得到歐式距離
然後向量長度歸一化,使用向量長度的歐幾里得範數,分母用於預防這些向量太小或太大,使得方程式變成比率
實際執行方程式時ε可能為10-7 ,如果發現計算的值為10-7 或更小,導數逼近很有可能是正確的
在10-5 範圍內,再次檢查這個向量的所有項,查詢不同的 i 值,確保沒有一項誤差過大
在10-3 範圍內,需要檢查所有θ項
想要降低**誤差,即提高**精度,往往會採用這些手段:
手段效果
採集更多的樣本
錯誤的認為樣本越多越好,其實資料多並不是越好
降低特徵維度
可能去掉了有用的特徵
採集更多的特徵
增加了計算負擔,也可能導致過擬合
進行高次多項式回歸
過高的多項式可能造成過擬合
除錯正規化引數 λ,增大或者減少 λ
增大或者減少都是憑感覺
參考:
深度學習筆記(7) 實踐層面(二)
深度學習可能存在過擬合問題 高方差,在確定模型之後有兩個解決方法 正則化準備更多的資料 但可能無法時時刻刻準備足夠多的訓練資料或者獲取更多資料的成本很高 但正則化通常有助於避免過擬合或減少網路誤差 用邏輯回歸來實現這些設想,求成本函式j的最小值,引數包含一些訓練資料和不同資料中個體 的損失 w和b是...
動手深度學習 筆記 8
機器翻譯 mt 將一段文字從一種語言自動翻譯為另一種語言,用神經網路解決這個問題通常稱為神經機器翻譯 nmt 主要特徵 輸出是單詞序列而不是單個單詞。輸出序列的長度可能與源序列的長度不同。將資料集清洗 轉化為神經網路的輸入minbatch。資料預處理的過程中,我們首先需要對資料進行清洗。字串 單詞組...
深度學習 學習筆記三
1.回歸和分類都是有監督學習問題嘛?分類與回歸,這兩者都屬於監督學習的範疇,都是學習的方法。之所以會去兩個不同的名字,就是因為其對應的輸出值形式不同,僅此而已。對於回歸任務其輸出值是連續的實數值,而對於分類任務其輸出值為離散的類別數。因此這兩者的本質是一樣的,僅僅是輸出形式不同而已。當然由於其輸出形...