日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

發布時間:2025/4/5 pytorch 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

←上一篇↓↑下一篇→
3.6 Batch Norm 為什么奏效回到目錄3.8 Softmax 回歸

測試時的 BatchNorm (Batch Norm at Test Time)

Batch歸一化將你的數據以mini-batch的形式逐一處理,但在測試時,你可能需要對每個樣本逐一處理,我們來看一下怎樣調整你的網絡來做到這一點。

回想一下,在訓練時,這些就是用來執行Batch歸一化的等式。在一個mini-batch中,你將mini-batchz(i)z^{(i)}z(i) 值求和,計算均值,所以這里你只把一個mini-batch中的樣本都加起來,我用 mmm 來表示這個mini-batch中的樣本數量,而不是整個訓練集。然后計算方差,再算 znorm(i)z^{(i)}_{norm}znorm(i)? ,即用均值和標準差來調整,加上 ?\epsilon? 是為了數值穩定性。 z~\tilde{z}z~ 是用 γ\gammaγβ\betaβ 再次調整 znormz_{norm}znorm? 得到的。

請注意用于調節計算的 μ\muμσ2\sigma^2σ2 是在整個mini-batch上進行計算,但是在測試時,你可能不能將一個mini-batch中的6428或2056個樣本同時處理,因此你需要用其它方式來得到 μ\muμσ2\sigma^2σ2 ,而且如果你只有一個樣本,一個樣本的均值和方差沒有意義。那么實際上,為了將你的神經網絡運用于測試,就需要單獨估算 μ\muμσ2\sigma^2σ2 ,在典型的Batch歸一化運用中,你需要用一個指數加權平均來估算,這個平均數涵蓋了所有mini-batch,接下來我會具體解釋。

我們選擇 lll 層,假設我們有mini-batchX[1],X[2],X[3]……X^{[1]},X^{[2]},X^{[3]}……X[1]X[2]X[3] 以及對應的 yyy 值等等,那么在為 lll 層訓練 X{1}X^{\{1\}}X{1} 時,你就得到了 μ[l]\mu^{[l]}μ[l] ,我還是把它寫做第一個mini-batch和這一層的 μ\muμ 吧,( μ[l]→μ{1}[l]\mu^{[l]}\rightarrow\mu^{\{1\}[l]}μ[l]μ{1}[l] )。當你訓練第二個mini-batch,在這一層和這個mini-batch中,你就會得到第二個 μ\muμμ{2}[l]\mu^{\{2\}[l]}μ{2}[l] )值。然后在這一隱藏層的第三個mini-batch,你得到了第三個 μ\muμμ{3}[l]\mu^{\{3\}[l]}μ{3}[l] )值。正如我們之前用的指數加權平均來計算 θ1,θ2,θ3\theta_1,\theta_2,\theta_3θ1?θ2?θ3? 的均值,當時是試著計算當前氣溫的指數加權平均,你會這樣來追蹤你看到的這個均值向量的最新平均值,于是這個指數加權平均就成了你對這一隱藏層的 zzz 均值的估值。同樣的,你可以用指數加權平均來追蹤你在這一層的第一個mini-batch中所見的 σ2\sigma^2σ2 的值,以及第二個mini-batch中所見的 σ2\sigma^2σ2 的值等等。因此在用不同的mini-batch訓練神經網絡的同時,能夠得到你所查看的每一層的 μ\muμσ2\sigma^2σ2 的平均數的實時數值。

最后在測試時,對應這個等式( znorm(i)=z(i)?μσ2+?z_{norm}^{(i)}=\frac{z^{(i)}-\mu}{\sqrt{\sigma^2+\epsilon}}znorm(i)?=σ2+??z(i)?μ? ),你只需要用你的 zzz 值來計算 znorm(i)z_{norm}^{(i)}znorm(i)? ,用 μ\muμσ2\sigma^2σ2 的指數加權平均,用你手頭的最新數值來做調整,然后你可以用左邊我們剛算出來的 znormz_{norm}znorm? 和你在神經網絡訓練過程中得到的 β\betaβγ\gammaγ 參數來計算你那個測試樣本的 z~\tilde{z}z~ 值。

總結一下就是,在訓練時, μ\muμσ2\sigma^2σ2 是在整個mini-batch上計算出來的包含了像是64或28或其它一定數量的樣本,但在測試時,你可能需要逐一處理樣本,方法是根據你的訓練集估算 μ\muμσ2\sigma^2σ2 ,估算的方式有很多種,理論上你可以在最終的網絡中運行整個訓練集來得到 μ\muμσ2\sigma^2σ2 ,但在實際操作中,我們通常運用指數加權平均來追蹤在訓練過程中你看到的 μ\muμσ2\sigma^2σ2 的值。還可以用指數加權平均,有時也叫做流動平均來粗略估算 μ\muμσ2\sigma^2σ2 ,然后在測試中使用 μ\muμσ2\sigma^2σ2 的值來進行你所需要的隱藏單元 zzz 值的調整。在實踐中,不管你用什么方式估算 μ\muμσ2\sigma^2σ2 ,這套過程都是比較穩健的,因此我不太會擔心你具體的操作方式,而且如果你使用的是某種深度學習框架,通常會有默認的估算 μ\muμσ2\sigma^2σ2 的方式,應該一樣會起到比較好的效果。但在實踐中,任何合理的估算你的隱藏單元 zzz 值的均值和方差的方式,在測試中應該都會有效。

Batch歸一化就講到這里,使用Batch歸一化,你能夠訓練更深的網絡,讓你的學習算法運行速度更快,在結束這周的課程之前,我還想和你們分享一些關于深度學習框架的想法,讓我們在下一段視頻中一起討論這個話題。

課程PPT



←上一篇↓↑下一篇→
3.6 Batch Norm 為什么奏效回到目錄3.8 Softmax 回歸

總結

以上是生活随笔為你收集整理的3.7 测试时的 BatchNorm-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。