色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析神經網絡基礎部件BN層

OSC開源社區 ? 來源:OSCHINA 社區 ? 2023-02-24 10:20 ? 次閱讀

摘要:在深度神經網絡訓練的過程中,由于網絡中參數變化而引起網絡中間層數據分布發生變化的這一過程被稱為內部協變量偏移(Internal Covariate Shift),而 BN 可以解決這個問題。

一,數學基礎

1.1,概率密度函數

隨機變量(random variable)是可以隨機地取不同值的變量。隨機變量可以是離散的或者連續的。簡單起見,本文用大寫字母 XX表示隨機變量,小寫字母 xx表示隨機變量能夠取到的值。例如,x1x1 和 x2x2 都是隨機變量 XX可能的取值。隨機變量必須伴隨著一個概率分布來指定每個狀態的可能性。

概率分布(probability distribution)用來描述隨機變量或一簇隨機變量在每一個可能取到的狀態的可能性大小。我們描述概率分布的方式取決于隨機變量是離散的還是連續的。 當我們研究的對象是連續型隨機變量時,我們用概率密度函數(probability density function, PDF)而不是概率質量函數來描述它的概率分布。

1.2,正態分布

當我們不知道數據真實分布時使用正態分布的原因之一是,正態分布擁有最大的熵,我們通過這個假設來施加盡可能少的結構。 實數上最常用的分布就是正態分布 (normal distribution),也稱為高斯分布 (Gaussian distribution)。 如果隨機變量 XX,服從位置參數為 μμ、尺度參數為 σσ的概率分布,且其概率密度函數為:

838b3dd6-b380-11ed-bfe3-dac502259ad0.png

則這個隨機變量就稱為正態隨機變量,正態隨機變量服從的概率分布就稱為正態分布,記作:

83a4c3e6-b380-11ed-bfe3-dac502259ad0.png

如果位置參數 μ=0μ=0,尺度參數 σ=1σ=1 時,則稱為標準正態分布,記作:

83b4e5f0-b380-11ed-bfe3-dac502259ad0.png

此時,概率密度函數公式簡化為:

83cb0f10-b380-11ed-bfe3-dac502259ad0.png

正太分布的數學期望值或期望值 μμ等于位置參數,決定了分布的位置;其方差 σ2σ2 的開平方或標準差 σσ等于尺度參數,決定了分布的幅度。

正太分布的概率密度函數曲線呈鐘形,常稱之為鐘形曲線,如下圖所示:

83dd955e-b380-11ed-bfe3-dac502259ad0.jpg

可視化正態分布,可直接通過 np.random.normal 函數生成指定均值和標準差的正態分布隨機數,然后基于 matplotlib + seaborn 庫 kdeplot 函數繪制概率密度曲線。

示例代碼如下所示:


pYYBAGP4HyeABBnIAAC_ddDNImI335.jpg

以上代碼直接運行后,輸出結果如下圖:

83ef12fc-b380-11ed-bfe3-dac502259ad0.jpg

當然也可以自己實現正太分布的概率密度函數,代碼和程序輸出結果如下:

pYYBAGP4H0OAKqT7AAEs6KJ40OU276.jpg

840fd690-b380-11ed-bfe3-dac502259ad0.jpg

二,背景

訓練深度神經網絡的復雜性在于,因為前面的層的參數會發生變化導致每層輸入的分布在訓練過程中會發生變化。這又導致模型需要需要較低的學習率和非常謹慎的參數初始化策略,從而減慢了訓練速度,并且具有飽和非線性的模型訓練起來也非常困難。 網絡層輸入數據分布發生變化的這種現象稱為內部協變量轉移,BN 就是來解決這個問題。

2.1,如何理解 Internal Covariate Shift

在深度神經網絡訓練的過程中,由于網絡中參數變化而引起網絡中間層數據分布發生變化的這一過程被稱在論文中稱之為內部協變量偏移(Internal Covariate Shift)。 那么,為什么網絡中間層數據分布會發生變化呢? 在深度神經網絡中,我們可以將每一層視為對輸入的信號做了一次變換(暫時不考慮激活,因為激活函數不會改變輸入數據的分布):

842a75f4-b380-11ed-bfe3-dac502259ad0.png

