国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

怎么自己學(xué)著做網(wǎng)站網(wǎng)站運(yùn)營seo實(shí)訓(xùn)總結(jié)

怎么自己學(xué)著做網(wǎng)站,網(wǎng)站運(yùn)營seo實(shí)訓(xùn)總結(jié),網(wǎng)站建設(shè)找好景科技,專業(yè)的網(wǎng)站制作開發(fā)公司梯度不穩(wěn)定和Glorot條件 一、梯度消失和梯度爆炸 對于神經(jīng)網(wǎng)絡(luò)這個復(fù)雜系統(tǒng)來說,在模型訓(xùn)練過程中,一個最基礎(chǔ)、同時也最常見的問題,就是梯度消失和梯度爆炸。 我們知道,神經(jīng)網(wǎng)絡(luò)在進(jìn)行反向傳播的過程中,各參數(shù)層的梯…

梯度不穩(wěn)定和Glorot條件

一、梯度消失和梯度爆炸

??對于神經(jīng)網(wǎng)絡(luò)這個復(fù)雜系統(tǒng)來說,在模型訓(xùn)練過程中,一個最基礎(chǔ)、同時也最常見的問題,就是梯度消失和梯度爆炸。

??我們知道,神經(jīng)網(wǎng)絡(luò)在進(jìn)行反向傳播的過程中,各參數(shù)層的梯度計(jì)算會涉及到激活函數(shù)導(dǎo)函數(shù)取值,具體來說,假設(shè)現(xiàn)在有一個三層的神經(jīng)網(wǎng)絡(luò),其中兩個隱藏層的激活函數(shù)為 F ( x ) F(x) F(x),對應(yīng)的導(dǎo)函數(shù)為 f ( x ) f(x) f(x),設(shè)X為輸入訓(xùn)練的數(shù)據(jù)特征,y為標(biāo)簽, y ^ \hat{y} y^?為模型向前傳播輸出結(jié)果,$ w_1 為第一層參數(shù)、 為第一層參數(shù)、 為第一層參數(shù)、w_2 為第二層參數(shù)、 為第二層參數(shù)、 為第二層參數(shù)、w_3$為第三層參數(shù),loss為損失函數(shù),則有如下計(jì)算公式:

