天天看點

神經網絡算法

目錄

1、神經元模型

2、感覺機與多層網絡

3、誤差逆傳播算法

4、全局最小與局部最小

5、其他神經網絡

1、rbf網絡

2、art網絡

3、som網絡

4、級聯相關

5、elman網絡

6、boltzmann機

6、深度學習

神經網絡(neural network)方面的研究很在就已出現,今天“神經網絡”已是一個相當大的、多學科交叉的學科領域。各相關學科對神經網絡的定義多種多樣,神經網絡的定義為具有适應性的簡單單元組成的廣泛并行互連的網絡,它的組織能夠模拟生物神經網絡對真實物體所作出的互動反應。我們在機器學習中談論神經網絡時指的是“神經網絡學習”,或者說,是機器學習與神經網絡這兩個學科領域的交叉部分。

神經網絡中最基本的成分是神經元(neuron)模型,即上述定義中的“簡單單元”。在生物神經網絡中,每個神經元與其他神經元相連,當它“興奮”時,就會向連接配接的神經元發送化學物質,進而改變這些神經元内的電位;如果某神經元的電位超過了一個“門檻值”(threshold),那麼它就會被激活,即“興奮”起來,向其他神經元發送化學物質。

1943年這個概念被抽象為“mp-神經元模型”。在這個模型中,神經元接受來自n個其他神經元傳遞過來的輸入信号,這些輸入信号通過帶權重的連接配接(connection)進行傳遞,神經元接收到的中輸入值與神經元的門檻值進行比較,然後通過“激活函數”(activation function)處理以産生神經元的輸出。

理想中的激活函數将輸入值映射為輸出值“0”或“1”,顯然“1”對應于神經元興奮,“0”對應于神經元抑制。然而,階躍函數具有不連續、不光滑等不太好的性質,是以實際常用sigmoid函數作為激活函數。典型的sigmiod把在較大範圍内變化的輸入值擠壓到(0,1)輸出值範圍内,是以有時也稱為“擠壓函數”(squashing function)。

把許多個這樣的神經元按一定的層次結構連接配接起來,就得到了神經網絡。事實上,從計算機科學的角度看,我們可以先不考慮神經網絡是否真的模拟了生物神經網絡,隻需将一個神經網絡視為包含了許多參數的數學模型,這個模型是若幹個函數,例如

神經網絡算法

互相(嵌套)代入而得,有效的神經網絡學習算法大多以數學證明為支撐。

感覺機(perceptron)由兩層神經元組成,輸入層接受外界輸入信号後傳遞給輸出層,輸出層是m-p神經元,亦稱“門檻值邏輯單元”(threshold logic unit)。感覺機能容易地實作邏輯與、或、非運算。注意到

神經網絡算法

,假定f是階躍函數,有

“與”

神經網絡算法

:令

神經網絡算法

,則

神經網絡算法

,僅在

神經網絡算法

時,y=1。;

“或”

神經網絡算法
神經網絡算法
神經網絡算法

,當

神經網絡算法

時,y=1或

神經網絡算法

時y=1。

“非”

神經網絡算法
神經網絡算法

神經網絡算法
神經網絡算法
神經網絡算法
神經網絡算法

時,y=0或

神經網絡算法

時y=0。

更一般地,給定訓練資料集,權重

神經網絡算法

以及門檻值

神經網絡算法

可通過學習得到,門檻值

神經網絡算法

可看作一個固定輸入為-1,0的“啞結點”所對應的權重

神經網絡算法

。這樣,權重和門檻值的學習就可統一為權重的學習。感覺機學習規則非常簡單,對訓練樣例(x,y),若目前感覺機的輸出為

神經網絡算法

,則感覺機權重将這樣調整:

神經網絡算法

                             (1)

神經網絡算法

                         (2)

其中

神經網絡算法

稱為學習率(learning rate)。從(1)可看出,若感覺機對訓練樣例(x,y)預測正确,即

神經網絡算法

,則感覺機不發生變化,否則将根據錯誤的程度進行權重調整。

