日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

干货 | 算法工程师入门第一期——罗恒讲深度学习

發(fā)布時間:2025/3/15 pytorch 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 干货 | 算法工程师入门第一期——罗恒讲深度学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

整個神經(jīng)網(wǎng)絡(luò),從歷史上就可以把很多東西搞清楚,比如它是怎么變過來的。我認(rèn)為神經(jīng)網(wǎng)絡(luò)其實是變得越來越簡單,越來越好用的。現(xiàn)在神經(jīng)網(wǎng)絡(luò)常用的東西已經(jīng)很固定了,你不用再加任何東西就能用。但有些時候你覺得這個東西應(yīng)該work,但它不work,這種情況該怎么辦。所以盡管現(xiàn)在很多東西已經(jīng)純標(biāo)準(zhǔn)化,但了解這些對于你找問題找錯誤,還是很重要。所以這次主要講兩個東西,優(yōu)化和正則化。絕大多數(shù)情況,正則化不是問題,我們只關(guān)心優(yōu)化問題,往往你發(fā)現(xiàn)需要做正則化的時候多半是數(shù)據(jù)問題。

神經(jīng)網(wǎng)絡(luò)經(jīng)歷了三次研究熱潮。第一次是60年代,感知器出來后很多人認(rèn)為離人工智能已經(jīng)很近了。但馬上有人寫了本書叫《感知器》,說它不能解決異或問題,這個時候大家一下子又不感興趣了。到80年代,BP算法出來,又開始變得火熱起來。但當(dāng)時人們認(rèn)為多層神經(jīng)網(wǎng)絡(luò)優(yōu)化困難,又對它失去了信心。直到很多年后,2006年出來了Deep Belief Nets。學(xué)術(shù)界又開始慢慢對神經(jīng)網(wǎng)絡(luò)有興趣,等到神經(jīng)網(wǎng)絡(luò)在語音識別和物體識別上取得突破后,神經(jīng)網(wǎng)絡(luò)的第三次熱潮又開始了,一直持續(xù)到現(xiàn)在。

感知器已經(jīng)有了現(xiàn)代神經(jīng)網(wǎng)絡(luò)的原型,輸入特征與參數(shù)w連接,加權(quán)累加之后進入神經(jīng)元,通過激活函數(shù)輸出。與現(xiàn)在的網(wǎng)絡(luò)的區(qū)別主要有兩點,第一是數(shù)據(jù)要經(jīng)過人工編碼形成特征;第二是網(wǎng)絡(luò)的輸出是離散的二值。前者導(dǎo)致了相當(dāng)一段時間,人們認(rèn)為什么是好的特征應(yīng)該由專家來設(shè)計,有了好的特征之后再解決分類問題,從這個角度上看,SVM也只是個特殊的感知器。

關(guān)于第二點,輸出的離散的,這個帶來一個問題,就是從輸入到輸出不是一個連續(xù)的光滑的,這個其實是限制使用梯度優(yōu)化網(wǎng)絡(luò)的最大障礙。

很快,Minsky和Papert的《感知器》里面證明了上面的感知器不能解決異或等一大類問題,這本書因此也造成了神經(jīng)網(wǎng)絡(luò)研究的第一次低潮。有趣的是,其實也就是在《感知器》里面,作者指出如果在網(wǎng)絡(luò)中能夠增加一些額外的類似感知器的單元,那么就能解決那些不能解決的問題。

這類神經(jīng)元后來被Hinton稱之為隱藏單元(Hidden Units),在傳統(tǒng)的感知器中,輸出神經(jīng)元是可見的,根據(jù)訓(xùn)練數(shù)據(jù),我們知道輸出單元應(yīng)當(dāng)是什么樣的狀態(tài),而隱藏單元的狀態(tài)則不可知。就像之前提到的,如果隱藏單元的輸出是離散的,那么根據(jù)輸入特征,得到對應(yīng)的輸出就需要考慮隱藏單元的各種可能狀態(tài),那么就是一個組合優(yōu)化問題,求解困難。