??每一次正向傳播計(jì)算結(jié)果:
y ^ = F ( F ( X ? w 1 ) ? w 2 ) ? w 3 \hat y = F(F(X * w_1) * w_2) * w_3 y^?=F(F(X?w1?)?w2?)?w3?
??而loss是一個關(guān)于y和 y ^ \hat{y} y^?的函數(shù),而y是常量, y ^ \hat{y} y^?是一個關(guān)于w的函數(shù),因此 l o s s loss loss也進(jìn)行如下表示:
l o s s ( y ^ ) loss(\hat{y}) loss(y^?)
??在進(jìn)行梯度求解時候,假設(shè) w 1 w_1 w1?對應(yīng)梯度為 g r a d 1 grad_1 grad1?, w 2 w_2 w2?對應(yīng)梯度為 g r a d 2 grad_2 grad2?, w 3 w_3 w3?對應(yīng)梯度為 g r a d 3 grad_3 grad3?,為了簡化計(jì)算,我們假設(shè)所有的 x 、 w 1 、 w 2 、 w 3 x、w_1、w_2、w_3 x、w1?、w2?、w3?都是標(biāo)量,根據(jù)鏈?zhǔn)椒▌t,有計(jì)算過程如下:
g r a d 1 = ? l o s s ? w 1 = ? l o s s ? y ^ ? ? y ^ ? w 1 = ? l o s s ? y ^ ? ? ( F ( F ( X ? w 1 ) ? w 2 ) ? w 3 ) ? w 1 = ? l o s s ? y ^ ? ? ( F ( F ( X ? w 1 ) ? w 2 ) ? w 3 ) ? ( F ( F ( X ? w 1 ) ? w 2 ) ? ? F ( F ( X ? w 1 ) ? w 2 ) ? F ( X ? w 1 ) ? ? F ( X ? w 1 ) ? w 1 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? w 2 ? f ( X ? w 1 ) ? X \begin{aligned} grad_1 &=\frac{\partial loss}{\partial w_1} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_1} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial (F(F(X * w_1) * w_2) * w_3)}{\partial w_1} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial (F(F(X * w_1) * w_2) * w_3)}{\partial (F(F(X * w_1) * w_2)} \cdot \frac{\partial F(F(X * w_1) * w_2)}{\partial F(X * w_1)} \cdot \frac{\partial F(X * w_1)}{\partial w_1}\\ &= \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X * w_1) * w_2) \cdot w_2 \cdot f(X * w_1) \cdot X \\ \end{aligned} grad1??=?w1??loss?=?y^??loss???w1??y^??=?y^??loss???w1??(F(F(X?w1?)?w2?)?w3?)?=?y^??loss???(F(F(X?w1?)?w2?)?(F(F(X?w1?)?w2?)?w3?)???F(X?w1?)?F(F(X?w1?)?w2?)???w1??F(X?w1?)?=?y^??loss??w3??f(F(X?w1?)?w2?)?w2??f(X?w1?)?X?
??值得注意的是,此時 g r a d 1 grad_1 grad1?中計(jì)算了兩次激活函數(shù)的導(dǎo)函數(shù),并且在上述過程中, X ? w 1 X * w_1 X?w1?是第一層隱藏層接收到的數(shù)據(jù),而 F ( X ? w 1 ) ? w 2 F(X*w_1)*w_2 F(X?w1?)?w2?則是第二層隱藏層接收到的數(shù)據(jù)。而對比如果是計(jì)算 w 2 w_2 w2?的梯度,則有如下過程:
g r a d 2 = ? l o s s ? w 2 = ? l o s s ? y ^ ? ? y ^ ? w 2 = ? l o s s ? y ^ ? ? ( F ( F ( X ? w 1 ) ? w 2 ) ? w 3 ) ? w 2 = ? l o s s ? y ^ ? ? ( F ( F ( X ? w 1 ) ? w 2 ) ? w 3 ) ? ( F ( F ( X ? w 1 ) ? w 2 ) ? ? F ( F ( X ? w 1 ) ? w 2 ) ? w 2 = ? l o s s ? y ^ ? w 3 ? ? F ( F ( X ? w 1 ) ? w 2 ) ? w 2 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? ? ( F ( X ? w 1 ) ? w 2 ) ? w 2 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? F ( X ? w 1 ) \begin{aligned} grad_2 &=\frac{\partial loss}{\partial w_2} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_2} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial (F(F(X * w_1) * w_2) * w_3)}{\partial w_2} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial (F(F(X * w_1) * w_2) * w_3)}{\partial (F(F(X * w_1) * w_2)} \cdot \frac{\partial F(F(X * w_1) * w_2)}{\partial w_2} \\ &= \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot \frac{\partial F(F(X * w_1) * w_2)}{\partial w_2} \\ &= \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X*w_1)*w_2) \cdot \frac{\partial (F(X * w_1) * w_2)}{\partial w_2} \\ &= \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X*w_1)*w_2) \cdot F(X * w_1) \\ \end{aligned} grad2??=?w2??loss?=?y^??loss???w2??y^??=?y^??loss???w2??(F(F(X?w1?)?w2?)?w3?)?=?y^??loss???(F(F(X?w1?)?w2?)?(F(F(X?w1?)?w2?)?w3?)???w2??F(F(X?w1?)?w2?)?=?y^??loss??w3???w2??F(F(X?w1?)?w2?)?=?y^??loss??w3??f(F(X?w1?)?w2?)??w2??(F(X?w1?)?w2?)?=?y^??loss??w3??f(F(X?w1?)?w2?)?F(X?w1?)?
??我們發(fā)現(xiàn),在計(jì)算過程中只出現(xiàn)了一次激活函數(shù)的導(dǎo)函數(shù)。當(dāng)然如果我們是計(jì)算 w 3 w_3 w3?的梯度,則與如下計(jì)算過程:
g r a d 3 = ? l o s s ? w 3 = ? l o s s ? y ^ ? ? y ^ ? w 3 = ? l o s s ? y ^ ? ? ( F ( F ( X ? w 1 ) ? w 2 ) ? w 3 ) ? w 3 = ? l o s s ? y ^ ? F ( F ( X ? w 1 ) ? w 2 ) \begin{aligned} grad_3 &=\frac{\partial loss}{\partial w_3} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_3} \\ &= \frac{\partial loss}{\partial \hat y} \cdot \frac{\partial (F(F(X * w_1) * w_2) * w_3)}{\partial w_3} \\ &= \frac{\partial loss}{\partial \hat y} \cdot F(F(X * w_1) * w_2) \\ \end{aligned} grad3??=?w3??loss?=?y^??loss???w3??y^??=?y^??loss???w3??(F(F(X?w1?)?w2?)?w3?)?=?y^??loss??F(F(X?w1?)?w2?)?