需注意的是,感覺機隻有輸出層神經元進行激活函數處理,即隻擁有一層功能神經元(functional neuron),其學習能力非常有限。事實上,上述與、或、非問題都是線性可分的問題,可以證明,若兩類模式是線性可分的,即存在一個線性超平面将它們分開,則感覺機的學習過程一定會收斂(coverge)而求得的權重向量

神經網絡算法

;否則感覺機學習過程将會發生震蕩(fluctuation),w難以穩定下來,不能求得合适解,例如感覺機甚至不能解決異或這樣簡單的線性可分問題。

常見的神經網絡具有層級結構,每層神經元與下一層神經元完全互連,神經元之間不存在同層連接配接,也不存在跨層連接配接。這樣的神經網絡結構通常稱為“多層前饋網絡”(multi-layer feedward neural network),其中輸入層神經元接受外界輸入,隐藏層與輸出層神經元對信号進行加工,最終結果由輸出層神經元輸出;換言之,輸入層神經元僅是接受輸入,不進行函數處理隐層與輸出層包含功能神經元。神經網絡的學習過程就是,就是根據訓練來調整神經元之間的“連結權”以及每個功能神經元的門檻值;換言之,神經網絡“學”到的東西,蘊藏在連接配接權與門檻值中。

多層網絡的學習能力,比單層感覺機強的多。欲訓練多層網絡,簡單感覺機學習規則顯然不夠了,需要更強大的學習算法,誤差逆傳播(error backpropagation,簡稱bp)算法就是其中最傑出的代表,它是迄今為止最成功的神經網絡算法。顯示任務中使用神經網絡時,大多是在使用bp算法進行訓練。值得注意的是,bp算法不僅可用于多層前饋神經網絡,還可用于其他類型的神經網絡,例如訓練遞歸神經網絡,但通常說“bp網絡”時,一般是指用bp算法訓練的多層前饋神經網絡。

下面我們來看bp算法究竟是什麼樣。給定訓練集

神經網絡算法
神經網絡算法
神經網絡算法

,即輸入示例由d個屬性描述,輸出l維執行個體向量。為便于讨論,給定一個擁有d個輸入神經元、l個輸出神經元、q個隐藏神經神經元的多層前饋神經網絡,其中輸出層第j個神經元的門檻值用

神經網絡算法

表示,隐層第h個神經元的門檻值用

神經網絡算法

表示。輸入層第i個神經元與隐藏第h個神經元之間的連接配接權威

神經網絡算法

,隐層第h個神經元與輸出層第j個神經元之間的連接配接權為

神經網絡算法

。記隐層第h個神經元接收到的輸入為

神經網絡算法

,輸出層第j個神經元接接收到的輸入為

神經網絡算法

,其中bn為隐藏層第h個神經元輸出。假設隐層和輸出層神經元都使用sigmoid函數。對訓練例

神經網絡算法

,假定神經網絡的輸出為

神經網絡算法

,即

神經網絡算法

                 (3)

則網絡在

神經網絡算法

上的均方誤差為

神經網絡算法

          (4)

則神經網絡中有(d+l+1)q+1個參數需要确定:輸入層到隐層的

神經網絡算法

個權值,隐層到輸出層的

神經網絡算法

個權值,q個隐層神經元的門檻值、l個輸出層神經元的門檻值。bp是一個疊代學習算法,在疊代的每一輪中采用廣義的感覺機學習規則對參數進行更新估計,與(1)類似,任意參數v的更新估計式為

神經網絡算法

                    (5)

bp算法基于梯度下降(gradient descent)政策,以目标的負梯度方向對參數進行調整,對式(4)的誤差

神經網絡算法

,給定學習率

神經網絡算法

,有

神經網絡算法

                (6)

注意到

神經網絡算法

先影響到j個輸出層神經元的輸入值

神經網絡算法

,再影響到其他輸出值

神經網絡算法

,然後影響到

神經網絡算法
神經網絡算法

             (7)

根據

