国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

神經(jīng)網(wǎng)絡(luò)中的常用算法-BN算法

這篇具有很好參考價值的文章主要介紹了神經(jīng)網(wǎng)絡(luò)中的常用算法-BN算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、引言

二、Convariate shift

三、算法

1、算法公式

?2、訓練中的BN算法? ? ? ?

3、測試和推理中的BN算法

四、BN算法在網(wǎng)絡(luò)中的作用

1、優(yōu)點

2、缺點

五、論文


一、引言

????????傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),只是在將樣本x輸入到輸入層之前對x進行標準化處理,以降低樣本間的差異性。BN是在此基礎(chǔ)上,不僅僅只對輸入層的輸入數(shù)據(jù)x進行標準化,還對每個隱藏層的輸入進行標準化。

????????我們在圖像預處理過程中通常會對圖像進行標準化處理,也就是image normalization,使得每張輸入圖片的數(shù)據(jù)分布能夠統(tǒng)均值為u,方差為h的分布。這樣能夠加速網(wǎng)絡(luò)的收斂。但是當一張圖片輸入到神經(jīng)網(wǎng)絡(luò)經(jīng)過卷積計算之后,這個分布就不會滿足剛才經(jīng)過image normalization操作之后的分布了,可能適應了新的數(shù)據(jù)分布規(guī)律,這個時候?qū)?shù)據(jù)接入激活函數(shù)中,很可能一些新的數(shù)據(jù)會落入激活函數(shù)的飽和區(qū),導致神經(jīng)網(wǎng)絡(luò)訓練的梯度消失,如下圖所示當feature map的數(shù)據(jù)為10的時候,就會落入飽和區(qū),影響網(wǎng)絡(luò)的訓練效果。這個時候我們引入Batch Normalization的目的就是使我們卷積以后的feature map滿足均值為0,方差為1的分布規(guī)律。在接入激活函數(shù)就不會發(fā)生這樣的情況。
?

神經(jīng)網(wǎng)絡(luò)中的常用算法-BN算法

? ? ??????????上面只是舉例說明, 那在理論上為什么需要對每個隱藏層的輸入進行標準化呢?或者說這樣做有什么好處呢?這就牽涉到一個Covariate Shift問題。

二、Convariate shift

????????Convariate shift是BN論文作者提出來的概念,指的是具有不同分布的輸入值對深度網(wǎng)絡(luò)學習的影響。當神經(jīng)網(wǎng)絡(luò)的輸入值的分布不同時,我們可以理解為輸入特征值的scale差異較大,與權(quán)重進行矩陣相乘后,會產(chǎn)生一些偏離較大的差異值;而深度學習網(wǎng)絡(luò)需要通過訓練不斷更新完善,那么差異值產(chǎn)生的些許變化都會深深影響后層,偏離越大表現(xiàn)越為明顯;因此,對于反向傳播來說,這些現(xiàn)象都會導致梯度發(fā)散,從而需要更多的訓練步驟來抵消scale不同帶來的影響,也就是說,這種分布不一致將減緩訓練速度。

????????而BN的作用就是將這些輸入值進行標準化,降低scale的差異至同一個范圍內(nèi)。這樣做的好處在于一方面提高梯度的收斂程度,加快模型的訓練速度;另一方面使得每一層可以盡量面對同一特征分布的輸入值,減少了變化帶來的不確定性,也降低了對后層網(wǎng)絡(luò)的影響,各層網(wǎng)絡(luò)變得相對獨立,緩解了訓練中的梯度消失問題。

三、算法

1、算法公式

????????????????? ?一般將bn層放在卷積層(Conv)和激活層(例如Relu)之間。需要對Conv后的每層數(shù)據(jù)進行歸一化。下面的算法是針對某一個層的,每層都采取相應的算法。

神經(jīng)網(wǎng)絡(luò)中的常用算法-BN算法

?2、訓練中的BN算法? ? ? ?

????????訓練的時候BN層是以每個channel來計算均值和方差,比如是如的是64*32*32*3,3代表channel,當前假如是rgb,64是batchsize。首先在r,g,b上各層上分別求出當前圖像所有像素點的均值和方差,然后在batch上求平均,得到該組batch數(shù)據(jù)的局部數(shù)據(jù)均值和方差。然后引入bn層中的權(quán)重α和偏執(zhí)β。可學習參數(shù)α、β是一個1*channel維度的。

3、測試和推理中的BN算法

?????????測試和推理的時候如果依舊按照bn的公式算當前batch的均值和方差,如果測試圖片batch一般為1,那么就大大降低模型的泛化能力,這和訓練是要求batch盡可能大的初衷是不一致的。這里借用一句話:某一個樣本經(jīng)過測試時應該有確定的輸出,如果在測試時也是用測試數(shù)據(jù)的means和var,那么樣本的輸出會隨所處batch的不同,而有所差異。即batch的隨機性導致了樣本測試的不確定性。所以使用固定的在訓練中得出的mean和var,在測試和推理的時候使用的均值和方差為訓練數(shù)據(jù)通過指數(shù)滑動平均(ExponentialMovingAverage)EMA估算整個訓練數(shù)據(jù)集的樣本均值和方差的全局值。

