深度學(xué)習(xí)到底是啥,看完下文你就懂了
o 受限玻爾茲曼機(jī)和深度信念網(wǎng)絡(luò)
o Dropout
o 處理不平衡的技巧
o SMOTE :合成少數(shù)過采樣技術(shù)
o 神經(jīng)網(wǎng)絡(luò)中對成本敏感的學(xué)習(xí)
在 2006 年之前,訓(xùn)練深度監(jiān)督前饋神經(jīng)網(wǎng)絡(luò)總是失敗的,其主要原因都是導(dǎo)致過度擬合,即訓(xùn)練錯誤減少,而驗證錯誤增加。
深度網(wǎng)絡(luò)通常意味著具有多于 1 個隱藏層的人工神經(jīng)網(wǎng)絡(luò)。訓(xùn)練深層隱藏層需要更多的計算能力,具有更深的深度似乎更好,因為直覺神經(jīng)元可以使用下面圖層中的神經(jīng)元完成的工作,從而導(dǎo)致數(shù)據(jù)的分布式表示。
Bengio 認(rèn)為隱藏層中的神經(jīng)元可被看作是其下面的層中的神經(jīng)元所學(xué)到的特征檢測器( feature detector )。這個結(jié)果處于作為一個神經(jīng)元子集的更好泛化( generalization )中,而這個神經(jīng)元子集可從輸入空間中的特定區(qū)域的數(shù)據(jù)上進(jìn)行學(xué)習(xí)。
而且,由于相同功能所需的計算單元越少,效率就越高,所以更深的架構(gòu)可以更高效。分布式背后的核心思想是共享統(tǒng)計優(yōu)勢,將不同架構(gòu)的組件重用于不同的目的。
深度神經(jīng)架構(gòu)是由多個利用非線性操作的層組成的,例如在帶有許多隱藏層的神經(jīng)網(wǎng)絡(luò)中。數(shù)據(jù)集中常常存在各種變化的因素,例如數(shù)據(jù)各自的性質(zhì)經(jīng)??赡塥毩⒌刈兓?。
深度學(xué)習(xí)算法可以獲取解釋數(shù)據(jù)中的統(tǒng)計變化,以及它們?nèi)绾蜗嗷プ饔靡陨晌覀冇^察到的數(shù)據(jù)類型。較低層次的抽象更直接地與特定的觀察聯(lián)系在一起,另一方面,更高層次的更抽象,因為他們與感知數(shù)據(jù)的聯(lián)系更加偏遠(yuǎn)。
深度架構(gòu)學(xué)習(xí)的重點是自動發(fā)現(xiàn)從低級特征到更高級別概念的抽象。算法可以在不需要手動定義必要抽象的情況下啟用發(fā)現(xiàn)這些定義。
數(shù)據(jù)集中的訓(xùn)練樣本的多樣性必須至少與測試集中的一樣多,否則算法就不能一概而論。深度學(xué)習(xí)方法旨在學(xué)習(xí)特征層次結(jié)構(gòu),將更低層次的特征組合成更高層次的抽象。
具有大量參數(shù)的深度神經(jīng)網(wǎng)絡(luò)是非常強(qiáng)大的機(jī)器學(xué)習(xí)系統(tǒng)。但是,過度擬合在深度網(wǎng)絡(luò)中是一個嚴(yán)重的問題。過度擬合是指當(dāng)驗證錯誤開始增加而訓(xùn)練錯誤下降時。 Dropout 是解決這個問題的正則化技術(shù)之一,這將在后面討論。
今天,深度學(xué)習(xí)技術(shù)取得成功的最重要因素之一是計算能力的提高。圖形處理單元( GPU )和云計算對于將深度學(xué)習(xí)應(yīng)用于許多問題至關(guān)重要。
云計算允許計算機(jī)集群和按需處理,通過并行訓(xùn)練神經(jīng)網(wǎng)絡(luò)來幫助減少計算時間。另一方面, GPU 是用于高性能數(shù)學(xué)計算的專用芯片,加速了矩陣的計算。
在 06-07 這一年,三篇論文徹底改變了深度學(xué)習(xí)的學(xué)科。他們工作中的關(guān)鍵原則是每層都可以通過無監(jiān)督學(xué)習(xí)進(jìn)行預(yù)先訓(xùn)練,一次完成一層。最后,通過誤差反向傳播的監(jiān)督訓(xùn)練微調(diào)所有層,使得這種通過無監(jiān)督學(xué)習(xí)進(jìn)行的初始化比隨機(jī)初始化更好。
受限玻爾茲曼機(jī)和深度信念網(wǎng)絡(luò)
其中有一種無監(jiān)督算法是受限玻爾茲曼機(jī)( RBM ),可用于預(yù)訓(xùn)練深層信念網(wǎng)絡(luò)。 RBM 是波爾茲曼機(jī)的簡化版本,它的設(shè)計靈感來自于統(tǒng)計力學(xué),它可以模擬給定數(shù)據(jù)集的基本分布的基于能量的概率,從中可以得出條件分布。
玻爾茲曼機(jī)是隨機(jī)處理可見單元和隱藏單元的雙向連接網(wǎng)絡(luò)。原始數(shù)據(jù)對應(yīng)于 ' 可見 ' 神經(jīng)元和樣本到觀察狀態(tài),而特征檢測器對應(yīng) ' 隱藏 ' 神經(jīng)元。在波爾茲曼機(jī)中,可見神經(jīng)元為網(wǎng)絡(luò)和其運行環(huán)境提供輸入。訓(xùn)練過程中,可見神經(jīng)元被鉗制(設(shè)置成定義值,由訓(xùn)練數(shù)據(jù)確定)。另一方面,隱藏的神經(jīng)元可以自由操作。
然而,玻爾茲曼機(jī)因為其連通性而非常難以訓(xùn)練。一個 RBM 限制了連通性從而使得學(xué)習(xí)變得簡單。在組成二分圖( bipartite graph )的單層中,隱藏單元沒有連接。它的優(yōu)勢是隱藏單位可以獨立更新,并且與給定的可見狀態(tài)平行。
這些網(wǎng)絡(luò)由確定隱藏 / 可見狀態(tài)概率的能量函數(shù)控制。隱藏 / 可見單位的每個可能的連接結(jié)構(gòu)( joint configurations )都有一個由權(quán)重和偏差決定的 Hopfield 能量。連接結(jié)構(gòu)的能量由吉布斯采樣優(yōu)化,它可通過最小化 RBM 的最低能量函數(shù)學(xué)習(xí)參數(shù)。
在上圖中,左層代表可見層,右層代表隱藏層
在深度信念網(wǎng)絡(luò)( DBN )中, RBM 由輸入數(shù)據(jù)進(jìn)行訓(xùn)練,輸入數(shù)據(jù)具有隱藏層中隨機(jī)神經(jīng)元捕獲的輸入數(shù)據(jù)的重要特征。在第二層中,訓(xùn)練特征的激活被視為輸入數(shù)據(jù)。第二個 RBM 層的學(xué)習(xí)過程可以看作是學(xué)習(xí)特征的特征 。 每次當(dāng)一個新的層被添加到深度信念網(wǎng)絡(luò)中時,原始訓(xùn)練數(shù)據(jù)的對數(shù)概率上的可變的更低的界限就會獲得提升。
上圖顯示了 RBM 將其數(shù)據(jù)分布轉(zhuǎn)換為隱藏單元的后驗分布
隨機(jī)初始化 RBM 的權(quán)重,導(dǎo)致 p ( x )和 q ( x )的分布差異。學(xué)習(xí)期間,迭代調(diào)整權(quán)重以最小化 p ( x )和 q ( x )之間的誤差。 q ( x )是原始數(shù)據(jù)的近似值, p ( x )是原始數(shù)據(jù)。
調(diào)整來自神經(jīng)元和另一神經(jīng)元的突觸權(quán)重的規(guī)則不依賴于神經(jīng)元是可見的還是隱藏的。由 RBM 層更新的參數(shù)被用作 DBN 中的初始化,通過反向傳播的監(jiān)督訓(xùn)練來微調(diào)所有層。
對于 KDD Cup 1999 的 IDS 數(shù)據(jù),使用多模態(tài)( Bernoulli-Gaussian ) RBM 是不錯的選擇,因為 KDD Cup 1999 由混合數(shù)據(jù)類型組成,特別是連續(xù)和分類。在多模 RBM 中是使用兩個不同的通道輸入層,一個是用于連續(xù)特征的高斯輸入單元,另一個是使用二進(jìn)制特征的伯努利輸入單元層。今天我們就不進(jìn)行詳細(xì)講解。
Dropout
最近的發(fā)展是想深度網(wǎng)絡(luò)引入強(qiáng)大的正規(guī)化矩陣來減少過度擬合。在機(jī)器學(xué)習(xí)中,正則化是附加信息,通常是一種懲罰機(jī)制被引入,以懲罰導(dǎo)致過度擬合的模型的復(fù)雜性。
Dropout 是由 Hinton 引入的深度神經(jīng)網(wǎng)絡(luò)的正則化技術(shù),其包括通過在每一個訓(xùn)練迭代上隨機(jī)關(guān)掉一部分神經(jīng)元,而是在測試時間使用整個網(wǎng)絡(luò)(權(quán)重按比例縮小),從而防止特征檢測器的共適應(yīng)。
Dropout 通過等同于訓(xùn)練一個共享權(quán)重的指數(shù)模型減少過擬合。對于給定的訓(xùn)練迭代,存在不同 dropout 配置的不同指數(shù),所以幾乎可以肯定每次訓(xùn)練出的模型都不一樣。在測試階段,使用了所有模型的平均值,作為強(qiáng)大的總體方法。
在上圖中, dropout 隨機(jī)舍棄神經(jīng)網(wǎng)絡(luò)層之間的連接
在上圖中,連接被丟棄的概率,同時在訓(xùn)練時間中權(quán)重按比例縮小到 pw
在機(jī)器學(xué)習(xí)競賽中,平均很多模型通常是許多機(jī)器學(xué)習(xí)競賽獲勝者的關(guān)鍵,使用許多不同類型的模型,然后在測試時間將其結(jié)合起來進(jìn)行預(yù)測。
隨機(jī)森林是一個非常強(qiáng)大的 bagging 算法,它是通過對許多決策樹進(jìn)行平均而創(chuàng)建的,給它們提供了不同的訓(xùn)練樣本集和替換。眾所周知,決策樹很容易適應(yīng)數(shù)據(jù)并且在測試時間快速,因此通過給予不同的訓(xùn)練集合來平均不同的單獨樹木是可以承受的。
然而,對深度神經(jīng)網(wǎng)絡(luò)使用相同的方法,在計算上是非常昂貴。訓(xùn)練單獨的深度神經(jīng)網(wǎng)絡(luò)和訓(xùn)練多個深度神經(jīng)網(wǎng)絡(luò)計算成本已經(jīng)很高了,然后平均似乎是不切實際的。此外,我們需要的是在測試有效的單個網(wǎng)絡(luò),而不是有大量的大型神經(jīng)網(wǎng)絡(luò)。
Dropout 是平均許多大型神經(jīng)網(wǎng)絡(luò)的有效方法。每次訓(xùn)練模型時,隱藏單元都可以省略。因此,在測試時我們應(yīng)該使用權(quán)重減半的“平均網(wǎng)絡(luò)”模型。平均網(wǎng)絡(luò)等同于將 所有可能網(wǎng)絡(luò)預(yù)測的標(biāo)簽上概率分布的幾何平均值與單個隱藏的單位層和 softmax 輸出層。
另一種看待 Dropout 的方法是,它能夠防止特征檢測器之間的共適應(yīng)( co-adaption )。特征檢測器的共適應(yīng)意味著如果隱藏單元知道存在哪些其他隱藏單元,則可以在訓(xùn)練數(shù)據(jù)上與它們進(jìn)行協(xié)調(diào)。但是,在測試數(shù)據(jù)集上,復(fù)合協(xié)調(diào)很可能無法一概而論。
Dropout 也可以以一種較低的概率在輸入層中使用,通常為 20 %的概率。這里的概念和降噪自動編碼器發(fā)展出的概念相同。在此方法中,一些輸入會被遺漏。這會對準(zhǔn)確性造成傷害,但也能改善泛化能力,其方式類似于在訓(xùn)練時將噪聲添加到數(shù)據(jù)集中。
在 2013 年出現(xiàn)了 Dropout 的一種變體,稱為 Drop connect 。它不再是以特定的概率權(quán)重舍棄隱藏單位,而是以一定的概率隨機(jī)舍棄。實驗結(jié)果已經(jīng)表明,在 MNIST 數(shù)據(jù)集上 Drop connect 網(wǎng)絡(luò)比的 dropout 網(wǎng)絡(luò)表現(xiàn)的更好。
處理類別失衡的技巧
當(dāng)一個類別(少數(shù)類)相比于其他類別(多數(shù)類)明顯代表性不足的時候就會產(chǎn)生類別失衡問題。這個難題有著現(xiàn)實意義,會對誤分類少數(shù)類造成極高的代價,比如檢測欺詐或入侵這樣的異?;顒?。這里有多種技術(shù)可以處理類別失衡難題,如下面解釋的這一種:
SMOTE :合成少數(shù)過采樣技術(shù)
解決類失衡問題的一種廣泛使用的方法是對數(shù)據(jù)集進(jìn)行重采樣。抽樣方法涉及通過調(diào)整少數(shù)群體和多數(shù)群體的先驗分布來預(yù)處理和平衡訓(xùn)練數(shù)據(jù)集。 SMOTE 是一種過抽樣的方法,其中通過創(chuàng)建“合成”示例而不是通過對替換進(jìn)過行采樣來對少數(shù)類別進(jìn)行過采樣。
已經(jīng)有人提出說通過替換進(jìn)行的少數(shù)類過采樣不能顯著改進(jìn)結(jié)果,不如說它趨于過擬合少數(shù)類的分類。相反, SMOTE 算法在“特征空間”而不是“數(shù)據(jù)空間”中運行。它通過對少數(shù)類別進(jìn)行過度抽樣來創(chuàng)建合成樣本,從而更好地推廣。
這個想法的靈感來自于通過對真實數(shù)據(jù)進(jìn)行操作來創(chuàng)建額外的訓(xùn)練數(shù)據(jù),以便有更多數(shù)據(jù)有助于推廣預(yù)測。
在此算法中第一個最近鄰( neighbours )是為了少數(shù)類計算的。然后,就可以以下列方式計算少數(shù)類的合成特征:選擇最鄰近的一個隨機(jī)數(shù)字,然后使用這一數(shù)字與原始少數(shù)類數(shù)據(jù)點的距離。
該距離乘以 0 和 1 之間的隨機(jī)數(shù),并將結(jié)果作為附加樣本添加到原始少數(shù)類數(shù)據(jù)的特征向量,從而創(chuàng)建合成的少數(shù)類樣本。
神經(jīng)網(wǎng)絡(luò)中成本敏感的學(xué)習(xí)
成本敏感性學(xué)習(xí)似乎是解決分類問題的類不均衡問題的一種非常有效的方法。接下來我們描述特定于神經(jīng)網(wǎng)絡(luò)的三種成本敏感的方法。
在測試未見過的示例時,將該類的先驗概率合并到神經(jīng)網(wǎng)絡(luò)的輸出層中:
根據(jù)成本調(diào)整學(xué)習(xí)率。應(yīng)將更高的學(xué)習(xí)率分配給具有高誤分類成本的樣本,從而對這些例子的權(quán)重變化產(chǎn)生更大的影響:
修改均方誤差函數(shù)。結(jié)果是,反向傳播進(jìn)行的學(xué)習(xí)將最小化誤分類成本。新的誤差函數(shù)是:
其成本因子是 K[i , j] 。
這個新的誤差函數(shù)產(chǎn)生一個新的增量規(guī)則,用于更新網(wǎng)絡(luò)的權(quán)重:
其中第一個方程表示輸出神經(jīng)元的誤差函數(shù),第二個方程表示隱層神經(jīng)元的誤差函數(shù)。
評論