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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

深度学习11个实用技巧

發(fā)布時(shí)間:2023/11/28 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习11个实用技巧 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

深度學(xué)習(xí)11個(gè)實(shí)用技巧

深度學(xué)習(xí)工程師George Seif發(fā)表了一篇博文,總結(jié)了7個(gè)深度學(xué)習(xí)的技巧,本文增加了幾個(gè)技巧,總結(jié)了11個(gè)深度學(xué)習(xí)的技巧,主要從提高深度學(xué)習(xí)模型的準(zhǔn)確性和速度兩個(gè)角度來(lái)分析這些小技巧。在使用深度學(xué)習(xí)的時(shí)候,我們不能僅僅把它看成一個(gè)黑盒子,因?yàn)榫W(wǎng)絡(luò)設(shè)計(jì)、訓(xùn)練過(guò)程、數(shù)據(jù)處理等很多步驟都需要精心的設(shè)計(jì)。作者分別介紹了7個(gè)非常實(shí)用小技巧:數(shù)據(jù)量、優(yōu)化器選擇、處理不平衡數(shù)據(jù)、遷移學(xué)習(xí)、數(shù)據(jù)增強(qiáng)、多個(gè)模型集成、加快剪枝。相信掌握了這7個(gè)技巧,能讓你在實(shí)際工作中事半功倍!

深度學(xué)習(xí)已經(jīng)成為解決許多具有挑戰(zhàn)性問(wèn)題的方法。
在目標(biāo)檢測(cè),語(yǔ)音識(shí)別和語(yǔ)言翻譯方面,深度學(xué)習(xí)是迄今為止表現(xiàn)最好的方法。 許多人將深度神經(jīng)網(wǎng)絡(luò)(DNNs)視為神奇的黑盒子,我們輸入一些數(shù)據(jù),出來(lái)的就是我們的解決方案!
事實(shí)上,事情要復(fù)雜得多。

在設(shè)計(jì)和應(yīng)用中,把DNN用到一個(gè)特定的問(wèn)題上可能會(huì)遇到很多挑戰(zhàn)。
為了達(dá)到實(shí)際應(yīng)用所需的性能標(biāo)準(zhǔn),數(shù)據(jù)處理、網(wǎng)絡(luò)設(shè)計(jì)、訓(xùn)練和推斷等各個(gè)階段的正確設(shè)計(jì)和執(zhí)行至關(guān)重要。

  1. 過(guò)擬合與欠擬合

“欠擬合”常常在模型學(xué)習(xí)能力較弱,而數(shù)據(jù)復(fù)雜度較高的情況出現(xiàn),此時(shí)模型由于學(xué)習(xí)能力不足,無(wú)法學(xué)習(xí)到數(shù)據(jù)集中的“一般規(guī)律”,因而導(dǎo)致泛化能力弱。與之相反,“過(guò)擬合”常常出現(xiàn)在模型學(xué)習(xí)

能力過(guò)強(qiáng)的情況,此時(shí)的模型學(xué)習(xí)能力太強(qiáng),以至于將訓(xùn)練集單個(gè)樣本自身的特點(diǎn)都能捕捉到,并將其認(rèn)為是“一般規(guī)律”,同樣這種情況也會(huì)導(dǎo)致模型泛化能力下降。過(guò)擬合與欠擬合的區(qū)別在于,欠擬合在訓(xùn)練集和測(cè)試集上的性能都較差,而過(guò)擬合往往能完美學(xué)習(xí)訓(xùn)練集數(shù)據(jù)的性質(zhì),而在測(cè)試集上的性能較差。