其中 WW和 BB是模型學習的參數,這個公式涵蓋了全連接層和卷積層。 隨著 SGD 算法更新參數,和網絡的每一層的輸入數據經過公式 5 的運算后,其 ZZ的分布一直在變化,因此網絡的每一層都需要不斷適應新的分布,這一過程就被叫做 Internal Covariate Shift。 而深度神經網絡訓練的復雜性在于每層的輸入受到前面所有層的參數的影響 — 因此當網絡變得更深時,網絡參數的微小變化就會被放大。

2.2,Internal Covariate Shift 帶來的問題

網絡層需要不斷適應新的分布,導致網絡學習速度的降低。

網絡層輸入數據容易陷入到非線性的飽和狀態并減慢網絡收斂,這個影響隨著網絡深度的增加而放大。

隨著網絡層的加深,后面網絡輸入 xx越來越大,而如果我們又采用 Sigmoid 型激活函數,那么每層的輸入很容易移動到非線性飽和區域,此時梯度會變得很小甚至接近于 00,導致參數的更新速度就會減慢,進而又會放慢網絡的收斂速度。 飽和問題和由此產生的梯度消失通常通過使用修正線性單元激活(ReLU (x)=max (x,0)ReLU(x)=max(x,0)),更好的參數初始化方法和小的學習率來解決。

然而,如果我們能保證非線性輸入的分布在網絡訓練時保持更穩定,那么優化器將不太可能陷入飽和狀態,進而訓練也將加速。

2.3,減少 Internal Covariate Shift 的一些嘗試

白化(Whitening): 即輸入線性變換為具有零均值和單位方差,并去相關。 白化過程由于改變了網絡每一層的分布,因而改變了網絡層中本身數據的表達能力。底層網絡學習到的參數信息會被白化操作丟失掉,而且白化計算成本也高。

標準化(normalization)

Normalization 操作雖然緩解了 ICS 問題,讓每一層網絡的輸入數據分布都變得穩定,但卻導致了數據表達能力的缺失。

三,批量歸一化(BN)

3.1,BN 的前向計算

論文中給出的 Batch Normalizing Transform 算法計算過程如下圖所示。其中輸入是一個考慮一個大小為 mm的小批量數據 BB。

843f50fa-b380-11ed-bfe3-dac502259ad0.jpg

論文中的公式不太清晰,下面我給出更為清晰的 Batch Normalizing Transform 算法計算過程。

設 mm表示 batch_size 的大小,nn表示 features 數量,即樣本特征值數量。在訓練過程中,針對每一個 batch 數據,BN 過程進行的操作是,將這組數據 normalization,之后對其進行線性變換,具體算法步驟如下:

845b8e96-b380-11ed-bfe3-dac502259ad0.png

以上公式乘法都為元素乘,即 element wise 的乘法。其中,參數 γ,βγ,β是訓練出來的, ??是為零防止 σB2σB2 為 00 ,加的一個很小的數值,通常為 1e-5。公式各個符號解釋如下:

84723150-b380-11ed-bfe3-dac502259ad0.png

其中:

848e8a58-b380-11ed-bfe3-dac502259ad0.png

可以看出 BN 本質上是做線性變換。

3.2,BN 層如何工作

在論文中,訓練一個帶 BN 層的網絡, BN 算法步驟如下圖所示:

在訓練期間,我們一次向網絡提供一小批數據。在前向傳播過程中,網絡的每一層都處理該小批量數據。BN 網絡層按如下方式執行前向傳播計算:

84c1358e-b380-11ed-bfe3-dac502259ad0.jpg

注意,圖中計算均值與方差的無偏估計方法是吳恩達在 Coursera 上的 Deep Learning 課程上提出的方法:對 train 階段每個 batch 計算的 mean/variance 采用指數加權平均來得到 test 階段 mean/variance 的估計。 在訓練期間,它只是計算此 EMA,但不對其執行任何操作。

在訓練結束時,它只是將該值保存為層狀態的一部分,以供在推理階段使用。 如下圖可以展示 BN 層的前向傳播計算過程數據的 shape ,紅色框出來的單個樣本都指代單個矩陣,即運算都是在單個矩陣運算中計算的。