神經網絡算法

的定義,顯然有

神經網絡算法

                      (8)

由于sigmoid函數有一個很好的性質:

神經網絡算法

                       (9)

于是根據(4)和(3),有

神經網絡算法

                        (10)

将(10)和(8)代入(7),再代入(6)就可得bp算法中關于

神經網絡算法

的更新公式

神經網絡算法

                               (11)

類似可得

神經網絡算法

                                  (12)

神經網絡算法

                                 (13)

神經網絡算法

                                   (14)

式(13)和(14)中

神經網絡算法

                        (15)

學習率

神經網絡算法

控制着算法每一輪疊代中的更新步長,若太大則容易震蕩,太小則收斂速度又會過慢。有時為了做精細調節,可令(11)與(12)使用

神經網絡算法

,(13)和(14)使用

神經網絡算法

,兩者未必相等。

下面給出了bp算法的工作流程,對每個訓練樣例,bp算法執行以下操作:先将輸入示例提供給神經元,然後逐層将信号先傳,直到産生輸出層的結果;然後計算輸出層的誤差,再将誤差逆向傳播至隐藏層神經元,最後根據隐層神經元的誤差來對連接配接權和門檻值進行調整。該疊代過程循環進行,直到達到某些停止條件位置,例如訓練誤差已達到一個很小的值。

輸入:訓練集
神經網絡算法
,學習率
神經網絡算法
。 過程: 在(0,1)範圍内随機初始化網絡中所有連結權和門檻值 repeat      for all 
神經網絡算法
do           根據目前參數和(3)計算目前樣本的輸出
神經網絡算法
;           根據(10)計算處處層神經元的梯度項
神經網絡算法
          根據(15)計算隐藏神經元的梯度項
神經網絡算法
          根據(11)-(14)更新連接配接權
神經網絡算法
神經網絡算法
與門檻值
神經網絡算法
神經網絡算法
     end for until 達到停止條件 輸出:連接配接權與阈确定的多層前饋神經網絡

需注意的是,bp算法的目标是要最小化訓練集d上的累積誤差

神經網絡算法

                                   (16)

但我們上面介紹的“标準bp算法”每次僅針對一個訓練樣例更新連接配接權和門檻值,也就是說上述算法的更新規則是基于單個的

神經網絡算法

推導而得。如果類似地推導出基于累積誤差最小化的更新規則,就得到了累積誤差的逆傳播算法。累積bp算法與标準bp算法都很常用。一般來說,标準bp算法每次更新隻針對單個樣例,參數更新得到非常頻繁,而且對不同樣例進行更新的效果可能出現“抵消”現象。是以,為了達到同樣的累積誤差極小點标準bp算法往往需進行多次數的疊代。累積bp算法直接針對累積誤差最小化,它在讀取整個訓練集d一遍後才對參數進行更新,其參數更新的頻率低得多。但在很多任務中,累積誤差下降到一定程度之後,進一步下降會非常緩慢,這時标準bp往往會更快獲得較好的解,尤其是在訓練集d非常大時更明顯。

隻需一個包含足夠多神經元的隐層,多層前饋神經網絡就能以任意精度逼近任意複雜的連續函數。然而,如何設定隐藏層神經元的個數仍然是未決問題,實際應用中通常靠“試錯法”調整。

正是由于其強大的表示能力,bp神經網絡經常遭遇過拟合,其訓練誤差持續降低,但測試誤差卻可能上升。有兩種政策常用來緩解bp網絡的過拟合,第一種政策是“早停”:将資料分成訓練集和驗證集,訓練集用來計算梯度、更新連接配接權和門檻值,驗證集用來評估誤差,若訓練集誤差降低但驗證集誤差升高,則停止訓練,同時傳回具有最小驗證集誤差的連續權和門檻值。第二種是“正則化”,其基本思想是在誤差目标函數中添加一個用于描述網絡複雜度的部分,例如連接配接權與門檻值的平方和。仍令

神經網絡算法

表示第k個訓練樣例上的誤差,

