0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

7個實用技巧,讓您的深度神經(jīng)網(wǎng)絡發(fā)揮最大作用

lviY_AI_shequ ? 來源:lp ? 2019-04-02 15:12 ? 次閱讀

深度學習已經(jīng)成為解決許多具有挑戰(zhàn)性的現(xiàn)實世界問題的方法。對目標檢測,語音識別和語言翻譯來說,這是迄今為止表現(xiàn)最好的方法。許多人將深度神經(jīng)網(wǎng)絡(DNNs)視為神奇的黑盒子,我們放進去一堆數(shù)據(jù),出來的就是我們的解決方案!事實上,事情沒那么簡單。

在設計和應用DNN到一個特定的問題上可能會遇到很多挑戰(zhàn)。為了達到現(xiàn)實世界應用所需的性能標準,對數(shù)據(jù)準備,網(wǎng)絡設計,訓練和推斷等各個階段的正確設計和執(zhí)行至關重要。在這里,我將與大家分享7個實用技巧,讓您的深度神經(jīng)網(wǎng)絡發(fā)揮最大作用。

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

這不是一個大秘密。一直工作得很好的深度學習機器需要燃料 - 大量的燃料; 燃料是數(shù)據(jù)。我們擁有的標記數(shù)據(jù)越多,模型的表現(xiàn)就越好。更多的數(shù)據(jù)導致更好的性能,已經(jīng)由谷歌大規(guī)模的探索3億圖像的數(shù)據(jù)集印證!

在實際應用中部署Deep Learning模型時,您應該不斷地為其提供更多的數(shù)據(jù)和微調(diào)以繼續(xù)提高其性能。喂飽怪獸:如果你想提高你的模型的性能,那就獲得更多的數(shù)據(jù)!

不斷增加的數(shù)據(jù)產(chǎn)生更好的性能

2 - 你應該使用哪個優(yōu)化器?

多年來,已經(jīng)開發(fā)了許多梯度下降優(yōu)化算法,各有其優(yōu)缺點。一些最流行的包括:

· 隨機梯度下降(SGD)+動量方法

· Adam

· RMSprop

· Adadelta

RMSprop,Adadelta和Adam被認為是自適應優(yōu)化算法,因為它們會自動更新學習速率。使用SGD時,您必須手動選擇學習率和動量參數(shù),通常會隨著時間的推移而降低學習率。

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

因此,如果你需要一些快速的結果,或者只是想測試一個新的技術,選擇自適應優(yōu)化器。我發(fā)現(xiàn)Adam很容易使用,因為它對你選擇完美的學習率并不是很敏感。如果您想獲得絕對最佳的最終表現(xiàn),請使用SGD + Momentum,并使用學習率,衰減和動量值來最大化表現(xiàn)。

兩全其美的方法有木有!

它最近的研究顯示,你可以做到兩全其美:高速訓練頂尖的性能通過切換從Adam到SGD!這個想法是,訓練的早期階段實際上是SGD對參數(shù)調(diào)整和初始化非常敏感的時候。因此,我們可以通過使用Adam來啟動我們的訓練,這將使您節(jié)省相當長的時間,而不必擔心初始化和參數(shù)調(diào)整。那么,一旦Adam運轉起來,我們可以切換到SGD +動量優(yōu)化,以達到最佳性能!

Adam vs SGD表現(xiàn)。由于魯棒性和自適應學習速度,Adam在一開始表現(xiàn)更好,而SGD最終達到更好的全局最小值。

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

在很多情況下,您將處理不平衡的 數(shù)據(jù),特別是在現(xiàn)實世界的應用程序中。舉一個簡單而實際的例子:為了安全起見,您正在訓練您的深度網(wǎng)絡以預測視頻流中是否有人持有致命武器。但是在你的訓練數(shù)據(jù)中,你只有50個拿著武器的人的視頻和1000個沒有武器的人的視頻!如果你只是用這些數(shù)據(jù)來訓練你的網(wǎng)絡,那么你的模型肯定會非常偏向于預測沒有人有武器!

