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

歡迎訪問 生活随笔!

生活随笔

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

pytorch

3.5 将 Batch 拟合进神经网络-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

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

←上一篇↓↑下一篇→
3.4 正則化網絡的激活函數回到目錄3.6 Batch Norm 為什么奏效

將 Batch 擬合進神經網絡 (Fitting Batch Norm into a Neural Network)

你已經看到那些等式,它可以在單一隱藏層進行Batch歸一化,接下來,讓我們看看它是怎樣在深度網絡訓練中擬合的吧。

假設你有一個這樣的神經網絡,我之前說過,你可以認為每個單元負責計算兩件事。第一,它先計算 zzz ,然后應用其到激活函數中再計算 aaa ,所以我可以認為,每個圓圈代表著兩步的計算過程。同樣的,對于下一層而言,那就是 z1[2]z_1^{[2]}z1[2]?a1[2]a_1^{[2]}a1[2]? 等。所以如果你沒有應用Batch歸一化,你會把輸入 XXX 擬合到第一隱藏層,然后首先計算 z[1]z^{[1]}z[1] ,這是由 w[1]w^{[1]}w[1]b[1]b^{[1]}b[1] 兩個參數控制的。接著,通常而言,你會把 z[1]z^{[1]}z[1] 擬合到激活函數以計算 a[1]a^{[1]}a[1] 。但Batch歸一化的做法是將值進行Batch歸一化,簡稱BN,此過程將由 β[1]\beta^{[1]}β[1]γ[1]\gamma^{[1]}γ[1] 兩參數控制,這一操作會給你一個新的規范化的 z[1]z^{[1]}z[1] 值( z~[1]\tilde{z}^{[1]}z~[1] ),然后將其輸入激活函數中得到 a[1]a^{[1]}a[1] ,即 a[1]=g[1](z~[l])a^{[1]}=g^{[1]}(\tilde{z}^{[l]})a[1]=g[1](z~[l])

現在,你已在第一層進行了計算,此時Batch歸一化發生在 zzz 的計算和 aaa 之間,接下來,你需要應用 a[1]a^{[1]}a[1] 值來計算 z[2]z^{[2]}z[2] ,此過程是由 w[2]w^{[2]}w[2]b[2]b^{[2]}b[2] 控制的。與你在第一層所做的類似,你會將 z[2]z^{[2]}z[2] 進行Batch歸一化,現在我們簡稱BN,這是由下一層的Batch歸一化參數所管制的,即 β[2]\beta^{[2]}β[2]γ[2]\gamma^{[2]}γ[2] ,現在你得到 z~[2]\tilde{z}^{[2]}z~[2] ,再通過激活函數計算出 a[2]a^{[2]}a[2] 等等。

所以需要強調的是Batch歸一化是發生在計算 zzzaaa 之間的。直覺就是,與其應用沒有歸一化的 zzz 值,不如用歸一過的 z~\tilde{z}z~ ,這是第一層( z~[1]\tilde{z}^{[1]}z~[1] )。第二層同理,與其應用沒有規范過的 z[2]z^{[2]}z[2] 值,不如用經過方差和均值歸一后的 z~[2]\tilde{z}^{[2]}z~[2] 。所以,你網絡的參數就會是 w[1],b[1],w[2]w^{[1]},b^{[1]},w^{[2]}w[1]b[1]w[2]b[2]b^{[2]}b[2] 等等,我們將要去掉這些參數。但現在,想象參數 w[1],b[1]w^{[1]},b^{[1]}w[1]b[1]w[l],b[l]w^{[l]},b^{[l]}w[l]b[l] ,我們將另一些參數加入到此新網絡中 β[1],β[2],γ[1],γ[2]\beta^{[1]},\beta^{[2]},\gamma^{[1]},\gamma^{[2]}β[1]β[2]γ[1]γ[2] 等等。對于應用Batch歸一化的每一層而言。需要澄清的是,請注意,這里的這些 β\betaββ[1],β[2]\beta^{[1]},\beta^{[2]}β[1]β[2] 等等)和超參數 β\betaβ 沒有任何關系,下一張幻燈片中會解釋原因,后者是用于Momentum或計算各個指數的加權平均值。Adam論文的作者,在論文里用 β\betaβ 代表超參數。Batch歸一化論文的作者,則使用 β\betaβ 代表此參數( β[1],β[2]\beta^{[1]},\beta^{[2]}β[1]β[2] 等等),但這是兩個完全不同的 β\betaβ 。我在兩種情況下都決定使用 β\betaβ ,以便你閱讀那些原創的論文,但Batch歸一化學習參數 β[1],β[2]\beta^{[1]},\beta^{[2]}β[1]β[2] 等等和用于MomentumAdamRMSprop算法中的 β\betaβ 不同。