下圖(a)與圖(b)分別展示了對(duì)二維數(shù)據(jù)進(jìn)行擬合時(shí)過(guò)擬合與欠擬合的情況。其中藍(lán)色虛線代表數(shù)據(jù)的真實(shí)分布,橙色圓點(diǎn)為訓(xùn)練數(shù)據(jù),黑色實(shí)線代表模型的擬合結(jié)果。圖(a)使用簡(jiǎn)單的線性模型擬合,由于模型過(guò)于簡(jiǎn)單,沒(méi)有能力捕捉模型的真實(shí)分布,產(chǎn)生了欠擬合。圖(b)使用了高次多項(xiàng)式模型進(jìn)行擬合,由于模型過(guò)于復(fù)雜,因此對(duì)每個(gè)測(cè)試數(shù)據(jù)都能精確預(yù)測(cè),但模型擬合的結(jié)果沒(méi)有抓住數(shù)據(jù)分布的本質(zhì)特征,出現(xiàn)了過(guò)擬合。

  1. 數(shù)據(jù),數(shù)據(jù),數(shù)據(jù)

這不是什么大秘密,深度學(xué)習(xí)機(jī)需要大量的“燃料”, 那“燃料”就是數(shù)據(jù)。擁有的標(biāo)簽數(shù)據(jù)越多,模型的表現(xiàn)就越好。 更多數(shù)據(jù)產(chǎn)生能更好性能的想法,已經(jīng)由谷歌的大規(guī)模數(shù)據(jù)集(有3億圖像)證明!為了感受數(shù)據(jù)帶給深度學(xué)習(xí)模型的性能提升,在部署Deep Learning模型時(shí),你應(yīng)該不斷地為其提供更多的數(shù)據(jù)和微調(diào)以繼續(xù)提高其性能。 Feed the beast:如果你想提高你的模型的性能,就要提供更多的數(shù)據(jù)!

上圖顯示數(shù)據(jù)量的增加會(huì)得到更好的性能

  1. 應(yīng)該選擇哪一個(gè)優(yōu)化器

多年來(lái),已經(jīng)開(kāi)發(fā)了許多梯度下降優(yōu)化算法,他們各有其優(yōu)缺點(diǎn)。
一些最流行的方法如下:

·
Stochastic Gradient Descent (SGD) with momentum

·
Adam

·
RMSprop

·
Adadelta

RMSprop,Adadelta和Adam被認(rèn)為是自適應(yīng)優(yōu)化算法,因?yàn)樗鼈儠?huì)自動(dòng)更新學(xué)習(xí)率。 使用SGD時(shí),您必須手動(dòng)選擇學(xué)習(xí)率和動(dòng)量參數(shù),通常會(huì)隨著時(shí)間的推移而降低學(xué)習(xí)率。

在實(shí)踐中,自適應(yīng)優(yōu)化器傾向于比SGD更快地收斂, 然而,他們的最終表現(xiàn)通常稍差。 SGD通常會(huì)達(dá)到更好的minimum,從而獲得更好的最終準(zhǔn)確性。但這可能需要比某些優(yōu)化程序長(zhǎng)得多的時(shí)間。 它的性能也更依賴于強(qiáng)大的初始化和學(xué)習(xí)率衰減時(shí)間表,這在實(shí)踐中可能非常困難。

因此,如果你需要一個(gè)優(yōu)化器來(lái)快速得到結(jié)果,或者測(cè)試一個(gè)新的技術(shù)。
我發(fā)現(xiàn)Adam

很實(shí)用,因?yàn)樗鼘?duì)學(xué)習(xí)率并不是很敏感。
如果您想要獲得絕對(duì)最佳的表現(xiàn),請(qǐng)使用SGD + Momentum,并調(diào)整學(xué)習(xí)率,衰減和動(dòng)量值來(lái)使性能最優(yōu)化。

兩全其美的辦法

最近已經(jīng)證明,可以得到兩全其美的結(jié)果:從 Adam 到SGD的高性能高速訓(xùn)練! 這個(gè)想法是,實(shí)際上由于在訓(xùn)練的早期階段SGD對(duì)參數(shù)調(diào)整和初始化非常敏感。 因此,我們可以通過(guò)使用Adam來(lái)開(kāi)始訓(xùn)練,這將節(jié)省相當(dāng)長(zhǎng)的時(shí)間,而不必?fù)?dān)心初始化和參數(shù)調(diào)整。
那么,一旦Adam獲得較好的參數(shù),我們可以切換到SGD +動(dòng)量?jī)?yōu)化,以達(dá)到最佳性能!

