歸一化與正則化-Question

1. 介紹BN。

BN動(dòng)機(jī):神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程的本質(zhì)是學(xué)習(xí)數(shù)據(jù)分布,如果訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)的分布不同將大大降低網(wǎng)絡(luò)的泛化性能,因此我們需要在訓(xùn)練開(kāi)始前對(duì)所有輸入數(shù)據(jù)進(jìn)行歸一化處理。(參數(shù)變化后使得后一層的輸入發(fā)生變化色解,每一批次訓(xùn)練數(shù)據(jù)的分布不一致,致使網(wǎng)絡(luò)在每次迭代中都需要擬合不同的數(shù)據(jù)分布餐茵,增大訓(xùn)練的復(fù)雜度以及過(guò)擬合的風(fēng)險(xiǎn)。)

  • 為了解決網(wǎng)絡(luò)中數(shù)據(jù)分布變化大述吸,學(xué)習(xí)過(guò)程慢的問(wèn)題忿族。
  • 采用標(biāo)準(zhǔn)化,并引入兩個(gè)可學(xué)習(xí)的參數(shù)來(lái)重建淺層網(wǎng)絡(luò)學(xué)到的分布蝌矛。(變換重構(gòu))

2. 了解BN嗎道批?

  • 為了解決網(wǎng)絡(luò)中數(shù)據(jù)分布變化大,學(xué)習(xí)過(guò)程慢的問(wèn)題入撒。
  • 采用標(biāo)準(zhǔn)化隆豹,并引入兩個(gè)可學(xué)習(xí)的參數(shù)來(lái)重建淺層網(wǎng)絡(luò)學(xué)到的分布(變換重構(gòu))

3. BN的原理茅逮、作用以及訓(xùn)練測(cè)試時(shí)的不同璃赡。

# BN計(jì)算步驟:
1.計(jì)算樣本均值。
2.計(jì)算樣本方差献雅。
3.樣本數(shù)據(jù)標(biāo)準(zhǔn)化處理碉考。
4.進(jìn)行平移和縮放處理。引入了γ和β兩個(gè)參數(shù)挺身。來(lái)訓(xùn)練γ和β兩個(gè)參數(shù)侯谁。引入了這個(gè)可學(xué)習(xí)重構(gòu)參數(shù)γ、β章钾,讓我們的網(wǎng)絡(luò)可以學(xué)習(xí)恢復(fù)出原始網(wǎng)絡(luò)所要學(xué)習(xí)的特征分布墙贱。

作用:

  • 加快訓(xùn)練速度,這樣我們就可以使用較大的學(xué)習(xí)率來(lái)訓(xùn)練網(wǎng)絡(luò)贱傀。
  • 提高網(wǎng)絡(luò)的泛化能力惨撇。

訓(xùn)練測(cè)試的不同:
就是BN在訓(xùn)練階段每一個(gè)batch按照如上圖的算法流程計(jì)算每個(gè)batch的均值和方差,然后通過(guò)一個(gè)滑動(dòng)平均值方法保存窍箍,在pytorch中是通過(guò)一個(gè)參數(shù)momentum保存每個(gè)連續(xù)計(jì)算的batch的均值和方差的串纺。

# 其中x'表示新的保存下來(lái)的值丽旅,x是之前舊的保存的值,x''是表示新的batch計(jì)算的當(dāng)前均值方差等纺棺。
x' = (1-momentum)*x + momentum*x''

其中的均值是每個(gè)batch的均值的均值榄笙,方差是每個(gè)batch的無(wú)偏估計(jì)量。但是在pytorch具體實(shí)現(xiàn)是采用以上所說(shuō)的滑動(dòng)平均值方法計(jì)算的祷蝌,所以最后一旦整個(gè)訓(xùn)練階段完成茅撞,BN層中的所有參數(shù)也就固定下來(lái),然后直接用于test巨朦。

4. 手寫(xiě)softmax米丘、手寫(xiě)B(tài)N公式。

S_i=\frac{e^i}{\sum_j e^j}

