新聞中心

EEPW首頁 > 智能計(jì)算 > 業(yè)界動態(tài) > 這7 個(gè)深度學(xué)習(xí)實(shí)用技巧,你掌握了嗎?

這7 個(gè)深度學(xué)習(xí)實(shí)用技巧,你掌握了嗎?

作者: 時(shí)間:2018-02-23 來源:網(wǎng)絡(luò) 收藏

  ▌ 兩全其美的辦法

本文引用地址:http://butianyuan.cn/article/201802/375972.htm

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

   

 

  Adam vs SGD 性能

  ▌ 3-如何處理不平衡數(shù)據(jù)

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

  你可以做用以下的方法來解決它:

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

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

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

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

  ▌ 4-遷移學(xué)習(xí)

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

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

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

   

 

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

  ▌ 5 – 用數(shù)據(jù)增強(qiáng)提高性能

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

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

  改變圖像的亮度和顏色

  隨機(jī)模糊圖像

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

  基本上,你可以進(jìn)行任何改變,改變圖像的外觀但不改變整體內(nèi)容,例如你可以使用藍(lán)色狗的照片,但你仍然應(yīng)該能夠清楚地看到,這是一個(gè)狗的照片。

   

  數(shù)據(jù)增強(qiáng)

  ▌ 6-通過集成提升模型!

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

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

   

  集成模型

  ▌ 7-加快剪枝

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

   

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

  這個(gè)想法是,網(wǎng)絡(luò)中的許多參數(shù)是多余的,對輸出沒有太大貢獻(xiàn)。 如果可以根據(jù)貢獻(xiàn)值對網(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ù)以及其他方法來進(jìn)行排序。 獲得更快/更小的網(wǎng)絡(luò)對于在移動設(shè)備上運(yùn)行網(wǎng)絡(luò)非常重要。

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

  最近的另一篇分析殘差網(wǎng)絡(luò)結(jié)構(gòu)的論文中提出了修剪“過濾器”的關(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)。 所以使用最新最好的方法總是很好的!


上一頁 1 2 下一頁

關(guān)鍵詞: 深度學(xué)習(xí)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