??此時 g r a d 3 grad_3 grad3?在計(jì)算過程中就已經(jīng)不涉及激活函數(shù)的導(dǎo)函數(shù)的計(jì)算了。

??其實(shí)如果當(dāng)神經(jīng)網(wǎng)絡(luò)層數(shù)繼續(xù)增加、激活函數(shù)的數(shù)量繼續(xù)增加,第一層參數(shù)在計(jì)算梯度的過程中需要相乘的激活函數(shù)導(dǎo)函數(shù)個數(shù)也會隨之增加,而后面幾層參數(shù)的梯度計(jì)算中涉及到的激活函數(shù)導(dǎo)函數(shù)個數(shù)逐級遞減。

當(dāng)然,上述過程如果換成矩陣求導(dǎo),公式主體部分基本不變,只有最后一項(xiàng)會發(fā)生變化。由于最終運(yùn)算結(jié)果無法寫成較為簡潔的矩陣運(yùn)算形式(矩陣變元的實(shí)向量函數(shù)),因此此處以標(biāo)量運(yùn)算為例。

??而累乘就容易造成指數(shù)級變化,當(dāng)激活函數(shù)值 F ( F ( X ? w 1 ) ) F(F(X*w_1)) F(F(X?w1?))、激活函數(shù)導(dǎo)函數(shù)值 f ( X ? w 1 ) f(X*w_1) f(X?w1?)或者參與相乘的參數(shù)取值( w 3 w_3 w3?)較大(>1)時,會出現(xiàn) g r a d 1 grad_1 grad1?遠(yuǎn)大于 g r a d 2 grad_2 grad2?遠(yuǎn)大于 g r a d 3 grad_3 grad3?的情況,也就是神經(jīng)網(wǎng)絡(luò)前幾層參數(shù)梯度非常大、而后幾層參數(shù)梯度相對較小的情況,此時就被稱為梯度爆炸,并且受到累乘效應(yīng)的影響,前幾層梯度也會大于甚至遠(yuǎn)大于1,此時就會造成模型迭代過程不穩(wěn)定的情況發(fā)生;而反之如果上述幾個變量均小于1,甚至遠(yuǎn)小于1,則會出現(xiàn)前幾層參數(shù)梯度非常小、而后幾層參數(shù)梯度非常大的情況,此時就被稱為梯度消失,此時由于模型各層參數(shù)學(xué)習(xí)率伴隨層數(shù)增加逐漸增加,并且由于構(gòu)成梯度的基本參數(shù)均小于1,因此最后幾層梯度也會小于1甚至遠(yuǎn)小于1,此時前幾層參數(shù)梯度取值將非常小,甚至趨于0,因而會使得前幾層的參數(shù)無法在迭代中得到更新。