80年代,BP算法的成功的主要原因,就是改變激活函數(shù)為光滑連續(xù)的函數(shù)(可導(dǎo)),這樣一來,對于一個含有隱藏單元的神經(jīng)網(wǎng)絡(luò),從輸入x到輸入y也是一個關(guān)于所有連接參數(shù)w的光滑連續(xù)的函數(shù)。那么使用鏈?zhǔn)椒▌t求導(dǎo),我們就可以得到網(wǎng)絡(luò)所有參數(shù)的梯度,也就是說我們現(xiàn)在知道按梯度方向調(diào)整參數(shù)w就可以使得給定輸入數(shù)據(jù)x改變網(wǎng)絡(luò)的輸出大小,不斷地修正,就可以使得網(wǎng)絡(luò)的行為去擬合訓(xùn)練數(shù)據(jù)。之后,BP算法大獲成功,神經(jīng)網(wǎng)絡(luò)迎來了第二次的研究熱潮。

80年代到90年代,大量的研究人員使用BP算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),但是大家發(fā)現(xiàn)優(yōu)化十分困難,最常見的失敗就是無論怎么調(diào)整參數(shù),訓(xùn)練的loss就是不降。由于神經(jīng)網(wǎng)絡(luò)是優(yōu)化一個非線性函數(shù),那么意味著理論上存在局部極小點,因此,每當(dāng)loss不降,大家都是自然而然地認(rèn)為這是遇到了局部極小點,同時理論上層數(shù)越多的神經(jīng)網(wǎng)絡(luò)非線性越強會有更多的局部極小,現(xiàn)實的觀察也發(fā)現(xiàn)更深的網(wǎng)絡(luò)往往結(jié)果更差,從而大量的研究者對神經(jīng)網(wǎng)絡(luò)失去信心,神經(jīng)網(wǎng)絡(luò)進入第二次低潮。90年代末開始的SVM相關(guān)研究以及后來對凸優(yōu)化的癡迷,也都是在這個大背景下發(fā)生的。

進入2000年之后,Hinton發(fā)現(xiàn)使用一些非監(jiān)督方法對多層神經(jīng)網(wǎng)絡(luò)做初始化之后再使用BP算法,能夠成功地訓(xùn)練并得到更好的結(jié)果。再后來,發(fā)現(xiàn)直接使用BP算法進行監(jiān)督訓(xùn)練就能在很多很多問題上得到非常好的結(jié)果。那么為什么90年代的時候沒有成功呢?一個是當(dāng)時訓(xùn)練數(shù)據(jù)相對很少,而且當(dāng)時的機器訓(xùn)練起來很慢;另外一個是當(dāng)時訓(xùn)練優(yōu)化方法不太先進,所以有時在訓(xùn)練的時候梯度會出一些問題。

上面的圖是一個四隱藏層的神經(jīng)網(wǎng)絡(luò)訓(xùn)練在MNIST上面(激活函數(shù)是tanh),大家可以看到訓(xùn)練一開始,最頂層的神經(jīng)元的激活值迅速減小,那么意味著從這一層往后傳遞的梯度也會迅速減小,同時也可以觀察到loss會基本保持不變(最后一層的激活函數(shù)接近0,那么無論什么樣的輸入到這一層之后都差不多,自然也就無法正確分類降低loss)。

但是隨著訓(xùn)練的進行,頂層的激活又從0開始慢慢變大,loss最后又開始降。也就是在優(yōu)化的時候,本來以為是掉到某一個坑里(局部極小),無論把w怎么改變,你的loss都沒辦法降下來。但實際情況是你在一個很平的高原上,你沿各個方向走,這個loss都差不多。現(xiàn)在我們知道使用適當(dāng)?shù)膮?shù)初始化、使用沒有飽和的激活函數(shù)(如ReLU)、使用Batch Normalization都可以、使用一些自適應(yīng)學(xué)習(xí)率方法(如Adam,RMSProp)都可以緩解上面這種情況,當(dāng)然更重要的一點是使用GPU。

