您的位置:首頁 > 熱點(diǎn) >

深度學(xué)習(xí)到底是啥,看完下文你就懂了

深度學(xué)習(xí)概述

o 受限玻爾茲曼機(jī)和深度信念網(wǎng)絡(luò)

o Dropout

o 處理不平衡的技巧

o SMOTE :合成少數(shù)過采樣技術(shù)

o 神經(jīng)網(wǎng)絡(luò)中對(duì)成本敏感的學(xué)習(xí)

深度學(xué)習(xí)概述

在 2006 年之前,訓(xùn)練深度監(jiān)督前饋神經(jīng)網(wǎng)絡(luò)總是失敗的,其主要原因都是導(dǎo)致過度擬合,即訓(xùn)練錯(cuò)誤減少,而驗(yàn)證錯(cuò)誤增加。

深度網(wǎng)絡(luò)通常意味著具有多于 1 個(gè)隱藏層的人工神經(jīng)網(wǎng)絡(luò)。訓(xùn)練深層隱藏層需要更多的計(jì)算能力,具有更深的深度似乎更好,因?yàn)橹庇X神經(jīng)元可以使用下面圖層中的神經(jīng)元完成的工作,從而導(dǎo)致數(shù)據(jù)的分布式表示。

Bengio 認(rèn)為隱藏層中的神經(jīng)元可被看作是其下面的層中的神經(jīng)元所學(xué)到的特征檢測器( feature detector )。這個(gè)結(jié)果處于作為一個(gè)神經(jīng)元子集的更好泛化( generalization )中,而這個(gè)神經(jīng)元子集可從輸入空間中的特定區(qū)域的數(shù)據(jù)上進(jìn)行學(xué)習(xí)。

而且,由于相同功能所需的計(jì)算單元越少,效率就越高,所以更深的架構(gòu)可以更高效。分布式背后的核心思想是共享統(tǒng)計(jì)優(yōu)勢,將不同架構(gòu)的組件重用于不同的目的。

深度神經(jīng)架構(gòu)是由多個(gè)利用非線性操作的層組成的,例如在帶有許多隱藏層的神經(jīng)網(wǎng)絡(luò)中。數(shù)據(jù)集中常常存在各種變化的因素,例如數(shù)據(jù)各自的性質(zhì)經(jīng)??赡塥?dú)立地變化。

深度學(xué)習(xí)算法可以獲取解釋數(shù)據(jù)中的統(tǒng)計(jì)變化,以及它們?nèi)绾蜗嗷プ饔靡陨晌覀冇^察到的數(shù)據(jù)類型。較低層次的抽象更直接地與特定的觀察聯(lián)系在一起,另一方面,更高層次的更抽象,因?yàn)樗麄兣c感知數(shù)據(jù)的聯(lián)系更加偏遠(yuǎn)。

深度架構(gòu)學(xué)習(xí)的重點(diǎn)是自動(dòng)發(fā)現(xiàn)從低級(jí)特征到更高級(jí)別概念的抽象。算法可以在不需要手動(dòng)定義必要抽象的情況下啟用發(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ò)中是一個(gè)嚴(yán)重的問題。過度擬合是指當(dāng)驗(yàn)證錯(cuò)誤開始增加而訓(xùn)練錯(cuò)誤下降時(shí)。 Dropout 是解決這個(gè)問題的正則化技術(shù)之一,這將在后面討論。

今天,深度學(xué)習(xí)技術(shù)取得成功的最重要因素之一是計(jì)算能力的提高。圖形處理單元( GPU )和云計(jì)算對(duì)于將深度學(xué)習(xí)應(yīng)用于許多問題至關(guān)重要。

云計(jì)算允許計(jì)算機(jī)集群和按需處理,通過并行訓(xùn)練神經(jīng)網(wǎng)絡(luò)來幫助減少計(jì)算時(shí)間。另一方面, GPU 是用于高性能數(shù)學(xué)計(jì)算的專用芯片,加速了矩陣的計(jì)算。

在 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è)計(jì)靈感來自于統(tǒng)計(jì)力學(xué),它可以模擬給定數(shù)據(jù)集的基本分布的基于能量的概率,從中可以得出條件分布。