5. BN的缺點(diǎn)糊啡。

  • batch_size大小的限制
    BN是以batch為單位計(jì)算歸一化統(tǒng)計(jì)量的拄查,當(dāng)一個(gè)batch樣本數(shù)很少時(shí),少量樣本的均值和方差無(wú)法反映全局的統(tǒng)計(jì)分布棚蓄,所以基于少量樣本的BN的效果會(huì)變得很差堕扶。在一些場(chǎng)景中,比如說(shuō)硬件資源受限梭依,在線(xiàn)學(xué)習(xí)等場(chǎng)景稍算,BN是非常不適用的。(在Transformer中使用的是Layer Normalization役拴,受硬件的限制糊探,Bert一般訓(xùn)練的批次都不大)

  • 無(wú)法很好的應(yīng)用于RNN中
    在一個(gè)batch中,通常各個(gè)樣本的長(zhǎng)度都是不同的河闰,當(dāng)統(tǒng)計(jì)到比較靠后的時(shí)間片時(shí)科平,這時(shí)可能只有很少的樣本數(shù)據(jù)為非零值,基于這些仍有數(shù)據(jù)的少量樣本的統(tǒng)計(jì)信息不能反映全局分布淤击,所以這時(shí)BN的效果并不好匠抗。
    另外如果在測(cè)試時(shí)我們遇到了長(zhǎng)度大于任何一個(gè)訓(xùn)練樣本的測(cè)試樣本,我們無(wú)法找到保存的歸一化統(tǒng)計(jì)量污抬,所以BN無(wú)法運(yùn)行汞贸。

6. LN的計(jì)算方法。

LN是一個(gè)獨(dú)立于batch size的算法印机,所以無(wú)論一個(gè)batch樣本數(shù)多少都不會(huì)影響參與LN計(jì)算的數(shù)據(jù)量矢腻,從而解決BN的兩個(gè)問(wèn)題。LN的做法是根據(jù)樣本的特征數(shù)做歸一化射赛。


7. BN和LN的不同多柑。


  • Batch Normalization 的處理對(duì)象是對(duì)一批樣本, Layer Normalization 的處理對(duì)象是單個(gè)樣本楣责。
  • Batch Normalization 是對(duì)這批樣本的同一維度特征(每個(gè)神經(jīng)元)做歸一化竣灌,Layer Normalization 是對(duì)這單個(gè)樣本的所有維度特征做歸一化聂沙。

LN不依賴(lài)于batch的大小和輸入sequence的深度,因此可以用于batch-size為1RNN中對(duì)邊長(zhǎng)的輸入sequence的normalize操作初嘹。但在大批量的樣本訓(xùn)練時(shí)及汉,效果沒(méi)BN好。
實(shí)踐證明屯烦,LN用于RNN進(jìn)行Normalization時(shí)坷随,取得了比BN更好的效果。但用于CNN時(shí)驻龟,效果并不如BN明顯温眉。

1. dropout的原理、作用以及訓(xùn)練測(cè)試時(shí)的不同翁狐。

原理:訓(xùn)練時(shí)类溢,每個(gè)神經(jīng)元節(jié)點(diǎn)激活值以一定的概率p被“丟棄”;測(cè)試時(shí)露懒,每個(gè)神經(jīng)元參數(shù)要預(yù)先乘以概率系數(shù)1-p豌骏,以恢復(fù)在訓(xùn)練中該神經(jīng)元只有1-p的概率被應(yīng)用到整個(gè)神經(jīng)網(wǎng)絡(luò)的前向傳播計(jì)算(以使得在訓(xùn)練時(shí)和測(cè)試時(shí)每一層輸入有大致相同的期望。)隐锭。
兩種方法處理:(通常采用第一種方案)

  • 只在訓(xùn)練時(shí)對(duì)第二層的輸出數(shù)據(jù)除以(1-p)之后再傳給輸出層神經(jīng)元。
  • 只在測(cè)試時(shí)對(duì)每一個(gè)神經(jīng)單元的權(quán)重參數(shù)要乘以概率(1-p)计贰。
# coding:utf-8
import numpy as np
 
# dropout函數(shù)的實(shí)現(xiàn)
def dropout(x, level):
    if level < 0. or level >= 1: #level是概率值钦睡,必須在0~1之間
        raise ValueError('Dropout level must be in interval [0, 1[.')
    retain_prob = 1. - level
 
    # 我們通過(guò)binomial函數(shù),生成與x一樣的維數(shù)向量躁倒。binomial函數(shù)就像拋硬幣一樣荞怒,我們可以把每個(gè)神經(jīng)元當(dāng)做拋硬幣一樣
    # 硬幣 正面的概率為p,n表示每個(gè)神經(jīng)元試驗(yàn)的次數(shù)
    # 因?yàn)槲覀兠總€(gè)神經(jīng)元只需要拋一次就可以了所以n=1秧秉,size參數(shù)是我們有多少個(gè)硬幣褐桌。
    random_tensor = np.random.binomial(n=1, p=retain_prob, size=x.shape) #即將生成一個(gè)0、1分布的向量象迎,0表示這個(gè)神經(jīng)元被屏蔽荧嵌,不工作了,也就是dropout了
    print(random_tensor)
 
    x *= random_tensor
    print(x)
    x /= retain_prob
 
    return x
 