Adam vs SGD 性能

4 . Dropout

Dropout是一種隨機(jī)斷開(kāi)神經(jīng)元的技術(shù),其具體內(nèi)容前文已有介紹。Dropout控制過(guò)擬合的原理有兩點(diǎn)。第一是在神經(jīng)網(wǎng)絡(luò)的局部構(gòu)造集成學(xué)習(xí)模型,在處理測(cè)試集樣本時(shí),網(wǎng)絡(luò)作出的推斷實(shí)際上是不同神經(jīng)元斷開(kāi)時(shí)的子網(wǎng)絡(luò)所做出推斷的平均。集成學(xué)習(xí)模型,如隨機(jī)森林,梯度提升樹(shù)等在控制過(guò)擬合上往往效果明顯。

第二是減少神經(jīng)元之間的耦合,由于Dropout每次斷開(kāi)的神經(jīng)元都不相同,這就阻止了神經(jīng)元耦合起來(lái)提取同一種特征的可能性,使得網(wǎng)絡(luò)在缺失一些信息的情況下仍然能夠做出正確推斷。

  1. EarlyStopping

EarlyStopping是一種在訓(xùn)練中使用的回調(diào)函數(shù),其基本思想是在訓(xùn)練過(guò)程中監(jiān)視神經(jīng)網(wǎng)絡(luò)在驗(yàn)證集上的性能,當(dāng)驗(yàn)證集上的性能在連續(xù)的多輪訓(xùn)練中沒(méi)有得到提高,則提前終止訓(xùn)練。EarlyStopping控制過(guò)擬合的原理是控制模型的擬合程度,在適當(dāng)時(shí)機(jī)阻止模型繼續(xù)學(xué)習(xí)而達(dá)到過(guò)擬合狀態(tài)。當(dāng)模型在驗(yàn)證集性能沒(méi)有提升時(shí),意味著訓(xùn)練集已經(jīng)不能提供更多的提高模型泛化能力的信息了,若繼續(xù)訓(xùn)練下去,模型會(huì)開(kāi)始擬合訓(xùn)練集樣本中的自身特點(diǎn),從而進(jìn)入過(guò)擬合。

  1. BatchNormalization

BatchNormalization在前文已有介紹。通常而言,BatchNormalization的主要作用是加速網(wǎng)絡(luò)的訓(xùn)練。但同時(shí),它也具有一定的控制過(guò)擬合的能力。實(shí)驗(yàn)驗(yàn)證,使用BatchNormalization時(shí)可以不用或者以較低的斷開(kāi)率使用Dropout,或降低L2正則的系數(shù)。使用BatchNormalization控制過(guò)擬合的原理是,過(guò)擬合通常發(fā)生在數(shù)據(jù)邊界,而B(niǎo)atchNormalization可以協(xié)助將初始化權(quán)重調(diào)整落入數(shù)據(jù)的內(nèi)部,從而協(xié)助控制過(guò)擬合。

  1. 如何處理不平衡數(shù)據(jù)

在很多情況下,都要處理不平衡的數(shù)據(jù),特別是實(shí)際應(yīng)用程序中。
一個(gè)簡(jiǎn)單而實(shí)際的例子如下:訓(xùn)練您的深度網(wǎng)絡(luò)以預(yù)測(cè)視頻流中是否有人持有致命武器。 但是在你的訓(xùn)練數(shù)據(jù)中,你只有50個(gè)拿著武器的人的視頻和1000個(gè)沒(méi)有武器的人的視頻! 如果你只是用這些數(shù)據(jù)來(lái)訓(xùn)練你的網(wǎng)絡(luò),那么你的模型肯定會(huì)非常偏向于預(yù)測(cè)沒(méi)有人有武器!