??總結(jié)一下,不同層參數(shù)的梯度在計(jì)算過程中都有很大的差異,并且這種差異是一種累乘效應(yīng),我們也可以簡單理解為是一種伴隨著層數(shù)增加指數(shù)級變化的差異。而這種累乘效應(yīng)會導(dǎo)致線性層參數(shù)的一部分梯度過大而另一部分過小,從而影響模型平穩(wěn)訓(xùn)練。而從具體原因來說,每一層參數(shù)的梯度主要和兩個因素相關(guān),其一是線性層輸入數(shù)據(jù),如 X X X F ( X ? W ) F(X*W) F(X?W),其二則是激活函數(shù)導(dǎo)函數(shù)計(jì)算結(jié)果 f ( X ? w 1 ) f(X*w_1) f(X?w1?)。

??接下來,我們就從梯度消失和梯度爆炸的角度剖析Sigmoid和tanh激活函數(shù)疊加過程中可能存在的隱患。

二、Sigmoid和tanh激活函數(shù)的梯度更新問題

1.Sigmoid激活函數(shù)的梯度消失問題

  • 理論說明

??對于sigmoid激活函數(shù)來說,簡答的疊加是極容易出現(xiàn)梯度消失的問題。sigmoid函數(shù)及導(dǎo)函數(shù)圖像如下所示:

在這里插入圖片描述

在這里插入圖片描述

??我們發(fā)現(xiàn),Sigmoid導(dǎo)函數(shù)最大值為0.25(在0點(diǎn)處取到),當(dāng)x較大或者較小時,導(dǎo)函數(shù)取值趨于0。

??此時如果我們假設(shè)還是上述結(jié)構(gòu)的三層神經(jīng)網(wǎng)絡(luò),則第一層參數(shù)梯度 g r a d 1 grad_1 grad1?由于計(jì)算過程出現(xiàn)兩次導(dǎo)函數(shù)連乘,哪怕兩次都導(dǎo)函數(shù)都取到最大值(雖然可能性較小), g r a d 1 grad_1 grad1?都將在0.0625的基礎(chǔ)上進(jìn)行其余部分相乘,最終結(jié)果也極有可能是個非常小的值,因此對于Sigmoid激活函數(shù)疊加的情況來說,是極容易出現(xiàn)梯度消失情況的。
g r a d 1 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? w 2 ? f ( X ? w 1 ) ? X grad_1 = \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X*w_1)*w_2) \cdot w_2 \cdot f(X * w_1) \cdot X grad1?=?y^??loss??w3??f(F(X?w1?)?w2?)?w2??f(X?w1?)?X

g r a d 2 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? F ( X ? w 1 ) grad_2 = \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X*w_1)*w_2) \cdot F(X * w_1) grad2?=?y^??loss??w3??f(F(X?w1?)?w2?)?F(X?w1?)

g r a d 3 = ? l o s s ? y ^ ? F ( F ( X ? w 1 ) ? w 2 ) 梯度消失或者梯度爆炸,始終是個概率問題。我們不能說導(dǎo)函數(shù)取值取值小就一定會發(fā)生梯度消失問題,只是導(dǎo)函數(shù)最大值越小,越有可能發(fā)生梯度消失。 grad_3 = \frac{\partial loss}{\partial \hat y} \cdot F(F(X * w_1) * w_2)\> 梯度消失或者梯度爆炸,始終是個概率問題。我們不能說導(dǎo)函數(shù)取值取值小就一定會發(fā)生梯度消失問題,只是導(dǎo)函數(shù)最大值越小,越有可能發(fā)生梯度消失。 grad3?=?y^??loss??F(F(X?w1?)?w2?)梯度消失或者梯度爆炸,始終是個概率問題。我們不能說導(dǎo)函數(shù)取值取值小就一定會發(fā)生梯度消失問題,只是導(dǎo)函數(shù)最大值越小,越有可能發(fā)生梯度消失。

  • Sigmoid函數(shù)飽和區(qū)間