#對(duì)dropout的測(cè)試砾淌,大家可以跑一下上面的函數(shù)啦撮,了解一個(gè)輸入x向量,經(jīng)過(guò)dropout的結(jié)果  
x=np.asarray([1,2,3,4,5,6,7,8,9,10],dtype=np.float32)
dropout(x,0.4)

作用:

  • Dropout 是在訓(xùn)練過(guò)程中以一定的概率的使神經(jīng)元失活汪厨,即輸出為0赃春,以提高模型的泛化能力,減少過(guò)擬合劫乱。
  • 類(lèi)似于Bagging织中。

2. dropout為什么可以防止過(guò)擬合锥涕?

Dropout作用于每份小批量訓(xùn)練數(shù)據(jù),隨機(jī)丟棄部分神經(jīng)元狭吼,相當(dāng)于每次迭代都在訓(xùn)練不同的神經(jīng)網(wǎng)絡(luò)(對(duì)于包括N個(gè)神經(jīng)元節(jié)點(diǎn)的網(wǎng)絡(luò)层坠,在Dropout的作用下可看作為2^N個(gè)模型的集成。這2^N個(gè)模型可認(rèn)為是原始網(wǎng)絡(luò)的子網(wǎng)絡(luò)搏嗡,它們共享權(quán)值窿春,并且具有相同的網(wǎng)絡(luò)層數(shù),而模型整體的參數(shù)數(shù)目不變采盒,這就大大簡(jiǎn)化了運(yùn)算旧乞。)。類(lèi)比于Bagging方法磅氨,Dropout可被認(rèn)為是一種實(shí)用的大規(guī)模深度神經(jīng)網(wǎng)絡(luò)的模型集成算法尺栖。對(duì)于任意神經(jīng)元,每次訓(xùn)練中都與一組隨機(jī)挑選的不同的神經(jīng)元集合共同進(jìn)行優(yōu)化烦租,這個(gè)過(guò)程會(huì)減弱全體神經(jīng)元之間的聯(lián)合適應(yīng)性延赌,減少過(guò)擬合的風(fēng)險(xiǎn),增強(qiáng)泛化能力叉橱。

3. Dropout了解嗎挫以,說(shuō)下作用,白板實(shí)現(xiàn)以下窃祝。

Dropout 是在訓(xùn)練過(guò)程中以一定的概率的使神經(jīng)元失活掐松,即輸出為0,以提高模型的泛化能力粪小,減少過(guò)擬合大磺。

  • 沒(méi)有Dropout的網(wǎng)絡(luò)計(jì)算公式:


  • 采用Dropout的網(wǎng)絡(luò)計(jì)算公式:



    標(biāo)準(zhǔn)網(wǎng)絡(luò)和帶Dropout的網(wǎng)絡(luò)

4. 在Transformer模型中dropout主要用在哪里?看過(guò)源碼嗎探膊?

droput在每個(gè)子層(BertEmbeddings杠愧、BertAttention、BertOutput)之間逞壁,設(shè)置為0.1流济。

1. 正則化L1和L2正則化,區(qū)別是什么猾担?

L1(L1-Norm)和L2(L2-Norm的平方)都是正則化項(xiàng)袭灯,又叫做懲罰項(xiàng),是為了限制模型的參數(shù)绑嘹,防止模型過(guò)擬合而加在損失函數(shù)后面的一項(xiàng)稽荧。

  • L1是模型各參數(shù)的絕對(duì)值之和;L2是模型各參數(shù)的平方和。
  • L1會(huì)趨向于產(chǎn)生少量的特征姨丈,而其它的特征都是0(稀疏的)畅卓。因?yàn)樽顑?yōu)的參數(shù)值很大概率出現(xiàn)在坐標(biāo)軸上,這樣就會(huì)導(dǎo)致某一維的權(quán)重為0蟋恬,產(chǎn)生稀疏權(quán)重矩陣翁潘。
  • L2會(huì)選擇更多的特征,這些特征都會(huì)接近于0歼争。最優(yōu)的參數(shù)值很小概率出現(xiàn)在坐標(biāo)軸上拜马,因此每一維的參數(shù)都不會(huì)是0。當(dāng)最小化||w||時(shí)沐绒,就會(huì)使得每一項(xiàng)趨近于0俩莽。

