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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

神經網絡如何正確初始化?

電子工程師 ? 來源:YXQ ? 2019-05-17 16:32 ? 次閱讀

初始化對訓練深度神經網絡的收斂性有重要影響。簡單的初始化方案可以加速訓練,但是它們需要小心避免常見的陷阱。

近期,deeplearning.ai就如何有效地初始化神經網絡參數發表了交互式文章,圖靈君將結合這篇文章與您一起探索以下問題:

1、有效初始化的重要性

2、梯度爆炸或消失的問題

3、什么是正確的初始化?

4、Xavier初始化的數學證明

一、有效初始化的重要性

要構建機器學習算法,通常需要定義一個體系結構(例如Logistic回歸,支持向量機,神經網絡)并訓練它來學習參數。 以下是神經網絡的常見訓練過程:

1、初始化參數

2、選擇優化算法

3、重復這些步驟:

a、正向傳播輸入

b、計算成本函數

c、使用反向傳播計算與參數相關的成本梯度

d、根據優化算法,使用梯度更新每個參數

然后,給定一個新的數據點,您可以使用該模型來預測它的類。

初始化步驟對于模型的最終性能至關重要,它需要正確的方法。 為了說明這一點,請考慮下面的三層神經網絡。 您可以嘗試使用不同的方法初始化此網絡,并觀察它對學習的影響。

當初始化方法為零時,對于梯度和權重,您注意到了什么?

用零初始化所有權重會導致神經元在訓練期間學習相同的特征。

實際上,任何常量初始化方案的性能表現都非常糟糕。 考慮一個具有兩個隱藏單元的神經網絡,并假設我們將所有偏差初始化為0,并將權重初始化為一些常數α。 如果我們在該網絡中正向傳播輸入(x1,x2),則兩個隱藏單元的輸出將為relu(αx1+αx2)。 因此,兩個隱藏單元將對成本具有相同的影響,這將導致相同的梯度。

因此,兩個神經元將在整個訓練過程中對稱地進化,有效地阻止了不同的神經元學習不同的東西。

在初始化權重時,如果值太小或太大,關于成本圖,您注意到了什么?

盡管打破了對稱性,但是用值(i)太小或(ii)太大來初始化權重分別導致(i)學習緩慢或(ii)發散。

為高效訓練選擇適當的初始化值是必要的。我們將在下一節進一步研究。

二、梯度的爆炸或消失問題

考慮這個9層神經網絡。

在優化循環的每次迭代(前向,成本,后向,更新)中,我們觀察到當您從輸出層向輸入層移動時,反向傳播的梯度要么被放大,要么被最小化。 如果您考慮以下示例,此結果是有意義的。

假設所有激活函數都是線性的(標識函數)。 然后輸出激活是:

其中,L=10,W[1],W[2],…,W[L?1]都是大小為(2,2)的矩陣,因為層[1]到[L-1]有2個神經元,接收2個輸入。考慮到這一點,為了便于說明,如果我們假設W[1]=W[2]=?=W[L?1]=W,輸出預測是y^=W[L]WL?1x(其中WL?1將矩陣W取為L-1的冪,而W[L]表示Lth矩陣)。

初始化值太小,太大或不合適的結果是什么?

情形1:過大的初始化值會導致梯度爆炸

考慮這樣一種情況:初始化的每個權重值都略大于單位矩陣。

這簡化為y^=W[L]1.5L?1x,并且a[l]的值隨l呈指數增加。 當這些激活用于反向傳播時,就會導致梯度爆炸問題。 也就是說,與參數相關的成本梯度太大。 這導致成本圍繞其最小值振蕩。

情形2:初始化值太小會導致梯度消失

類似地,考慮這樣一種情況:初始化的每個權重值都略小于單位矩陣。

這簡化為y^=W[L]0.5L?1x,并且激活a [l]的值隨l呈指數下降。 當這些激活用于反向傳播時,這會導致消失的梯度問題。 相對于參數的成本梯度太小,導致在成本達到最小值之前收斂。