84df7d64-b380-11ed-bfe3-dac502259ad0.jpg

BN 的反向傳播過程中,會更新 BN 層中的所有 ββ和 γγ參數。

3.3,訓練和推理式的 BN 層

批量歸一化(batch normalization)的 “批量” 兩個字,表示在模型的迭代訓練過程中,BN 首先計算小批量( mini-batch,如 32)的均值和方差。但是,在推理過程中,我們只有一個樣本,而不是一個小批量。在這種情況下,我們該如何獲得均值和方差呢? 第一種方法是,使用的均值和方差數據是在訓練過程中樣本值的平均,即:

84f67af0-b380-11ed-bfe3-dac502259ad0.png

這種做法會把所有訓練批次的 μμ和 σσ都保存下來,然后在最后訓練完成時(或做測試時)做下平均。 第二種方法是使用類似動量的方法,訓練時,加權平均每個批次的值,權值 αα可以為 0.9:

8514a354-b380-11ed-bfe3-dac502259ad0.png

推理或測試時,直接使用模型文件中保存的 μmoviμmovi 和 σmoviσmovi 的值即可。

3.4,實驗

BN 在 ImageNet 分類數據集上實驗結果是 SOTA 的,如下表所示:

8529bcee-b380-11ed-bfe3-dac502259ad0.jpg

3.5,BN 層的優點

BN 使得網絡中每層輸入數據的分布相對穩定,加速模型訓練和收斂速度。

批標準化可以提高學習率。在傳統的深度網絡中,學習率過高可能會導致梯度爆炸或梯度消失,以及陷入差的局部最小值。批標準化有助于解決這些問題。

通過標準化整個網絡的激活值,它可以防止層參數的微小變化隨著數據在深度網絡中的傳播而放大。例如,這使 sigmoid 非線性更容易保持在它們的非飽和狀態,這對訓練深度 sigmoid 網絡至關重要,但在傳統上很難實現。

BN 允許網絡使用飽和非線性激活函數(如 sigmoid,tanh 等)進行訓練,其能緩解梯度消失問題。

不需要 dropout 和 LRN(Local Response Normalization)層來實現正則化。批標準化提供了類似丟棄的正則化收益,因為通過實驗可以觀察到訓練樣本的激活受到同一小批量樣例隨機選擇的影響。

減少對參數初始化方法的依賴。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4797

    瀏覽量

    102266
  • ICS
    ICS
    +關注

    關注

    0

    文章

    36

    瀏覽量

    18265