??一般來說我們會將靠近sigmoid函數(shù)的左右兩端的區(qū)間稱為函數(shù)的飽和區(qū)間(如下圖圈出部分)(也就是自變量絕對值較大的區(qū)間),不難發(fā)現(xiàn),當(dāng)自變量落入飽和區(qū)間時,因變量會趨于0或者1,而無論自變量是極小(負(fù)數(shù)絕對值極大)還是極大,都會使得導(dǎo)函數(shù)取值趨于0,從而更容易導(dǎo)致模型梯度消失。

在這里插入圖片描述

??設(shè)計(jì)一個函數(shù),構(gòu)建一個使用了三層sigmoid激活層的函數(shù)

在這里插入圖片描述

??將多層網(wǎng)絡(luò)的權(quán)重進(jìn)行輸出:

for i, m in enumerate(sigmoid_model3.modules()):if isinstance(m, nn.Linear):vp_x = m.weight.grad.detach().reshape(-1, 1).numpy()       # 每一層參數(shù)梯度vp_y = np.full_like(vp_x, i)                   				# 對層進(jìn)行標(biāo)記vp_a = np.concatenate((vp_x, vp_y), 1)vp.append(vp_a)

在這里插入圖片描述

??類似的,tanh也存在問題:

在這里插入圖片描述

隨著訓(xùn)練次數(shù)的增多,網(wǎng)絡(luò)之間的權(quán)重逐漸消失,模型無法有效學(xué)習(xí),最終影響模型效果。

三、Zero-Centered Data與Glorot條件

??通過對Sigmoid和tanh激活函數(shù)疊加后的模型梯度變化情況分析,我們不難發(fā)現(xiàn),梯度不平穩(wěn)是影響模型建模效果的非常核心的因素。而這個看似簡單問題的解決方案,卻花費(fèi)了研究人員數(shù)十年的時間才逐漸完善,我們現(xiàn)在所接觸到的優(yōu)化方法,也基本上是在15年前后提出的,而這些被驗(yàn)證的切實(shí)可行的優(yōu)化方法,也是推動這一輪深度學(xué)習(xí)浪潮的技術(shù)因素。

當(dāng)然,這些優(yōu)化方法主要是針對深層次神經(jīng)網(wǎng)絡(luò)的。

??整體來看,針對梯度不平穩(wěn)的解決方案(優(yōu)化方法)總共分為五類,分別是參數(shù)初始化方法、輸入數(shù)據(jù)的歸一化方法、衍生激活函數(shù)使用方法、學(xué)習(xí)率調(diào)度方法以及梯度下降優(yōu)化方法。接下來,先介紹所有上述優(yōu)化算法的一個基本理論,由Xavier Glorot在2010提出的Glorot條件。

值得注意的是,雖然不同優(yōu)化算法有不同的出發(fā)點(diǎn)和不同的論證方式,但基本都可以從Glorot條件出發(fā)進(jìn)行思考。

1.Zero-centered Data

??在介紹Glorot條件之前,我們先從一個更加樸素的角度出發(fā),討論關(guān)于Zero-Centered Data相關(guān)作用,從而幫助我們理解后續(xù)Glorot條件。

??首先,我們還是假設(shè)當(dāng)前模型是一個三層神經(jīng)網(wǎng)絡(luò),其中兩個隱藏層的激活函數(shù)為 F ( x ) F(x) F(x),對應(yīng)的導(dǎo)函數(shù)為 f ( x ) f(x) f(x),設(shè)X為輸入訓(xùn)練的數(shù)據(jù)特征,y為標(biāo)簽, y ^ \hat y y^?為模型向前傳播輸出結(jié)果, w 1 w_1 w1?為第一層參數(shù)、 w 2 w_2 w2?為第二層參數(shù)、 w 3 w_3 w3?為第三層參數(shù),loss為損失函數(shù),則有如下計(jì)算公式:

??每一次正向傳播計(jì)算結(jié)果:
y ^ = F ( F ( X ? w 1 ) ? w 2 ) ? w 3 \hat y = F(F(X * w_1) * w_2) * w_3 y^?=F(F(X?w1?)?w2?)?w3?
??假設(shè) Z i Z_i Zi?為第i層接收到的數(shù)據(jù), P i P_i Pi?為第i層輸出的數(shù)據(jù),則有:
Z 1 = X ? w 1 Z_1 = X*w_1 Z1?=X?w1?

