一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

神經(jīng)網(wǎng)絡(luò)如何正確初始化?

電子工程師 ? 來源:YXQ ? 2019-05-17 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

初始化對(duì)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的收斂性有重要影響。簡(jiǎn)單的初始化方案可以加速訓(xùn)練,但是它們需要小心避免常見的陷阱。

近期,deeplearning.ai就如何有效地初始化神經(jīng)網(wǎng)絡(luò)參數(shù)發(fā)表了交互式文章,圖靈君將結(jié)合這篇文章與您一起探索以下問題:

1、有效初始化的重要性

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

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

4、Xavier初始化的數(shù)學(xué)證明

一、有效初始化的重要性

要構(gòu)建機(jī)器學(xué)習(xí)算法,通常需要定義一個(gè)體系結(jié)構(gòu)(例如Logistic回歸,支持向量機(jī),神經(jīng)網(wǎng)絡(luò))并訓(xùn)練它來學(xué)習(xí)參數(shù)。 以下是神經(jīng)網(wǎng)絡(luò)的常見訓(xùn)練過程:

1、初始化參數(shù)

2、選擇優(yōu)化算法

3、重復(fù)這些步驟:

a、正向傳播輸入

b、計(jì)算成本函數(shù)

c、使用反向傳播計(jì)算與參數(shù)相關(guān)的成本梯度

d、根據(jù)優(yōu)化算法,使用梯度更新每個(gè)參數(shù)

然后,給定一個(gè)新的數(shù)據(jù)點(diǎn),您可以使用該模型來預(yù)測(cè)它的類。

初始化步驟對(duì)于模型的最終性能至關(guān)重要,它需要正確的方法。 為了說明這一點(diǎn),請(qǐng)考慮下面的三層神經(jīng)網(wǎng)絡(luò)。 您可以嘗試使用不同的方法初始化此網(wǎng)絡(luò),并觀察它對(duì)學(xué)習(xí)的影響。

當(dāng)初始化方法為零時(shí),對(duì)于梯度和權(quán)重,您注意到了什么?

用零初始化所有權(quán)重會(huì)導(dǎo)致神經(jīng)元在訓(xùn)練期間學(xué)習(xí)相同的特征。

實(shí)際上,任何常量初始化方案的性能表現(xiàn)都非常糟糕。 考慮一個(gè)具有兩個(gè)隱藏單元的神經(jīng)網(wǎng)絡(luò),并假設(shè)我們將所有偏差初始化為0,并將權(quán)重初始化為一些常數(shù)α。 如果我們?cè)谠摼W(wǎng)絡(luò)中正向傳播輸入(x1,x2),則兩個(gè)隱藏單元的輸出將為relu(αx1+αx2)。 因此,兩個(gè)隱藏單元將對(duì)成本具有相同的影響,這將導(dǎo)致相同的梯度。

因此,兩個(gè)神經(jīng)元將在整個(gè)訓(xùn)練過程中對(duì)稱地進(jìn)化,有效地阻止了不同的神經(jīng)元學(xué)習(xí)不同的東西。

在初始化權(quán)重時(shí),如果值太小或太大,關(guān)于成本圖,您注意到了什么?

盡管打破了對(duì)稱性,但是用值(i)太小或(ii)太大來初始化權(quán)重分別導(dǎo)致(i)學(xué)習(xí)緩慢或(ii)發(fā)散。

為高效訓(xùn)練選擇適當(dāng)?shù)某跏蓟凳潜匾摹N覀儗⒃谙乱还?jié)進(jìn)一步研究。

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

考慮這個(gè)9層神經(jīng)網(wǎng)絡(luò)。

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

假設(shè)所有激活函數(shù)都是線性的(標(biāo)識(shí)函數(shù))。 然后輸出激活是:

其中,L=10,W[1],W[2],…,W[L?1]都是大小為(2,2)的矩陣,因?yàn)閷覽1]到[L-1]有2個(gè)神經(jīng)元,接收2個(gè)輸入??紤]到這一點(diǎn),為了便于說明,如果我們假設(shè)W[1]=W[2]=?=W[L?1]=W,輸出預(yù)測(cè)是y^=W[L]WL?1x(其中WL?1將矩陣W取為L(zhǎng)-1的冪,而W[L]表示Lth矩陣)。

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

情形1:過大的初始化值會(huì)導(dǎo)致梯度爆炸

考慮這樣一種情況:初始化的每個(gè)權(quán)重值都略大于單位矩陣。

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

情形2:初始化值太小會(huì)導(dǎo)致梯度消失

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

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

總而言之,使用不適當(dāng)?shù)闹党跏蓟瘷?quán)重將導(dǎo)致神經(jīng)網(wǎng)絡(luò)訓(xùn)練的發(fā)散或減慢。雖然我們用簡(jiǎn)單的對(duì)稱權(quán)重矩陣說明了梯度爆炸/消失問題,但觀察結(jié)果可以推廣到任何太小或太大的初始化值。

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