神經網絡算法

表示連接配接權和門檻值,則誤差目标函數改變為

神經網絡算法

                         (17)

神經網絡算法

用于對經驗誤差與網絡複雜度這兩項進行折中,常通過交叉驗證法來估計。

若用e表示神經網絡在訓練訓練集上的誤差,則它顯然是關于連接配接權w和門檻值

神經網絡算法

的函數。此時,神經網絡的訓練可看作一個參數尋優過程,即在參數空間中,尋找一組最優參數使得e最小。

我們常會談到兩種“最優”:“局部極小”和“全局最小”。對

神經網絡算法

神經網絡算法

,若存在

神經網絡算法

使得

神經網絡算法

都有

神經網絡算法

成立,則

神經網絡算法

為局部極小解;若對參數空間中的任意

神經網絡算法
神經網絡算法
神經網絡算法

為全局最小解。直覺的看,局部極小解是參數空間中的某個點,其鄰域點的誤差函數值均不小于該點的函數值;全局最小解則是指參數空間中所有點的誤差函數均小于該點的誤差函數值。兩者對應的

神經網絡算法

分别稱為誤差函數的局部極小值和全局最小值。

顯然,參數空間内梯度為零的點,隻要器誤差函數值小于鄰點的誤差函數值,就是全局極小點;可能存在多個局部極小值,但卻隻會有一個全局最小值。也就是說,“全局最小”一定是“局部極小”,反之則不成立。

基于梯度的搜尋是使用最為廣泛的參數尋優方法。在此類方法中,我們從某些初始解出發,疊代尋找最優參數解。每次疊代中,我們先計算誤差函數在目前點的梯度,然後根據梯度确定搜尋方向。例如,由于負梯度方向是函數值下降最快的方向,是以梯度下降法就是沿着負梯度方向搜尋最優解。若誤差函數在目前點的梯度為零,則已達到局部極小,更新量為零,這意味着參數的疊代更新将在此停止。顯然,如果誤差函數僅有一個局部極小,那麼此時找到的局部極小即使全局最小;然而,如果誤差函數具有多個局部極小,則不能保證找到的解是全局最小。對後一種情形,我們稱參數尋優陷入了局部極小,這顯然不是我們所希望的。

在現實任務中,人們常采用以下政策來試圖“跳出”局部極小,進而進一步接近全局最小:

以多組不同參數初始化多個神經網絡,按标準方法訓練後,取其中誤差最小的解作為最終參數。這相當于從多個不同的初始點開始搜尋,這樣就可能陷入不同的局部極小,從中進行選擇有可能獲得更接近全局最小的結果。

使用“模拟退火”技術。模拟退火在每一步都以一定的機率接受比目前解更差的結果,進而有助于“跳出”局部極小。在每步疊代過程中,就受“次優解”的機率要随着時間的推移而逐漸降低,進而保證算法穩定。

使用随機梯度下降,與标準下降法精确計算梯度不同,就随機梯度下降法在計算梯度時加入了随機因素。于是,即便陷入局部極小點,它計算出的梯度仍可能不為零,這樣就有機會跳出局部極小繼續搜尋。

此外,遺産算法也常用來訓練神經網絡以更好地逼近全局最小。需注意的是,上述用于跳出局部極小的技術大多是啟發式,理論上缺乏保障。

rbf(radial basis function,徑向基函數)網絡是一種單一層前饋網絡,它使用徑向基作為隐層神經元激活函數,而輸出層則是對隐藏層神經元輸出的線性組合。假定輸入為d維向量x,輸出為實值,則rbf網絡可表示為

神經網絡算法

                           (18)

其中q為隐藏層神經元個數,

神經網絡算法
神經網絡算法

分别是第i個隐藏層神經元所對應的中心和權重,

神經網絡算法

是徑向基函數,這是某種沿徑向對稱的标量函數,通常定義為樣本x到資料中心

神經網絡算法

之間歐式距離。常用的高斯徑向基函數形如

神經網絡算法

                                   (19)

