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