一、數(shù)據(jù)擴(kuò)充
Random Erasing,尤其是對噪聲和遮擋具有更好的魯棒性,。 1.data augmentation有哪些技巧,? (1) Color Jittering:對顏色的數(shù)據(jù)增強(qiáng):圖像亮度、飽和度,、對比度變化(此處對色彩抖動的理解不知是否得當(dāng)),; PCA Jittering:首先按照RGB三個顏色通道計算均值和標(biāo)準(zhǔn)差,再在整個訓(xùn)練集上計算協(xié)方差矩陣,,進(jìn)行特征分解,,得到特征向量和特征值,用來做PCA Jittering,; Random Scale:尺度變換; Random Crop:采用隨機(jī)圖像差值方式,,對圖像進(jìn)行裁剪,、縮放;包括Scale Jittering方法(VGG及ResNet模型使用)或者尺度和長寬比增強(qiáng)變換,; Horizontal/Vertical Flip:水平/垂直翻轉(zhuǎn),; Shift:平移變換; Rotation/Reflection:旋轉(zhuǎn)/仿射變換,;
(3)
Supervised Data Augmentation:根據(jù)目標(biāo)物體出現(xiàn)在不同位置的概率信息,,去選擇不同的Crop區(qū)域,送進(jìn)模型訓(xùn)練,。通過引入這種有監(jiān)督的信息,,我們可以利用正確的信息來更好地訓(xùn)練模型,以提升識別準(zhǔn)確率,。 (+0.5~0.7) Label shuffle(類別不平衡):首先對原始的圖像列表,,按照標(biāo)簽順序進(jìn)行排序;然后計算每個類別的樣本數(shù)量,,并得到樣本最多的那個類別的樣本數(shù),。根據(jù)這個最多的樣本數(shù),對每類隨機(jī)都產(chǎn)生一個隨機(jī)排列的列表,;然后用每個類別的列表中的數(shù)對各自類別的樣本數(shù)求余,,得到一個索引值,從該類的圖像中提取圖像,,生成該類的圖像隨機(jī)列表,;然后把所有類別的隨機(jī)列表連在一起,做個Random Shuffling,,得到最后的圖像列表,,用這個列表進(jìn)行訓(xùn)練。每個列表,,到達(dá)最后一張圖像的時候,,然后再重新做一遍這些步驟,得到一個新的列表,,接著訓(xùn)練,。Label Shuffling方法的優(yōu)點在于,只需要原始圖像列表,,所有操作都是在內(nèi)存中在線完成,,非常易于實現(xiàn)。 2. 數(shù)據(jù)不足時 (1)數(shù)據(jù)增強(qiáng),、 (2)transfer learning(fine-tuning:根據(jù)數(shù)據(jù)集的大小,,訓(xùn)練網(wǎng)絡(luò)的最后一層或者最后幾層) Fine-tuning:固定網(wǎng)絡(luò),,即為學(xué)習(xí)率為0、需要訓(xùn)練的層的學(xué)習(xí)率比較高(原來訓(xùn)練好的網(wǎng)絡(luò)的學(xué)習(xí)率的十分之一),、當(dāng)預(yù)訓(xùn)練的層(中間層)需要改變時,,學(xué)習(xí)率很小(如原學(xué)習(xí)率的一百分之一) (3)修改網(wǎng)絡(luò) 二,、數(shù)據(jù)預(yù)處理
1、數(shù)據(jù)為什么要做歸一化,? (1)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程本質(zhì)就是為了學(xué)習(xí)數(shù)據(jù)分布,,一旦訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)的分布不同,那么網(wǎng)絡(luò)的泛化能力也大大降低,; (2)一旦每批訓(xùn)練數(shù)據(jù)的分布各不相同(batch 梯度下降),,那么網(wǎng)絡(luò)就要在每次迭代都去學(xué)習(xí)適應(yīng)不同的分布,這樣將會大大降低網(wǎng)絡(luò)的訓(xùn)練速度,,這也正是為什么我們需要對數(shù)據(jù)都要做一個歸一化預(yù)處理的原因,。 (3)歸一化后,最優(yōu)解的尋優(yōu)過程明顯會變得平緩,,更容易正確的收斂到最優(yōu)解,。 歸一化化就是要把你需要處理的數(shù)據(jù)經(jīng)過處理后(通過某種算法)限制在你需要的一定范圍內(nèi)。 1)歸一化后加快了梯度下降求最優(yōu)解的速度,。等高線變得顯得圓滑,,在梯度下降進(jìn)行求解時能較快的收斂。如果不做歸一化,,梯度下降過程容易走之字,,很難收斂甚至不能收斂 2)把有量綱表達(dá)式變?yōu)闊o量綱表達(dá)式, 有可能提高精度。一些分類器需要計算樣本之間的距離(如歐氏距離),,例如KNN。如果一個特征值域范圍非常大,,那么距離計算就主要取決于這個特征,,從而與實際情況相悖(比如這時實際情況是值域范圍小的特征更重要) 3) 邏輯回歸等模型先驗假設(shè)數(shù)據(jù)服從正態(tài)分布,。 歸一化的類型有線性歸一化,、標(biāo)準(zhǔn)差歸一化、非線性歸一化 2,、歸一化和標(biāo)準(zhǔn)化的區(qū)別,? 歸一化: 1)把數(shù)據(jù)變成(0,,1)之間的小數(shù) 2)把有量綱表達(dá)式變成無量綱表達(dá) 常見的有線性轉(zhuǎn)換,、對數(shù)函數(shù)轉(zhuǎn)換、反余切函數(shù)轉(zhuǎn)換等
標(biāo)準(zhǔn)化: 數(shù)據(jù)的標(biāo)準(zhǔn)化(normalization)是將數(shù)據(jù)按比例縮放,,使之落入一個小的特定區(qū)間。在某些比較和評價的指標(biāo)處理中經(jīng)常會用到,,去除數(shù)據(jù)的單位限制,將其轉(zhuǎn)化為無量綱的純數(shù)值,,便于不同單位或量級的指標(biāo)能夠進(jìn)行比較和加權(quán),。 1 ) 最?。畲笠?guī)范化(線性變換) y=((x-MinValue) / (MaxValue-MinValue))(new_MaxValue-new_MinValue)+new_minValue 2)z-score規(guī)范化(或零-均值規(guī)范化) y=(x-X的平均值)/X的標(biāo)準(zhǔn)差 3)小數(shù)定標(biāo)規(guī)范化:通過移動X的小數(shù)位置來進(jìn)行規(guī)范化 y= x/10的j次方 (其中,j使得Max(|y|) <1的最小整數(shù) 4).對數(shù)Logistic模式: 新數(shù)據(jù)=1/(1+e^(-原數(shù)據(jù))) 5)模糊量化模式 新數(shù)據(jù)=1/2+1/2sin[派3.1415/(極大值-極小值) 3,、歸一化和標(biāo)準(zhǔn)化的區(qū)別? (1)min-max標(biāo)準(zhǔn)化 也稱為離差標(biāo)準(zhǔn)化,是對原始數(shù)據(jù)的線性變換,,使結(jié)果值映射到[0 – 1]之間。轉(zhuǎn)換函數(shù)如下: x?=(x?min)/(max?min),。 其中max為樣本數(shù)據(jù)的最大值,min為樣本數(shù)據(jù)的最小值,。這種方法有個缺陷就是當(dāng)有新數(shù)據(jù)加入時,,可能導(dǎo)致max和min的變化,需要重新定義,。 (2)Z-score標(biāo)準(zhǔn)化方法 這種方法給予原始數(shù)據(jù)的均值(mean)和標(biāo)準(zhǔn)差(standard deviation)進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化,。經(jīng)過處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布,,即均值為0,,標(biāo)準(zhǔn)差為1,,轉(zhuǎn)化函數(shù)為: x?=(x?μ)/σ 其中 μ為所有樣本數(shù)據(jù)的均值,,σ為所有樣本數(shù)據(jù)的標(biāo)準(zhǔn)差,。 (3)Z-scores 簡單化 模型如下: x?=1/(1+x) x越大證明x? 越小,這樣就可以把很大的數(shù)規(guī)范在[0-1]之間了,。 三,、網(wǎng)絡(luò)參數(shù)初始化 1.權(quán)重初始化方法 caffe7種權(quán)值初始化的方法:常量初始化(constant)、高斯分布初始化(gaussian),、positive_unitball初始化,、均勻分布初始化(uniform),、xavier初始化,、msra初始化,、雙線性初始化(bilinear),。 (1)常量初始化(constant) 把權(quán)值或者偏置初始化為一個常數(shù),具體是什么常數(shù),,可以自己定義 (2)高斯分布初始化(gaussian) 需要給定高斯函數(shù)的均值與標(biāo)準(zhǔn)差 (3)positive_unitball初始化 讓每一個神經(jīng)元的輸入的權(quán)值和為 1,,例如:一個神經(jīng)元有100個輸入,,讓這100個輸入的權(quán)值和為1. 首先給這100個權(quán)值賦值為在(0,,1)之間的均勻分布,,然后,每一個權(quán)值再除以它們的和就可以啦,。這么做,,可以有助于防止權(quán)值初始化過大,從而防止激活函數(shù)(sigmoid函數(shù))進(jìn)入飽和區(qū),。所以,,它應(yīng)該比較適合simgmoid形的激活函數(shù) (4)均勻分布初始化(uniform) 將權(quán)值與偏置進(jìn)行均勻分布的初始化,用min 與 max 來控制它們的的上下限,,默認(rèn)為(0,,1) (5)xavier初始化 對于權(quán)值的分布:均值為0,方差為(1 / 輸入的個數(shù)) 的 均勻分布,。如果我們更注重前向傳播的話,,我們可以選擇 fan_in,即正向傳播的輸入個數(shù);如果更注重后向傳播的話,,我們選擇 fan_out, 因為在反向傳播的時候,,fan_out就是神經(jīng)元的輸入個數(shù);如果兩者都考慮的話,,就選 average = (fan_in + fan_out) /2,。對于ReLU激活函數(shù)來說,XavierFiller初始化也是很適合,。關(guān)于該初始化方法,,具體可以參考文章1、文章2,,該方法假定激活函數(shù)是線性的,。 (6)msra初始化 對于權(quán)值的分布:基于均值為0,方差為( 2/輸入的個數(shù))的高斯分布,;它特別適合 ReLU激活函數(shù),,該方法主要是基于Relu函數(shù)提出的,推導(dǎo)過程類似于xavier,,可以參考博客,。 (7)雙線性初始化(bilinear) 常用在反卷積神經(jīng)網(wǎng)絡(luò)里的權(quán)值初始化
2.HE初始化 He initialization的思想是:在ReLU網(wǎng)絡(luò)中,假定每一層有一半的神經(jīng)元被激活,,另一半為0,,所以,要保持variance不變,,只需要在Xavier的基礎(chǔ)上再除以2:
四,、網(wǎng)絡(luò)正則化 1. l1 l2詳細(xì)介紹,解決梯度爆炸/彌散方法 ,,L1和L2正則化各自的特點和適用場景,。
L1對應(yīng)拉普拉斯分布,L2對應(yīng)高斯分布,。 (1)L1正則化
加權(quán)值向量w中各個元素的絕對值之和,。產(chǎn)生一個稀疏模型,可以用于特征選擇,。當(dāng)L1的正則化系數(shù)很小時,,得到的最優(yōu)解會很小,可防止過擬合,。
在預(yù)測或分類時,,那么多特征顯然難以選擇,稀疏模型,,表示只有少數(shù)特征對這個模型有貢獻(xiàn),,絕大部分特征是沒有貢獻(xiàn)的,,或者貢獻(xiàn)微小,即使去掉對模型也沒有什么影響,。
圖中等值線是J0的等值線,,黑色方形是L函數(shù)的圖形。在圖中,,當(dāng)J0等值線與L圖形首次相交的地方就是最優(yōu)解,。
問題1: L1正則為什么可以把系數(shù)壓縮成0。 L1正則因為是絕對值形式,,很多系數(shù)被壓縮為0 l1在0處不可導(dǎo),,怎么處理?如何解決 L1 求導(dǎo)困難,? 目標(biāo)函數(shù)不是連續(xù)可微的情況,,可以用次梯度來進(jìn)行優(yōu)化。但會產(chǎn)生 可用 Proximal Algorithm或者ADMM 通常越大的λ可以讓代價函數(shù)在參數(shù)為0時取到最小值
(2)L2正則化
權(quán)值向量ww中各個元素的平方和然后再求平方根,。限制解空間范圍,,縮小解空間,控制模型復(fù)雜度 ,。 讓權(quán)值盡可能小,,最后構(gòu)造一個所有參數(shù)都比較小的模型。參數(shù)足夠小,,數(shù)據(jù)偏移得多一點也不會對結(jié)果造成什么影響,,抗擾動能力強(qiáng)。L2迭代計算參數(shù)時,,參數(shù)會不斷乘以一個小于1的數(shù),,估逐漸減少。 2.1.1 正則化:正則化表現(xiàn)的是對高維度W的懲罰力度,,當(dāng)正則化系數(shù)(lambda)很大時,,使w變的非常小,最終的結(jié)果是函數(shù)變得非常平滑,。正則化系數(shù)(lambda)越小,,擬合程度越高,效果越好,。 L0 范數(shù):向量中非0元素的個數(shù)。 L1 范數(shù) (Lasso Regularization):向量中各個元素絕對值的和,。 L2 范數(shù)(Ridge Regression):向量中各元素平方和再求平方根,。 L0 范數(shù)和 L1 范數(shù)都能夠達(dá)到使參數(shù)稀疏的目的,但 L0 范數(shù)更難優(yōu)化求解,,L1 范數(shù)是 L0 范數(shù)的最優(yōu)凸近似,,而且它比 L0 范數(shù)要容易優(yōu)化求解,。 L2 范數(shù)不但可以防止過擬合,提高模型的泛化能力,,還可以讓我們的優(yōu)化求解變得穩(wěn)定和快速,。L2 范數(shù)對大數(shù)和 outlier 更敏感!
五,、超參數(shù)設(shè)定和網(wǎng)絡(luò)訓(xùn)練 1. batch size對收斂速度的影響,。 批梯度下降法(Mini-batches Learning)? (1)太小,,迭代次數(shù)要很多次才能收斂,。 (2)增大,處理速度變快,。一定范圍內(nèi),,越大,下降得越準(zhǔn),, (3)太大,,內(nèi)存利用率提高,但是內(nèi)存容量可能撐不住了,。跑完一次epoch所需迭代次數(shù)減少,,所花費時間打打增大。增大到一定程度,,確定的下降方向不再變化,。 達(dá)到某個時候,時間上最優(yōu),。某個時候,,精度上最優(yōu)。 六,、不平衡類別樣本處理 1.類別不平衡的時候怎么辦 (1)重采樣,,少的樣本重復(fù)利用。改變數(shù)據(jù)分布消除不平衡,,可能導(dǎo)致過擬合,。 (2)欠采樣,,即多的樣本通過取其中一部分,,如果1:10算是均勻的話,,可以將多數(shù)類分割成為1000份,。然后將每一份跟少數(shù)類的樣本組合進(jìn)行訓(xùn)練得到分類器,。而后將這1000個分類器用assemble的方法組合位一個分類器,。 (3)通過修改loss 函數(shù),,修改樣本的權(quán)值,,讓少樣本的有更大權(quán)值,。 (4)數(shù)據(jù)增強(qiáng),。
七,、模型集成方法 1.模型集成 先單獨訓(xùn)練多個不同的模型;在訓(xùn)練時,,將每個模型的結(jié)果取平均值即可,。-->可提升精度。常見的Ensemble方法有Bagging,、Boosting,、Stacking、Blending,。 缺點是必須單獨訓(xùn)練不同的模型,。 (1)多數(shù)表決融合 (2)加權(quán)表決融合 (3)對結(jié)果取平均 (4)Stacking用一些基分類器進(jìn)行分類,然后使用令一個分類器對結(jié)果進(jìn)行整合,。在實現(xiàn)Stacking時,,要注意的一點是,避免標(biāo)簽泄漏(Label Leak),。在訓(xùn)練次學(xué)習(xí)器時,,需要上一層學(xué)習(xí)器對Train Data的測試結(jié)果作為特征。如果我們在Train Data上訓(xùn)練,,然后在Train Data上預(yù)測,,就會造成Label Leak。為了避免Label Leak,,需要對每個學(xué)習(xí)器使用K-fold,,將K個模型對ValidSet的預(yù)測結(jié)果拼起來,作為下一層學(xué)習(xí)器的輸入,。 (5)Blending的主要區(qū)別在于訓(xùn)練集不是通過K-Fold的CV策略來獲得預(yù)測值從而生成第二階段模型的特征,,而是建立一個Holdout集,例如說10%的訓(xùn)練數(shù)據(jù),,第二階段的stacker模型就基于第一階段模型對這10%訓(xùn)練數(shù)據(jù)的預(yù)測值進(jìn)行擬合,。說白了,就是把Stacking流程中的K-Fold CV 改成 HoldOut CV,。
八,、常見問題以及解決方法 1. loss變化問題,以及調(diào)參 1.1 loss變化問題,,以及調(diào)參 (1)當(dāng)訓(xùn)練到最后,,loss值很大,但精度在上升,?-->說明loss變化很小,,需要增大學(xué)習(xí)率 (2)梯度爆炸(loss發(fā)散,出現(xiàn)nan)-->學(xué)習(xí)率很大,,需要減小學(xué)習(xí)率 (3)如果loss開始一直不變,,但是從某點開始下降的原因à因為初始值選定的不好,錯誤的初始值會讓梯度一開始接近0,。 (4)Loss下降了,,但是準(zhǔn)確率沒有明顯變化? 解決辦法:訓(xùn)練前首先shuffle,,其次學(xué)習(xí)率是否合適,。 train loss 不斷下降,test loss不斷下降,,說明網(wǎng)絡(luò)仍在學(xué)習(xí); train loss 不斷下降,,test loss趨于不變,說明網(wǎng)絡(luò)過擬合; train loss 趨于不變,,test loss不斷下降,,說明數(shù)據(jù)集100%有問題; train loss 趨于不變,test loss趨于不變,,說明學(xué)習(xí)遇到瓶頸,,需要減小學(xué)習(xí)率或批量數(shù)目; train loss 不斷上升,test loss不斷上升,,說明網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計不當(dāng),,訓(xùn)練超參數(shù)設(shè)置不當(dāng),數(shù)據(jù)集經(jīng)過清洗等問題,。 1.2 梯度消失的原因是什么,? 有哪些解決方法? 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,,通過改變神經(jīng)元的權(quán)重,,使網(wǎng)絡(luò)的輸出值盡可能逼近標(biāo)簽以降低誤差值,訓(xùn)練普遍使用BP算法,,核心思想是,,計算出輸出與標(biāo)簽間的損失函數(shù)值,然后計算其相對于每個神經(jīng)元的梯度,,進(jìn)行權(quán)值的迭代,。 梯度消失會造成權(quán)值更新緩慢,模型訓(xùn)練難度增加,。造成梯度消失的一個原因是,,許多激活函數(shù)將輸出值擠壓在很小的區(qū)間內(nèi),在激活函數(shù)兩端較大范圍的定義域內(nèi)梯度為0,。造成學(xué)習(xí)停止,。 梯度消失: 1)在深層網(wǎng)絡(luò)中, 2)采用了不合適的損失函數(shù),,比如sigmoid,。 方案1-預(yù)訓(xùn)練加微調(diào) 提出采取無監(jiān)督逐層訓(xùn)練方法,,其基本思想是每次訓(xùn)練一層隱節(jié)點,訓(xùn)練時將上一層隱節(jié)點的輸出作為輸入,,而本層隱節(jié)點的輸出作為下一層隱節(jié)點的輸入,,此過程就是逐層“預(yù)訓(xùn)練”(pre-training);在預(yù)訓(xùn)練完成后,,再對整個網(wǎng)絡(luò)進(jìn)行“微調(diào)”(fine-tunning),。先尋找局部最優(yōu),然后整合起來尋找全局最優(yōu),。 方案2-relu,、leakrelu、elu等激活函數(shù) -- 解決了梯度消失,、爆炸的問題 -- 計算方便,,計算速度快 -- 加速了網(wǎng)絡(luò)的訓(xùn)練 -- 由于負(fù)數(shù)部分恒為0,會導(dǎo)致一些神經(jīng)元無法激活(可通過設(shè)置小學(xué)習(xí)率部分解決) -- 輸出不是以0為中心的 方案3-BN batchnorm就是通過對每一層的輸出規(guī)范為均值和方差一致的方法,,消除了w 帶來的放大縮小的影響,,進(jìn)而解決梯度消失和爆炸的問題。 方案4-殘差結(jié)構(gòu) 相比較于以前網(wǎng)絡(luò)的直來直去結(jié)構(gòu),,殘差中有很多這樣的跨層連接結(jié)構(gòu),,這樣的結(jié)構(gòu)在反向傳播中具有很大的好處 式子的第一個因子 ?loss?xL 表示的損失函數(shù)到達(dá) L 的梯度,小括號中的1表明短路機(jī)制可以無損地傳播梯度,,而另外一項殘差梯度則需要經(jīng)過帶有weights的層,,梯度不是直接傳遞過來的。殘差梯度不會那么巧全為-1,,而且就算其比較小,,有1的存在也不會導(dǎo)致梯度消失。所以殘差學(xué)習(xí)會更容易,。 方案6-LSTM 長短期記憶網(wǎng)絡(luò)(long-short term memory networks),,于LSTM內(nèi)部復(fù)雜的“門”(gates),如下圖,,LSTM通過它內(nèi)部的“門”可以接下來更新的時候“記住”前幾次訓(xùn)練的”殘留記憶“,。 LSTM把原本RNN的單元改造成一個叫做CEC的部件,這個部件保證了誤差將以常數(shù)的形式在網(wǎng)絡(luò)中流動 ,,并在此基礎(chǔ)上添加輸入門和輸出門使得模型變成非線性的,,并可以調(diào)整不同時序的輸出對模型后續(xù)動作的影響。 傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)層數(shù)一多,,就會有梯度消逝和爆炸的現(xiàn)象,,究其原因上一個答案已經(jīng)說的很清楚了,導(dǎo)數(shù)的鏈?zhǔn)椒▌t導(dǎo)致了連乘的形式。造成梯度指數(shù)級的消失,,lstm使用cec機(jī)制,,使得遠(yuǎn)處的梯度傳到近處沒有改變、但這樣又會造成input weight /output weight conflict,。所以又使用了gateunit來解決,。
1.3 如果訓(xùn)練的神經(jīng)網(wǎng)絡(luò)不收斂,可能有哪些原因,? (1)學(xué)習(xí)率太小 (2)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)有問題 (3)數(shù)據(jù)有沒有歸一化 1.3 梯度爆炸的原因是什么? 有哪些解決方法,? 梯度爆炸: 1)在深層網(wǎng)絡(luò) 2)權(quán)值初始化值太大的情況下 解決方法: 1)方案2-梯度剪切,、正則 設(shè)置一個梯度剪切閾值,然后更新梯度的時候,,如果梯度超過這個閾值,,那么就將其強(qiáng)制限制在這個范圍之內(nèi)。防止梯度爆炸,。 權(quán)重正則化(weithts regularization),,網(wǎng)絡(luò)權(quán)重做正則限制過擬合。 正 Loss=(y?WTx)2+α||W||2 α是指正則項系數(shù),,因此,,如果發(fā)生梯度爆炸,權(quán)值的范數(shù)就會變的非常大,,通過正則化項,,可以部分限制梯度爆炸的發(fā)生。 2)BN 3)relu,、leakrelu,、elu等激活函數(shù) 4)減小損失函數(shù) 5)caffe 設(shè)置clip gradient,用于限制過大的diff 6)措施:減少base_lr (在solver.prototxt中) 至少一個數(shù)量級,。如果model有多個loss_layer,,你應(yīng)該檢查日志,查看哪個層導(dǎo)致了梯度爆炸,,并減少該層的loss_weight 值 (在train. prototxt中),,而不是簡單的減少base_lr。
1.4 梯度消失CNN和RNN的梯度消失是一樣的嗎,? 會使RNN的長時記憶失效,,因為無法更新參數(shù)。
1.5 為什么網(wǎng)絡(luò)夠深(Neurons 足夠多)的時候,,總是可以避開較差Local Optima,? 參考文章:The Loss Surfaces of Multilayer Networks
2.模型欠擬合的解決方法: 答案:我就說到了curriculum learning里面的sample reweight和增加模型復(fù)雜度;還有一些特征工程;然后問了常用的特征工程的方法,; 模型簡單,,加深神經(jīng)網(wǎng)絡(luò),svm用核函數(shù)等等 解決方法: 1)添加其他特征項,,有時候我們模型出現(xiàn)欠擬合的時候是因為特征項不夠?qū)е碌?,可以添加其他特征項來很好地解決。例如,,“組合”,、“泛化”、“相關(guān)性”三類特征是特征添加的重要手段,,無論在什么場景,,都可以照葫蘆畫瓢,總會得到意想不到的效果,。除上面的特征之外,,“上下文特征”、“平臺特征”等等,,都可以作為特征添加的首選項,。 2)添加多項式特征,這個在機(jī)器學(xué)習(xí)算法里面用的很普遍,,例如將線性模型通過添加二次項或者三次項使模型泛化能力更強(qiáng),。例如上面的圖片的例子。 3)減少正則化參數(shù),,正則化的目的是用來防止過擬合的,,但是現(xiàn)在模型出現(xiàn)了欠擬合,則需要減少正則化參數(shù),。
3.解決過擬合方法,。防止過擬合,提高泛化能力 增加數(shù)據(jù): (1)數(shù)據(jù)增強(qiáng)(data augmentation),,增大數(shù)據(jù)的訓(xùn)練量 (2)重新清洗數(shù)據(jù) 減少模型復(fù)雜度->正則化: (2)dropout (3)L1 L2 (4)BN (5)early Stopping 八,、經(jīng)驗總結(jié) 1 通過數(shù)據(jù) 1)獲取更多的數(shù)據(jù) 2)發(fā)明更多的數(shù)據(jù),數(shù)據(jù)增強(qiáng) 3)重新調(diào)整你的數(shù)據(jù),歸一化 4)變換你的數(shù)據(jù),,數(shù)據(jù)不均衡 5)特征選擇,,sift等 2 通過算法 3 通過微調(diào)算法 4 采用集成ensembles方式,
14.fine-tune的選擇經(jīng)驗 根據(jù)新數(shù)據(jù)庫的規(guī)模和它與預(yù)訓(xùn)練數(shù)據(jù)庫的相似程度存在四種場景: 1)新數(shù)據(jù)庫小,,和預(yù)訓(xùn)練數(shù)據(jù)庫相似,。因為數(shù)據(jù)庫比較小,fine-tune的話可能會產(chǎn)生過擬合,,比較好的做法是用預(yù)訓(xùn)練的網(wǎng)絡(luò)作為特征提取器,,然后訓(xùn)練線性分類器用在新的任務(wù)上,。 2)新數(shù)據(jù)庫比較大,和預(yù)訓(xùn)練數(shù)據(jù)庫相似,。這種情況下,,不用擔(dān)心過擬合,可以放心地微調(diào)整個網(wǎng)絡(luò),。 3)新數(shù)據(jù)庫小,,和預(yù)訓(xùn)練數(shù)據(jù)庫不相似。這時,,既不能微調(diào),,用預(yù)訓(xùn)練網(wǎng)絡(luò)去掉最后一層作為特征提取器也不合適,可行的方案是用預(yù)訓(xùn)練網(wǎng)絡(luò)的前面幾層的激活值作為特征,,然后訓(xùn)練線性分類器,。 4)新數(shù)據(jù)庫大,和預(yù)訓(xùn)練數(shù)據(jù)庫不相似,。這時可以從頭開始訓(xùn)練,也可以在預(yù)訓(xùn)練的基礎(chǔ)上進(jìn)行微調(diào),。
15.增大感受野方法 dilated 卷積(空洞卷積),、池化、增大卷積核 |