具有足夠多隐藏神經元的rbf網絡能以任意精度逼近任意連續函數。通常采用兩步過程來訓練rbf網絡:第一步,确定神經元中心

神經網絡算法

,常用的方式包括随機采樣、聚類等;第二步,利用bp算法等來确定參數

神經網絡算法
神經網絡算法

競争性學習是神經網絡中一種常用的無監督學習政策,在使用該政策時,網絡的輸出神經元互相競争,每一時刻僅有一個競争獲勝的神經元被激活,其他神經元的狀态被抑制。這種機制亦稱為“勝者通吃”原則。art(adaptive resonance theory,自适應諧振理論)網絡時競争型學習的重要代表。該網絡由比較層、識别層、識别門檻值和重置子產品構成。其中,比較層負責接收輸入樣本,并将其傳遞給識别層神經元。識别層每個神經元對應一個模式類,神經元數目可在訓練過程中動态增長以增加新的模式類。

在接收到比較層的輸入信号後,識别層神經元之間互相競争以産生獲勝神經元。競争的最簡單方式是,計算輸入向量與每個識别層神經元所對應的模式類的代表向量之間的距離,距離最小者勝。獲勝神經元将其他識别層神經元發送信号,抑制或将其激活。若輸入向量與獲勝神經元所對應的代表向量之間的相似度大于識别門檻值,則目前輸入樣本将被歸為該代表向量所屬類别,同時,網絡連接配接權将會更新,使得以後在接收到相應輸入樣本時該模式類會計算出更大的相似度,進而使該獲勝神經元有更大的可能獲勝;若相似度不大于識别門檻值,則重置子產品将在識别層增設一個新的神經元,其代表向量就設定為目前輸入向量。

顯然,識别門檻值對art網絡的性能有重要的影響。當識别門檻值較高時,輸入樣本将會被分成比較多、比較精細的模式類,而如果識别門檻值較低,則會産生比較少、比較粗略的模式類。art比較好地緩解了競争性學習中的“可塑性-穩定性窘境”,可塑性是指神經網絡要有學習新知識的能力,而穩定性則是指神經網絡在學習新知識時要保持對舊知識的記憶。這就使得art網絡具有一個很重要的優點:可以進行增量學習或線上學習。早期的art網絡隻能處理布爾型輸入資料,此後art發展成了一個算法族,包括呢個處理實值輸入的art2網絡、集合模糊處理fuzzy art網絡,以及可以進行監督學習的artmap網絡。

som(self_organizing map,自組織映射)網絡是一種競争性學習型的無監督神經網絡,它能将高維輸入資料映射到低維空間(通常為二維),同時保持輸入資料在高維空間的拓撲結構,即将高維空間中相似的樣本點映射到網絡輸出層中的鄰近神經元。som網絡中的輸出層神經元以矩陣方式排列在二維空間中,每個神經元都擁有一個權向量,網絡在接收輸入向量後,将會确定輸出層獲勝神經元,它決定了該輸入向量在歐式空間中的位置。som的訓練目标就是為了輸出層神經元找到合适的權向量,以達到保持拓撲結構的目的。som的訓練過程很簡單:在接收到一個訓練樣本後,每個輸出層神經元會計算該樣本與自身攜帶的權向量之間的距離,距離最近的神經元成為競争獲勝者,稱為最佳比對單元(best matching unit)。然後,最佳比對單元及其鄰近神經元的權向量與目前輸入樣本的距離縮小。這個過程不斷疊代,知道收斂。

一般的神經網絡模型通常假定網絡結構是事先固定的,訓練的目的是利用訓練樣本來确定合适的連接配接權、門檻值等參數。與此不同,結構自适應網絡則将網絡結構也當作學習的目标之一,并希望在訓練過程中找到最符合資料特點的網絡結構。級聯相關(cascade-correlation)網絡時結構自适應網絡的重要代表。