P 1 = F ( Z 1 ) = F ( X ? w 1 ) P_1 = F(Z_1) = F(X*w_1) P1?=F(Z1?)=F(X?w1?)

Z 2 = P 1 ? w 2 = F ( X ? w 1 ) ? w 2 Z_2 = P_1 * w_2 = F(X*w_1)*w_2 Z2?=P1??w2?=F(X?w1?)?w2?

P 2 = F ( Z 2 ) = F ( F ( X ? w 1 ) ? w 2 ) P_2 = F(Z_2) = F(F(X*w_1)*w_2) P2?=F(Z2?)=F(F(X?w1?)?w2?)

Z 3 = y ^ = F ( F ( X ? w 1 ) ? w 2 ) ? w 3 Z_3 = \hat y = F(F(X * w_1) * w_2) * w_3 Z3?=y^?=F(F(X?w1?)?w2?)?w3?

??依次類推。而在反向傳播過程,各參數(shù)層的梯度如下:
g r a d 1 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? w 2 ? f ( X ? w 1 ) ? X grad_1 = \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X*w_1)*w_2) \cdot w_2 \cdot f(X * w_1) \cdot X grad1?=?y^??loss??w3??f(F(X?w1?)?w2?)?w2??f(X?w1?)?X

g r a d 2 = ? l o s s ? y ^ ? w 3 ? f ( F ( X ? w 1 ) ? w 2 ) ? F ( X ? w 1 ) grad_2 = \frac{\partial loss}{\partial \hat y} \cdot w_3 \cdot f(F(X*w_1)*w_2) \cdot F(X * w_1) grad2?=?y^??loss??w3??f(F(X?w1?)?w2?)?F(X?w1?)

g r a d 3 = ? l o s s ? y ^ ? F ( F ( X ? w 1 ) ? w 2 ) grad_3 = \frac{\partial loss}{\partial \hat y} \cdot F(F(X * w_1) * w_2) grad3?=?y^??loss??F(F(X?w1?)?w2?)

??在梯度消失和梯度爆炸的案例中,我們不難發(fā)現(xiàn),為了確保多層神經(jīng)網(wǎng)絡(luò)的有效性,各層梯度的差距不應(yīng)太大,此時一個最為基本的想法就是,就是能否讓所有的輸入數(shù)據(jù)(也就是X)以及所有層的參數(shù)都設(shè)置為Zero-Centered Data,也就是零點(diǎn)對稱數(shù)據(jù),不難發(fā)現(xiàn),由于X和 w i w_i wi?都是零點(diǎn)對稱的,因此每一個線性層中的導(dǎo)函數(shù)也取值也能夠維持在0-1之間,進(jìn)而每一層的梯度基本能維持在比較平穩(wěn)的狀態(tài)。

另外,除了能夠避免梯度不平穩(wěn)問題以外,創(chuàng)建Zero-Centered的參數(shù)和數(shù)據(jù)集,還能夠更好的在正向傳播中將信息傳播到各層,以及確保各層學(xué)習(xí)的平穩(wěn)性。

??關(guān)于如何將帶入模型訓(xùn)練的數(shù)據(jù)轉(zhuǎn)化為Zero-Centered Data,一般來說我們會使用一系列標(biāo)準(zhǔn)化方法對其進(jìn)行轉(zhuǎn)化,具體方法我們會在Lesson 14進(jìn)行詳細(xì)介紹,由于我們此前創(chuàng)建的數(shù)據(jù)生成器生成的就是Zero-Centered Data,因此暫時這些數(shù)據(jù)不會影響接下來的優(yōu)化方法使用。而如何將參數(shù)轉(zhuǎn)化為Zero-Centered Data,就是核心需要考慮的問題了。

