成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能 正文
    發私信給大牛講堂
    發送

    0

    神經網絡算法Batch Normalization的分析與展望 | 大牛講堂

    本文作者: 大牛講堂 2016-11-16 15:41
    導語:地平線機器人技術資深算法研究員羅恒老師,為大家分析Batch Normalization背后的動機和原理,以及后續的發展。

    雷鋒網按:作者羅恒,地平線機器人技術資深算法研究員。2011年博士畢業于上海交通大學,后隨Yoshua Bengio從事博士后研究,2014年加入百度深度學習實驗室,參與深度學習在搜索中應用、PaddlePaddle研發等工作。2016年加入地平線機器人公司,負責深度學習模型壓縮與加速。

     神經網絡算法Batch Normalization的分析與展望 | 大牛講堂

    訓練更深的神經網絡近年來一直是深度學習領域的重要趨勢之一,2015年初Google提出的Batch Normalization 算法使得深層神經網絡訓練更加穩定,加快了收斂的速度,甚至同時起到了正則化的作用。本期羅老師將為大家分析Batch Normalization背后的動機和原理,以及后續的發展。

    1.引言

    現在正是神經網絡的第三次研究的熱潮,與之前兩次不同,這次神經網絡(深度學習)在很多實際問題上取得了巨大的成功,吸引了越來越多的人投身其中。剛開始接觸神經網絡的同學們,往往發現無從下手,有很多理論的文章,但是似乎對實際用處不大。談論最多的往往是各種各樣的tricks。

    Batch Normalization [1] 是近年來最火爆的tricks之一,幾乎成了前向神經網絡的標配。在我看來,BN主要做的比較好的是在恰當的地方做標準化(Normalization),在矩陣乘之后,在激活之前;BN的參數神經網絡算法Batch Normalization的分析與展望 | 大牛講堂神經網絡算法Batch Normalization的分析與展望 | 大牛講堂使得輸出仍舊保持一定的靈活性;為什么這兩方面比較重要下面我會做些分析。最后我會簡單討論一些把BN應用到RNN的工作。

    2. 升降桌和中心極限定理

    在開始之前先來個廣告,地平線機器人最近搬家了,我發現所有的桌子都換成了電動升降桌,如下圖

     神經網絡算法Batch Normalization的分析與展望 | 大牛講堂

    前面的數字是桌面的高度,精確到毫米,那兩個三角可以調節升還是降,但是經常調完了之后出現“78.3”、“77.9”之類的數字,而我更喜歡整數“78”,我最常用的策略就是當接近78的時候,交替地(為了對符號均勻采樣)快速地按(力爭每次按擊獨立)上升、下降,很快數字就會停到了78。這是因為按照中心極限定理,我壓了一堆均值接近0的隨機數(+0.1, -0.2, +0.3之類的),那么這些隨機數的累加和(桌子的最終高度)會服從正態分布,我會很大概率見到0,也就是整數的高度。這里也就引出了今天介紹Batch Normalization的一個角度,一些隨機數的累加和很可能服從正態分布(Normal distribution),中心極限定理。

    3. 神經網絡訓練困難的一個例子

    廣告結束,言歸正傳。神經網絡很多年了,一個很大的困難在于比較難訓練。比較難訓練的一個可能原因在于,神經網絡高度冗余,同一個函數神經網絡算法Batch Normalization的分析與展望 | 大牛講堂我們可以找到很多很多參數不同的網絡來確切的等價于這個函數,而這些不同參數的網絡有的優化起來很容易,有的則非常困難。比如這樣一個函數,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂(這是個線性函數,里面沒有非線性變換,主要是為了簡單。不過當我們用ReLU作為激活函數,當都是正的,當輸入也是正的,下面的分析也都可以保持正確),我們發現,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂神經網絡算法Batch Normalization的分析與展望 | 大牛講堂表達的函數完全一樣,但是當我們做sgd的時候后者的優化會變得十分困難。假如些X=1,損失函數傳來的梯度是神經網絡算法Batch Normalization的分析與展望 | 大牛講堂(損失函數希望網絡能輸出個小的y),對于第二組參數代表的網絡求得的梯度為神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,如果拿這個去更新第二組參數,那么數值小的參數改變巨大,大的參數則幾乎不變,訓練過程將會變得非常不穩定。

    4. BN的動機和成功的原因

    訓練神經網絡,通常是用反向傳播算法(BP)+隨機梯度下降(SGD),具體到一個具體的第L層連接神經元i和神經元j的參數神經網絡算法Batch Normalization的分析與展望 | 大牛講堂的更新就是神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,通常我們會希望這個更新比較穩定。因此,首先有很多的工作在于選擇自適應的學習率神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,對于上面的例子如果我們能夠找到非常適合的各個參數大小不同的學習率,訓練過程依舊可以變得很穩定;其次,也有些tricks可以看做穩定從網絡上層回傳的錯誤神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,比如隨機shuffle訓練數據,當樣本不均衡時做些采樣;第三類工作則是穩定神經網絡算法Batch Normalization的分析與展望 | 大牛講堂(其中神經網絡算法Batch Normalization的分析與展望 | 大牛講堂神經網絡算法Batch Normalization的分析與展望 | 大牛講堂是某個非線性函數)。之前有過工作直接對神經網絡算法Batch Normalization的分析與展望 | 大牛講堂來標準化,效果有限。BN的結果之所以更好,可能作對了兩個地方,第一,正像我們之前講的,一堆隨機數的和(神經網絡算法Batch Normalization的分析與展望 | 大牛講堂)更接近一個正態分布,在這個和上來做標準化更加容易使得神經網絡算法Batch Normalization的分析與展望 | 大牛講堂通過非線性神經網絡算法Batch Normalization的分析與展望 | 大牛講堂之后依然保持穩定,對于使用sigmoid非線性的時候,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂對于一個mini batch而言大概接近68%的值在[0.27 0.73]之間,95%的值在[0.12 0.88]之間,這當然很好,基本都在sigmoid函數的線性部分,不會出現飽和的情況(這里的梯度不會接近0),這樣的好處就是訓練在一開始可以變得很快,如下圖。但是問題在于假如神經網絡算法Batch Normalization的分析與展望 | 大牛講堂真的始終是接正態分布,那么這些神經元就很難達到它的飽和區域。

     神經網絡算法Batch Normalization的分析與展望 | 大牛講堂

    BN的作者引入的神經網絡算法Batch Normalization的分析與展望 | 大牛講堂可能是為了解決這個問題,但是我覺得可能很難,從神經網絡算法Batch Normalization的分析與展望 | 大牛講堂的梯度神經網絡算法Batch Normalization的分析與展望 | 大牛講堂可以看出,這個梯度可能會在一個mini batch內相互抵消,從而變得很小(有興趣的同學可以做實驗看看是不是會比較小)。當然也可能通過在開始初始化的時候把直接設成比較適合的值,不過這就是另一個問題了。從上圖也可以看出,似乎模型的在MNIST上也是underfitting,是否是上面說的原因呢?

    不過BN的設計的背景本身就是為了很深的網絡+ReLU這類激活函數。換句話說是如何使得深層ReLU網絡在較大學習率的情況下訓練保持穩定。那么我們在ReLU的情況下繼續討論,假設神經網絡算法Batch Normalization的分析與展望 | 大牛講堂來自正態分布,標準化之后(0均值1方差),那么總會有一半左右的數據通過ReLU之后為0,也就是說當前這個神經元對于后續的計算不在起作用了(但是還是會有關于這些樣本的梯度傳回)。BN的作者引入的神經網絡算法Batch Normalization的分析與展望 | 大牛講堂可能是為了解決這個問題,從神經網絡算法Batch Normalization的分析與展望 | 大牛講堂的梯度神經網絡算法Batch Normalization的分析與展望 | 大牛講堂可以看出,如果有更多的錯誤傳來,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂則會變小,從而允許更多的樣本向上傳遞非零的信號。在訓練過程中把神經元的平均的非零可視化出來可能也會比較有意思。從這里的分析,也可以看出來,BN網絡相對而言更加需要全局的徹底的隨機shuffle,如果沒有徹底的shuffle,幾條樣本總是出現在同一個mini batch中,那么很可能有些樣本對于在經過標準化之后,在很多神經元的輸出總是零,從而難以將信號傳遞到頂層。這可能就是為什么[1]提到增加了shuffle之后,結果在驗證集上有所變好。同時這也可能為什么當使用了BN+隨機shuffle之后dropout的作用在下降的一個原因,因為數據隨機的組合,利用mini batch統計量標準化之后,對于特定樣本的特定神經元可能隨機地為0,那么和dropout的機制有類似的地方。但是如果使用很大的mini batch又會如何呢?

    除了上面提到的在適合的地方做標準化、使用神經網絡算法Batch Normalization的分析與展望 | 大牛講堂神經網絡算法Batch Normalization的分析與展望 | 大牛講堂保持靈活性之外,BN把均值和方差的計算也看作整個運算的一部分(參與梯度的計算),從而避免了反向過程中梯度試圖改變均值和方差,然而前向過程的BN層又會取消梯度的這些企圖。

    BN取得了很大的成功,同時也暗示了后來的研究方向:首先,梯度消失和爆炸在RNN中更為常見,如何應用BN到RNN;其次,如何克服BN對mini batch的大小敏感;第三如何統一訓練和測試過程等等。

    5. 應用BN到RNN的一些工作

    BN之后,很快就開始有一些工作嘗試在RNN中加入BN。首先我們來看RNN,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,其中的激活函數常用的tanh。在[2]中先嘗試了直接加入BN,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,結果不好,即使是在訓練集也會略差(直接加入BN后模型的優化、擬合都出了問題)。[2]又改為神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,overfitting(訓練集好,驗證集差)。我的理解在于神經網絡算法Batch Normalization的分析與展望 | 大牛講堂神經網絡算法Batch Normalization的分析與展望 | 大牛講堂可能是很不同的正態分布,他們求和之后再做標準化,可能會有害處。[3]中進一步做了如下調整,神經網絡算法Batch Normalization的分析與展望 | 大牛講堂,這樣將兩個不同的正態分布分別標準化再相加就合理多了。同時[3]中還有兩個tricks,第一,不再初始化為1而是初始化為比較小的數,如0.1。我估計這個可能和LSTM中大量的sigmoid和tanh有關(有興趣的同學可以自己分析看看);第二,不同的時間步t各自統計自己的mean和std,這個可能對于之前overfitting的一個回應,就是說工作[2]中overfitting的原因在于訓練的時候用來做標準化的統計量(每層每個mini batch計算得到)和測試的過程中使用的統計量(使用訓練中各層共享的、不斷地做moving avearge的統計量)顯著不同。

    另外一個在RNN中做Normalization比較重要的工作是[4]。Layer Normalization與BN的機制似乎不太相同,這里不展開分析了。LN除了可以作用在RNN之外,也可以用于前向全連接的網絡,論文也也給出了比較試驗,如下圖,

    神經網絡算法Batch Normalization的分析與展望 | 大牛講堂


    從右邊的圖可以看出太小的mini batch對于BN無論是在訓練的過程和測試過程中使用訓練過程統計的統計量都造成了危害。從左邊的圖則可以看出,由于LN是對每條樣本做標準化從而失去了上面討論的BN帶來的正則化效果。

    參考文獻

    [1] Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. ICML, 2015.

    [2] Ce ?sar Laurent, Gabriel Pereyra, Phile ?mon Brakel, Ying Zhang, and Yoshua Bengio. Batch normalized recurrent neural networks. arXiv preprint arXiv:1510.01378, 2015.

    [3] Tim Cooijmans, Nicolas Ballas, Ce ?sar Laurent, and Aaron Courville. Recurrent batch normalization. arXiv preprint arXiv:1603.09025, 2016.

    [4] Ba, J. L., Kiros, J. R., and Hinton, G. E. (2016). Layer normalization. arXiv preprint arXiv:1607.06450.

    END

    本周四(17日)晚19:00-19:45,羅恒博士即將參與大牛直播間線上活動,在“大牛部落”微信群中,為大家在線解答技術問題,并與大家一起展望Batch Normalization的未來。可申請加入“大牛部落”,參加線上直播。

    注:本文由大牛講堂發布雷鋒網,如需轉載請聯系原作者,并注明作者和出處,不得刪減內容。有興趣可以關注公號【地平線機器人技術】,了解最新消息。

    雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

    神經網絡算法Batch Normalization的分析與展望 | 大牛講堂

    分享:
    相關文章

    地平線機器人技術

    嵌入式人工智能全球領導者
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說