級聯相關網絡有兩個主要成分:“級聯”和“相關”。級聯是指建立層次連接配接的層級結構。在開始訓練時,網絡隻有輸入層和輸出層,處于最小拓撲結構;随着訓練的進行,新的隐藏層神經元逐漸加入,進而建立起層級結構。當新的隐藏層神經元加入時,其輸入端連接配接權值是當機固定的。相關是指通過最大化新神經元的輸出與網絡誤差之間的相關性來訓練相關的參數。與一般的前饋神經網路相比,級聯相關網絡無需設定網絡層數、隐層神經元數目,且訓練速度較快,但其在資料較小時易陷入過拟合。

與前饋神經網絡不同,“遞歸神經網絡”允許網絡中出現環形結構,進而可以讓一些神經元的輸出回報回來作為輸入信号。這樣的結構與資訊回報過程,使得網絡在t時刻的輸出狀态不僅與t時刻的輸入有關,還與t-1時刻的網絡狀态有關,進而能處理與時間有關的動态變化。

elman網絡時最常見的遞歸網絡之一,它的結構與多層前饋網絡很相似,但隐藏層神經元的輸出被回報回來,與下一時刻輸入層神經元提供的信号一起,作為隐藏神經元在下一時刻的輸入,隐層神經元通常采用sigmoid激活函數,而網絡的訓練常通過推廣的bp算法進行。

神經網絡中有一類模型是為網絡狀态定義一個“能量” ,能量最小化時網絡達到理想狀态,而網絡的訓練就是在最小化這個能量函數。bolzmann機就是一種“基于能量的模型”,其神經元分為兩層:顯層與隐層。顯層用于表示資料的輸入與輸出,隐層則被了解為資料的内在表達。boltzmann機中的神經元都是布爾型的,即隻能取0、1兩種狀态,狀态1表示激活,狀态0表示抑制。令向量

神經網絡算法

表示n個神經元的狀态,

神經網絡算法

表示神經元i與j之間的連接配接權,

神經網絡算法

表示神經元i的門檻值,則狀态向量s所對應的boltzmann機能量定義為

神經網絡算法

                         (20)

若網絡中的神經元以任意不依賴于輸入值的順序進行更新,則網絡最終将達到boltzmann分布,此時狀态向量s出現的機率将僅由其能量與所有可能狀态向量的能量确定:

神經網絡算法

                               (21)

boltzmann機的訓練過程就是将每個訓練樣本視為一個狀态向量,使其出現的機率盡可能大。标準的boltzmann是一個全連結圖,訓練網絡的複雜度很高,這使其難以用于解決現實任務。現實中常采用受限bolzmann機(restricted botzmann machine,簡稱rbm),受限boltzmann機僅僅保留顯層與隐層之間的練級,進而将boltzmann機結構完全圖簡化為二部圖。受限boltzmann機常采用“對比散度”(contrastive divergence,簡稱cd)算法來進行訓練。假定網絡中有d個顯層神經元和q個隐層神經元,令v和h分别表示顯層與隐層的狀态網絡,則由于同一層内不存在連接配接,有

神經網絡算法

                                (22)

神經網絡算法

                                 (23)

cd算法對每個訓練樣本v,先根據(23)計算出隐層神經元狀态的機率分布,然後根據這個機率分布采樣得到h;此後,類似地根據式(22)從h産生v',再從v'産生

神經網絡算法

;連接配接權的更新公式為

神經網絡算法

                                     (24)

理論上來說,參數越多的模型複雜度越高,“容量”越大,這意味着它能完成更複雜的學習任務,但一般情形下,複雜模型的訓練效率低,易陷入過拟合,是以難以受到人們青睐,随着雲計算、大資料時代的到來,計算能力的大幅提高可緩解巡訓練低效性,訓練資料的大幅增加可降低過拟合風險,是以,以“深度學習”為代表的複雜模型開始受到人們的關注。