對于輸入的數(shù)據(jù)來說,我們可以盡量保證其Zero-Centered的特性,但模型參數(shù)是隨著模型迭代不斷變化的,我們無法把控模型每一輪迭代后的情況,因此只能從模型參數(shù)初始值入手,盡量保證其Zero-Centered屬性。

??很明顯,我們不能將參數(shù)的初始值全部設(shè)為0,我們只能考慮借助統(tǒng)計(jì)工具生成均值是0的隨機(jī)數(shù),也就是0均值的均勻分布或者是0均值的高斯分布,但這里需要考慮的另一個問題就是,該隨機(jī)數(shù)的方差應(yīng)該如何確定?

2.Glorot條件和Xavier方法

??初始化參數(shù)的方差如何確定這一問題在一個嚴(yán)謹(jǐn)論述如何保證模型有效性的論文中,從另一個角度出發(fā),得到了回答。根據(jù)Xavier Glorot在2010年發(fā)表的《Understanding the difficulty of training deep feedforward neural networks》論文中的觀點(diǎn),為保證模型本身的有效性和穩(wěn)定性,我們希望正向傳播時,每個線性層輸入數(shù)據(jù)的方差等于輸出數(shù)據(jù)的方差,同時我們也希望反向傳播時,數(shù)據(jù)流經(jīng)某層之前和流經(jīng)某層之后該層的梯度也具有相同的方差,雖然二者很難同時滿足(除非相鄰兩層神經(jīng)元個數(shù)相同),但Glorot和Bengio(論文第二作者)表示,如果我們適當(dāng)修改計(jì)算過程、是可以找到一種折中方案去設(shè)計(jì)初始參數(shù)取值,從而同時保證二者條件盡可能得到滿足,這種設(shè)計(jì)參數(shù)初始值的方法也被稱為Xavier方法,而這種方法也經(jīng)過一段時間的實(shí)踐驗(yàn)證被證明是很好的一種初始化模型參數(shù)的方法,尤其是對于使用tanh激活函數(shù)的神經(jīng)網(wǎng)絡(luò)來說,效果更為顯著。

??而這種正向傳播時數(shù)據(jù)方差保持一致、反向傳播時參數(shù)梯度方差保持一致的條件,也被稱為Glorot條件,滿足該條件的模型能夠進(jìn)行有效平穩(wěn)的訓(xùn)練,而為了滿足該條件而創(chuàng)建的(當(dāng)然也是由上述論文提出的)模型初始化參數(shù)值設(shè)計(jì)方法,也被稱為Xavier方法。而在Xavier方法中,最核心解決的問題,也就是為了創(chuàng)建Zero-Centered的初始化參數(shù)時參數(shù)的方差。和我們從樸素的角度思考的方向是一致的。

??由于Glorot條件和Xavier方法是在2010年提出的,彼時ReLU激活函數(shù)還未興起,因此Xavier方法主要是圍繞tanh激活函數(shù)可能存在的梯度爆炸或梯度消失進(jìn)行的優(yōu)化,Sigmoid激活函數(shù)效果次之。不過盡管如此,Glorot條件卻是一個通用條件,后續(xù)圍繞ReLU激活函數(shù)、用于解決神經(jīng)元活性失效的優(yōu)化方法(如HE初始化方法),也是遵照Glorot條件進(jìn)行的方法設(shè)計(jì)。

3.模型初始化參數(shù)取值影響

??Xavier初始化方法的推導(dǎo)和使用我們將在下一節(jié)詳細(xì)介紹,此處我們先通過另外一個實(shí)例,去展示為何初始參數(shù)取值不同,會夠得到不同的建模結(jié)果。模型初始化時得到的不同參數(shù),本質(zhì)上等價于在損失函數(shù)上找到了不同的初始點(diǎn),而同一損失函數(shù),初始點(diǎn)選取的不同應(yīng)該不會影響最終迭代結(jié)果才對,但事實(shí)情況并非如此。

在這里插入圖片描述