你可以做用以下的方法來(lái)解決它:

·
在損失函數(shù)中使用類(lèi)權(quán)重。
本質(zhì)上就是,讓實(shí)例不足的類(lèi)在損失函數(shù)中獲得較高的權(quán)重,因此任何對(duì)該類(lèi)的錯(cuò)分都將導(dǎo)致?lián)p失函數(shù)中非常高的錯(cuò)誤。

·
過(guò)度采樣:重復(fù)一些實(shí)例較少的訓(xùn)練樣例,有助于平衡分配。 如果可用的數(shù)據(jù)很小,這個(gè)方法最好。

·
欠采樣:一些類(lèi)的訓(xùn)練實(shí)例過(guò)多,可以簡(jiǎn)單地跳過(guò)一些實(shí)例。 如果可用數(shù)據(jù)非常大,這個(gè)方法最好。

·
為少數(shù)類(lèi)增加數(shù)據(jù)。可以為少數(shù)類(lèi)創(chuàng)建更多的訓(xùn)練實(shí)例! 例如,在前面檢測(cè)致命武器的例子中,你可以改變屬于具有致命武器的類(lèi)別的視頻的顏色和光照等。

  1. 遷移學(xué)習(xí)

正如我們所看到的,深層網(wǎng)絡(luò)需要大量的數(shù)據(jù)。遺憾的是,對(duì)于許多新的應(yīng)用程序來(lái)說(shuō),這些數(shù)據(jù)可能很難得到并且開(kāi)銷(xiāo)很大。
如果我們希望模型表現(xiàn)良好,可能需要數(shù)萬(wàn)或數(shù)十萬(wàn)個(gè)新的訓(xùn)練樣例來(lái)進(jìn)行訓(xùn)練。 如果數(shù)據(jù)集不易獲取,則必須全部手動(dòng)收集并標(biāo)記。

這就是遷移學(xué)習(xí)的起點(diǎn)。 通過(guò)遷移學(xué)習(xí),我們不需要太多的數(shù)據(jù)! 這個(gè)想法是從一個(gè)在數(shù)百萬(wàn)圖像上訓(xùn)練過(guò)的網(wǎng)絡(luò)開(kāi)始的,比如在ImageNet上預(yù)訓(xùn)練的ResNet。 然后,我們將“重新調(diào)整ResNet模型,只重新訓(xùn)練最后幾層。

我們將ResNet從數(shù)百萬(wàn)圖像中學(xué)到的信息(圖像特征)進(jìn)行微調(diào),以便將其應(yīng)用于不同的任務(wù)。
因?yàn)榭缬虻膱D像的特征信息經(jīng)常是非常相似的所以這個(gè)方法是可行的,但是這些特征的分析根據(jù)應(yīng)用而不同。

一個(gè)基本的遷移學(xué)習(xí)示例

  1. 用數(shù)據(jù)增強(qiáng)提高性能

前面已經(jīng)說(shuō)過(guò):更多的數(shù)據(jù)=更好的表現(xiàn)。 除了遷移學(xué)習(xí)之外,另一種快速而簡(jiǎn)單提高模型的性能的方法是數(shù)據(jù)增強(qiáng)。 數(shù)據(jù)增強(qiáng)是使用原始類(lèi)別標(biāo)簽的同時(shí),改變數(shù)據(jù)集的原始圖像以合成一些新的訓(xùn)練示例。例如,用于圖像數(shù)據(jù)增強(qiáng)的常見(jiàn)方式包括:

·
水平和/或垂直旋轉(zhuǎn)翻轉(zhuǎn)圖像

·
改變圖像的亮度和顏色

·
隨機(jī)模糊圖像

·
隨機(jī)從圖像裁剪塊

