??最近在學(xué)習(xí)《動(dòng)手學(xué)深度學(xué)習(xí)》肛走,結(jié)合百度和課后的大家的討論(侵刪)漓雅,整理出這一份可能并不完全正確的參考答案(菜雞的做題記錄),因?yàn)閭€(gè)人水平有限朽色,有錯(cuò)誤的地方歡迎在 公眾號(hào) 聯(lián)系我邻吞,后面我對(duì)錯(cuò)誤進(jìn)行更正時(shí)候,會(huì)在文章末尾鳴謝葫男,在這里先感謝大家了抱冷。
??在我的 公眾號(hào) 中會(huì)有 清晰的pdf版本 給到大家,pdf中 代碼 可以直接復(fù)制實(shí)踐 梢褐,歡迎大家關(guān)注我的 公眾號(hào):Hello Neural Networks 旺遮,發(fā)送神秘代碼:d2l4,即可獲得本章的pdf版本盈咳。(求大佬們關(guān)注下吧耿眉,公眾號(hào)關(guān)注者人丁稀少,嚶嚶嚶)
??求求關(guān)注下我的簡(jiǎn)書鱼响、CSDN鸣剪、知乎吧,后面會(huì)繼續(xù)更新答案的,然后還有最近讀的一些文章的里面一些創(chuàng)新點(diǎn)和自己的想法都會(huì)整理出來(lái)的筐骇。(求大佬們關(guān)注下吧债鸡,嚶嚶嚶)
4.多層感知機(jī)
4.1 多層感知機(jī)
1.計(jì)算pReLU激活函數(shù)的導(dǎo)數(shù)。
①當(dāng)x>0時(shí)
①當(dāng)x<0時(shí)
2.證明一個(gè)僅使用ReLU(或pReLU)的多層感知機(jī)構(gòu)造了一個(gè)連續(xù)的分段線性函數(shù)铛纬。
ReLU的神經(jīng)網(wǎng)絡(luò)可以嚴(yán)格等于任何(有限段)分段線性函數(shù)厌均。任何(有限區(qū)間上)連續(xù)函數(shù),總可以在任給定的誤差下告唆,用(有限段)分段線性函數(shù)近似棺弊。對(duì)于有限個(gè)間斷點(diǎn)的函數(shù),可以在間斷點(diǎn)附近挖掉任意小的小區(qū)間悔详,在外面用連續(xù)函數(shù)近似镊屎。參考文獻(xiàn):UNDERSTANDING DEEP NEURAL NETWORKS WITH RECTIFIED LINEAR UNITS惹挟。
3.證明 tanh(x)+1=2sigmoid(2x) 茄螃。
4.假設(shè)我們有一個(gè)非線性單元,將它一次應(yīng)用于一個(gè)小批量的數(shù)據(jù)连锯。你認(rèn)為這會(huì)導(dǎo)致什么樣的問(wèn)題归苍?
數(shù)據(jù)可能會(huì)被劇烈的拉伸或者壓縮,可能會(huì)導(dǎo)致分布的偏移运怖,并且與后面的神經(jīng)元對(duì)接后可能會(huì)損失一定的特征拼弃。
4.2 多層感知機(jī)的從零開始實(shí)現(xiàn)
6.如果要構(gòu)建多個(gè)超參數(shù)的搜索方法,你能想到的最聰明的策略是什么摇展?
啟發(fā)式搜索吻氧?
4.3 多層感知機(jī)的簡(jiǎn)潔實(shí)現(xiàn)
1.嘗試添加不同數(shù)量的隱藏層(也可以修改學(xué)習(xí)率),怎么樣設(shè)置效果最好咏连?
盯孙。。祟滴。
2.嘗試不同的激活函數(shù)振惰,哪個(gè)效果最好?
一般情況下垄懂,在不知道選擇什么的情況下骑晶,選用ReLU一族的激活函數(shù)不會(huì)讓你失望。
3.嘗試不同的方案來(lái)初始化權(quán)重草慧,什么方法效果最好桶蛔?
可以在torch.nn.init中查看一下,平常kaiming_normal_用的比較順手漫谷。
4.4 模型選擇仔雷、欠擬合和過(guò)擬合
1.你能準(zhǔn)確地解出這個(gè)多項(xiàng)式回歸問(wèn)題嗎?提示:使用線性代數(shù)。
2.略
3.如果你不對(duì)多項(xiàng)式特征xi進(jìn)行標(biāo)準(zhǔn)化(1/i!)朽寞,會(huì)發(fā)生什么事情识窿?你能用其他方法解決這個(gè)問(wèn)題嗎?
這樣可以避免很大的i帶來(lái)的特別大的指數(shù)值脑融,如果不對(duì)此進(jìn)行標(biāo)準(zhǔn)化喻频,在優(yōu)化的時(shí)候可能會(huì)帶來(lái)特別大的非常大的梯度值或損失值;
對(duì)數(shù)據(jù)先取對(duì)數(shù)肘迎,對(duì)次數(shù)高的數(shù)據(jù)進(jìn)行壓縮甥温,其實(shí)也是可以的。
4.你能期待看到泛化誤差為零嗎妓布?
這個(gè)是不行的姻蚓,因?yàn)閿?shù)據(jù)帶有一定的噪聲,不可能完全的擬合匣沼。
4.5 權(quán)重衰減
1.在本節(jié)的估計(jì)問(wèn)題中使用λ的值進(jìn)行實(shí)驗(yàn)狰挡。繪制訓(xùn)練和測(cè)試精度關(guān)于λ的函數(shù)。你觀察到了什么释涛?
λ 增加的時(shí)候加叁,即懲罰項(xiàng)在目標(biāo)函數(shù)中的權(quán)重隨之提高,體現(xiàn)在訓(xùn)練集上面精度會(huì)略微降低唇撬,在測(cè)試集上面訓(xùn)練的精度會(huì)提高它匕,這是因?yàn)檫^(guò)程中的過(guò)擬合現(xiàn)象會(huì)隨著 λ 的提升會(huì)有明顯的改善,所以訓(xùn)練精度有減低窖认,測(cè)試集上面精度上升豫柬。
但也不是 λ 越大越好,當(dāng) λ 過(guò)大時(shí)扑浸,會(huì)對(duì)訓(xùn)練誤差產(chǎn)生很嚴(yán)重的擾動(dòng)烧给。
2.使用驗(yàn)證集來(lái)找到最佳值λ。它真的是最優(yōu)值嗎首装?這有關(guān)系嗎创夜?
并不是的,其實(shí)驗(yàn)證集上面的分布和真實(shí)分布都是會(huì)有一定的區(qū)別的仙逻,但是相近驰吓,只能說(shuō)找出來(lái)的 λ 會(huì)是一個(gè)較優(yōu)解,尋找較優(yōu)的參數(shù) λ 可以參考下面的鏈接:利器中的利器:深度學(xué)習(xí)的實(shí)戰(zhàn)要點(diǎn)系奉。
3.如果我們使用 ∑i|wi| 作為我們選擇的懲罰 (L1 正則化)檬贰,那么更新方程會(huì)是什么樣子?
4.我們知道 ∥w∥2=w?w 缺亮。你能找到類似的矩陣方程嗎(見 2.3.10節(jié) 中的Frobenius范數(shù))翁涤?
Frobenius范數(shù)相當(dāng)于開方的∥w∥2
5.回顧訓(xùn)練誤差和泛化誤差之間的關(guān)系。除了權(quán)重衰減、增加訓(xùn)練數(shù)據(jù)葵礼、使用適當(dāng)復(fù)雜度的模型之外号阿,你還能想出其他什么方法來(lái)處理過(guò)擬合?
Dropout鸳粉,或者先用PCA處理減少一定的次要特征扔涧,或者加大數(shù)據(jù)量。
6.在貝葉斯統(tǒng)計(jì)中届谈,我們使用先驗(yàn)和似然的乘積枯夜,通過(guò)公式P(w∣x)∝P(x∣w)P(w)得到后驗(yàn)。如何得到帶正則化的P(w)艰山?
私以為這里中文翻譯有點(diǎn)奇怪湖雹,英文原文是:In Bayesian statistics we use the product of prior and likelihood to arrive at a posterior via P(w∣x)∝P(x∣w)P(w) . How can you identify P(w) with regularization?
翻譯過(guò)來(lái)感覺(jué)應(yīng)該是 P(w) 與 正則化(regularization) 的聯(lián)系。
那么可以解釋為曙搬,優(yōu)化w的過(guò)程其實(shí)是一個(gè)argmax后驗(yàn)概率P(w∣x)的過(guò)程
這其實(shí)就是 P(w) 與 正則化(regularization) 的聯(lián)系。
同樣的织鲸,還有一些很有趣的分布和他們的正則化項(xiàng)(參考鏈接):
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-Sp8of1C9-1651919001181)(E:\d2l\4\1.png)]
4.6 暫退法(Dropout)
1.如果更改第一層和第二層的暫退法概率舔腾,會(huì)發(fā)生什么情況溪胶?具體地說(shuō)搂擦,如果交換這兩個(gè)層,會(huì)發(fā)生什么情況哗脖?設(shè)計(jì)一個(gè)實(shí)驗(yàn)來(lái)回答這些問(wèn)題瀑踢,定量描述你的結(jié)果,并總結(jié)定性的結(jié)論才避。
在實(shí)驗(yàn)中發(fā)現(xiàn)橱夭,在誤差允許的范圍內(nèi)其實(shí)差別不大,第一層暫退法概率大點(diǎn)桑逝,第二層暫退法概率小點(diǎn)效果會(huì)略微優(yōu)一點(diǎn)棘劣。猜測(cè)原因可能有:①前面層抽取的是比較底層的語(yǔ)義信息,有較多的無(wú)用信息冗余通過(guò)強(qiáng)神經(jīng)元楞遏,從而使得網(wǎng)絡(luò)記住這些冗余信息而學(xué)不到關(guān)鍵信息(導(dǎo)致過(guò)擬合)茬暇,用較大Dropout較好,后面層主管高層抽象語(yǔ)義信息寡喝,較為關(guān)鍵糙俗,是把握識(shí)別整體的關(guān)鍵部分,用較小Dropout較好预鬓;②一般前面層全連接數(shù)目比較大巧骚,抽取信息量比較多,自然帶來(lái)冗余信息較多,那么多的數(shù)目連接劈彪,可以通過(guò)較大Dropout丟棄掉大部分的全連接竣蹦,實(shí)際上因?yàn)榛鶖?shù)大,剩下的沒(méi)有置0的連接數(shù)目還是很多的沧奴。
具體實(shí)驗(yàn)過(guò)程可看下面這個(gè)鏈接:參考鏈接
2.增加訓(xùn)練輪數(shù)草添,并將使用暫退法和不使用暫退法時(shí)獲得的結(jié)果進(jìn)行比較。
隨著訓(xùn)練輪數(shù)的增加扼仲,使用Dropout的loss將會(huì)逐漸趨于一個(gè)穩(wěn)定值并有小幅度的波動(dòng)远寸,不使用Dropout的loss將會(huì)一直小幅度的下降,最后在訓(xùn)練集上屠凶,可以看到不使用Dropout的會(huì)比使用Dropout的loss小驰后,但是在測(cè)試集上面,前者的準(zhǔn)確率會(huì)比后者小矗愧。這明顯發(fā)生了過(guò)擬合灶芝。
3.當(dāng)應(yīng)用或不應(yīng)用暫退法時(shí),每個(gè)隱藏層中激活值的方差是多少唉韭?繪制一個(gè)曲線圖夜涕,以顯示這兩個(gè)模型的每個(gè)隱藏層中激活值的方差是如何隨時(shí)間變化的。
Dropout會(huì)減少對(duì)強(qiáng)神經(jīng)元的依賴属愤,因此強(qiáng)神經(jīng)元的激活值會(huì)降低(在本輪訓(xùn)練中被置零女器,梯度更新不會(huì)更新),但激活弱神經(jīng)元的值會(huì)增加住诸,這樣強(qiáng)驾胆、弱神經(jīng)元之間方差變小了。
4.為什么在測(cè)試時(shí)通常不使用暫退法贱呐?
因?yàn)闇y(cè)試的時(shí)候網(wǎng)絡(luò)模型是固定的丧诺,可以認(rèn)為是一種已知的先驗(yàn),那當(dāng)然是不用Dropout加入噪聲的奄薇。
5.以本節(jié)中的模型為例驳阎,比較使用暫退法和權(quán)重衰減的效果。如果同時(shí)使用暫退法和權(quán)重衰減馁蒂,會(huì)發(fā)生什么情況呵晚?結(jié)果是累加的嗎?收益是否減少(或者說(shuō)更糟)远搪?它們互相抵消了嗎劣纲?
結(jié)果會(huì)更好,因?yàn)樗鼈兎乐惯^(guò)擬合的思考點(diǎn)不同谁鳍,暫退法思考點(diǎn)引入一定的噪聲癞季,增加模型對(duì)輸入數(shù)據(jù)的擾動(dòng)魯棒劫瞳,從而增強(qiáng)泛化性;權(quán)重衰減在于約束模型參數(shù)來(lái)防止模型過(guò)擬合绷柒。
6.如果我們將暫退法應(yīng)用到權(quán)重矩陣的各個(gè)權(quán)重志于,而不是激活值,會(huì)發(fā)生什么废睦?
我感覺(jué)這個(gè)題的題目意思應(yīng)該是:“Dropout應(yīng)該放在激活函數(shù)之前還是之后”伺绽。
目前代碼上面Dropout都是用在激活函數(shù)之后的,因?yàn)橛行┘せ詈瘮?shù)在0處的梯度并不是0嗜湃,這樣的話先用Dropout置零后再經(jīng)過(guò)激活函數(shù)奈应,這樣那個(gè)神經(jīng)元就會(huì)有梯度了(我們一般把神經(jīng)層+Batchnorm層+激活函數(shù)為一層,所以把Dropout放在激活函數(shù)之后也是有道理的)购披,起不到了Dropout的作用了杖挣,應(yīng)該在激活函數(shù)之后用Dropout。
7.發(fā)明另一種用于在每一層注入隨機(jī)噪聲的技術(shù)刚陡,該技術(shù)不同于標(biāo)準(zhǔn)的暫退法技術(shù)惩妇。嘗試開發(fā)一種在Fashion-MNIST數(shù)據(jù)集(對(duì)于固定架構(gòu))上性能優(yōu)于暫退法的方法。
可以嘗試下把每一層算它的方差和均值筐乳,然后作一個(gè)高斯噪聲疊加上去歌殃。
4.7 前向傳播、反向傳播和計(jì)算圖
1.假設(shè)一些標(biāo)量函數(shù)X的輸入X是nm矩陣蝙云。f相對(duì)于X的梯度維數(shù)是多少氓皱?*
仍然是n*m,直接f對(duì)每個(gè)x求導(dǎo)即可贮懈。
2.向本節(jié)中描述的模型的隱藏層添加偏置項(xiàng)(不需要在正則化項(xiàng)中包含偏置項(xiàng))匀泊。
①.畫出相應(yīng)的計(jì)算圖。
②.推導(dǎo)正向和反向傳播方程朵你。
參考鏈接:參考鏈接
3.計(jì)算本節(jié)所描述的模型,用于訓(xùn)練和預(yù)測(cè)的內(nèi)存占用揣非。
訓(xùn)練需要的:x抡医,z,h早敬,o忌傻,y,W(1)搞监,W(2)水孩,dl/dW(1),dl/dW(2)
預(yù)測(cè)需要的:x琐驴,z俘种,h,o,y睬罗,W(1)译蒂,W(2)
4.假設(shè)你想計(jì)算二階導(dǎo)數(shù)。計(jì)算圖發(fā)生了什么悬包?你預(yù)計(jì)計(jì)算需要多長(zhǎng)時(shí)間衙猪?
需要保存并用到一階導(dǎo)數(shù)的計(jì)算圖,預(yù)計(jì)需要的時(shí)間應(yīng)該是之前的兩倍吧布近。
5.假設(shè)計(jì)算圖對(duì)于你的GPU來(lái)說(shuō)太大了垫释。
①.你能把它劃分到多個(gè)GPU上嗎?
②.與小批量訓(xùn)練相比撑瞧,有哪些優(yōu)點(diǎn)和缺點(diǎn)饶号?
①.使用MPI來(lái)進(jìn)行并行節(jié)點(diǎn)之間的消息傳遞,將一個(gè)龐大的計(jì)算任務(wù)分解為多個(gè)小任務(wù)季蚂,來(lái)讓集群GPU上的多個(gè)計(jì)算節(jié)點(diǎn)處理任務(wù)的一部分茫船。
②.優(yōu)點(diǎn)是多個(gè)GPU集群可以訓(xùn)練較大的模型,但是缺點(diǎn)是可能會(huì)因?yàn)楣?jié)點(diǎn)間通信的限制導(dǎo)致速度不夠快扭屁。
4.8. 數(shù)值穩(wěn)定性和模型初始化
1.除了多層感知機(jī)的排列對(duì)稱性之外算谈,你能設(shè)計(jì)出其他神經(jīng)網(wǎng)絡(luò)可能會(huì)表現(xiàn)出對(duì)稱性且需要被打破的情況嗎?
卷積神經(jīng)網(wǎng)絡(luò)初始化參數(shù)一樣的時(shí)候料滥,也是會(huì)出現(xiàn)對(duì)稱性的然眼,解決方法可以說(shuō)隨機(jī)初始化,當(dāng)然ResNet結(jié)構(gòu)也是破除對(duì)稱性的一種方法葵腹。
2. 我們是否可以將線性回歸或softmax回歸中的所有權(quán)重參數(shù)初始化為相同的值高每?
當(dāng)然是不行的,因?yàn)閷?duì)稱性的存在践宴,反向傳播期間得到的梯度鲸匿,其元素取相同的值,導(dǎo)致表達(dá)能力下降阻肩。這個(gè)時(shí)候可能你會(huì)想到是使用下面這條式子带欢,然后采用mini-batch去更新參數(shù)的,既然X是帶特征的烤惊,為什么會(huì)導(dǎo)致梯度更新后乔煞,輸出結(jié)果不帶特征呢。我們可以認(rèn)為雖然X是帶特征的柒室,但是在更新梯度后渡贾,相當(dāng)于在W上對(duì)不同特征進(jìn)行特征性的更新,最后在預(yù)測(cè)時(shí)候雄右,前向傳播X的特征與參數(shù)W相乘反而使得特征被抹平了空骚。
有點(diǎn)類似矩陣A是有自己特征的纺讲,然后A*A-1=E使得特征抹平了(這里可以把X看作A,W看作A-1)府怯。
3.在相關(guān)資料中查找兩個(gè)矩陣乘積特征值的解析界刻诊。這對(duì)確保梯度條件合適有什么啟示?
假如規(guī)范化(norm)了粟判,那么就更好判斷了,容易給出|AB|的上下界
找到特征值的解析界峦剔,可以判斷矩陣是否病態(tài)档礁,這樣可以很好的判斷會(huì)不會(huì)產(chǎn)生梯度爆炸。(病態(tài)矩陣的輸入進(jìn)行較小的擾動(dòng)吝沫,則得出的結(jié)果具有很大波動(dòng)呻澜,梯度回傳時(shí)候會(huì)產(chǎn)生梯度巨大的波動(dòng),可能會(huì)引發(fā)梯度爆炸)
4.如果我們知道某些項(xiàng)是發(fā)散的惨险,我們能在事后修正嗎羹幸?
感覺(jué)翻譯有所問(wèn)題,英文為:If we know that some terms diverge, can we fix this after the fact辫愉,感覺(jué)問(wèn)的問(wèn)題應(yīng)該是:如果我們知道某些層是偏離(diverge)的栅受,我們能在事后修正嗎。
增加批處理的大小恭朗,并動(dòng)態(tài)調(diào)整每個(gè)層的學(xué)習(xí)速率(根據(jù)偏離程度)屏镊。
4.9. 環(huán)境和分布偏移
1.當(dāng)我們改變搜索引擎的行為時(shí)會(huì)發(fā)生什么?用戶可能會(huì)做什么痰腮?廣告商呢而芥?
用戶可能會(huì)改變他們的搜索引擎,以一個(gè)更好的適合诽嘉,廣告商會(huì)試圖適應(yīng)新的引擎蔚出。
2.實(shí)現(xiàn)一個(gè)協(xié)變量偏移檢測(cè)器。提示:構(gòu)建一個(gè)分類器虫腋。
參考鏈接:參考鏈接
3.實(shí)現(xiàn)協(xié)變量偏移糾正。
參考鏈接:參考鏈接
4.除了分布偏移稀余,還有什么會(huì)影響經(jīng)驗(yàn)風(fēng)險(xiǎn)接近真實(shí)風(fēng)險(xiǎn)的程度悦冀?
文化、地理睛琳、偏見