??我們發(fā)現(xiàn),初始參數(shù)值的選取不僅會影響模型收斂速度,甚至在某些情況下還會影響模型的最終表現(xiàn)。造成此現(xiàn)象的根本原因還是在于神經(jīng)網(wǎng)絡(luò)模型在進(jìn)行訓(xùn)練時,不確定性過多,而在一個擁有諸多不確定性的系統(tǒng)中再加上不確定的初始參數(shù),初始參數(shù)的不確定性會被這個系統(tǒng)放大。并且,值得一提的是,每一個epoch中的每一次迭代并不是在一個損失函數(shù)上一步步下降的,當(dāng)我們使用小批量梯度下降算法時,帶入不同批的數(shù)據(jù),實(shí)際創(chuàng)建的損失函數(shù)也會不同。

參考

菜菜子的深度學(xué)習(xí)

http://aloenet.com.cn/news/39242.html

相關(guān)文章:

  • 廣州做網(wǎng)站比較好的公司官網(wǎng)seo
  • 高端網(wǎng)站制作哪家靠譜現(xiàn)在推廣引流什么平臺比較火
  • 深圳信科網(wǎng)站建設(shè)鄭州seo排名優(yōu)化
  • 學(xué)網(wǎng)站開發(fā)要多少錢微信公眾號推廣2元一個
  • 咨詢公司網(wǎng)站模板網(wǎng)絡(luò)品牌推廣
  • 天堂網(wǎng)長尾關(guān)鍵詞挖掘網(wǎng)站網(wǎng)頁設(shè)計(jì)與制作教程
  • 做公司網(wǎng)站需要注意什么昭通網(wǎng)站seo
  • wordpress下載主題demo北京網(wǎng)站優(yōu)化培訓(xùn)
  • 網(wǎng)站建設(shè)培訓(xùn)業(yè)務(wù)心得社群運(yùn)營
  • 常州做網(wǎng)站多少錢網(wǎng)站推廣的作用在哪里
  • 做淘寶網(wǎng)站用什么軟件小升初最好的補(bǔ)課機(jī)構(gòu)排行榜
  • 網(wǎng)站開發(fā)教程免費(fèi)知識付費(fèi)小程序搭建
  • 網(wǎng)站設(shè)計(jì)網(wǎng)站維護(hù)電子商務(wù)網(wǎng)店運(yùn)營推廣
  • 河源網(wǎng)站建設(shè)武漢百度推廣公司
  • 用代碼做網(wǎng)站鄭州百度seo
  • 調(diào)查網(wǎng)站賺錢市場營銷圖片高清
  • phpcms v9做網(wǎng)站電商運(yùn)營基本知識
  • 網(wǎng)站頭像有啥做會清晰網(wǎng)站維護(hù)合同
  • 分類信息網(wǎng)站系統(tǒng)cms口碑營銷的優(yōu)缺點(diǎn)
  • 鲅魚圈做網(wǎng)站網(wǎng)工資頁多少錢一個月百度官方下載安裝
  • wordpress 做wiki手機(jī)優(yōu)化軟件排行
  • 網(wǎng)站開發(fā)流程書籍上海百網(wǎng)優(yōu)seo優(yōu)化公司
  • 武漢南亞建設(shè)監(jiān)理有限公司網(wǎng)站seo優(yōu)化的內(nèi)容有哪些
  • 蘭州做高端網(wǎng)站禁止搜索引擎收錄的方法
  • 網(wǎng)站怎么做dwcs6自己做網(wǎng)站的軟件
  • 網(wǎng)站怎樣設(shè)計(jì)網(wǎng)址深圳英文網(wǎng)站推廣
  • 杭州富陽網(wǎng)站建設(shè)公司現(xiàn)在如何進(jìn)行網(wǎng)上推廣
  • 昆明網(wǎng)站搭建公司百度客服24小時電話人工服務(wù)
  • 郴州網(wǎng)上報名小學(xué)系統(tǒng)登錄某一網(wǎng)站seo策劃方案
  • ps網(wǎng)站輪播圖怎么做app軟件推廣平臺