基本上,你可以進(jìn)行任何改變,改變圖像的外觀但不改變整體內(nèi)容。

  1. 通過(guò)集成提升模型!

在機(jī)器學(xué)習(xí)中,集成訓(xùn)練多個(gè)模型,然后將它們組合在一起以獲得更高的性能。
這個(gè)想法是在相同的數(shù)據(jù)集上對(duì)同一任務(wù)訓(xùn)練多個(gè)深度網(wǎng)絡(luò)模型。 然后,模型的結(jié)果可以通過(guò)投票進(jìn)行組合,即具有最高票數(shù)的類(lèi)勝出。

為了確保所有模型不同,可以使用隨機(jī)權(quán)重初始化和隨機(jī)數(shù)據(jù)增強(qiáng)。眾所周知,由于使用了多個(gè)模型,因此集成通常比單個(gè)模型更精確,從而從不同角度完成任務(wù)。在實(shí)際應(yīng)用中,尤其是競(jìng)賽中,幾乎所有頂級(jí)模型都使用集合方式。

集成模型

  1. 加快剪枝

我們知道模型精度隨深度而增加,但速度又如何呢?
更多的層意味著更多的參數(shù),更多的參數(shù)意味著更多的計(jì)算,更多的內(nèi)存消耗和更慢的速度。理想情況下,我們希望在提高速度的同時(shí)保持高精度。我們可以通過(guò)剪枝來(lái)做到這一點(diǎn)。

深度神經(jīng)網(wǎng)絡(luò)剪枝策略

這個(gè)想法是,網(wǎng)絡(luò)中的許多參數(shù)是多余的,對(duì)輸出沒(méi)有太大貢獻(xiàn)。 如果可以根據(jù)貢獻(xiàn)值對(duì)網(wǎng)絡(luò)中的神經(jīng)元進(jìn)行排名,那么就可以從網(wǎng)絡(luò)中移除低排名的神經(jīng)元,從而形成更小更快的網(wǎng)絡(luò)。
可以根據(jù)神經(jīng)元權(quán)重的L1 / L2均值(平均激活)、一些驗(yàn)證集上神經(jīng)元不為零的次數(shù)以及其他方法來(lái)進(jìn)行排序。 獲得更快/更小的網(wǎng)絡(luò)對(duì)于在移動(dòng)設(shè)備上運(yùn)行深度學(xué)習(xí)網(wǎng)絡(luò)非常重要。

修剪網(wǎng)絡(luò)的最基本的方法是簡(jiǎn)單地放棄某些卷積濾波器。 最近文章表明,這樣做是相當(dāng)成功的。
這項(xiàng)工作中的神經(jīng)元排名相當(dāng)簡(jiǎn)單:每個(gè)濾波器的權(quán)重按照L1規(guī)范排名。 在每個(gè)修剪迭代中,對(duì)所有的過(guò)濾器進(jìn)行排序,在所有層中修剪m個(gè)排名最低的過(guò)濾器,重新訓(xùn)練和重復(fù)!

最近的另一篇分析殘差網(wǎng)絡(luò)結(jié)構(gòu)的論文中提出了修剪“過(guò)濾器”的關(guān)鍵特點(diǎn)。 作者指出,在刪除層的時(shí)候,具有殘差快捷連接(例如ResNets)的網(wǎng)絡(luò)比不使用任何快捷連接(例如VGG或AlexNet)的網(wǎng)絡(luò)在保持良好的準(zhǔn)確性方面更為穩(wěn)健。這個(gè)有趣的發(fā)現(xiàn)具有重大的實(shí)際意義,因?yàn)樗嬖V我們,在修剪網(wǎng)絡(luò)進(jìn)行部署和應(yīng)用時(shí),網(wǎng)絡(luò)設(shè)計(jì)至關(guān)重要(例如ResNets)。 所以使用最新最好的方法總是很好的!

總結(jié)

以上是生活随笔為你收集整理的深度学习11个实用技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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