歷史講完了,接下來講講算法工程師日常工作面臨的問題。我有一堆數(shù)據(jù),質(zhì)量差不多,我要拿到這些數(shù)據(jù)去訓(xùn)練一個模型,讓這個模型能夠投入使用。至于訓(xùn)練模型,我們現(xiàn)在工具已經(jīng)很完備了,數(shù)據(jù)整理好之后梳理好命令,機器去跑,拿到一個結(jié)果,就最好了。但通常呢,會發(fā)現(xiàn)結(jié)果不好,結(jié)果不好有兩種情況,一種是我剛才說的,模型在訓(xùn)練集上表現(xiàn)不好,也就是對應(yīng)我們要講的第一個問題,優(yōu)化問題。也就是你拿到一個數(shù)據(jù),你第一件事情你不要考慮測試集,你就考慮訓(xùn)練集,我要讓我這個模型在訓(xùn)練上能做的足夠好,所以這個實際上是一個優(yōu)化問題。通常我們絕大多數(shù)困難都在這個問題。

當(dāng)這個問題解決之后,可能又開始第二個問題。就是我在訓(xùn)練集上做的很好,但是在驗證集上做的不好,這個就是overfitting,overfitting有很多種情況,從學(xué)術(shù)上講比如說訓(xùn)練數(shù)據(jù)中包含一些噪聲。我們?nèi)粘V挟?dāng)你發(fā)現(xiàn)你的loss很低,但是在你的驗證集結(jié)果不好,通常是你的訓(xùn)練集和你的測試集不一樣。這個不一樣可能有很多種原因,比如是不同的時間采集的,采集數(shù)據(jù)的策略發(fā)生了變化等等。這時首先需要做的是通過可視化對數(shù)據(jù)的分布有直覺上的認(rèn)識,解決數(shù)據(jù)本身的問題。最簡單的一種可視化辦法,比如說你是一個二分類,你現(xiàn)在數(shù)據(jù)你就把它全部過一遍,二分類只有一個輸出,每個訓(xùn)練的數(shù)據(jù)給它分一個數(shù),你把這個數(shù)從大到小排一遍,驗證集也可以得到一個數(shù),也從大到小排一遍。

然后你就從大到小隨機抽一些采樣,就會發(fā)現(xiàn)你數(shù)據(jù)的問題在哪。不斷地做這個過程,不斷地改進新的數(shù)據(jù)集,這個將會是你的最大的收益。也就是改你的數(shù)據(jù)擴大你的數(shù)據(jù)集,使你的數(shù)據(jù)覆蓋的種類更全,收益可能是幾十個百分點的,而調(diào)整你的優(yōu)化策略可能只是幾個百分點的收益,正則化方法可能只是千分位上的收益。

所以,理解神經(jīng)網(wǎng)絡(luò)背后的優(yōu)化過程,理解你的數(shù)據(jù)才是最重要的。具體的可視化、數(shù)據(jù)采樣的方法往往需要結(jié)合問題本身發(fā)揮創(chuàng)造力。當(dāng)訓(xùn)練、驗證數(shù)據(jù)大致滿足需求之后,接下來要做的就是訓(xùn)練網(wǎng)絡(luò),不斷減小訓(xùn)練集上的loss。如今有大量的開源工具,對于一些主流的任務(wù),通常可以方便的找到適合的網(wǎng)絡(luò)結(jié)構(gòu)以及相應(yīng)的超參數(shù)。

大家只要結(jié)合自己的計算資源上的限制對這些網(wǎng)絡(luò)做些適當(dāng)?shù)募舨镁涂梢?#xff0c;這里就不展開了。下面介紹一些訓(xùn)練過程中常見的情況以及如何調(diào)整。訓(xùn)練中常見的困難是loss不降,常見的情況是輸入數(shù)據(jù)從下往上傳輸?shù)臅r候,某一層的表示完全相同(比如某層的激活函數(shù)為0),這樣學(xué)習(xí)自然就無法進行了。