典型的深度學習模型就是很深層的神經網絡。顯然,對神經網絡模型,提高容量的一個簡單辦法是增加隐藏層的數目,隐藏層多了,相應的神經元連接配接權、門檻值等參數就會更多。模型複雜度也可通過單純增加隐藏層神經元數目來實作,前面我們談到過,單隐層的多層前饋網絡已具有很強大的學習能力;但從增加模型複雜度的角度來看,增加隐藏層的數目顯然比增加隐藏層神經元的數目更有效,因為增加隐藏層數不僅增加了擁有激活函數的神經元數目,還增加了激活函數嵌套的層數。然而,多隐層神經網絡難以直接用經典算法(例如标準bp算法)進行訓練,因為誤差在多隐層内逆傳播,往往會“發散”而不能有效收斂到穩定狀态。

無監督逐層訓練時多隐層網絡訓練的有效手段,其基本思想是每次訓練一層隐節點,訓練時将上一層隐結點的輸出作為輸入,而本層隐結點的輸出作為下一層隐結點的輸入,這稱為“預訓練”;在訓練全部完成後,再對整個網絡進行“微調”訓練。例如,在深度信念網絡中,每層都是一個受限玻爾茲曼機,即整個網絡可視為若幹個rbm堆疊而成。在使用無監督逐層訓練時,受限訓練第一層,這是關于訓練樣本的rbm模型,可按标準的rbm訓練,然後,将第一層預訓練好的隐結點視為第二層的輸入結點,對第二層進行預訓練,......各層預訓練完成後,再利用bp算法等對整個網絡進行訓練。

事實上,“預訓練+微調”的做法可視為将大量參數分組,對每組先找到局部來看比較好的設定,然後再基于這些局部較優的結果聯合起來進行全局尋優。這樣就在利用了模型大量參數所提供的自由度的同時,有效地節省了訓練開銷。

另一種節省訓練開銷的政策是“權重共享”。這個政策在卷積神經網絡中發揮了中要作用,以cnn進行手寫數字識别任務為例,網絡輸入是一個32x32的手寫數字圖像,輸出是其識别結果,cnn複合多個“卷積層”和“采樣層”對輸入信号進行加工,然後在連接配接層實作輸出與目标之間的映射。每個卷積層都包含多個特征映射, 每個特征映射是一個由多個神經元構成的“平面”,通過一種卷積濾波器提取輸入的一種特征。第一個卷積層由6個特征映射構成,每個特征映射是一個28x28的神經元序列,其中滅個神經元負責從5x5的區域通過卷積濾波器提取局部特征。采樣層亦稱為“彙合”層,其作用是基于局部相關性原理進行亞采樣,進而在減少資料量的同時保留有用資訊。。第一層有6個14x14的特征映射,其中每個神經元與上一層中對應特征映射的2x2的鄰域相連,并據此計算輸出。通過複合卷積層和采樣層,cnn将原始圖像映射成120維特征向量,最後通過一個由84個神經元構成的連接配接層和輸出層完成識别任務。cnn可用bp算法來進行訓練,但在訓練中,無論是卷積層還是采樣層,其每一組神經元都是用相同的連接配接權,進而大幅度減少了需要訓練的參數數目。

我們可以從另一個角度來了解深度學習,無論是dbn還是cnn,其多隐藏層堆疊、每層對上一層的輸出進行處理的機制,可看作是對輸入信号進行逐層加工,進而把初始的、與輸出目标之間聯系不太密切的輸入表示,轉化成與輸出目标聯系更密切的表示,使得原來僅基于最後一層輸出映射難以完成的任務成為可能。換言之,通過多層處理,逐層将初始的“底層”特征表示轉化成“高層”特征表示後,用“簡單模型”即可完成複雜度的分類等學習任務。由此可将深度學習了解為進行“特征學習”或“表示學習”。

已往機器學習用于現實任務時,描述樣本的特征通常需由人類專家來設計,這稱為“特征工程”。衆所周知,特征的好壞對泛化性能有直覺重要餓影響,人類專家設計出的特征也并非易事;特征學習則通過機器學習技術自身來産生好特征,這使機器學習的“全自動資料分析“又前進了一步。

繼續閱讀