四、BN算法在網(wǎng)絡(luò)中的作用


????????BN算法像卷積層,池化層、激活層一樣也輸入一層,BN層添加在激活函數(shù)前,對激活函數(shù)的輸入進行歸一化,這樣解決了輸入數(shù)據(jù)發(fā)生偏移和增大的影響。

1、優(yōu)點

(1)可以增加訓練速度,防止過擬合:如果沒有歸一化,每一層訓練后的數(shù)據(jù)分布都不同,網(wǎng)絡(luò)需要更大的開銷去學習新的分布,造成網(wǎng)絡(luò)模型更加復雜,因此容易發(fā)生過擬合,網(wǎng)絡(luò)收斂也比較慢。

(2)可以避免激活函數(shù)進入非線性飽和區(qū),從而造成梯度彌散問題。

(3)不用理會擬合中的droupout、L2正則化項的參數(shù)選擇,采用BN算法可以省去這兩項或者只需要小的L2正則化約束。原因,BN算法后,參數(shù)進行了歸一化,原本經(jīng)過激活函數(shù)沒有太大影響的神經(jīng)元分布變得明顯,經(jīng)過一個激活函數(shù)以后,神經(jīng)元會自動削弱或者去除一些神經(jīng)元,就不用再對其進行dropout。另外就是L2正則化,由于每次訓練都進行了歸一化,就很少發(fā)生由于數(shù)據(jù)分布不同導致的參數(shù)變動過大,帶來的參數(shù)不斷增大。

(4)由于因為BN具有提高網(wǎng)絡(luò)泛化能力的特性,可以減少了你可以移除dropout比例和正則化參數(shù),這樣減少繁瑣的調(diào)參。

(5)可以省LRN局部歸一化層。

2、缺點

(1)batch_size較小的時候,效果差
(2)BN 在RNN中效果比較差,RNN的輸入是長度是動態(tài)的
(3)就是在測試階段的問題,均值和方差的計算可能與訓練集的相差較大

五、論文

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

https://arxiv.org/abs/1502.03167文章來源地址http://www.zghlxwxcb.cn/news/detail-400880.html