有幾件事你可以做到這一點:

· 在損失函數(shù)中使用類權重:本質(zhì)上,代表性不足的類在損失函數(shù)中獲得更高的權重,因此對該特定類的任何錯誤分類將導致?lián)p失函數(shù)中的非常高的誤差。

· 過度抽樣:重復一些包含代表性不足的訓練樣例,有助于平衡分配。如果可用的數(shù)據(jù)很小,這最好。

· 欠采樣:您可以簡單地跳過一些包含過度表示類的訓練示例。如果可用數(shù)據(jù)非常大,這最好。

· 數(shù)據(jù)增加為少數(shù)類:您可以綜合創(chuàng)建更多的代表性不足的訓練示例!例如,在前面檢測致命武器的例子中,你可以改變屬于具有致命武器的類別的視頻的一些顏色和光照。

4 - 遷移學習

正如我們在第一個提示中所看到的,深層網(wǎng)絡需要大量的數(shù)據(jù)。不幸的是,對于許多新的應用程序來說,這些數(shù)據(jù)可能很難并且花費很高。如果我們希望我們的模型表現(xiàn)良好,我們可能需要數(shù)十或數(shù)十萬個新的訓練樣例進行訓練。如果數(shù)據(jù)集不易獲取,則必須全部收集并手動標記。

這就是遷移學習的起點。通過遷移學習,我們不需要太多的數(shù)據(jù)!這個想法是從一個以前在數(shù)百萬圖像上訓練過的網(wǎng)絡開始的,比如在ImageNet上預訓練的ResNet。然后,我們將通過僅重新訓練最后幾個層并使其他層獨立來微調(diào)ResNet模型。那樣的話,我們正在將ResNet從數(shù)百萬圖像中學到的信息(圖像特征)進行微調(diào),以便我們可以將它應用于不同的任務。這是可能的,因為跨域的圖像的特征信息通常非常相似,但是這些特征的分析可以根據(jù)應用而不同。

一個基本的遷移學習通道

5 - 快速簡單的數(shù)據(jù)增強,以提高性能

我們現(xiàn)在說過幾次:更多的數(shù)據(jù)=更好的表現(xiàn)。除了遷移學習之外,另一種快速而簡單的方法來提高模型的性能,即數(shù)據(jù)增強。數(shù)據(jù)增強涉及通過在使用原始類別標簽的同時通過改變數(shù)據(jù)集中的一些原始圖像來生成合成訓練示例。例如,圖像數(shù)據(jù)增強的常見方式包括:

· 水平和垂直旋轉或翻轉圖像

· 改變圖像的亮度和顏色

· 隨機模糊圖像

· 隨機從圖像裁剪補丁

基本上,你可以進行任何改變,改變圖像的外觀,但不是整體的內(nèi)容,即你可以制作一個藍色的狗的照片,但你仍然應該能夠清楚地看到,照片上是一個狗。

數(shù)據(jù)裂變!

6 - 訓練模型的合奏!

機器學習中,集合訓練多個模型,然后將它們組合在一起以獲得更高的性能。因此,這個想法是在相同的數(shù)據(jù)集上訓練同一個任務上的多個深度網(wǎng)絡模型。模型的結果然后可以通過投票方案來進行組合,即具有最高票數(shù)的勝出。

為了確保所有模型不同,可以使用隨機權重初始化和隨機數(shù)據(jù)增強。眾所周知,由于使用了多個模型,因此集合通常比單個模型精確得多,因此從不同角度接近任務。在現(xiàn)實世界的應用中,尤其是挑戰(zhàn)或競爭中,幾乎所有頂級模型都使用合奏。

合奏模型

7 - 加快修剪

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

深度神經(jīng)網(wǎng)絡修剪的步驟