總而言之,使用不適當的值初始化權重將導致神經網絡訓練的發散或減慢。雖然我們用簡單的對稱權重矩陣說明了梯度爆炸/消失問題,但觀察結果可以推廣到任何太小或太大的初始化值。

三、如何找到合適的初始化值

為了防止網絡激活的梯度消失或爆炸,我們將堅持以下經驗法則:

1、激活的平均值應為零。

2、激活的方差應該在每一層保持不變。

在這兩個假設下,反向傳播的梯度信號不應該在任何層中乘以太小或太大的值。 它應該移動到輸入層而不會爆炸或消失。

更具體地考慮層l, 它的前向傳播是:

我們希望以下內容:

確保零均值并保持每層輸入方差的值不會產生爆炸/消失信號,我們稍后會解釋。 該方法既適用于前向傳播(用于激活),也適用于反向傳播傳播(用于激活成本的梯度)。 推薦的初始化是Xavier初始化(或其派生方法之一),對于每個層l:

換句話說,層l的所有權重是從正態分布中隨機選取的,其中均值μ= 0且方差σ2= n [l-1] 1其中n [l-1]是層l-1中的神經元數。 偏差用零初始化。

下面的可視化說明了Xavier初始化對五層全連接神經網絡的每個層激活的影響。

您可以在Glorot等人中找到這種可視化背后的理論。(2010年)。 下一節將介紹Xavier初始化的數學證明,并更準確地解釋為什么它是一個有效的初始化。

四、Xavier初始化的合理性

在本節中,我們將展示Xavier初始化使每個層的方差保持不變。 我們假設層的激活是正態分布在0附近。 有時候,理解數學原理有助于理解概念,但不需要數學,就可以理解基本思想。

讓我們對第(III)部分中描述的層l進行處理,并假設激活函數為tanh。 前向傳播是:

目標是導出Var(a [l-1])和Var(a [l])之間的關系。 然后我們將理解如何初始化我們的權重,使得:Var(a[l?1])=Var(a[l])。

假設我們使用適當的值初始化我們的網絡,并且輸入被標準化。 在訓練初期,我們處于tanh的線性狀態。 值足夠小,因此tanh(z[l])≈z[l],意思是:

此外,z[l]=W[l]a[l?1]+b[l]=向量(z1[l],z2[l],…,zn[l][l])其中zk[l]=∑j=1n[l?1]wkj[l]aj[l?1]+bk[l]。 為簡單起見,我們假設b[l]=0(考慮到我們將選擇的初始化選擇,它將最終為真)。 因此,在前面的方程Var(a[l?1])=Var(a[l])中逐個元素地看,現在給出:

常見的數學技巧是在方差之外提取求和。 為此,我們必須做出以下三個假設:

1、權重是獨立的,分布相同;

2、輸入是獨立的,分布相同;

3、權重和輸入是相互獨立的。

因此,現在我們有:

另一個常見的數學技巧是將乘積的方差轉化為方差的乘積。公式如下:

使用X=wkj[l]和Y=aj[l?1]的公式,我們得到:

我們差不多完成了! 第一個假設導致E[wkj[l]]2=0,第二個假設導致E[aj[l?1]]2=0,因為權重用零均值初始化,輸入被歸一化。 從而:

上述等式源于我們的第一個假設,即:

同樣,第二個假設導致:

同樣的想法:

總結一下,我們有:

瞧! 如果我們希望方差在各層之間保持不變(Var(a[l])=Var(a[l?1])),我們需要Var(W[l])=n[l?1]1。 這證明了Xavier初始化的方差選擇是正確的。

請注意,在前面的步驟中,我們沒有選擇特定的層ll。 因此,我們已經證明這個表達式適用于我們網絡的每一層。 讓LL成為我們網絡的輸出層。 在每一層使用此表達式,我們可以將輸出層的方差鏈接到輸入層的方差:

根據我們如何初始化權重,我們的輸出和輸入的方差之間的關系會有很大的不同。 請注意以下三種情況。