到了這里,關(guān)于神經(jīng)網(wǎng)絡(luò)中的常用算法-BN算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • PyTorch+PyG實現(xiàn)圖神經(jīng)網(wǎng)絡(luò)經(jīng)典模型目錄

    PyTorch+PyG實現(xiàn)圖神經(jīng)網(wǎng)絡(luò)經(jīng)典模型目錄

    大家好,我是阿光。 本專欄整理了《圖神經(jīng)網(wǎng)絡(luò)代碼實戰(zhàn)》,內(nèi)包含了不同圖神經(jīng)網(wǎng)絡(luò)的相關(guān)代碼實現(xiàn)(PyG以及自實現(xiàn)),理論與實踐相結(jié)合,如GCN、GAT、GraphSAGE等經(jīng)典圖網(wǎng)絡(luò),每一個代碼實例都附帶有完整的代碼。 正在更新中~ ? ?? 我的項目環(huán)境: 平臺:Windows10 語言環(huán)

    2024年02月03日
    瀏覽(58)
  • 神經(jīng)網(wǎng)絡(luò)十大算法有哪些,神經(jīng)網(wǎng)絡(luò)十大算法排名

    神經(jīng)網(wǎng)絡(luò)十大算法有哪些,神經(jīng)網(wǎng)絡(luò)十大算法排名

    。 1、蒙特卡羅算法(該算法又稱隨機性模擬算法,是通過計算機仿真來解決問題的算法,同時可以通過模擬可以來檢驗自己模型的正確性,是比賽時必用的方法)2、數(shù)據(jù)擬合、參數(shù)估計、插值等數(shù)據(jù)處理算法(比賽中通常會遇到大量的數(shù)據(jù)需要處理,而處理數(shù)據(jù)的關(guān)鍵就在

    2024年02月16日
    瀏覽(24)
  • Python中的深度學習:神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)

    Python中的深度學習:神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)

    當下,深度學習已經(jīng)成為人工智能研究和應用領(lǐng)域的關(guān)鍵技術(shù)之一。作為一個開源的高級編程語言,Python提供了豐富的工具和庫,為深度學習的研究和開發(fā)提供了便利。本文將深入探究Python中的深度學習,重點聚焦于神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的原理和應用。 深度學習是機器學

    2024年02月08日
    瀏覽(31)
  • BP神經(jīng)網(wǎng)絡(luò)算法基本原理,BP神經(jīng)網(wǎng)絡(luò)算法流程圖

    BP神經(jīng)網(wǎng)絡(luò)算法基本原理,BP神經(jīng)網(wǎng)絡(luò)算法流程圖

    由于目前研究的各種數(shù)學模型或多或少存在使用條件的局限性,或使用方法的復雜性等問題,預測效果均不十分理想,距離實際應用仍有較大差距。 NNT是Matlab中較為重要的一個工具箱,在實際應用中,BP網(wǎng)絡(luò)用的最廣泛。 神經(jīng)網(wǎng)絡(luò)具有綜合能力強,對數(shù)據(jù)的要求不高,適時學

    2024年02月08日
    瀏覽(17)
  • 基于 Python中的深度學習:神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)

    基于 Python中的深度學習:神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)

    當下,深度學習已經(jīng)成為人工智能研究和應用領(lǐng)域的關(guān)鍵技術(shù)之一。作為一個開源的高級編程語言,Python提供了豐富的工具和庫,為深度學習的研究和開發(fā)提供了便利。本文將深入探究Python中的深度學習,重點聚焦于神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的原理和應用。 深度學習是機器學

    2024年02月07日
    瀏覽(95)
  • 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)-神經(jīng)網(wǎng)絡(luò)補充概念-27-深層網(wǎng)絡(luò)中的前向傳播

    深層神經(jīng)網(wǎng)絡(luò)中的前向傳播是指從輸入數(shù)據(jù)開始,逐層計算每個神經(jīng)元的輸出值,直到得到最終的預測值。 1輸入數(shù)據(jù)傳遞: 將輸入數(shù)據(jù)傳遞給網(wǎng)絡(luò)的輸入層。輸入數(shù)據(jù)通常是一個特征矩陣,每一列代表一個樣本,每一行代表一個特征。 2加權(quán)求和和激活函數(shù): 對于每個隱藏

    2024年02月12日
    瀏覽(28)
  • 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)-神經(jīng)網(wǎng)絡(luò)補充概念-49-adam優(yōu)化算法

    Adam(Adaptive Moment Estimation)是一種優(yōu)化算法,結(jié)合了動量梯度下降法和RMSProp的優(yōu)點,用于在訓練神經(jīng)網(wǎng)絡(luò)等深度學習模型時自適應地調(diào)整學習率。Adam算法在深度學習中廣泛應用,通常能夠加速收斂并提高模型性能。 Adam算法綜合了動量(momentum)和均方梯度的移動平均(RMS

    2024年02月12日
    瀏覽(21)
  • 基于BP神經(jīng)網(wǎng)絡(luò)的定位算法,基于BP神經(jīng)網(wǎng)絡(luò)定位預測

    摘要 BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置及各種函數(shù)選擇 參數(shù)設(shè)置 訓練函數(shù) 傳遞函數(shù) 學習函數(shù) 性能函數(shù) 顯示函數(shù) 前向網(wǎng)絡(luò)創(chuàng)建函數(shù) BP神經(jīng)網(wǎng)絡(luò)訓練窗口詳解 訓練窗口例樣 訓練窗口四部詳解 基于BP神經(jīng)網(wǎng)絡(luò)的定位算法,基于BP神經(jīng)網(wǎng)絡(luò)定位預測 代碼下載:基于BP神經(jīng)網(wǎng)絡(luò)的定位算法,基

    2024年02月02日
    瀏覽(29)
  • Python實現(xiàn)GA遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)回歸模型(BP神經(jīng)網(wǎng)絡(luò)回歸算法)項目實戰(zhàn)

    Python實現(xiàn)GA遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)回歸模型(BP神經(jīng)網(wǎng)絡(luò)回歸算法)項目實戰(zhàn)

    說明:這是一個機器學習實戰(zhàn)項目(附帶數(shù)據(jù)+代碼+文檔+視頻講解),如需數(shù)據(jù)+代碼+文檔+視頻講解可以直接到文章最后獲取。 遺傳算法(Genetic Algorithm,GA)最早是由美國的 John holland于20世紀70年代提出,該算法是根據(jù)大自然中生物體進化規(guī)律而設(shè)計提出的。是模擬達爾文生

    2024年02月14日
    瀏覽(1563)
  • 神經(jīng)網(wǎng)絡(luò)中的知識蒸餾

    神經(jīng)網(wǎng)絡(luò)中的知識蒸餾

    多分類交叉熵損失函數(shù):每個樣本的標簽已經(jīng)給出,模型給出在三種動物上的預測概率。將全部樣本都被正確預測的概率求得為0.7 0.5 0.1,也稱為似然概率。優(yōu)化的目標就是希望似然概率最大化。如果樣本很多,概率不斷連乘,就會造成概率越來越小。對其取對數(shù),使其最大

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包