因此在訓(xùn)練的過程中查看激活函數(shù)的相關(guān)統(tǒng)計信息是個好習(xí)慣。常見的情況,比如到softmax的連接矩陣w迅速變小,這有可能是由于數(shù)據(jù)類別分布非常不均衡導(dǎo)致的,這時候做些采樣以及適當(dāng)改變mini-batch的大小可能會有緩解。除了考慮數(shù)據(jù)樣本的均衡之外,也可以適當(dāng)?shù)馗淖冞@層連接矩陣的參數(shù)初始化。當(dāng)網(wǎng)絡(luò)中間某層的激活函數(shù)總是輸出0,這種時候loss的下降也會停止。

這時候可以考慮幾個方面,首先在這個激活函數(shù)之前是否有Batch Normalization,如果沒有最好加上試試(對于現(xiàn)在的前向網(wǎng)絡(luò),最好保證除softmax之外的激活函數(shù)之前都有BN),如果有BN也可以進一步檢查eps是否設(shè)的過大,可以適當(dāng)調(diào)小試試;其次也可以檢查一下是否ReLU造成的,這時候也可以試著改變這一層的bias和BN的beta的初始化(初始化成某個正數(shù),比如+1);第三,如果改變了原始的網(wǎng)絡(luò)結(jié)構(gòu),那么也最好避免表示的瓶頸(這一層的隱單元個數(shù)不要比之前層的隱單元個數(shù)少得過多)。

如果是從輸入開始的第一層就激活為0,那么就要檢查數(shù)據(jù)的預(yù)處理和相應(yīng)參數(shù)初始化。一種很簡便的方式,則是讓輸入數(shù)據(jù)先通過一個Batch Normalization層,然后再連接后面的w。訓(xùn)練集上的loss能夠正常的下降之后,那么接下來就需要看驗證集上的表現(xiàn)了。如果我們是不計代價地獲得驗證集的表現(xiàn),那么就像Yann LeCun給的建議一樣,首先應(yīng)當(dāng)通過不斷地增加網(wǎng)絡(luò)的大小使得出現(xiàn)overfitting(訓(xùn)練集的loss越來越低,而驗證集的loss降低到某個程度之后不變甚至開始變高)。

說到這里,插一句。神經(jīng)網(wǎng)絡(luò)是非常靈活強大的模型,也就是說只要模型的大小足夠,那么應(yīng)當(dāng)可以完美地擬合訓(xùn)練數(shù)據(jù)。如果當(dāng)你發(fā)現(xiàn)沒有辦法完美擬合訓(xùn)練集,假如優(yōu)化過程沒有問題,那么很大的可能性是訓(xùn)練數(shù)據(jù)中存在自相矛盾的數(shù)據(jù),比如同樣一張圖在訓(xùn)練集出現(xiàn)多次,并且每次的label又各自不同。語言模型往往很難完美擬合訓(xùn)練集也是類似的原因,就是不同的詞卻有相同的(或極相似的的)上下文。提升驗證集的效果最直接效果最好的辦法就是在訓(xùn)練集中增加更多的各式各樣的與驗證集類的數(shù)據(jù)。

這個聽上去像廢話,這里強調(diào)一下是希望大家時刻記住條件允許的時候,這總是應(yīng)該最先考慮的努力方向;其次,依據(jù)關(guān)注的問題不同,各式各樣的數(shù)據(jù)增強往往對結(jié)果也會帶來很大的提升。除去上面兩種,那么接下來可以考慮各種正則化方法。先講兩種比較容易被大家忽視的正則化。

