深度學(xué)習(xí)中優(yōu)化技術(shù)總結(jié),! 1 背景與應(yīng)用 學(xué)習(xí)深度網(wǎng)絡(luò)架構(gòu)需要大量數(shù)據(jù),是一個(gè)計(jì)算需求很高的任務(wù)。神經(jīng)元之間的連接和參數(shù)數(shù)量龐大,,需要梯度下降優(yōu)化或其變端進(jìn)行迭代調(diào)整,,但存在許多局限,例如無法處理非凸復(fù)雜函數(shù)以及難以找到全局最小值,。因此,,可以使用正則化和優(yōu)化技術(shù)來克服過度擬合和計(jì)算代價(jià)高的問題。 圖1 CNN的架構(gòu) 2 梯度下降 梯度下降,,也稱為最陡下降法,,是一種迭代優(yōu)化算法,通過迭代過程中計(jì)算函數(shù)的負(fù)導(dǎo)數(shù)點(diǎn)來尋找復(fù)雜函數(shù)的最小值,。導(dǎo)數(shù)是函數(shù)斜率的變化率,,通常表示函數(shù)在任意給定點(diǎn)的變化,前提是函數(shù)是連續(xù)可微的,。 2.1 批量梯度下降 批量梯度下降是一種優(yōu)化算法,,用于在機(jī)器學(xué)習(xí)中通過計(jì)算整個(gè)訓(xùn)練數(shù)據(jù)集的成本函數(shù)相對(duì)于參數(shù)的梯度來更新模型的參數(shù)。這種方法也被稱為普通梯度下降,。成本函數(shù)是衡量模型擬合訓(xùn)練數(shù)據(jù)的程度的指標(biāo),,梯度是成本函數(shù)最陡峭上升的方向。該算法通過減去梯度乘以學(xué)習(xí)率的一部分來更新參數(shù),。批量梯度下降在處理大型數(shù)據(jù)集時(shí)計(jì)算成本較高,,但它可以收斂到成本函數(shù)的全局最小值。 2.2 隨機(jī)梯度下降 隨機(jī)梯度下降,,它是一種機(jī)器學(xué)習(xí)中使用的優(yōu)化技術(shù),,通過計(jì)算成本函數(shù)相對(duì)于訓(xùn)練數(shù)據(jù)集的隨機(jī)選擇子集的參數(shù)梯度來更新模型的參數(shù)。這種方法也被稱為增量梯度下降或在線學(xué)習(xí),。該算法通過每次迭代順序更新參數(shù),,降低計(jì)算成本并避免從大型數(shù)據(jù)集中獲得的非凸函數(shù)的局部最小值。然而,,與批量梯度下降相比,,梯度下降優(yōu)化的隨機(jī)逼近結(jié)果具有更大的方差。學(xué)習(xí)率是SGD中的關(guān)鍵步驟,,通常比批量梯度下降的學(xué)習(xí)率小得多,。 2.3 小批量梯度下降 小批量梯度下降,它是一種機(jī)器學(xué)習(xí)中使用的批量梯度下降優(yōu)化算法的變體,,通過計(jì)算成本函數(shù)相對(duì)于訓(xùn)練數(shù)據(jù)集的小隨機(jī)選擇子集的參數(shù)梯度來更新模型的參數(shù),。這種方法涉及將訓(xùn)練樣本分成多個(gè)小批次,每個(gè)小批次包含多個(gè)樣本,,而不是每次迭代只使用一個(gè)樣本,。這些小批次用于計(jì)算誤差和更新參數(shù),。小批次梯度的梯度總和或平均值相對(duì)于隨機(jī)優(yōu)化減少了方差,從而導(dǎo)致更穩(wěn)定的收斂,。小批量梯度下降通常用于深度學(xué)習(xí)模型中,,并且在文本中以公式形式表示。 3 正則化技術(shù) 算法正則化旨在提高算法泛化性能,,在機(jī)器學(xué)習(xí)領(lǐng)域備受關(guān)注,。正則化對(duì)于深度學(xué)習(xí)模型至關(guān)重要,因?yàn)槠鋮?shù)多于訓(xùn)練數(shù)據(jù)集,。正則化可以避免過擬合,當(dāng)算法學(xué)習(xí)輸入數(shù)據(jù)及噪聲時(shí),,過擬合現(xiàn)象常出現(xiàn),。近年來,人們提出了多種正則化方法,,如數(shù)據(jù)增強(qiáng),、L2正則化或權(quán)重衰減、L1正則化,、dropout,、drop connect、隨機(jī)池化和早停,。 除了泛化原因,,奧卡姆剃刀原理和貝葉斯估計(jì)也都支持著正則化。根據(jù)奧卡姆剃刀原理,,在所有可能選擇的模型中,,能很好解釋已知數(shù)據(jù),并且十分簡(jiǎn)單的模型才是最好的模型,。而從貝葉斯估計(jì)的角度來看,,正則化項(xiàng)對(duì)應(yīng)于模型的先驗(yàn)概率。 3.1 數(shù)據(jù)增強(qiáng) 數(shù)據(jù)增強(qiáng)通過添加對(duì)訓(xùn)練數(shù)據(jù)的轉(zhuǎn)換或擾動(dòng)來人工增加訓(xùn)練集的重要性,,而不需要增加計(jì)算成本,。常見的技術(shù)包括水平或垂直翻轉(zhuǎn)圖像、裁剪,、顏色抖動(dòng),、縮放和旋轉(zhuǎn)等。在imagenet分類中,,Krizhevsky等人通過PCA改變RGB顏色通道強(qiáng)度,,提高AlexNet性能。Bengio等人證明,,深層架構(gòu)從數(shù)據(jù)增強(qiáng)技術(shù)中受益更多,。張等人通過數(shù)據(jù)論證技術(shù)和顯式正則化器提高性能,。Chaoyun等人通過數(shù)據(jù)增強(qiáng)技術(shù)提高葉子分類性能,開發(fā)的ConvNet架構(gòu)優(yōu)于其他分類方法,。 3.2 L1 和 L2 正則化 L1 和 L2 正則化是深度卷積神經(jīng)網(wǎng)絡(luò)中最常用的正則化方法,。L1正則化通過向目標(biāo)函數(shù)添加正則化項(xiàng)來減少參數(shù)的絕對(duì)值之和,而L2正則化則通過向目標(biāo)函數(shù)添加正則化項(xiàng)來減少參數(shù)的平方和,。L1正則化中的許多參數(shù)向量是稀疏的,,因?yàn)樵S多模型導(dǎo)致參數(shù)為零。因此,,L1正則化可以應(yīng)用于特征選擇,。機(jī)器學(xué)習(xí)中最常用的正則化方法是給權(quán)重施加一個(gè)平方L2范數(shù)約束,也稱為權(quán)重衰減或吉洪諾夫(Tikhonov)正則化,。 3.3 Dropout Dropout是一種在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)隨機(jī)丟棄部分神經(jīng)元及其連接的方法,,有助于防止過擬合,提高融合不同網(wǎng)絡(luò)架構(gòu)的效率,。神經(jīng)元以1-p的概率被丟棄,,降低相互適應(yīng)性。通過對(duì)所有2^n個(gè)可能的丟棄神經(jīng)元的樣本平均值進(jìn)行近似計(jì)算,,可以降低過擬合同時(shí)通過避免在訓(xùn)練數(shù)據(jù)上的訓(xùn)練節(jié)點(diǎn)提高了算法的學(xué)習(xí)速度,。Dropout已經(jīng)在全連接和卷積層中實(shí)現(xiàn),并且研究表明它可以減少測(cè)試結(jié)果誤差并提高網(wǎng)絡(luò)的性能 3.4 Drop Connect DropConnect是一種用于減少算法過擬合的正則化策略,,是Dropout的一種擴(kuò)展形式,。在DropConnect中,不是將每個(gè)層中隨機(jī)選擇的激活子集設(shè)置為零,,而是將架構(gòu)中隨機(jī)選擇的一部分權(quán)重設(shè)置為零,。因此,DropConnect和Dropout都能夠?qū)崿F(xiàn)有限泛化性能,。DropConnect與Dropout類似,,因?yàn)樗谀P椭幸肓讼∈栊裕c權(quán)重的稀疏性不同,,輸出向量是稀疏的,。 3.5 早停法 早停法是一種防止過度擬合的技術(shù),通過確定合適的迭代次數(shù)來避免欠擬合和過擬合,。早停技術(shù)將數(shù)據(jù)分為訓(xùn)練集,、驗(yàn)證集和測(cè)試集,訓(xùn)練集用于優(yōu)化權(quán)重和偏差,,驗(yàn)證集用于監(jiān)控訓(xùn)練過程,。當(dāng)驗(yàn)證誤差開始增加時(shí),停止迭代并返回權(quán)重和偏差值,,以防止過度擬合并提高網(wǎng)絡(luò)的泛化性能,。 4 優(yōu)化策略 4.1 動(dòng)量(Momentum) 隨機(jī)梯度下降法和小批量梯度下降法是優(yōu)化成本函數(shù)的常用方法,,但在大規(guī)模應(yīng)用中學(xué)習(xí)效果并不理想。動(dòng)量策略提出加速學(xué)習(xí)過程,,特別是在高曲率情況下,。動(dòng)量策略引入了變量v,作為參數(shù)在空間中繼續(xù)移動(dòng)的速度向量,,速度被設(shè)定為負(fù)梯度的指數(shù)級(jí)衰減平均值,。動(dòng)量類似于隨機(jī)梯度下降(SGD)和Mini-batch梯度下降,但在更新參數(shù)的方式上有所不同,。通過使用動(dòng)量,,可以加速學(xué)習(xí)過程并實(shí)現(xiàn)更好的收斂率,尤其是在高曲率的情況下,。 4.2 Nesterov 加速梯度(NAG) Nesterov加速梯度(NAG)是一種一階優(yōu)化算法,,類似于動(dòng)量算法,但梯度在速度實(shí)現(xiàn)后進(jìn)行評(píng)估,。NAG的更新與動(dòng)量算法相似,但具有更好的收斂速率,。NAG常用于批量梯度下降法處理平滑凸函數(shù),,可將收斂速率從1/k改進(jìn)為1/k^2。 4.3 Adagrad Adagrad是一種自適應(yīng)梯度算法,,可以根據(jù)參數(shù)來調(diào)整學(xué)習(xí)率,,消除了調(diào)整學(xué)習(xí)率的必要性。Adagrad對(duì)不頻繁的參數(shù)執(zhí)行較大的更新,,對(duì)頻繁的參數(shù)執(zhí)行較小的更新,,使其成為圖像識(shí)別和自然語(yǔ)言處理等稀疏數(shù)據(jù)的自然候選者。Adagrad最大的問題是,,在某些情況下,,學(xué)習(xí)率變得太小,導(dǎo)致網(wǎng)絡(luò)停止學(xué)習(xí)過程,,因?yàn)閷W(xué)習(xí)率單調(diào)遞減,。 4.4 AdaDelta AdaDelta是一種自適應(yīng)學(xué)習(xí)率優(yōu)化算法,利用最近的歷史梯度值來縮放學(xué)習(xí)率并積累歷史更新以加速學(xué)習(xí),。AdaDelta的優(yōu)點(diǎn)在于克服了Adagrad的缺點(diǎn),,Adagrad的學(xué)習(xí)率變得太小,網(wǎng)絡(luò)就會(huì)停止學(xué)習(xí),。AdaDelta使用先前平方梯度的指數(shù)衰減平均和先前的平方更新來計(jì)算學(xué)習(xí)率,。AdaDelta常用于深度學(xué)習(xí)模型,并表現(xiàn)出比Adagrad和RMSprop更好的性能,。 4.5 RMS prop RMSprop是一種自適應(yīng)學(xué)習(xí)率優(yōu)化算法,,它將學(xué)習(xí)率除以指數(shù)衰減的平方梯度的平均值,。RMSprop類似于AdaDelta的第一個(gè)更新向量,旨在解決Adagrad的問題,,即學(xué)習(xí)率變得太小導(dǎo)致網(wǎng)絡(luò)停止學(xué)習(xí)過程,。RMSprop常用于深度學(xué)習(xí)模型,并顯示出比Adagrad更好的性能,。 4.6 Adam Adam是一種自適應(yīng)學(xué)習(xí)率優(yōu)化算法,,可以處理梯度噪聲和非平穩(wěn)目標(biāo)。它通過存儲(chǔ)指數(shù)下降的平均前期平方梯度和前期歷史梯度來為參數(shù)計(jì)算自適應(yīng)學(xué)習(xí)率,。Adam與Adadelta和RMSprop相似,,但還保留了指數(shù)下降的前期歷史梯度的平均值。Adam通常用于深度學(xué)習(xí)模型,,并且表現(xiàn)出比Adagrad,、RMSprop和Adadelta更好的性能。 4.7 Nadam |
|