為了防止網(wǎng)絡(luò)激活的梯度消失或爆炸,我們將堅(jiān)持以下經(jīng)驗(yàn)法則:

1、激活的平均值應(yīng)為零。

2、激活的方差應(yīng)該在每一層保持不變。

在這兩個(gè)假設(shè)下,反向傳播的梯度信號(hào)不應(yīng)該在任何層中乘以太小或太大的值。 它應(yīng)該移動(dòng)到輸入層而不會(huì)爆炸或消失。

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

我們希望以下內(nèi)容:

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

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

下面的可視化說明了Xavier初始化對(duì)五層全連接神經(jīng)網(wǎng)絡(luò)的每個(gè)層激活的影響。

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

四、Xavier初始化的合理性

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

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

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

假設(shè)我們使用適當(dāng)?shù)闹党跏蓟覀兊木W(wǎng)絡(luò),并且輸入被標(biāo)準(zhǔn)化。 在訓(xùn)練初期,我們處于tanh的線性狀態(tài)。 值足夠小,因此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]。 為簡(jiǎn)單起見,我們假設(shè)b[l]=0(考慮到我們將選擇的初始化選擇,它將最終為真)。 因此,在前面的方程Var(a[l?1])=Var(a[l])中逐個(gè)元素地看,現(xiàn)在給出:

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

1、權(quán)重是獨(dú)立的,分布相同;

2、輸入是獨(dú)立的,分布相同;

3、權(quán)重和輸入是相互獨(dú)立的。

因此,現(xiàn)在我們有:

另一個(gè)常見的數(shù)學(xué)技巧是將乘積的方差轉(zhuǎn)化為方差的乘積。公式如下:

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

我們差不多完成了! 第一個(gè)假設(shè)導(dǎo)致E[wkj[l]]2=0,第二個(gè)假設(shè)導(dǎo)致E[aj[l?1]]2=0,因?yàn)闄?quán)重用零均值初始化,輸入被歸一化。 從而:

上述等式源于我們的第一個(gè)假設(shè),即:

同樣,第二個(gè)假設(shè)導(dǎo)致:

同樣的想法:

總結(jié)一下,我們有:

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

請(qǐng)注意,在前面的步驟中,我們沒有選擇特定的層ll。 因此,我們已經(jīng)證明這個(gè)表達(dá)式適用于我們網(wǎng)絡(luò)的每一層。 讓LL成為我們網(wǎng)絡(luò)的輸出層。 在每一層使用此表達(dá)式,我們可以將輸出層的方差鏈接到輸入層的方差:

根據(jù)我們?nèi)绾纬跏蓟瘷?quán)重,我們的輸出和輸入的方差之間的關(guān)系會(huì)有很大的不同。 請(qǐng)注意以下三種情況。

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

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

結(jié)論