這個想法是,在網(wǎng)絡中的許多參數(shù)中,有些是多余的,對輸出沒有太大貢獻。如果您可以根據(jù)對網(wǎng)絡的貢獻排列網(wǎng)絡中的神經(jīng)元,則可以從網(wǎng)絡中移除低排名的神經(jīng)元,從而形成更小,更快的網(wǎng)絡??梢愿鶕?jù)神經(jīng)元權重的L1 / L2均值,平均激活,一些驗證集上神經(jīng)元不為零的次數(shù)以及其他創(chuàng)造性方法來進行排序。獲得更快/更小的網(wǎng)絡對于在移動設備上運行深度學習網(wǎng)絡非常重要。

修剪網(wǎng)絡的最基本的方法是簡單地放棄某些卷積濾波器。在近期的一篇文章中,這樣做是相當成功的。這項工作中的神經(jīng)元排名相當簡單:它是每個濾波器權重的L1范數(shù)。在每個修剪迭代中,他們對所有的過濾器進行排序,在全部層中修剪m個排名最低的過濾器,重新訓練和重復!

在近期的另一篇分析剩余網(wǎng)絡結構的文章中提出了修剪過濾器的一個關鍵洞察。作者指出,在刪除層的時候,具有剩余快捷連接的網(wǎng)絡(例如ResNets)與沒有使用任何快捷連接的網(wǎng)絡(如VGG或AlexNet)相比,保留更加良好的精度并且穩(wěn)健得多。這個有趣的發(fā)現(xiàn)具有重要的實際意義,因為它告訴我們在修剪網(wǎng)絡進行部署和應用時,網(wǎng)絡設計是至關重要的(使用ResNets?。?。所以使用最新最好的方法總是很好的!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:7個實用的深度學習技巧

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解深度學習、神經(jīng)網(wǎng)絡與卷積神經(jīng)網(wǎng)絡的應用

    在如今的網(wǎng)絡時代,錯綜復雜的大數(shù)據(jù)和網(wǎng)絡環(huán)境,傳統(tǒng)信息處理理論、人工智能與人工神經(jīng)網(wǎng)絡都面臨巨大的挑戰(zhàn)。近些年,深度學習逐漸走進人們的視線
    的頭像 發(fā)表于 01-11 10:51 ?1758次閱讀
    詳解<b class='flag-5'>深度</b>學習、<b class='flag-5'>神經(jīng)網(wǎng)絡</b>與卷積<b class='flag-5'>神經(jīng)網(wǎng)絡</b>的應用

    神經(jīng)網(wǎng)絡解決方案自動駕駛成為現(xiàn)實

    制造業(yè)而言,深度學習神經(jīng)網(wǎng)絡開辟了令人興奮的研究途徑。為了實現(xiàn)從諸如高速公路全程自動駕駛儀的短時輔助模式到專職無人駕駛旅行的自動駕駛,汽車制造業(yè)一直在尋求響應速度更快、識別準確度更高的方法,而
    發(fā)表于 12-21 17:11

    從AlexNet到MobileNet,帶你入門深度神經(jīng)網(wǎng)絡

    俊楠分享了典型模式-深度神經(jīng)網(wǎng)絡入門。本文詳細介紹了關于深度神經(jīng)網(wǎng)絡的發(fā)展歷程,并詳細介紹了各個階段模型的結構及特點。直播回顧請點擊以下是精彩視頻內(nèi)容整理:問題引出學習知識從問題引出入
    發(fā)表于 05-08 15:57

    神經(jīng)網(wǎng)絡資料

    基于深度學習的神經(jīng)網(wǎng)絡算法
    發(fā)表于 05-16 17:25

    卷積神經(jīng)網(wǎng)絡如何使用

    卷積神經(jīng)網(wǎng)絡(CNN)究竟是什么,鑒于神經(jīng)網(wǎng)絡在工程上經(jīng)歷了曲折的歷史,為什么還會在意它呢? 對于這些非常中肯的問題,我們似乎可以給出相對簡明的答案。
    發(fā)表于 07-17 07:21

    解析深度學習:卷積神經(jīng)網(wǎng)絡原理與視覺實踐

    解析深度學習:卷積神經(jīng)網(wǎng)絡原理與視覺實踐
    發(fā)表于 06-14 22:21

    如何IIoT在工廠車間之外發(fā)揮大作用

    IIoT在工廠車間之外發(fā)揮大作用
    發(fā)表于 11-25 06:49

    深度神經(jīng)網(wǎng)絡是什么

    多層感知機 深度神經(jīng)網(wǎng)絡in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong. 與許忠傳,林敏濤和華佳勇合作
    發(fā)表于 07-12 06:35

    卷積神經(jīng)網(wǎng)絡模型發(fā)展及應用

    卷積神經(jīng)網(wǎng)絡模型發(fā)展及應用轉載****地址:http://fcst.ceaj.org/CN/abstract/abstract2521.shtml深度學習是機器學習和人工智能研究的最新趨勢,作為一
    發(fā)表于 08-02 10:39

    【人工神經(jīng)網(wǎng)絡基礎】為什么神經(jīng)網(wǎng)絡選擇了“深度”?

    由 Demi 于 星期四, 2018-09-06 09:33 發(fā)表 現(xiàn)在提到“神經(jīng)網(wǎng)絡”和“深度神經(jīng)網(wǎng)絡”,會覺得兩者沒有什么區(qū)別,神經(jīng)網(wǎng)絡還能不是“
    發(fā)表于 09-06 20:48 ?660次閱讀

    什么是神經(jīng)網(wǎng)絡?什么是卷積神經(jīng)網(wǎng)絡?

    在介紹卷積神經(jīng)網(wǎng)絡之前,我們先回顧一下神經(jīng)網(wǎng)絡的基本知識。就目前而言,神經(jīng)網(wǎng)絡深度學習算法的核心,我們所熟知的很多深度學習算法的背后其實都
    的頭像 發(fā)表于 02-23 09:14 ?3221次閱讀

    最流行神經(jīng)網(wǎng)絡

    在本文中,我們將了解深度神經(jīng)網(wǎng)絡的基礎知識和三最流行神經(jīng)網(wǎng)絡:多層神經(jīng)網(wǎng)絡(MLP),卷積神經(jīng)網(wǎng)絡
    發(fā)表于 05-15 14:19 ?1334次閱讀
    三<b class='flag-5'>個</b>最流行<b class='flag-5'>神經(jīng)網(wǎng)絡</b>

    卷積神經(jīng)網(wǎng)絡深度神經(jīng)網(wǎng)絡的優(yōu)缺點 卷積神經(jīng)網(wǎng)絡深度神經(jīng)網(wǎng)絡的區(qū)別

    深度神經(jīng)網(wǎng)絡是一種基于神經(jīng)網(wǎng)絡的機器學習算法,其主要特點是由多層神經(jīng)元構成,可以根據(jù)數(shù)據(jù)自動調(diào)整神經(jīng)元之間的權重,從而實現(xiàn)對大規(guī)模數(shù)據(jù)進行預
    發(fā)表于 08-21 17:07 ?3785次閱讀

    深度神經(jīng)網(wǎng)絡模型有哪些

    深度神經(jīng)網(wǎng)絡(Deep Neural Networks,DNNs)是一類具有多個隱藏層的神經(jīng)網(wǎng)絡,它們在許多領域取得了顯著的成功,如計算機視覺、自然語言處理、語音識別等。以下是一些常見的深度
    的頭像 發(fā)表于 07-02 10:00 ?884次閱讀

    深度神經(jīng)網(wǎng)絡與基本神經(jīng)網(wǎng)絡的區(qū)別

    在探討深度神經(jīng)網(wǎng)絡(Deep Neural Networks, DNNs)與基本神經(jīng)網(wǎng)絡(通常指傳統(tǒng)神經(jīng)網(wǎng)絡或前向神經(jīng)網(wǎng)絡)的區(qū)別時,我們需
    的頭像 發(fā)表于 07-04 13:20 ?499次閱讀