所以現在,這是你算法的新參數,接下來你可以使用想用的任何一種優化算法,比如使用梯度下降法來執行它。

舉個例子,對于給定層,你會計算 dβ[l]d\beta^{[l]}dβ[l],接著更新參數 β\betaββ[l]=β[l]?αdβ[l]\beta^{[l]}=\beta^{[l]}-\alpha d\beta^{[l]}β[l]=β[l]?αdβ[l] 。你也可以使用AdamRMSpropMomentum,以更新參數 β\betaβγ\gammaγ ,并不是只應用梯度下降法。

即使在之前的視頻中,我已經解釋過Batch歸一化是怎么操作的,計算均值和方差,減去均值,再除以方差,如果它們使用的是深度學習編程框架,通常你不必自己把Batch歸一化步驟應用于Batch歸一化層。因此,探究框架,可寫成一行代碼,比如說,在TensorFlow框架中,你可以用這個函數(tf.nn.batch_normalization)來實現Batch歸一化,我們稍后講解,但實踐中,你不必自己操作所有這些具體的細節,但知道它是如何作用的,你可以更好的理解代碼的作用。但在深度學習框架中,Batch歸一化的過程,經常是類似一行代碼的東西。

所以,到目前為止,我們已經講了Batch歸一化,就像你在整個訓練站點上訓練一樣,或就像你正在使用Batch梯度下降法。

實踐中,Batch歸一化通常和訓練集的mini-batch一起使用。你應用Batch歸一化的方式就是,你用第一個mini-batch( X{1}X^{\{1\}}X{1} ),然后計算 z[1]z^{[1]}z[1] ,這和上張幻燈片上我們所做的一樣,應用參數 w[1]w^{[1]}w[1]b[1]b^{[1]}b[1] ,使用這個mini-batch( X{1}X^{\{1\}}X{1} )。接著,繼續第二個mini-batch( X{2}X^{\{2\}}X{2} ),接著Batch歸一化會減去均值,除以標準差,由 β[1]\beta^{[1]}β[1]γ[1]\gamma^{[1]}γ[1] 重新縮放,這樣就得到了 z~[1]\tilde{z}^{[1]}z~[1] ,而所有的這些都是在第一個mini-batch的基礎上,你再應用激活函數得到 a[1]a^{[1]}a[1] 。然后用 w[2]w^{[2]}w[2]b[2]b^{[2]}b[2] 計算 z[2]z^{[2]}z[2] ,等等,所以你做的這一切都是為了在第一個mini-batch( X{1}X^{\{1\}}X{1} )上進行一步梯度下降法。

類似的工作,你會在第二個mini-batchX{2}X^{\{2\}}X{2} )上計算 z[1]z^{[1]}z[1] ,然后用Batch歸一化來計算 z~[1]\tilde{z}^{[1]}z~[1] ,所以Batch歸一化的此步中,你用第二個mini-batchX{2}X^{\{2\}}X{2} )中的數據使 z~[1]\tilde{z}^{[1]}z~[1] 歸一化,這里的Batch歸一化步驟也是如此,讓我們來看看在第二個mini-batchX{2}X^{\{2\}}X{2} )中的例子,在mini-batch上計算 z[1]z^{[1]}z[1] 的均值和方差,重新縮放的 β\betaβγ\gammaγ 得到 z[1]z^{[1]}z[1] ,等等。

然后在第三個mini-batchX{3}X^{\{3\}}X{3} )上同樣這樣做,繼續訓練。

