摘要:解決模型退化問題避免了過渡訓(xùn)練后,導(dǎo)致模型準(zhǔn)確率反而降低的情況。經(jīng)過實(shí)驗(yàn)后發(fā)現(xiàn)確實(shí)能解決這個問題。本人對于這個問題的確切原因并不清楚,但是猜測這個原因很可能是由于梯度消失以及眾多其他原因所造成的。
給定卷積神經(jīng)網(wǎng)絡(luò)輸入,卷積核大小,padding,步長,求輸出的shape?
各個激活函數(shù)的優(yōu)缺點(diǎn)
Sigmod
優(yōu)點(diǎn)
輸出值0-1(很重大的優(yōu)點(diǎn))
其余的和其他眾多激活函數(shù)比起來,感覺沒有什么優(yōu)點(diǎn),方便入門理解
缺點(diǎn)
容易梯度消失
x的可變值區(qū)域太小,極其容易陷入級值的狀況(-0.9~0.9)
指數(shù)exp計算復(fù)雜
Tanh
優(yōu)點(diǎn)
和sigmod比起來,是零均值化處理。(零均值化可以加快模型的收斂)
缺點(diǎn)
和sigmod一樣的缺點(diǎn)
Relu
優(yōu)點(diǎn)
計算復(fù)雜度低(只有一個if>0判斷,大于0則激活值為1),部分區(qū)域線性遞增,沒有冪運(yùn)算與指數(shù)運(yùn)算
缺點(diǎn)
x小于0時無法產(chǎn)生激活值
訓(xùn)練到后期可能權(quán)重參數(shù)更新太大
Leakly ReLu
優(yōu)點(diǎn)
相對于relu來說,激活值必然可以產(chǎn)生
缺點(diǎn)
Relu的其他缺點(diǎn)一概繼承下來了
ELU
優(yōu)點(diǎn)
相對于Leaky relu來說,激活值更平滑
缺點(diǎn)
其他的Leaky relu的缺點(diǎn)一并繼承下來了。
如何選擇激活函數(shù)?
Relu-小心設(shè)置learning
rate(因?yàn)閤>0的情況下,導(dǎo)數(shù)均為1),最好是設(shè)置一個比較小的值。
不要使用sigmod(缺點(diǎn)太多,計算復(fù)雜)
如何初始化CNN?(理論)
不要全部把超參數(shù)設(shè)置為0(單層網(wǎng)絡(luò)可以)
容易梯度消失
如何初始化CNN?(實(shí)踐)
Xavier-tanh(不太適合relu)
fan_in輸出通道數(shù)
Fan_out輸出通道數(shù)
代碼Np.randon.rand(fan_in,fan_out)/np.sqrt(fan_in/2)
如何分析初始化參數(shù)結(jié)果好壞?
查看初始化后各層的激活值分布
是否在固定的,穩(wěn)定的,同一個區(qū)間的均勻分布
比較好的初始化結(jié)果
均值為0,方差為0.02
如tanh,relu函數(shù)
什么叫梯度消失,梯度爆炸
當(dāng)網(wǎng)絡(luò)層數(shù)過多時,前面層由于求導(dǎo)過程乘積運(yùn)算,出現(xiàn)weight與bias變得異常大與異常小的情況
左下角的內(nèi)容清楚的說明了梯度爆炸和梯度消失的場景
BN是什么,為什么能提高收斂速度
批歸一化是什么?
標(biāo)準(zhǔn)化處理,特征縮放的一個方式,將數(shù)據(jù)規(guī)整到一定范圍內(nèi)。
如上圖所示,BN步驟主要分為4步:
求每一個訓(xùn)練批次數(shù)據(jù)的均值
求每一個訓(xùn)練批次數(shù)據(jù)的方差
使用求得的均值和方差對該批次的訓(xùn)練數(shù)據(jù)做歸一化,獲得0-1分布。其中εε是為了避免除數(shù)為0時所使用的微小正數(shù)。
尺度變換和偏移:將xixi乘以γγ調(diào)整數(shù)值大小,再加上ββ增加偏移后得到y(tǒng)iyi,這里的γγ是尺度因子,ββ是平移因子。這一步是BN的精髓,由于歸一化后的xixi基本會被限制在正態(tài)分布下,使得網(wǎng)絡(luò)的表達(dá)能力下降。為解決該問題,我們引入兩個新的參數(shù):γγ,ββ。 γγ和ββ是在訓(xùn)練時網(wǎng)絡(luò)自己學(xué)習(xí)得到的。
為什么能提高收斂速度?
解決internal covariate shift問題。
特征沒有消失,而是歸一到一定范圍內(nèi),加快學(xué)習(xí)速度
因?yàn)樽罱K都是映射到歸一化范圍內(nèi),所以前一層的權(quán)重調(diào)整對后一層的影響程度都會降低,不用重新適應(yīng)新的分布,從而讓模型學(xué)的更快,避免完全從頭學(xué)習(xí)
Tips
BN不用于輸入層和輸出層(經(jīng)驗(yàn)論)
BN(實(shí)踐)
每次batch傳入時都做BN
各個優(yōu)化器的優(yōu)缺點(diǎn)
優(yōu)化器分兩種
固定學(xué)習(xí)率的優(yōu)化算法
SGD隨機(jī)梯度下降
優(yōu)點(diǎn)
只隨機(jī)采樣一個樣本來計算梯度,加快學(xué)習(xí)效率,并且避免了普通GD一次性參數(shù)更新的壞處(導(dǎo)致模型無法收斂)
缺點(diǎn)
選擇合適的學(xué)習(xí)率較為困難
Momentum動量
優(yōu)點(diǎn)
動量梯度下降,動力火車,慣性火車,這一次梯度下降的值,會影響下一次梯度下降的值,相對于簡單的梯度下降來說,Momentum動量帶有延續(xù)性相對于簡單的梯度下降來說,
減少梯度震蕩
缺點(diǎn)
和SGD一樣,選擇合適的學(xué)習(xí)率較為困難
自適應(yīng)學(xué)習(xí)率的優(yōu)化算法
Adagrad
優(yōu)點(diǎn)
更新參數(shù)時,會針對原梯度值乘上一個變量,即其所有梯度歷史平均值總和的平方根(如上圖)
這樣在訓(xùn)練初期,分母較小,學(xué)習(xí)率較大,學(xué)習(xí)比較快,后期時,學(xué)習(xí)會逐漸減慢
缺點(diǎn)
從訓(xùn)練開始就積累梯度方差會導(dǎo)致有效學(xué)習(xí)率過早和過量的減小
只能解決凸問題,當(dāng)應(yīng)用于非凸函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,學(xué)習(xí)可能會到達(dá)一個局部是凸碗的區(qū)域
RMSProp
優(yōu)點(diǎn)
能夠解決凸問題
由累計平方梯度變成和平均梯度
缺點(diǎn)
缺少M(fèi)omentum動量元素
Adam(結(jié)合了動量和RMSProp,通用方案)
結(jié)合了Momentum和RMSProp的優(yōu)點(diǎn)
手畫一下LSTM
梯度裁剪
介紹一下殘差網(wǎng)絡(luò)
ResNet 基于VGG沒解決深層網(wǎng)絡(luò)下出現(xiàn)性能[梯度消失,導(dǎo)致學(xué)不到東西]與效率下降[反向傳播運(yùn)算成本大]的問題,優(yōu)化出來的一個新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖所示,兩條路一起走,最終線性激活輸入值f(x)+x,然后將f(x)+x傳遞給激活函數(shù)[假設(shè)為relu]。那么在反向傳播的時候,后面層的梯度更加“無損”的直接傳遞到前面層,前面層的參數(shù)因此也能繼續(xù)更新。
為什么殘差網(wǎng)絡(luò)會有效果?
□ 先驗(yàn)證明《深層網(wǎng)絡(luò)效果會比淺層網(wǎng)絡(luò)好》
只要有理想的訓(xùn)練方式,更深的網(wǎng)絡(luò)肯定會比較淺的網(wǎng)絡(luò)效果要好。證明過程也很簡單:假設(shè)在一種網(wǎng)絡(luò)A的后面添加幾層形成新的網(wǎng)絡(luò)B,如果增加的層級只是對A的輸出做了個恒等映射(identity mapping),即A的輸出經(jīng)過新增的層級變成B的輸出后沒有發(fā)生變化,這樣網(wǎng)絡(luò)A和網(wǎng)絡(luò)B的錯誤率就是相等的,也就證明了加深后的網(wǎng)絡(luò)不會比加深前的網(wǎng)絡(luò)效果差。
當(dāng)層數(shù)比較多時,容易導(dǎo)致模型學(xué)不到東西,甚至出現(xiàn)反效果,然而deep layers又確實(shí)是能使模型效果變好的,所以出現(xiàn)殘差網(wǎng)絡(luò)。
效率不影響,層數(shù)增加,可以低成本高效率的學(xué)到更多非線性的特征。
解決梯度彌漫問題
如上所說,關(guān)鍵點(diǎn)在于反向傳播的時候,梯度可以沿著shortcut無損進(jìn)行回傳,避免梯度彌漫問題。
解決模型退化問題
避免了過渡訓(xùn)練后,導(dǎo)致模型準(zhǔn)確率反而降低的情況。paper中稱為degration。經(jīng)過實(shí)驗(yàn)后發(fā)現(xiàn)確實(shí)能解決這個問題。
本人對于這個問題的確切原因并不清楚,但是猜測這個原因很可能是由于梯度消失以及眾多其他原因所造成的。
Q:既然說中間層是不必要的,那么為什么不直接把這些層去掉呢?可事實(shí)上,ResNet的結(jié)果比淺層網(wǎng)絡(luò)的結(jié)果好的多,這應(yīng)該怎么解釋呢?
加入中間層主要是為了說明會產(chǎn)生退化的效果。 ResNet效果好是因?yàn)榻鉀Q了退化問題,,梯度爆炸/梯度彌散,調(diào)節(jié)了網(wǎng)絡(luò)結(jié)構(gòu),簡化了反向傳播求導(dǎo)運(yùn)算的流程。這和砍掉深一點(diǎn)的層是不一樣的思想
風(fēng)格轉(zhuǎn)換的原理
圖像風(fēng)格轉(zhuǎn)換
由風(fēng)格特征與內(nèi)容特征共同計算得出
風(fēng)格特征
風(fēng)格的抽象度(越往后層,加入了越多內(nèi)容的元素,更加具像)
內(nèi)容特征
內(nèi)容的相似度(越往后層,加入了越多風(fēng)格的元素,和原圖越不像)
## 怎么解決過擬合
簡化模型
正則化(包含dropout)
數(shù)據(jù)增強(qiáng)
集成學(xué)習(xí)
早停
減少特征數(shù)或使用較少的特征組合
## 怎么解決欠擬合
增加特征數(shù)或者使用較多的特征組合
減小正則權(quán)重
增加模型復(fù)雜度
使用boosting集成學(xué)習(xí)
如何提高學(xué)習(xí)算法性能的指導(dǎo)方針
->低可擬合偏差
更大的模型,更深的層
更好的優(yōu)化器方案
探索更合適的超參數(shù)
->低方差
找尋更多的數(shù)據(jù)
正則化,dropout
對抗神經(jīng)網(wǎng)絡(luò)
探索更合適的超參數(shù)
->清晰的正交化方案
……
思路邏輯清晰的調(diào)試
數(shù)據(jù)預(yù)處理一般步驟有哪些?
指定原始數(shù)據(jù)的文件列表 -> 創(chuàng)建文件列表隊列 ->
從文件中讀取數(shù)據(jù) -> 數(shù)據(jù)預(yù)處理 -> 整理成batch
作為神經(jīng)網(wǎng)絡(luò)輸入
如何用指標(biāo)和方案去評判一個優(yōu)秀的模型?
train/Validation/Test 準(zhǔn)確率/召回率
方差
偏差
CNN模型加速與壓縮匯總
1. 合理設(shè)計模型2. 權(quán)值剪枝(編程稀疏矩陣)
3. 權(quán)值量化(聚類)
4. 二值化(BWN,XNorNet)
5. 霍夫曼編碼
6. 奇異值分解(projection層)
7. 1x1卷積的恰當(dāng)使用減少通道量
8. 卷積分解為deepwise Conv和pointwise
Conv可大幅度減小計算量和參數(shù)量1/(Dk^2)9. Group Conv(可節(jié)省1/g計算量)
10. Channel Shuffle
11. 蒸餾法
12. 低秩分解
13. 模型裁剪
# 怎么選擇超參數(shù)
神經(jīng)網(wǎng)路中的超參數(shù)主要包括1. 學(xué)習(xí)率 η,
2. 正則化參數(shù) λ,
3. 神經(jīng)網(wǎng)絡(luò)的層數(shù) L
4. 每一個隱層中神經(jīng)元的個數(shù) j
5. 學(xué)習(xí)的回合數(shù)Epoch
6. 小批量數(shù)據(jù) minibatch 的大小
由神經(jīng)網(wǎng)絡(luò)的機(jī)理進(jìn)行選擇
7. 輸出神經(jīng)元的編碼方式
8. 代價函數(shù)的選擇
9. 權(quán)重初始化的方法
10. 神經(jīng)元激活函數(shù)的種類
11 . 寬泛策略的核心在于簡化和監(jiān)控
12. 參加訓(xùn)練模型數(shù)據(jù)的規(guī)模
如文章你已看懂,點(diǎn)個「喜歡」即可。
如若錯誤以及不清晰的地方,隨時提出。
歡迎掃一掃上面二維碼加入我的個人微信號進(jìn)行技術(shù)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19884.html
摘要:出現(xiàn)方差是正常的,但方差過高表明模型無法將其預(yù)測結(jié)果泛化到從中抽取訓(xùn)練樣本的較大母體。機(jī)器學(xué)習(xí)中的學(xué)習(xí)曲線是一種可視化圖形,能根據(jù)一系列訓(xùn)練實(shí)例中的訓(xùn)練和測試數(shù)據(jù)比較模型的指標(biāo)性能。 欠擬合(通常代表高偏差) 精度 如前所述如果模型具有足夠的數(shù)據(jù),但因不夠復(fù)雜而無法捕捉基本關(guān)系,則會出現(xiàn)偏差。這樣一來,模型一直會系統(tǒng)地錯誤表示數(shù)據(jù),從而導(dǎo)致預(yù)測精度低。這種現(xiàn)象叫做欠擬合(und...
閱讀 803·2023-04-26 00:30
閱讀 2712·2021-11-23 09:51
閱讀 1059·2021-11-02 14:38
閱讀 2617·2021-09-07 10:23
閱讀 2257·2021-08-21 14:09
閱讀 1405·2019-08-30 10:57
閱讀 1615·2019-08-29 11:20
閱讀 1163·2019-08-26 13:53