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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

關(guān)于Dropout、BN及數(shù)據(jù)預(yù)處理方案

電子設(shè)計 ? 來源:程序員大本營 ? 作者:datayx ? 2021-05-31 17:37 ? 次閱讀

一、隨機(jī)失活(Dropout)

具體做法:在訓(xùn)練的時候,隨機(jī)失活的實(shí)現(xiàn)方法是讓神經(jīng)元以超參數(shù)o4YBAF-cdnmAWpDBAAACU_DoSa0457.png的概率被激活或者被設(shè)置為 0。如下圖所示:

pIYBAF-cdnuAKYslAABDQ5yQB94073.jpg

Dropout 可以看作是 Bagging 的極限形式,每個模型都在當(dāng)一種情況中訓(xùn)練,同時模型的每個參數(shù)都經(jīng)過與其他模型共享參數(shù),從而高度正則化。在訓(xùn)練過程中,隨機(jī)失活也可以被認(rèn)為是對完整的神經(jīng)網(wǎng)絡(luò)抽樣出一些子集,每次基于輸入數(shù)據(jù)只更新子網(wǎng)絡(luò)的參數(shù)(然而,數(shù)量巨大的子網(wǎng)絡(luò)們并不是相互獨(dú)立的,因?yàn)樗鼈兌脊蚕韰?shù))。在測試過程中不使用隨機(jī)失活,可以理解為是對數(shù)量巨大的子網(wǎng)絡(luò)們做了模型集成(model ensemble),以此來計算出一個平均的預(yù)測。

關(guān)于 Dropout 的 Motivation:一個是類似于性別在生物進(jìn)化中的角色:物種為了生存往往會傾向于適應(yīng)這種環(huán)境,環(huán)境突變則會導(dǎo)致物種難以做出及時反應(yīng),性別的出現(xiàn)可以繁衍出適應(yīng)新環(huán)境的變種,有效的阻止過擬合,即避免環(huán)境改變時物種可能面臨的滅絕。還有一個就是正則化的思想,減少神經(jīng)元之間復(fù)雜的共適應(yīng)關(guān)系,減少權(quán)重使得網(wǎng)絡(luò)對丟失特定神經(jīng)元連接的魯棒性提高。

這里強(qiáng)烈推薦看下論文原文。雖然是英文的,但是對于更深刻的理解還是有很大幫助的!

二、圖像數(shù)據(jù)的預(yù)處理

為什么要預(yù)處理:簡單的從二維來理解,首先,圖像數(shù)據(jù)是高度相關(guān)的,假設(shè)其分布如下圖 a 所示(簡化為 2 維)。由于初始化的時候,我們的參數(shù)一般都是 0 均值的,因此開始的擬合 o4YBAF-cdn2AUm5PAAAISG9lNi8513.png,基本過原點(diǎn)附近(因?yàn)?b 接近于零),如圖 b 紅色虛線。因此,網(wǎng)絡(luò)需要經(jīng)過多次學(xué)習(xí)才能逐步達(dá)到如紫色實(shí)線的擬合,即收斂的比較慢。如果我們對輸入數(shù)據(jù)先作減均值操作,如圖 c,顯然可以加快學(xué)習(xí)。更進(jìn)一步的,我們對數(shù)據(jù)再進(jìn)行去相關(guān)操作,使得數(shù)據(jù)更加容易區(qū)分,這樣又會加快訓(xùn)練,如圖 d。

pIYBAF-cdoCAGQkwAAAU0Fjltps385.jpg

下面介紹下一些基礎(chǔ)預(yù)處理方法:

歸一化處理

均值減法(Mean subtraction):它對數(shù)據(jù)中每個獨(dú)立特征減去平均值,從幾何上可以理解為在每個維度上都將數(shù)據(jù)云的中心都遷移到原點(diǎn)。(就是每個特征數(shù)據(jù)減去其相應(yīng)特征的平均值)

歸一化(Normalization);先對數(shù)據(jù)做零中心化(zero-centered)處理,然后每個維度都除以其標(biāo)準(zhǔn)差。

pIYBAF-cdoKAHx1cAAAs6MzWcJQ190.jpg

(中間零中心化,右邊歸一化)

PCA 和白化(Whitening)

白化(Whitening):白化操作的輸入是特征基準(zhǔn)上的數(shù)據(jù),然后對每個維度除以其特征值來對數(shù)值范圍進(jìn)行歸一化。該變換的幾何解釋是:如果數(shù)據(jù)服從多變量的高斯分布,那么經(jīng)過白化后,數(shù)據(jù)的分布將會是一個均值為零,且協(xié)方差相等的矩陣

特征向量是按照特征值的大小排列的。我們可以利用這個性質(zhì)來對數(shù)據(jù)降維,只要使用前面的小部分特征向量,丟棄掉那些包含的數(shù)據(jù)沒有方差的維度。這個操作也被稱為主成分分析( Principal Component Analysis)簡稱 PCA)降維