現在,我想澄清此參數的一個細節。先前我說過每層的參數是 w[l]w^{[l]}w[l]b[l]b^{[l]}b[l] ,還有 β[l]\beta^{[l]}β[l]γ[l]\gamma^{[l]}γ[l] ,請注意計算 zzz 的方式如下, z[l]=w[l]a[l?1]+b[l]z^{[l]}=w^{[l]}a^{[l-1]}+b^{[l]}z[l]=w[l]a[l?1]+b[l] ,但Batch歸一化做的是,它要看這個mini-batch,先將 z[l]z^{[l]}z[l] 歸一化,結果為均值0和標準方差,再由 β\betaβγ\gammaγ 重縮放,但這意味著,無論 b[l]b^{[l]}b[l] 的值是多少,都是要被減去的,因為在Batch歸一化的過程中,你要計算 z[l]z^{[l]}z[l] 的均值,再減去平均值,在此例中的mini-batch中增加任何常數,數值都不會改變,因為加上的任何常數都將會被均值減去所抵消。

所以,如果你在使用Batch歸一化,其實你可以消除這個參數( b[l]b^{[l]}b[l] ),或者你也可以,暫時把它設置為0,那么,參數變成 z[l]=w[l]a[l?1]z^{[l]}=w^{[l]}a^{[l-1]}z[l]=w[l]a[l?1] ,然后你計算歸一化的 z[l]z^{[l]}z[l]z~[l]=γ[l]z[l]+β[l]\tilde{z}^{[l]}=\gamma^{[l]}z^{[l]}+\beta^{[l]}z~[l]=γ[l]z[l]+β[l] ,你最后會用參數 β[l]\beta^{[l]}β[l] ,以便決定 z~[l]\tilde{z}^{[l]}z~[l] 的取值,這就是原因。

所以總結一下,因為Batch歸一化超過了此層 z[l]z^{[l]}z[l] 的均值, b[l]b^{[l]}b[l] 這個參數沒有意義,所以,你必須去掉它,由 β[l]\beta^{[l]}β[l] 代替,這是個控制參數,會影響轉移或偏置條件。

最后,請記住 z[l]z^{[l]}z[l] 的維數,因為在這個例子中,維數會是( n[l],1n^{[l]},1n[l],1 ), b[l]b^{[l]}b[l] 的尺寸為( n[l],1n^{[l]},1n[l],1 ),如果是 lll 層隱藏單元的數量,那 β[l]\beta^{[l]}β[l]γ[l]\gamma^{[l]}γ[l] 的維度也是( n[l],1n^{[l]},1n[l],1 ),因為這是你隱藏層的數量,你有 n[l]n^{[l]}n[l] 隱藏單元,所以 β[l]\beta^{[l]}β[l]γ[l]\gamma^{[l]}γ[l] 用來將每個隱藏層的均值和方差縮放為網絡想要的值。

讓我們總結一下關于如何用Batch歸一化來應用梯度下降法,假設你在使用mini-batch梯度下降法,你運行 t=1t=1t=1batch數量的for循環,你會在mini-batch X{1}X^{\{1\}}X{1} 上應用正向prop,每個隱藏層都應用正向prop,用Batch歸一化代替 z[l]z^{[l]}z[l]z~[l]\tilde{z}^{[l]}z~[l] 。接下來,它確保在這個mini-batch中, zzz 值有歸一化的均值和方差,歸一化均值和方差后是 z~[l]\tilde{z}^{[l]}z~[l] ,然后,你用反向prop計算 dw[l]dw^{[l]}dw[l]db[l]db^{[l]}db[l] ,及所有 lll 層所有的參數, dβ[l]d\beta^{[l]}dβ[l]dγ[l]d\gamma^{[l]}dγ[l] 。盡管嚴格來說,因為你要去掉 bbb ,這部分其實已經去掉了。最后,你更新這些參數: w[l]=w[l]?αdw[l]w^{[l]}=w^{[l]}-\alpha dw^{[l]}w[l]=w[l]?αdw[l] ,和以前一樣, β[l]=β[l]?αdβ[l]\beta^{[l]}=\beta^{[l]}-\alpha d\beta^{[l]}β[l]=β[l]?αdβ[l] ,對于 γ\gammaγ 也是如此 γ[l]=γ[l]?αdγ[l]\gamma^{[l]}=\gamma^{[l]}-\alpha d\gamma^{[l]}γ[l]=γ[l]?αdγ[l]

