深度神經網路訓練的必知技巧

2021-08-21 10:28:59 字數 1599 閱讀 3656

標準化=w1

∗x1+

w2∗x

2+bs=w1∗x1+w2∗x2+bs/

dw1=

x1;d

s/dw

2=x2

ds/dw1=x1;ds/dw2=x2

x-=numpy.mean(x,axis=0) # 即x的每一列都減去該列的均值
x/=numpy.std(x,axis=0) # 資料歸一化。
x-=np.mean(x,axis=0)

cov=np.dot(x.t,x)/x.shape[0] #計算協方差矩陣

u,s,v=np.linalg.svd(cov) #計算資料協方差矩陣的奇異值分解(svdfactorization)

xrot=np.dot(x,u) #對資料去相關

xwhite=xrot/np.sqrt(s+1e-5) #除以奇異值的平方根,注意到這裡加了個1e-5是為了防止分母是0的情況。
w=0.01*numpy.random.randn(d,h)
var(a+b+c)=var(a)+ var(b)+ var(c)

s = w1*x1 + w2*x2 +…+wi*xi+ b

w=numpy.random.randn(n)/sqrt(n)  #n是資料維度
令 n*var(w) = 1,就得到std(w) = 1 / sqrt(n)。

w=numpy.random.randn(n)*sqrt(2.0/n)

資料集相似性高

資料集相似性低

資料少直接提取頂層特徵來訓練線性分類器

比較困難,嘗試用不同層的特徵訓練乙個線性分類器

資料多用較小的學習率微調更多的層

用較小的學習率微調盡可能多的層

加速收斂,沒有飽和問題,大大緩解了梯度消散的現象。

f = w1*x1 + w2*x2

w ,我們將其項 12λ

w212λw2

加入到目標函式中,其中λ

λ 是正則化的強度引數。在懲罰項公式的前面加上1212

是很常見的,這樣做的原因是因為優化函式12λ

w212λw2

求導的時候不至於前面產生乙個常數項因子2,而只是λwλw

這樣簡單的形式。對l2正則化的直觀的解釋是,l2正則化對尖峰向量的懲罰很強,並且傾向於分散權重的向量。

w ,我們都會加上乙個項λ|w

|λ|w|

到目標函式中。l1正則化有乙個非常有趣的屬性,那就是它會使得權重向量w

w在優化期間變得稀疏(例如非常接近零向量)。帶有l1正則化項結尾的神經網路僅僅使用它的最重要的並且接近常量的雜訊的輸入的乙個稀疏的子集。相比之下,最終的權重向量從l2正則化通常是分散的、小數字。在實踐中,如果你不關心明確的特徵選擇,可以預計l2正則化在l1的效能優越。

=0.5

p=0.5

是乙個合理的預設值。但是這個值可以在驗證資料上進行微調。 

神經網路訓練技巧

1 學習速率。首先設學習速率為乙個較大的值,確保training cost在不斷下降。當accuracyy在n個epoch內不再增加時,使得學習速率減小一半。重複迭代,直到學習速率變成原來的1 1024。2 學習速率要根據訓練cost調。但是網路層數和神經元數目,mini batch size要根據...

訓練深度神經網路的常用方法和技巧

4.超引數的重要性從高到低 5.超引數的搜尋方式 6.偏差和方差分析 bias an variance 7.如何解決高偏差 high bias 8.如何解決高方差 high variance 總結參考 神經網路基礎 前文三篇文章 乙個簡單的3層神經網路模型part1,乙個簡單的3層神經網路模型par...

神經網路訓練技巧入門

神經網路基本訓練技巧 兩部分 1.降低訓練誤差 2.降低測試誤差 增加泛化能力 1.如何降低訓練誤差 1.使用恰當的loss function 好處 e.g.cross entroypy的效果好於square error 2.使用mini batch進行訓練 隨機梯度下降 細節 將整體樣本分為n個m...