因此,為了避免正向傳播信號的消失或爆炸,我們必須通過初始化Var(W[l])=n[l?1]1來設置n[l?1]Var(W[l])=1。

在整個證明過程中,我們一直在處理在正向傳播期間計算的激活。對于反向傳播的梯度也可以得到相同的結果。這樣做,您將看到,為了避免梯度消失或爆炸問題,我們必須通過初始化Var(W[l])=n[l]1來設置n[l]Var(W[l])=1。

結論

實際上,使用Xavier初始化的機器學習工程師會將權重初始化為N(0,n[l?1]1)或N(0,n[l?1]+n[l]2)。 后一分布的方差項是n [l-1] 1和n [1] 1的調和平均值。

這是Xavier初始化的理論依據。 Xavier初始化與tanh激活一起工作。 還有許多其他初始化方法。 例如,如果您正在使用ReLU,則通常的初始化是He初始化(He et al,Delving Deep into Rectifiers),其中權重的初始化方法是將Xavier初始化的方差乘以2。雖然這種初始化的理由稍微復雜一些,但它遵循與tanh相同的思考過程。

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

    關注

    42

    文章

    4779

    瀏覽量

    101052
  • 深度學習
    +關注

    關注

    73

    文章

    5512

    瀏覽量

    121415

原文標題:吳恩達團隊:神經網絡如何正確初始化?

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