o4YBAF-cdoSAM91NAAAqrWV9zyE177.jpg

(中間是經(jīng)過 PCA 操作的數(shù)據(jù),右邊是白化)

需要注意的是:

對比與上面的中心化,與 pca 有點(diǎn)類似,但是不同的是,pca 把數(shù)據(jù)變換到了數(shù)據(jù)協(xié)方差矩陣的基準(zhǔn)軸上(協(xié)方差矩陣變成對角陣),也就是說他是軸對稱的,但簡單的零中心化,它不是軸對稱的;還有 PCA 是一種降維的預(yù)處理,而零中心化并不是。

常見錯誤:任何預(yù)處理策略(比如數(shù)據(jù)均值)都只能在訓(xùn)練集數(shù)據(jù)上進(jìn)行計算,算法訓(xùn)練完畢后再應(yīng)用到驗(yàn)證集或者測試集上。例如,如果先計算整個數(shù)據(jù)集圖像的平均值然后每張圖片都減去平均值,最后將整個數(shù)據(jù)集分成訓(xùn)練 / 驗(yàn)證 / 測試集,那么這個做法是錯誤的。應(yīng)該怎么做呢?應(yīng)該先分成訓(xùn)練 / 驗(yàn)證 / 測試集,只是從訓(xùn)練集中求圖片平均值,然后各個集(訓(xùn)練 / 驗(yàn)證 / 測試集)中的圖像再減去這個平均值。

三、Batch Normalization

pIYBAF-cdoeAaDEsAACN5x16PK0221.png

原論文中,作者為了計算的穩(wěn)定性,加了兩個參數(shù)將數(shù)據(jù)又還原回去了,這兩個參數(shù)也是需要訓(xùn)練的。說白了,就是對每一層的數(shù)據(jù)都預(yù)處理一次。方便直觀感受,上張圖:

o4YBAF-cdomALAtFAABipDQJan0158.jpg

這個方法可以進(jìn)一步加速收斂,因此學(xué)習(xí)率可以適當(dāng)增大,加快訓(xùn)練速度;過擬合現(xiàn)象可以得倒一定程度的緩解,所以可以不用 Dropout 或用較低的 Dropout,而且可以減小 L2 正則化系數(shù),訓(xùn)練速度又再一次得到了提升。即 Batch Normalization 可以降低我們對正則化的依賴程度。

還有要注意的是,Batch Normalization 和 pca 加白化有點(diǎn)類似,結(jié)果都是可以零均值加上單位方差,可以使得數(shù)據(jù)弱相關(guān),但是在深度神經(jīng)網(wǎng)絡(luò)中,我們一般不要 pca 加白化,原因就是白化需要計算整個訓(xùn)練集的協(xié)方差矩陣、求逆等操作,計算量很大,此外,反向傳播時,白化操作不一定可導(dǎo)。最后,再次強(qiáng)烈直接看 BN 的相關(guān)論文,有很多細(xì)節(jié)值得一看!

