Task6
批量歸一化
BatchNormalization想要解決的問(wèn)題:Internal Covariate Shift
作者:Juliuszh
鏈接:https://zhuanlan.zhihu.com/p/33173246
來(lái)源:知乎
著作權(quán)歸作者所有判沟。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。1.2 深度學(xué)習(xí)中的 Internal Covariate Shift
深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練為什么會(huì)很困難素标?其中一個(gè)重要的原因是骚烧,深度神經(jīng)網(wǎng)絡(luò)涉及到很多層的疊加五辽,而每一層的參數(shù)更新會(huì)導(dǎo)致上層的輸入數(shù)據(jù)分布發(fā)生變化弥虐,通過(guò)層層疊加漓踢,高層的輸入分布變化會(huì)非常劇烈挽鞠,這就使得高層需要不斷去重新適應(yīng)底層的參數(shù)更新疚颊。為了訓(xùn)好模型,我們需要非常謹(jǐn)慎地去設(shè)定學(xué)習(xí)率信认、初始化權(quán)重材义、以及盡可能細(xì)致的參數(shù)更新策略。
Google 將這一現(xiàn)象總結(jié)為 Internal Covariate Shift嫁赏,簡(jiǎn)稱 ICS. 什么是 ICS 呢其掂?
在一個(gè)回答中做出了一個(gè)很好的解釋?zhuān)?/p>
大家都知道在統(tǒng)計(jì)機(jī)器學(xué)習(xí)中的一個(gè)經(jīng)典假設(shè)是“源空間(source domain)和目標(biāo)空間(target domain)的數(shù)據(jù)分布(distribution)是一致的”。如果不一致潦蝇,那么就出現(xiàn)了新的機(jī)器學(xué)習(xí)問(wèn)題款熬,如 transfer learning / domain adaptation 等。而 covariate shift 就是分布不一致假設(shè)之下的一個(gè)分支問(wèn)題攘乒,它是指源空間和目標(biāo)空間的條件概率是一致的贤牛,但是其邊緣概率不同,即:對(duì)所有[圖片上傳失敗...(image-a57c44-1582635612735)]
但是[圖片上傳失敗...(image-5235d6-1582635612735)]大家細(xì)想便會(huì)發(fā)現(xiàn)持灰,的確盔夜,對(duì)于神經(jīng)網(wǎng)絡(luò)的各層輸出,由于它們經(jīng)過(guò)了層內(nèi)操作作用堤魁,其分布顯然與各層對(duì)應(yīng)的輸入信號(hào)分布不同喂链,而且差異會(huì)隨著網(wǎng)絡(luò)深度增大而增大,可是它們所能“指示”的樣本標(biāo)記(label)仍然是不變的妥泉,這便符合了covariate shift的定義椭微。由于是對(duì)層間信號(hào)的分析,也即是“internal”的來(lái)由盲链。
1.3 ICS 會(huì)導(dǎo)致什么問(wèn)題蝇率?
簡(jiǎn)而言之,每個(gè)神經(jīng)元的輸入數(shù)據(jù)不再是“獨(dú)立同分布”刽沾。
其一本慕,上層參數(shù)需要不斷適應(yīng)新的輸入數(shù)據(jù)分布,降低學(xué)習(xí)速度侧漓。
其二锅尘,下層輸入的變化可能趨向于變大或者變小,導(dǎo)致上層落入飽和區(qū)布蔗,使得學(xué)習(xí)過(guò)早停止藤违。
其三浪腐,每層的更新都會(huì)影響到其它層,因此每層的參數(shù)更新策略需要盡可能的謹(jǐn)慎顿乒。
[圖片上傳失敗...(image-4e9d98-1582635612735)]
最后scale and shift中分別稱為縮放系數(shù)议街,平移系數(shù)。
作用:為了保證模型的表達(dá)能力不因?yàn)橐?guī)范化而下降璧榄。
批量歸一化層在仿射變換之后特漩,激活函數(shù)之前。
其他歸一化方法
Layer Normalization
Instance Normalization
Group Normalization
FRN(Filter Response Normalization)
殘差網(wǎng)絡(luò)
動(dòng)機(jī):網(wǎng)絡(luò)退化
在神經(jīng)網(wǎng)絡(luò)可以收斂的前提下骨杂,隨著網(wǎng)絡(luò)深度增加拾稳,網(wǎng)絡(luò)的表現(xiàn)先是逐漸增加至飽和,然后迅速下降[1]腊脱。
需要注意,網(wǎng)絡(luò)退化問(wèn)題不是過(guò)擬合導(dǎo)致的龙亲,即便在模型訓(xùn)練過(guò)程中陕凹,同樣的訓(xùn)練輪次下,退化的網(wǎng)絡(luò)也比稍淺層的網(wǎng)絡(luò)的訓(xùn)練錯(cuò)誤更高鳄炉,如下圖[1]所示杜耙。
這一點(diǎn)并不符合常理:如果存在某個(gè)層的網(wǎng)絡(luò)是當(dāng)前最優(yōu)的網(wǎng)絡(luò),那么可以構(gòu)造一個(gè)更深的網(wǎng)絡(luò)拂盯,其最后幾層僅是該網(wǎng)絡(luò)第層輸出的恒等映射(Identity Mapping)佑女,就可以取得與一致的結(jié)果;也許還不是所謂“最佳層數(shù)”谈竿,那么更深的網(wǎng)絡(luò)就可以取得更好的結(jié)果团驱。總而言之空凸,與淺層網(wǎng)絡(luò)相比嚎花,更深的網(wǎng)絡(luò)的表現(xiàn)不應(yīng)該更差。因此呀洲,一個(gè)合理的猜測(cè)就是紊选,對(duì)神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),恒等映射并不容易擬合道逗。
作者:LinT
鏈接:https://zhuanlan.zhihu.com/p/80226180
來(lái)源:知乎
著作權(quán)歸作者所有兵罢。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處滓窍。
殘差塊
在前向傳播時(shí)卖词,輸入信號(hào)可以從任意低層直接傳播到高層。由于包含了一個(gè)天然的恒等映射贰您,一定程度上可以解決網(wǎng)絡(luò)退化問(wèn)題坏平。
網(wǎng)絡(luò)結(jié)構(gòu)
稠密網(wǎng)絡(luò)
DenseNet:比ResNet更優(yōu)的CNN模型 - 小小將的文章 - 知乎 https://zhuanlan.zhihu.com/p/37189203
凸優(yōu)化
凸函數(shù)的定義:
Jensen不等式:
凸函數(shù)的期望大于等于期望的凸函數(shù)
性質(zhì)
無(wú)局部最小值
梯度下降
牛頓法
梯度下降法舶替、牛頓法和擬牛頓法 - Eureka的文章 - 知乎 https://zhuanlan.zhihu.com/p/37524275
紅色曲線是利用牛頓法迭代求解令境,綠色曲線是利用梯度下降法求解。
動(dòng)態(tài)學(xué)習(xí)率
先大后小
Task7
優(yōu)化算法
一般來(lái)說(shuō)顾瞪,ill-conditioned是指問(wèn)題的條件數(shù)(condition number)非常大舔庶,從而比較難以優(yōu)化,或者說(shuō)需要更多迭代次數(shù)來(lái)達(dá)到同樣精度陈醒。直觀上來(lái)講惕橙,條件數(shù)是:函數(shù)梯度最大變化速度 / 梯度最小變化速度(對(duì)于二階可導(dǎo)函數(shù),條件數(shù)的嚴(yán)格定義是:Hessian矩陣最大特征值的上界 / 最小特征值的下界)钉跷。
用最簡(jiǎn)單的話來(lái)解釋就是弥鹦,問(wèn)題條件數(shù)大意味著目標(biāo)函數(shù)在有的地方(或有的方向)變化很快、有的地方很慢爷辙,比較不規(guī)律彬坏,從而很難用當(dāng)前的局部信息(也就是梯度)去比較準(zhǔn)確地預(yù)測(cè)最優(yōu)點(diǎn)所在的位置,只能一步步緩慢的逼近最優(yōu)點(diǎn)膝晾,從而優(yōu)化時(shí)需要更多的迭代次數(shù)栓始。
作者:Martin Tan
鏈接:https://www.zhihu.com/question/56977045/answer/151137770
來(lái)源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)血当,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處幻赚。
Solution to ill-condition
- Preconditioning gradient vector: applied in Adam, RMSProp, AdaGrad, Adelta, KFC, Natural gradient and other secord-order optimization algorithms.
- Averaging history gradient: like momentum, which allows larger learning rates to accelerate convergence; applied in Adam, RMSProp, SGD momentum.
Momentum動(dòng)量
設(shè)時(shí)間步的自變量為,學(xué)習(xí)率為臊旭。 在時(shí)間步0落恼,動(dòng)量法創(chuàng)建速度變量,并將其元素初始化成0巍扛。在時(shí)間步领跛,動(dòng)量法對(duì)每次迭代的步驟做如下修改:
其中,動(dòng)量超參數(shù) 滿足撤奸。當(dāng)時(shí)吠昭,動(dòng)量法等價(jià)于小批量隨機(jī)梯度下降。
或:
<img src="https://tangshusen.me/Dive-into-DL-PyTorch/img/chapter07/7.4_output1.png" alt="img" style="zoom:50%;" />
<img src="https://tangshusen.me/Dive-into-DL-PyTorch/img/chapter07/7.4_output3.png" alt="img" style="zoom:50%;" />
AdaGrad
初始化為0, 為按元素平方
較大時(shí)胧瓜,學(xué)習(xí)率下降得快
較小時(shí)矢棚,學(xué)習(xí)率下降得慢
-
若前期下降過(guò)快則后期學(xué)習(xí)率后期過(guò)小
<img src="https://staticcdn.boyuai.com/rt_upload/65D88109B129448EB6DAC9C0A04110BF/q5qoefd6ox.svg" alt="img" style="zoom: 80%;" />
RMSProp
指數(shù)移動(dòng)平均調(diào)整學(xué)習(xí)率
可以看作是最近個(gè)時(shí)間步的小批量隨機(jī)梯度平方項(xiàng)的加權(quán)平均。如此一來(lái)府喳,自變量每個(gè)元素的學(xué)習(xí)率在迭代過(guò)程中就不再一直降低(或不變)蒲肋。
[圖片上傳失敗...(image-49a745-1582635612735)]
AdaDelta
在RMSProp的基礎(chǔ)上,維護(hù)一個(gè)額外的狀態(tài)變量代替學(xué)習(xí)率
在pytorch中的參數(shù)名是rho -
Adam
Adaptive Moment Estimation
本質(zhì)上是帶有動(dòng)量項(xiàng)的RMSprop,它利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率
<img src="Task6-8.assets/image-20200225195047950.png" alt="image-20200225195047950" style="zoom: 67%;" />