2. L2正則化作用?

  • 約束模型參數(shù)乔遮,防止過(guò)擬合扮超。

3. 為什么參數(shù)越小代表模型越簡(jiǎn)單?

  • 越是復(fù)雜的模型蹋肮,越是會(huì)嘗試所有樣本進(jìn)行擬合出刷,包括異常點(diǎn)。這就會(huì)造成在較小的區(qū)間中產(chǎn)生較大的波動(dòng)坯辩,這個(gè)較大的波動(dòng)也會(huì)反應(yīng)在這個(gè)區(qū)間的導(dǎo)數(shù)比較大馁龟。
  • 只有越大的參數(shù)才可能產(chǎn)生較大的導(dǎo)數(shù)。因此參數(shù)越小漆魔,模型就越簡(jiǎn)單屁柏。

4. 實(shí)現(xiàn)參數(shù)的稀疏有什么好處?

因?yàn)閰?shù)的稀疏有送,在一定程度上實(shí)現(xiàn)了特征的選擇。一般而言僧家,大部分特征對(duì)模型是沒(méi)有貢獻(xiàn)的雀摘。這些沒(méi)有用的特征雖然可以減少訓(xùn)練集上的誤差,但是對(duì)測(cè)試集的樣本八拱,反而會(huì)產(chǎn)生干擾阵赠。稀疏參數(shù)的引入,可以將那些無(wú)用的特征的權(quán)重置為0.

5. 正則化有什么用肌稻,為什么有用清蚀,L1正則為什么能使參數(shù)稀疏,為什么能防止過(guò)擬合

  • 約束模型參數(shù)爹谭,防止過(guò)擬合枷邪。

加入了正則化項(xiàng)就是在原來(lái)目標(biāo)函數(shù)的基礎(chǔ)上加入約束。當(dāng)目標(biāo)函數(shù)的等高線(xiàn)L1诺凡、L2范數(shù)函數(shù)的等高線(xiàn)第一次相交時(shí)东揣,得到最優(yōu)解践惑。

  • L1范數(shù)符合拉普拉斯分布,是不完全可微的嘶卧。表現(xiàn)在圖像上會(huì)有很多角出現(xiàn)尔觉。這些角和目標(biāo)函數(shù)的接觸機(jī)會(huì)遠(yuǎn)大于其他部分。就會(huì)造成最優(yōu)值出現(xiàn)在坐標(biāo)軸上芥吟,因此就會(huì)導(dǎo)致某一維的權(quán)重為0侦铜,產(chǎn)生稀疏權(quán)重矩陣,進(jìn)而防止過(guò)擬合钟鸵。
  • L2范數(shù)符合高斯分布钉稍,是完全可微的。和L1相比携添,圖像上的棱角被圓滑了很多嫁盲。一般最優(yōu)值不會(huì)在坐標(biāo)軸上出現(xiàn)。在最小化正則項(xiàng)時(shí)烈掠,參數(shù)不斷趨向于0羞秤,最后獲得很小的參數(shù)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末左敌,一起剝皮案震驚了整個(gè)濱河市瘾蛋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矫限,老刑警劉巖哺哼,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異叼风,居然都是意外死亡取董,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)无宿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)茵汰,“玉大人,你說(shuō)我怎么就攤上這事孽鸡□逦纾” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵彬碱,是天一觀(guān)的道長(zhǎng)豆胸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)巷疼,這世上最難降的妖魔是什么晚胡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上搬泥,老公的妹妹穿的比我還像新娘桑寨。我一直安慰自己,他們只是感情好忿檩,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布尉尾。 她就那樣靜靜地躺著,像睡著了一般燥透。 火紅的嫁衣襯著肌膚如雪沙咏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天班套,我揣著相機(jī)與錄音肢藐,去河邊找鬼。 笑死吱韭,一個(gè)胖子當(dāng)著我的面吹牛吆豹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播理盆,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼痘煤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了猿规?” 一聲冷哼從身側(cè)響起衷快,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姨俩,沒(méi)想到半個(gè)月后蘸拔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡环葵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年调窍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片张遭。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陨晶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帝璧,到底是詐尸還是另有隱情,我是刑警寧澤湿刽,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布的烁,位于F島的核電站,受9級(jí)特大地震影響诈闺,放射性物質(zhì)發(fā)生泄漏渴庆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望襟雷。 院中可真熱鬧刃滓,春花似錦、人聲如沸耸弄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)计呈。三九已至砰诵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捌显,已是汗流浹背茁彭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扶歪,地道東北人理肺。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像善镰,于是被迫代替她去往敵國(guó)和親妹萨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容