PyTorch學習(改善深度神經網路)

2021-10-07 19:21:26 字數 1393 閱讀 3890

偏差,方差是我們調整神經網路的乙個重要指標,在搭建神經網路時需要權衡這兩個值,當高偏差時,演算法不能很好的擬合資料,稱之為欠擬合;當高方差時,演算法過於貼合資料集,稱之為過擬合。

判斷偏差與方差的情況,可以根據訓練集與驗證集的正確率進行評估,訓練集的誤差高則偏差高,驗證集的誤差高則方差高,是可以出現方差與偏差同時很糟糕的情況。

l2正則化

此種正則化在代價函式中額外增加了l2範數。公式為:

j (w

,b)=

1m∑1

ml(y

−(i)

,y(i

))+λ

2m∣∣

w∣∣2

j(w,b) = \sum_1^ml(y^,y^)+||w||^2

j(w,b)

=m1​

1∑m​

l(y−

(i),

y(i)

)+2m

λ​∣∣

w∣∣2

∣ ∣w

∣∣2=

∑1nx

wj2=

wt

w||w||^2 = \sum_1^w_j^2 = w^tw

∣∣w∣∣2

=1∑n

x​​w

j2​=

wtw此式只正則化了w向量,並未對實數b進行正則化,在實際使用時也可以加上。且正則化其中的引數是需要通過嘗試進行設定的,通常一開始我們給其設定為乙個很小的值。

通過這樣修改過的代價函式對引數w進行梯度下降調整時,dw也會隨之改變,使得w值比原本下降的更快,因此l2正則化又稱為*「權重衰減」。*

2.dropout正則化

此種方法稱為「隨機失活」,簡單的說就是對神經網路的每一層設定乙個概率,隨機的消除這一層的幾個節點,將神經網路變成更小的神經網路。

3.其他

對於降低方差還可以使用其他方法,例如在訓練影象識別時,可以通過對原本影象進行翻轉變形作為新的訓練資料;easy stopping指的是在訓練網路時,在驗證資料誤差開始上公升時停止繼續訓練。

歸一化輸入是加快訓練的一種方法。主要步驟:1.零均值,2.歸一化方差。

1.零均值

μ =1

m∑i=

1mxi

\mu=\sum_^mx^

μ=m1​i

=1∑m

​xi每個訓練集資料減去上述數值,進行一次平移即完成零均值。

2.歸一化方差

δ 2=

1m∑i

=1m(

x(i)

)2

\delta^2 = \sum_^m(x^)^2

δ2=m1​

i=1∑

m​(x

(i))

2將零均值後的資料再,除以上式向量,歸一化完成。

(pytorch 深度學習)深度迴圈神經網路

迴圈神經網路只有乙個單向的隱藏層,在深度學習應用裡,我們通常會用到含有多個隱藏層的迴圈神經網路,也稱作深度迴圈神經網路。下圖演示了乙個有l ll個隱藏層的深度迴圈神經網路,每個隱藏狀態不斷傳遞至當前層的下一時間步和當前時間步的下一層。具體來說 第1隱藏層的隱藏狀態和之前的計算一樣 h t 1 xtw...

深度學習pytorch 卷積神經網路

def corr2d x,k h,w k.shape y torch.zeros x.shape 0 h 1,x.shape 1 w 1 for i in range y.shape 0 for j in range y.shape 1 y i,j x i i h,j j w k sum retur...

pytorch 深度學習

pytorch深度學習實踐 訓練集 開發集 模型評估 測試集。f x wx b f x wx b f x w x bloss 乙個樣本 cost mean square error training set 區域性最優,不一定全域性最優。鞍點 梯度為0,但無法繼續迭代。w w c ost ww w ...