原文標題:詳解神經網絡基礎部件BN層

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    神經網絡教程(李亞非)

      第1章 概述  1.1 人工神經網絡研究與發展  1.2 生物神經元  1.3 人工神經網絡的構成  第2章人工神經網絡基本模型  2.1 MP模型  2.2 感知器模型  2.3
    發表于 03-20 11:32

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    超過閾值,輸出就一躍而起。但我們一般用S函數作為激活函數。如下圖:圖2 該函數相比階越函數更加接近現實。神經網絡原理如圖所示是一個具有兩神經網絡,每層有兩個神經元。 圖3 這里兩個
    發表于 03-03 22:10

    【案例分享】基于BP算法的前饋神經網絡

    `BP神經網絡首先給出只包含一個隱的BP神經網絡模型(兩神經網絡): BP神經網絡其實由兩
    發表于 07-21 04:00

    【案例分享】ART神經網絡與SOM神經網絡

    是一種常用的無監督學習策略,在使用改策略時,網絡的輸出神經元相互競爭,每一時刻只有一個競爭獲勝的神經元激活。ART神經網絡由比較、識別
    發表于 07-21 04:30

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡是一種基于現有數據創建預測的計算系統。如何構建神經網絡神經網絡包括:輸入:根據現有數據獲取輸入的
    發表于 07-12 08:02

    matlab實現神經網絡 精選資料分享

    神經神經網絡,對于神經網絡的實現是如何一直沒有具體實現一下:現看到一個簡單的神經網絡模型用于訓練的輸入數據:對應的輸出數據:我們這里設置:1:節點個數設置:輸入
    發表于 08-18 07:25

    卷積神經網絡的基本原理 卷積神經網絡發展 卷積神經網絡三大特點

    中最重要的神經網絡之一。它是一種由多個卷積和池化(也可稱為下采樣)組成的神經網絡。CNN 的基本思想是以圖像為輸入,通過
    的頭像 發表于 08-21 16:49 ?2881次閱讀

    卷積神經網絡層級結構 卷積神經網絡的卷積講解

    卷積神經網絡層級結構 卷積神經網絡的卷積講解 卷積神經網絡(Convolutional Neural Network,CNN)是一種基于深度學習的
    的頭像 發表于 08-21 16:49 ?9470次閱讀

    卷積神經網絡的介紹 什么是卷積神經網絡算法

    的深度學習算法。CNN模型最早被提出是為了處理圖像,其模型結構中包含卷積、池化和全連接等關鍵技術,經過多個卷積和池化的處理,CNN
    的頭像 發表于 08-21 16:49 ?2179次閱讀

    卷積神經網絡一共有幾層 卷積神經網絡模型三

    卷積神經網絡一共有幾層 卷積神經網絡模型三? 卷積神經網絡 (Convolutional Neural Networks,CNNs) 是一種在深度學習領域中發揮重要作用的模型。它是一
    的頭像 發表于 08-21 17:11 ?7486次閱讀

    bp神經網絡和卷積神經網絡區別是什么

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經網絡的比較: 基本結構 BP神經網絡是一種多層前饋神經網絡,由輸入、隱藏
    的頭像 發表于 07-03 10:12 ?2163次閱讀

    反向傳播神經網絡分為多少

    的層數可以根據具體問題和數據集來確定,但通常包括輸入、隱藏和輸出。 輸入 輸入是BP神經網絡
    的頭像 發表于 07-03 11:02 ?588次閱讀

    神經網絡模型的優缺點

    神經網絡模型是一種常見的深度學習模型,它由輸入、兩個隱藏和輸出組成。本文將介紹三
    的頭像 發表于 07-11 10:58 ?869次閱讀

    神經網絡結構的作用是什么

    的三結構是最基本的神經網絡結構,包括輸入、隱藏和輸出。下面介紹神經網絡
    的頭像 發表于 07-11 11:03 ?1610次閱讀

    BP神經網絡與卷積神經網絡的比較

    BP神經網絡與卷積神經網絡在多個方面存在顯著差異,以下是對兩者的比較: 一、結構特點 BP神經網絡 : BP神經網絡是一種多層的前饋神經網絡
    的頭像 發表于 02-12 15:53 ?377次閱讀
    主站蜘蛛池模板: 青青草国产自偷拍 | 国产亚洲精品高清视频免费 | 奇米色偷偷 | 欧美日韩在线亚洲一 | 一边亲着一面膜下奶韩剧免费 | MD传媒在线观看佳片 | 中文字幕久久熟女人妻AV免费 | 秋霞伦理高清视频在线 | 午夜影院费试看黄 | 8090碰成年女人免费碰碰尤物 | 好紧的小嫩嫩17p | 耻辱诊察室1一4集动漫在线观看 | 亚洲视频在线免费观看 | 中文字幕亚洲欧美日韩2019 | 97色伦97色伦国产 | 中国少妇内射XXXHD免费 | 欧美夜夜噜2017最新 | 老女老肥熟国产在线视频 | 99热只有精品 | 熟女强奷系列中文字幕 | 中文成人在线 | 国语自产二区高清国语自产拍 | 九色PORNY真实丨首页 | 色久天 | 免费A级毛片无码无遮挡内射 | 亚洲色欲国产免费视频 | 亚洲精品美女久久久久99 | 亚洲 欧美 国产 综合 在线 | 99er4久久视频精品首页 | 奶好大下面流了好多水水 | 深夜释放自己污在线看 | 国产精品18久久久久久白浆. | 高中生高潮抽搐喷出白浆视频 | 国产精品热久久高潮AV袁孑怡 | 大香网伊人久久综合观看 | 中文字幕无线观看不卡网站 | 亚洲色欲啪啪久久WWW综合网 | 日本熟妇乱妇熟色A片蜜桃亚洲 | 最新果冻传媒在线观看免费版 | 男欢女爱免费视频 | 99re久久热在线播放快 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品