編輯:hfy

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

    評論

    相關(guān)推薦

    機(jī)器學(xué)習(xí)為什么需要數(shù)據(jù)預(yù)處理

    數(shù)據(jù)預(yù)處理是準(zhǔn)備原始數(shù)據(jù)并使其適合機(jī)器學(xué)習(xí)模型的過程。這是創(chuàng)建機(jī)器學(xué)習(xí)模型的第一步也是關(guān)鍵的一步。 創(chuàng)建機(jī)器學(xué)習(xí)項目時,我們并不總是遇到干凈且格式化的數(shù)據(jù)。在對
    的頭像 發(fā)表于 08-24 09:20 ?1775次閱讀
    機(jī)器學(xué)習(xí)為什么需要<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>預(yù)處理</b>

    請教大家一下關(guān)于數(shù)據(jù)預(yù)處理

    一般將獲得的加速度數(shù)據(jù)得進(jìn)行數(shù)據(jù)預(yù)處理,常見的預(yù)處理方法有去掉趨勢相、還得將離散的數(shù)值積分獲得振幅。請問有做過的沒,請教一下。
    發(fā)表于 06-07 11:16

    振動信號的預(yù)處理具體是什么意思?

    振動信號的處理預(yù)處理之間有什么區(qū)別?我用labview對振動信號進(jìn)行預(yù)處理處理嗎?
    發(fā)表于 10-08 15:33

    Python數(shù)據(jù)預(yù)處理方法

    機(jī)器學(xué)習(xí)-Python實(shí)踐Day3(特征工程--數(shù)據(jù)預(yù)處理2)
    發(fā)表于 06-03 15:55

    數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理

    目錄1數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理21.1 賽題回顧21.2 數(shù)據(jù)探索性分析與異常值處理21.3 相關(guān)性分析52特征工程82.1 光伏發(fā)電領(lǐng)域特征8
    發(fā)表于 07-12 08:37

    工業(yè)蒸汽量預(yù)測的數(shù)據(jù)預(yù)處理知識有哪些

    工業(yè)蒸汽量預(yù)測的數(shù)據(jù)預(yù)處理知識有哪些?工業(yè)蒸汽量預(yù)測的特征工程有哪些?
    發(fā)表于 10-22 06:32

    C預(yù)處理與C語言基本數(shù)據(jù)類型

    嵌入式系統(tǒng)設(shè)計師學(xué)習(xí)筆記二十九:嵌入式程序設(shè)計④——C預(yù)處理預(yù)處理指令表:(編碼規(guī)范:GB/T 28169-2011)關(guān)于宏定義 #denfine 詳解可點(diǎn)擊連接查看博主的另一篇文章 預(yù)定義宏
    發(fā)表于 12-21 08:29

    C語言的編譯預(yù)處理

    在將一個C源程序轉(zhuǎn)換為可執(zhí)行程序的過程中, 編譯預(yù)處理是最初的步驟. 這一步驟是由預(yù)處理器(preprocessor)來完成的. 在源流程序被編譯器處理之前, 預(yù)處理器首先對源程序中的
    發(fā)表于 09-20 18:17 ?47次下載

    Web使用挖掘中的數(shù)據(jù)預(yù)處理模塊、實(shí)現(xiàn)方法及發(fā)展前景

    數(shù)據(jù)預(yù)處理是Web使用挖掘的第一個環(huán)節(jié)。預(yù)處理的對象是Web 日志文件。由于Web 日志文件的格式是半結(jié)構(gòu)化的,且日志中的數(shù)據(jù)不夠完整,因此需要對Web日志文件進(jìn)行
    的頭像 發(fā)表于 11-06 09:32 ?3531次閱讀
    Web使用挖掘中的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>預(yù)處理</b>模塊、實(shí)現(xiàn)方法及發(fā)展前景

    Python數(shù)據(jù)清洗和預(yù)處理入門完整指南

    凡事預(yù)則立,不預(yù)則廢,訓(xùn)練機(jī)器學(xué)習(xí)模型也是如此。數(shù)據(jù)清洗和預(yù)處理是模型訓(xùn)練之前的必要過程,否則模型可能就「廢」了。本文是一個初學(xué)者指南,將帶你領(lǐng)略如何在任意的數(shù)據(jù)集上,針對任意一個機(jī)器學(xué)習(xí)模型,完成
    的頭像 發(fā)表于 12-21 13:50 ?849次閱讀

    什么是大數(shù)據(jù)采集和預(yù)處理

    一般情況下,大數(shù)據(jù)處理的流程為:數(shù)據(jù)采集和預(yù)處理數(shù)據(jù)存儲、數(shù)據(jù)分析和數(shù)據(jù)可視化。
    的頭像 發(fā)表于 02-15 14:22 ?3832次閱讀

    PyTorch教程之數(shù)據(jù)預(yù)處理

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程之數(shù)據(jù)預(yù)處理.pdf》資料免費(fèi)下載
    發(fā)表于 06-02 14:11 ?0次下載
    PyTorch教程之<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>預(yù)處理</b>

    圖像預(yù)處理方法研究

    圖像預(yù)處理的主要目的是消除圖像中無關(guān)的信息,恢復(fù)有用的真實(shí)信息,增強(qiáng)有關(guān)信息的可檢測性、最大限度地簡化數(shù)據(jù),從而改進(jìn)特征提取、圖像分割、匹配和識別的可靠性。一般的預(yù)處理流程為:1灰度化->2幾何變換->3圖像增強(qiáng)
    發(fā)表于 09-20 09:35 ?483次閱讀

    數(shù)據(jù)預(yù)處理和特征工程的常用功能

    機(jī)器學(xué)習(xí)最基礎(chǔ)的5個流程,分別是數(shù)據(jù)獲取,數(shù)據(jù)預(yù)處理,特征工程,建模、測試和預(yù)測,上線與部署。
    的頭像 發(fā)表于 01-25 11:26 ?673次閱讀

    機(jī)器學(xué)習(xí)中的數(shù)據(jù)預(yù)處理與特征工程

    在機(jī)器學(xué)習(xí)的整個流程中,數(shù)據(jù)預(yù)處理與特征工程是兩個至關(guān)重要的步驟。它們直接決定了模型的輸入質(zhì)量,進(jìn)而影響模型的訓(xùn)練效果和泛化能力。本文將從數(shù)據(jù)預(yù)處理和特征工程的基本概念出發(fā),詳細(xì)探討這
    的頭像 發(fā)表于 07-09 15:57 ?272次閱讀