如果你已將梯度計算如下,你就可以使用梯度下降法了,這就是我寫到這里的,但也適用于有MomentumRMSpropAdam的梯度下降法。與其使用梯度下降法更新mini-batch,你可以使用這些其它算法來更新,我們在之前幾個星期中的視頻中討論過的,也可以應用其它的一些優化算法來更新由Batch歸一化添加到算法中的 β\betaβγ\gammaγ 參數。

我希望,你能學會如何從頭開始應用Batch歸一化,如果你想的話。如果你使用深度學習編程框架之一,我們之后會談。,希望,你可以直接調用別人的編程框架,這會使Batch歸一化的使用變得很容易。

現在,以防Batch歸一化仍然看起來有些神秘,尤其是你還不清楚為什么其能如此顯著的加速訓練,我們進入下一個視頻,詳細討論Batch歸一化為何效果如此顯著,它到底在做什么。

課程PPT





←上一篇↓↑下一篇→
3.4 正則化網絡的激活函數回到目錄3.6 Batch Norm 為什么奏效

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

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

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

主站蜘蛛池模板: 亚洲成年人免费观看 | 国产精品探花视频 | 人人干免费 | 国产美女精品人人做人人爽 | 东北毛片 | 欧美大片网站 | 日本美女动态图 | 免费国偷自产拍精品视频 | 亚洲区中文字幕 | 国产视频麻豆 | 正在播放国产精品 | 粗大的内捧猛烈进出视频 | 99精品乱码国产在线观看 | 久久精品无码一区二区三区毛片 | 国产欧美成人 | 国产不卡在线 | 天天色天天射天天操 | 人人射人人射 | 色视频在线观看 | 先锋av在线资源 | 欧美日韩在线一区 | 亚洲视频久久久 | 波多野结衣精品视频 | 国产精品无码成人片 | 成人在线视频免费看 | 夜夜摸夜夜操 | 亚洲一二三不卡 | 欧美一区二区三区婷婷 | 艳母日本动漫在线观看 | www.毛片 | 中文天堂在线资源 | 九七影院在线观看免费观看电视 | 日本公妇乱偷中文字幕 | 疯狂做爰高潮videossex | 久久影院午夜理论片无码 | jzz国产| 亚洲午夜精品久久久久久浪潮 | 三级网站在线 | 少妇极品熟妇人妻无码 | 一区二区三区黄色录像 | 蜜臀99久久精品久久久久久软件 | www.chengren | 日本久久高清 | 粗大的内捧猛烈进出视频 | 色人阁五月 | 美女午夜激情 | 成人一区二区av | 韩国一区二区视频 | 熟妇无码乱子成人精品 | 国产午夜激情视频 | 波多野结衣久久久久 | 我们的2018中文免费看 | 亚洲一区二区视频网站 | 麻豆视频在线观看免费网站 | 免费看日产一区二区三区 | 一级中国毛片 | 国产一级生活片 | 自拍偷拍福利视频 | 中文字幕免费高清在线观看 | 黄色免费网站 | 亚洲色在线视频 | 亚洲aaa级| 亚洲码在线观看 | 3o一40一50一6o女人毛片 | 一女双乳被两男吸视频 | 欧美成人天堂 | 久久久wwww| 97国产成人无码精品久久久 | 理伦毛片 | 亚洲永久视频 | 精品一区李梓熙捆绑 | 熟妇人妻一区二区三区四区 | 福利影院在线观看 | 视色网站 | 欧美日韩你懂的 | 国产视频三级 | 人妻少妇被猛烈进入中文字幕 | 日韩黄片一区二区三区 | 好吊妞这里只有精品 | 国产精品一区二区三区久久 | 亚洲高清视频在线 | 日韩精品无码一区二区三区 | 夏目彩春娇喘呻吟高潮迭起 | 日韩成人在线播放 | 自拍亚洲综合 | 免费操片 | 在线成人小视频 | 青娱乐av | 日本中文不卡 | 成人免费午夜 | 色吊丝中文字幕 | 真人抽搐一进一出视频 | 亚洲国产精华液网站w | 丰满人妻一区二区三区无码av | 丁香av | 91爱爱.com | 欧美精品一区二区三区四区 | 国产精品日本 | 天天综合在线观看 |