收藏 人收藏

    評論

    相關推薦

    深度學習入門:簡單神經網絡的構建與實現

    / (1 + np.exp(-x)) ? 定義神經網絡的結構和參數初始化: 收起 python ? # 輸入層節點數input_size = 2# 隱藏層節點數hidden_size = 3# 輸出層節點數output
    的頭像 發表于 01-23 13:52 ?53次閱讀

    BP神經網絡預測模型的建模步驟

    的過程,涉及數據預處理、網絡結構設計、權重初始化、前向傳播、損失函數計算、反向傳播、權重更新、模型評估與優化等多個步驟。以下將詳細闡述這些步驟,并探討在建模過程中需要注意的關鍵點。
    的頭像 發表于 07-11 16:57 ?1678次閱讀

    使用NumPy實現前饋神經網絡

    要使用NumPy實現一個前饋神經網絡(Feedforward Neural Network),我們需要從基礎開始構建,包括初始化網絡參數、定義激活函數及其導數、實現前向傳播、計算損失函數、以及實現
    的頭像 發表于 07-11 16:30 ?1852次閱讀

    PyTorch如何實現多層全連接神經網絡

    在PyTorch中實現多層全連接神經網絡(也稱為密集連接神經網絡或DNN)是一個相對直接的過程,涉及定義網絡結構、初始化參數、前向傳播、損失計算和反向傳播等步驟。
    的頭像 發表于 07-11 16:07 ?1293次閱讀

    BP神經網絡和人工神經網絡的區別

    BP神經網絡和人工神經網絡(Artificial Neural Networks,簡稱ANNs)之間的關系與區別,是神經網絡領域中一個基礎且重要的話題。本文將從定義、結構、算法、應用及未來發展等多個方面,詳細闡述BP
    的頭像 發表于 07-10 15:20 ?1265次閱讀

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡。循環神經網絡是一種具有時間序列特性的神經網絡,能夠處理序列數據,具有記憶功能。以下是關于循環
    的頭像 發表于 07-05 09:52 ?630次閱讀

    遞歸神經網絡是循環神經網絡

    遞歸神經網絡(Recurrent Neural Network,簡稱RNN)和循環神經網絡(Recurrent Neural Network,簡稱RNN)實際上是同一個概念,只是不同的翻譯方式
    的頭像 發表于 07-04 14:54 ?855次閱讀

    bp神經網絡和反向傳播神經網絡區別在哪

    反向傳播神經網絡(Backpropagation Neural Network,簡稱BP神經網絡)是一種多層前饋神經網絡,它通過反向傳播算法來調整網絡中的權重和偏置,以達到最小
    的頭像 發表于 07-04 09:51 ?508次閱讀

    bp神經網絡算法的基本流程包括哪些

    初始化網絡參數 在BP神經網絡算法中,首先需要初始化網絡的參數,包括權重和偏置。權重是連接神經
    的頭像 發表于 07-04 09:47 ?725次閱讀

    反向傳播神經網絡和bp神經網絡的區別

    反向傳播神經網絡(Backpropagation Neural Network,簡稱BP神經網絡)是一種多層前饋神經網絡,它通過反向傳播算法來調整網絡中的權重和偏置,以達到最小
    的頭像 發表于 07-03 11:00 ?856次閱讀

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

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經網絡的比較: 基本結構 BP神經網絡是一種多層前饋神經網絡,由輸入層、隱藏層和輸出層組成。每個神經元之間通過權重連接,并通
    的頭像 發表于 07-03 10:12 ?1323次閱讀

    bp神經網絡模型拓撲結構包括哪些

    神經網絡的第一層,用于接收外部輸入信號。輸入層的神經元數量取決于問題的特征維度。每個輸入信號通過一個權重與輸入層的神經元相連,權重的初始值通常隨機
    的頭像 發表于 07-03 09:57 ?601次閱讀

    卷積神經網絡計算過程和步驟

    。 卷積層(Convolutional Layer) 卷積層是卷積神經網絡的核心組成部分,它通過卷積操作提取輸入數據的特征。卷積操作是一種數學運算,用于計算輸入數據與卷積核(或濾波器)之間的局部相關性。卷積層的計算過程如下: 1.1 初始化卷積核 在卷積層中,卷積核是一個
    的頭像 發表于 07-03 09:36 ?699次閱讀

    卷積神經網絡和bp神經網絡的區別

    能力。隨著深度學習技術的不斷發展,神經網絡已經成為人工智能領域的重要技術之一。卷積神經網絡和BP神經
    的頭像 發表于 07-02 14:24 ?4634次閱讀

    神經網絡前向傳播和反向傳播區別

    神經網絡訓練中的作用。 前向傳播(Forward Propagation) 前向傳播是神經網絡中最基本的過程,它將輸入數據通過網絡層進行逐層計算,最終得到輸出結果。前向傳播的過程可以分為以下幾個步驟: 1.1
    的頭像 發表于 07-02 14:18 ?906次閱讀
    主站蜘蛛池模板: 99精品久久久久久久 | 女仆翻身大作战 | 亚洲精品国产自在在线观看 | 国产精品你懂得 | 本庄优花aⅴ全部在线影片 被滋润的艳妇疯狂呻吟白洁老七 | 日韩人妻无码精品-专区 | 中文字幕亚洲无线码高清不卡 | 琪琪的色原网站 | 深爱激情站 | 精品亚洲午夜久久久久 | 色婷婷粉嫩AV精品综合在线 | 美女屁股软件 | 国产午夜永久福利视频在线观看 | 姐姐不~不可以动漫在线观看 | 午夜阳光影院在线观看视频 | 一级毛片免费在线播放 | YELLOW日本免费观看播放 | 丝瓜视频在线免费 | 久久婷婷国产五月综合色啪最新 | 国产精品A久久777777 | 99久久伊人一区二区yy5099 | 亚洲成人在线免费 | 挺进绝色老师的紧窄小肉六 | 中文日产无乱码AV在线观 | 色婷婷激婷婷深爱五月小蛇 | 亚洲成人欧美 | 午夜婷婷精品午夜无码A片影院 | 国产精品资源网站在线观看 | 欧洲最强rapper潮水喷视频 | 日本在线高清不卡免费播放 | 哒哒哒影院在线观看免费高清 | 99在线观看视频 | 亚洲AV噜噜88 | brazzers巨臀系列 | 精品久久久久久无码人妻国产馆 | 粗大分开挺进内射 | 久久人妻少妇嫩草AV蜜桃99 | 伊人久在线 | 国产嫩草影院精品免费网址 | 91精品国产色综合久久不 | 某上海少妇3P黑人完整版BD |