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