玻爾茲曼機(jī)是隨機(jī)處理可見單元和隱藏單元的雙向連接網(wǎng)絡(luò)。原始數(shù)據(jù)對(duì)應(yīng)于 ' 可見 ' 神經(jīng)元和樣本到觀察狀態(tài),而特征檢測器對(duì)應(yīng) ' 隱藏 ' 神經(jīng)元。在波爾茲曼機(jī)中,可見神經(jīng)元為網(wǎng)絡(luò)和其運(yùn)行環(huán)境提供輸入。訓(xùn)練過程中,可見神經(jīng)元被鉗制(設(shè)置成定義值,由訓(xùn)練數(shù)據(jù)確定)。另一方面,隱藏的神經(jīng)元可以自由操作。

然而,玻爾茲曼機(jī)因?yàn)槠溥B通性而非常難以訓(xùn)練。一個(gè) RBM 限制了連通性從而使得學(xué)習(xí)變得簡單。在組成二分圖( bipartite graph )的單層中,隱藏單元沒有連接。它的優(yōu)勢是隱藏單位可以獨(dú)立更新,并且與給定的可見狀態(tài)平行。

這些網(wǎng)絡(luò)由確定隱藏 / 可見狀態(tài)概率的能量函數(shù)控制。隱藏 / 可見單位的每個(gè)可能的連接結(jié)構(gòu)( joint configurations )都有一個(gè)由權(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ù)。第二個(gè) RBM 層的學(xué)習(xí)過程可以看作是學(xué)習(xí)特征的特征 。 每次當(dāng)一個(gè)新的層被添加到深度信念網(wǎng)絡(luò)中時(shí),原始訓(xùn)練數(shù)據(jù)的對(duì)數(shù)概率上的可變的更低的界限就會(huì)獲得提升。

上圖顯示了 RBM 將其數(shù)據(jù)分布轉(zhuǎn)換為隱藏單元的后驗(yà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)所有層。

對(duì)于 KDD Cup 1999 的 IDS 數(shù)據(jù),使用多模態(tài)( Bernoulli-Gaussian ) RBM 是不錯(cuò)的選擇,因?yàn)?KDD Cup 1999 由混合數(shù)據(jù)類型組成,特別是連續(xù)和分類。在多模 RBM 中是使用兩個(gè)不同的通道輸入層,一個(gè)是用于連續(xù)特征的高斯輸入單元,另一個(gè)是使用二進(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ù),其包括通過在每一個(gè)訓(xùn)練迭代上隨機(jī)關(guān)掉一部分神經(jīng)元,而是在測試時(shí)間使用整個(gè)網(wǎng)絡(luò)(權(quán)重按比例縮小),從而防止特征檢測器的共適應(yīng)。

Dropout 通過等同于訓(xùn)練一個(gè)共享權(quán)重的指數(shù)模型減少過擬合。對(duì)于給定的訓(xùn)練迭代,存在不同 dropout 配置的不同指數(shù),所以幾乎可以肯定每次訓(xùn)練出的模型都不一樣。在測試階段,使用了所有模型的平均值,作為強(qiáng)大的總體方法。

在上圖中, dropout 隨機(jī)舍棄神經(jīng)網(wǎng)絡(luò)層之間的連接

在上圖中,連接被丟棄的概率,同時(shí)在訓(xùn)練時(shí)間中權(quán)重按比例縮小到 pw

在機(jī)器學(xué)習(xí)競賽中,平均很多模型通常是許多機(jī)器學(xué)習(xí)競賽獲勝者的關(guān)鍵,使用許多不同類型的模型,然后在測試時(shí)間將其結(jié)合起來進(jìn)行預(yù)測。

隨機(jī)森林是一個(gè)非常強(qiáng)大的 bagging 算法,它是通過對(duì)許多決策樹進(jìn)行平均而創(chuàng)建的,給它們提供了不同的訓(xùn)練樣本集和替換。眾所周知,決策樹很容易適應(yīng)數(shù)據(jù)并且在測試時(shí)間快速,因此通過給予不同的訓(xùn)練集合來平均不同的單獨(dú)樹木是可以承受的。

然而,對(duì)深度神經(jīng)網(wǎng)絡(luò)使用相同的方法,在計(jì)算上是非常昂貴。訓(xùn)練單獨(dú)的深度神經(jīng)網(wǎng)絡(luò)和訓(xùn)練多個(gè)深度神經(jīng)網(wǎng)絡(luò)計(jì)算成本已經(jīng)很高了,然后平均似乎是不切實(shí)際的。此外,我們需要的是在測試有效的單個(gè)網(wǎng)絡(luò),而不是有大量的大型神經(jīng)網(wǎng)絡(luò)。