實(shí)際上,使用Xavier初始化的機(jī)器學(xué)習(xí)工程師會(huì)將權(quán)重初始化為N(0,n[l?1]1)或N(0,n[l?1]+n[l]2)。 后一分布的方差項(xiàng)是n [l-1] 1和n [1] 1的調(diào)和平均值。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:吳恩達(dá)團(tuán)隊(duì):神經(jīng)網(wǎng)絡(luò)如何正確初始化?

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    定義IO初始化結(jié)構(gòu)體

    由上述IOPORT相關(guān)功能的枚舉類型我們可以知道,在對(duì)IOPORT模塊進(jìn)行初始化時(shí)需要根據(jù)情況配置它們。因此我們定義一個(gè)IOPORT初始化的結(jié)構(gòu)體類型IOPORT_Init_t,它的成員包括了由上述所有枚舉類型所聲明的變量,因此該結(jié)構(gòu)體類型的變量可以包含IOPORT的相關(guān)
    的頭像 發(fā)表于 07-16 16:26 ?546次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較

    多層。 每一層都由若干個(gè)神經(jīng)元構(gòu)成,神經(jīng)元之間通過權(quán)重連接。信號(hào)在神經(jīng)網(wǎng)絡(luò)中是前向傳播的,而誤差是反向傳播的。 卷積神經(jīng)網(wǎng)絡(luò)(CNN) : CNN主要由卷積層、池
    的頭像 發(fā)表于 02-12 15:53 ?672次閱讀

    如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率

    訓(xùn)練過程中發(fā)生震蕩,甚至無法收斂到最優(yōu)解;而過小的學(xué)習(xí)率則會(huì)使模型收斂速度緩慢,容易陷入局部最優(yōu)解。因此,正確設(shè)置和調(diào)整學(xué)習(xí)率對(duì)于訓(xùn)練高效、準(zhǔn)確的神經(jīng)網(wǎng)絡(luò)模型至關(guān)重要。 二、學(xué)習(xí)率優(yōu)化算法 梯度下降法及其變種 : 標(biāo)準(zhǔn)梯
    的頭像 發(fā)表于 02-12 15:51 ?941次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)步驟詳解

    BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)步驟主要包括以下幾個(gè)階段:網(wǎng)絡(luò)初始化、前向傳播、誤差計(jì)算、反向傳播和權(quán)重更新。以下是對(duì)這些步驟的詳細(xì)解釋: 一、網(wǎng)絡(luò)初始化
    的頭像 發(fā)表于 02-12 15:50 ?646次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn)分析

    自學(xué)習(xí)能力 : BP神經(jīng)網(wǎng)絡(luò)能夠通過訓(xùn)練數(shù)據(jù)自動(dòng)調(diào)整網(wǎng)絡(luò)參數(shù),實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的分類、回歸等任務(wù),無需人工進(jìn)行復(fù)雜的特征工程。 泛能力強(qiáng) : BP神經(jīng)網(wǎng)絡(luò)通過訓(xùn)練數(shù)據(jù)學(xué)習(xí)到的特征表示
    的頭像 發(fā)表于 02-12 15:36 ?924次閱讀

    什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法

    BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的有效方法。以下是關(guān)于BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法的介紹: 一、基本概念 反向傳播算法是BP
    的頭像 發(fā)表于 02-12 15:18 ?773次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系

    ),是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法進(jìn)行訓(xùn)練。BP神經(jīng)網(wǎng)絡(luò)由輸入層、一個(gè)或多個(gè)隱藏層和輸出層組成,通過逐層遞減的方式調(diào)整網(wǎng)絡(luò)權(quán)重,目的是最小
    的頭像 發(fā)表于 02-12 15:15 ?863次閱讀

    深度學(xué)習(xí)入門:簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實(shí)現(xiàn)

    / (1 + np.exp(-x)) ? 定義神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和參數(shù)初始化: 收起 python ? # 輸入層節(jié)點(diǎn)數(shù)input_size = 2# 隱藏層節(jié)點(diǎn)數(shù)hidden_size = 3# 輸出層節(jié)點(diǎn)數(shù)output
    的頭像 發(fā)表于 01-23 13:52 ?530次閱讀

    人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

    在上一篇文章中,我們介紹了傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)和多種算法。在本文中,我們會(huì)介紹人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法,供各位老師選擇。 01 人工神經(jīng)網(wǎng)絡(luò) ? 人工神經(jīng)網(wǎng)絡(luò)模型之所
    的頭像 發(fā)表于 01-09 10:24 ?1202次閱讀
    人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理和多種<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>架構(gòu)方法

    卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較

    在深度學(xué)習(xí)領(lǐng)域,神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用于各種任務(wù),如圖像識(shí)別、自然語言處理和游戲智能等。其中,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)是兩種常見的模型。 1. 結(jié)構(gòu)差異 1.1 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-15 14:53 ?1878次閱讀

    RNN模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別

    神經(jīng)網(wǎng)絡(luò)是機(jī)器學(xué)習(xí)領(lǐng)域中的一種強(qiáng)大工具,它們能夠模擬人腦處理信息的方式。隨著技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)的類型也在不斷增加,其中循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(如前饋
    的頭像 發(fā)表于 11-15 09:42 ?1131次閱讀

    LSTM神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與工作機(jī)制

    LSTM(Long Short-Term Memory,長(zhǎng)短期記憶)神經(jīng)網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),設(shè)計(jì)用于解決長(zhǎng)期依賴問題,特別是在處理時(shí)間序列數(shù)據(jù)時(shí)表現(xiàn)出色。以下是LSTM神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-13 10:05 ?1632次閱讀

    Moku人工神經(jīng)網(wǎng)絡(luò)101

    不熟悉神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí),或者想了解神經(jīng)網(wǎng)絡(luò)如何優(yōu)化加速實(shí)驗(yàn)研究,請(qǐng)繼續(xù)閱讀,探索基于深度學(xué)習(xí)的現(xiàn)代智能實(shí)驗(yàn)的廣闊應(yīng)用前景。什么是神經(jīng)網(wǎng)絡(luò)?“人工
    的頭像 發(fā)表于 11-01 08:06 ?666次閱讀
    Moku人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>101

    關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~

    這個(gè)小型網(wǎng)絡(luò),用于描述網(wǎng)絡(luò)的方程中也具有32個(gè)偏置和32個(gè)權(quán)重。 CIFAR神經(jīng)網(wǎng)絡(luò)是一種廣泛用于圖像識(shí)別的CNN。它主要由兩種類型的層組成:卷積層和池層,這兩種層分別使用卷積和池
    發(fā)表于 10-24 13:56

    matlab 神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析

    matlab神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析 精通的可以討論下
    發(fā)表于 09-18 15:14