首先,盡可能在每輪的訓(xùn)練中徹底地shuffle訓(xùn)練數(shù)據(jù),這會帶來一定的正則化效果(特別是在到處有Batch Normalization的網(wǎng)絡(luò),充分的shuffle可以避免某些數(shù)據(jù)總是出現(xiàn)在同一個mini-batch),其次,在訓(xùn)練效率和問題本身允許的情況下,盡量嘗試更小的mini-batch。小的mini-batch可以使得sgd的過程中產(chǎn)生很多對模型推廣有益的噪聲。此外,dropout、weight decay都應(yīng)該嘗試,也可以適當(dāng)?shù)恼{(diào)整他們的參數(shù)。這些的調(diào)整,對于驗證集的結(jié)果提升往往比較有限。

最后,對于那些離散的長尾輸入數(shù)據(jù)(比如一些語言相關(guān)的輸入),也可以考慮在輸入層的參數(shù)上加入L1正則化。

總結(jié)

以上是生活随笔為你收集整理的干货 | 算法工程师入门第一期——罗恒讲深度学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女三级视频 | 亚洲一区二区三区视频 | 国产一级在线视频 | 成人做受视频试看60秒 | 亚洲综合免费观看高清完整版 | 欧美做受| 欧美精品一区二区三区在线 | 九色视频在线播放 | 韩国毛片一区二区 | 久久久久久免费毛片精品 | 欧美一区二区在线视频 | 久操国产在线 | 原创少妇半推半就88av | 美女脱光内衣内裤 | a黄视频| 色一情一区二 | 亚洲国产婷婷香蕉久久久久久99 | 色播日韩 | 伊人久久大香线蕉av一区 | 水蜜桃色314在线观看 | 国产一区视频在线观看免费 | 精彩视频一区二区 | 影音先锋在线中文字幕 | 亚洲在线综合 | 精品国产1区2区 | 国产精品九九视频 | 动漫大乳美女 | 天堂网视频在线观看 | 国产欧美一区二区视频 | 日本成人一区二区 | 俄罗斯女人裸体性做爰 | 免费的毛片 | 伊人成综合 | 日本人妖xxxx | 催眠调教艳妇成肉便小说 | 日韩a在线播放 | 成人国产精品一区 | 免费黄色高清视频 | 色在线免费视频 | 欧美人与按摩师xxxx | 一个人看的www片免费高清中文 | 国产aⅴ精品 | 国产日产精品一区二区 | 91看片就是不一样 | 丰满少妇在线观看网站 | 粉嫩av网址 | 国产激情久久久久久熟女老人av | 99热免费在线观看 | 咪咪av| 午夜免费网| 风间由美av | 国产激情视频在线播放 | 午夜国产小视频 | 亚洲 欧美 日韩在线 | 日韩久久在线 | 青娱网电信一区电信二区电信三区 | 少妇高潮一区二区三区在线 | 中文字幕av日韩 | 老子影院午夜伦不卡大全 | 天天玩夜夜操 | 色国产在线 | 午夜精品久久久久久久96蜜桃 | 久久国产精品首页 | 国产91边播边对白在线 | 日本一区二区高清视频 | 精品www久久久久久奶水 | 亚洲精品国产美女 | 韩国精品一区 | 午夜影视在线观看 | 亚洲欧洲精品成人久久奇米网 | 成人av在线一区二区 | 日本在线观看免费 | 国产999久久久 | 国产性生活片 | 欧美黄色xxx | 热久久精| 翔田千里一区二区 | 日韩av专区 | 伊人久色| av免费看网站 | 久久精品色 | 熟妇的味道hd中文字幕 | 91超碰免费 | 国产视频播放 | 91福利在线视频 | 神马午夜电影一区二区三区在线观看 | 91精品国产欧美一区二区成人 | 国产黄站 | 日韩精品一区二区三区丰满 | 九九视频免费在线观看 | 日韩深夜视频 | 啪啪网站大全 | 97久草 | 无码精品国产一区二区三区免费 | 无码人妻精品一区二区蜜桃色欲 | 久久久网站 | 午夜精品久久久久久久91蜜桃 | 成人欧美一区二区三区在线播放 | 免费一级一片 |