Dropout 是平均許多大型神經(jīng)網(wǎng)絡(luò)的有效方法。每次訓(xùn)練模型時(shí),隱藏單元都可以省略。因此,在測試時(shí)我們應(yīng)該使用權(quán)重減半的“平均網(wǎng)絡(luò)”模型。平均網(wǎng)絡(luò)等同于將  所有可能網(wǎng)絡(luò)預(yù)測的標(biāo)簽上概率分布的幾何平均值與單個(gè)隱藏的單位層和 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 %的概率。這里的概念和降噪自動(dòng)編碼器發(fā)展出的概念相同。在此方法中,一些輸入會(huì)被遺漏。這會(huì)對(duì)準(zhǔn)確性造成傷害,但也能改善泛化能力,其方式類似于在訓(xùn)練時(shí)將噪聲添加到數(shù)據(jù)集中。

在 2013 年出現(xiàn)了 Dropout 的一種變體,稱為 Drop connect 。它不再是以特定的概率權(quán)重舍棄隱藏單位,而是以一定的概率隨機(jī)舍棄。實(shí)驗(yàn)結(jié)果已經(jīng)表明,在 MNIST 數(shù)據(jù)集上 Drop connect 網(wǎng)絡(luò)比的 dropout 網(wǎng)絡(luò)表現(xiàn)的更好。

處理類別失衡的技巧

當(dāng)一個(gè)類別(少數(shù)類)相比于其他類別(多數(shù)類)明顯代表性不足的時(shí)候就會(huì)產(chǎn)生類別失衡問題。這個(gè)難題有著現(xiàn)實(shí)意義,會(huì)對(duì)誤分類少數(shù)類造成極高的代價(jià),比如檢測欺詐或入侵這樣的異?;顒?dòng)。這里有多種技術(shù)可以處理類別失衡難題,如下面解釋的這一種:

SMOTE :合成少數(shù)過采樣技術(shù)

解決類失衡問題的一種廣泛使用的方法是對(duì)數(shù)據(jù)集進(jìn)行重采樣。抽樣方法涉及通過調(diào)整少數(shù)群體和多數(shù)群體的先驗(yàn)分布來預(yù)處理和平衡訓(xùn)練數(shù)據(jù)集。 SMOTE 是一種過抽樣的方法,其中通過創(chuàng)建“合成”示例而不是通過對(duì)替換進(jìn)過行采樣來對(duì)少數(shù)類別進(jìn)行過采樣。

已經(jīng)有人提出說通過替換進(jìn)行的少數(shù)類過采樣不能顯著改進(jìn)結(jié)果,不如說它趨于過擬合少數(shù)類的分類。相反, SMOTE 算法在“特征空間”而不是“數(shù)據(jù)空間”中運(yùn)行。它通過對(duì)少數(shù)類別進(jìn)行過度抽樣來創(chuàng)建合成樣本,從而更好地推廣。

這個(gè)想法的靈感來自于通過對(duì)真實(shí)數(shù)據(jù)進(jìn)行操作來創(chuàng)建額外的訓(xùn)練數(shù)據(jù),以便有更多數(shù)據(jù)有助于推廣預(yù)測。

在此算法中第一個(gè)最近鄰( neighbours )是為了少數(shù)類計(jì)算的。然后,就可以以下列方式計(jì)算少數(shù)類的合成特征:選擇最鄰近的一個(gè)隨機(jī)數(shù)字,然后使用這一數(shù)字與原始少數(shù)類數(shù)據(jù)點(diǎn)的距離。

該距離乘以 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ò)的三種成本敏感的方法。

在測試未見過的示例時(shí),將該類的先驗(yàn)概率合并到神經(jīng)網(wǎng)絡(luò)的輸出層中:

根據(jù)成本調(diào)整學(xué)習(xí)率。應(yīng)將更高的學(xué)習(xí)率分配給具有高誤分類成本的樣本,從而對(duì)這些例子的權(quán)重變化產(chǎn)生更大的影響:

修改均方誤差函數(shù)。結(jié)果是,反向傳播進(jìn)行的學(xué)習(xí)將最小化誤分類成本。新的誤差函數(shù)是:

其成本因子是 K[i , j] 。

這個(gè)新的誤差函數(shù)產(chǎn)生一個(gè)新的增量規(guī)則,用于更新網(wǎng)絡(luò)的權(quán)重:

其中第一個(gè)方程表示輸出神經(jīng)元的誤差函數(shù),第二個(gè)方程表示隱層神經(jīng)元的誤差函數(shù)。

標(biāo)簽: 深度學(xué)習(xí)

相關(guān)閱讀