1 引言
深度學(xué)習(xí)已被廣泛應(yīng)用到涉及圖像、視頻、語(yǔ)音等的諸多任務(wù)中并取得巨大成功。如 果我們問(wèn)“深度學(xué)習(xí)是什么?”很可能會(huì)得到這樣的回答:“深度學(xué)習(xí)就是深度神經(jīng)網(wǎng) 絡(luò)”。至少在目前,當(dāng)“深度學(xué)習(xí)”作為一個(gè)術(shù)語(yǔ)時(shí)幾乎就是“深度神經(jīng)網(wǎng)絡(luò)”的同義詞, 而當(dāng)它指向一個(gè)技術(shù)領(lǐng)域時(shí)則如 SIAM News 頭版文章所稱[1],是“機(jī)器學(xué)習(xí)中使用深度 神經(jīng)網(wǎng)絡(luò)的子領(lǐng)域”。關(guān)于深度學(xué)習(xí)有很多問(wèn)題還不清楚。例如深度神經(jīng)網(wǎng)絡(luò)為什么要“深”?它成功背 后的關(guān)鍵因素是什么?深度學(xué)習(xí)只能是深度神經(jīng)網(wǎng)絡(luò)嗎?本文將分享一些我們關(guān)于深度 學(xué)習(xí)的粗淺思考。
2 深度神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)并不是“新生事物”,它已經(jīng)被研究了半個(gè)多世紀(jì)[2]。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)通常包 含一個(gè)或兩個(gè)隱層,其中每個(gè)“神經(jīng)元”是非常簡(jiǎn)單的計(jì)算單元。如圖 1 所示,神經(jīng)元 接收來(lái)自其他神經(jīng)元的輸入信號(hào),這些信號(hào)通過(guò)連接權(quán)放大,到達(dá)神經(jīng)元之后如果其總 量超過(guò)某個(gè)閾值,則當(dāng)前神經(jīng)元就被“激活”并向外傳遞其輸出信號(hào)。實(shí)際上每個(gè)神經(jīng) 元就是圖 1 中非常簡(jiǎn)單的計(jì)算式,而所謂神經(jīng)網(wǎng)絡(luò)就是很多這樣的計(jì)算式通過(guò)嵌套迭代 得到的一個(gè)數(shù)學(xué)系統(tǒng)。
今天的“深度神經(jīng)網(wǎng)絡(luò)”是指什么?簡(jiǎn)單來(lái)說(shuō),就是有很多隱層的神經(jīng)網(wǎng)絡(luò)。例如 2012 年在計(jì)算機(jī)視覺(jué)領(lǐng)域著名的 ImageNet 競(jìng)賽奪冠的網(wǎng)絡(luò)用了 8 層、2015 年是 152 層、 2016 年是 1207 層……這樣的網(wǎng)絡(luò)明顯是非常龐大的計(jì)算系統(tǒng),包含了大量參數(shù)需要通 過(guò)訓(xùn)練來(lái)確定。但有一個(gè)好消息:神經(jīng)網(wǎng)絡(luò)的基本計(jì)算單元是連續(xù)可微的。例如以往常 用圖 2 左邊的 Sigmoid 函數(shù)作為神經(jīng)元模型的激活函數(shù),它是連續(xù)可微的;現(xiàn)在深度神 經(jīng)網(wǎng)絡(luò)里常用圖 2 右邊這樣的 ReLU 激活函數(shù),它也是連續(xù)可微的。于是,在整個(gè)系統(tǒng) 中可以相對(duì)容易地計(jì)算出“梯度”,進(jìn)而就能使用著名的 BP 算法通過(guò)梯度下降優(yōu)化來(lái)對(duì) 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
有人以為深度神經(jīng)網(wǎng)絡(luò)的成功主要是因?yàn)椤八懔Α庇辛司薮蟀l(fā)展,因?yàn)樯窠?jīng)網(wǎng)絡(luò)早 就有了,現(xiàn)在只不過(guò)是由于算力強(qiáng)了導(dǎo)致能算得更好了。這是一個(gè)誤解。沒(méi)有強(qiáng)大的算 力當(dāng)然難以訓(xùn)練出很深的網(wǎng)絡(luò),但更重要的是,現(xiàn)在人們懂得如何訓(xùn)練這樣的模型。事 實(shí)上,在 Hinton 等的工作[3]之前,人們一直不知道如何訓(xùn)練出超過(guò)五層的神經(jīng)網(wǎng)絡(luò);這并不是由于算力不足,而是由于神經(jīng)網(wǎng)絡(luò)在訓(xùn)練中會(huì)遭遇“梯度消失”現(xiàn)象:在 BP算法將神經(jīng)網(wǎng)絡(luò)輸出層誤差通過(guò)鏈?zhǔn)椒磦鞯竭h(yuǎn)離輸出層的部分時(shí),可能會(huì)導(dǎo)出“零”調(diào) 整量,導(dǎo)致網(wǎng)絡(luò)遠(yuǎn)離輸出層的部分無(wú)法根據(jù)輸出誤差進(jìn)行調(diào)整,從而使得訓(xùn)練失敗。這 是從傳統(tǒng)神經(jīng)網(wǎng)絡(luò)發(fā)展到深層神經(jīng)網(wǎng)絡(luò)所遇到的巨大技術(shù)障礙。Hinton 等通過(guò)“逐層訓(xùn) 練后聯(lián)合微調(diào)”來(lái)緩解梯度消失,使人們看到訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)是可能的,由此激發(fā)了 后來(lái)的研究,使得深度神經(jīng)網(wǎng)絡(luò)得以蓬勃發(fā)展。事實(shí)上,深度神經(jīng)網(wǎng)絡(luò)研究的主要內(nèi)容 之一就是設(shè)計(jì)有效措施來(lái)避免/減緩梯度消失。例如該領(lǐng)域一個(gè)重要技術(shù)進(jìn)步就是用圖 2 右邊的 ReLU 函數(shù)來(lái)代替以往常用的 Sigmoid 函數(shù),由于前者在零值附近的導(dǎo)數(shù)比后者 更“平緩”,使得梯度不會(huì)因下降得太快而導(dǎo)致梯度消失。
顯然,基本計(jì)算單元的“可微性”(differentiability)對(duì)深度神經(jīng)網(wǎng)絡(luò)模型至關(guān)重要, 因?yàn)樗翘荻扔?jì)算的基礎(chǔ),而梯度計(jì)算是使用 BP 算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。最近有一 些研究嘗試在深度神經(jīng)網(wǎng)絡(luò)中使用不可微激活函數(shù),但其求解過(guò)程是在松弛變換后通過(guò) 可微函數(shù)逼近,實(shí)質(zhì)上仍依賴于基本計(jì)算單元的可微性。
3 為何“深”
雖然深度神經(jīng)網(wǎng)絡(luò)取得了巨大成功,但是“為什么必須使用很深的網(wǎng)絡(luò)”一直沒(méi)有 清楚的答案。關(guān)于這個(gè)問(wèn)題,幾年前我們?cè)?jīng)嘗試從模型復(fù)雜度的角度進(jìn)行解釋。
一般來(lái)說(shuō),機(jī)器學(xué)習(xí)模型復(fù)雜度與其“容量”(capacity)有關(guān),而容量對(duì)模型的學(xué) 習(xí)能力有重大影響,因此,模型的學(xué)習(xí)能力與其復(fù)雜度有關(guān)。機(jī)器學(xué)習(xí)界早就知道,如 果能增強(qiáng)一個(gè)學(xué)習(xí)模型的復(fù)雜度,那它的學(xué)習(xí)能力往往能得到提升。怎樣提高復(fù)雜度呢?對(duì)神經(jīng)網(wǎng)絡(luò)模型來(lái)說(shuō),很明顯有兩個(gè)辦法:把模型加“深”,或把模型加“寬”。從提升 模型復(fù)雜度的角度看,“加深”會(huì)更有效,因?yàn)楹?jiǎn)單來(lái)說(shuō),“加寬”僅是增加了計(jì)算單元, 從而增加了基函數(shù)的數(shù)目;而在“加深”時(shí)不僅增加了基函數(shù)的數(shù)目,還增加了函數(shù)嵌 套的層數(shù),于是泛函表達(dá)能力會(huì)更強(qiáng)。所以,為提升復(fù)雜度,應(yīng)該把網(wǎng)絡(luò)“加深”。
有人可能會(huì)問(wèn),既然機(jī)器學(xué)習(xí)界早就知道能通過(guò)把神經(jīng)網(wǎng)絡(luò)模型加深來(lái)提升學(xué)習(xí)能 力,為什么以往不這樣做呢?除了前面提到的“梯度消失”這個(gè)技術(shù)障礙,這還涉及另外一個(gè)問(wèn)題:因?yàn)榇嬖凇斑^(guò) 擬合”(overfitting),在機(jī)器學(xué)習(xí)中把模型的學(xué)習(xí)能力變強(qiáng)未必一定是件好事。過(guò)擬合是 機(jī)器學(xué)習(xí)的大敵。簡(jiǎn)單來(lái)說(shuō),給定一個(gè)數(shù)據(jù)集,機(jī)器學(xué)習(xí)希望把數(shù)據(jù)集里所包含的“一 般規(guī)律”學(xué)出來(lái)用于今后的數(shù)據(jù)對(duì)象,但有時(shí)候可能會(huì)把當(dāng)前數(shù)據(jù)集本身的一些“特性” 學(xué)出來(lái)卻錯(cuò)誤地當(dāng)作一般規(guī)律去使用了,這就會(huì)犯錯(cuò)誤,這就是過(guò)擬合。產(chǎn)生過(guò)擬合的重要因素之一,就是模型的學(xué)習(xí)能力太強(qiáng)了,把不該學(xué)的東西也學(xué)到了。所以,以往在 機(jī)器學(xué)習(xí)中都是盡量避免使用太復(fù)雜的模型。
現(xiàn)在為什么能使用深度神經(jīng)網(wǎng)絡(luò)這樣的復(fù)雜模型了呢?有好幾個(gè)重要因素:首先, 現(xiàn)在有大數(shù)據(jù)了。機(jī)器學(xué)習(xí)中有很多緩解過(guò)擬合的策略,例如決策樹(shù)剪枝、支持向量機(jī) 正則化、神經(jīng)網(wǎng)絡(luò)提早終止訓(xùn)練等,但最簡(jiǎn)單有效的就是使用更多的數(shù)據(jù)。比方說(shuō),數(shù) 據(jù)集中只有三千個(gè)樣本,從它里面學(xué)出來(lái)的“特性”不太可能是一般規(guī)律,但如果有三 千萬(wàn),甚至三千萬(wàn)萬(wàn)個(gè)樣本,那從它里面學(xué)出來(lái)的“特性”或許就已經(jīng)是一般規(guī)律了。所以,現(xiàn)在有了大數(shù)據(jù),我們不必再像以往那樣對(duì)復(fù)雜模型“敬而遠(yuǎn)之”。第二,今天 有 GPU、CPU 集群等強(qiáng)力計(jì)算設(shè)備,使我們有足夠的算力來(lái)訓(xùn)練復(fù)雜模型。第三,經(jīng)過(guò) 機(jī)器學(xué)習(xí)界的努力,現(xiàn)在已經(jīng)有很多有效訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)這種復(fù)雜模型的技巧(trick), 例如很多緩解神經(jīng)網(wǎng)絡(luò)梯度消失的辦法。
小結(jié)一下,這套對(duì)“為什么深”的“復(fù)雜度解釋”主要強(qiáng)調(diào)三點(diǎn):第一,今天有大 數(shù)據(jù);第二,有強(qiáng)力的計(jì)算設(shè)備;第三,有很多有效的訓(xùn)練技巧。這三點(diǎn)導(dǎo)致現(xiàn)在能夠 使用高復(fù)雜度模型,而深度神經(jīng)網(wǎng)絡(luò)恰是一種便于實(shí)現(xiàn)的高復(fù)雜度模型。上面這套解釋有一定意義,例如它啟發(fā)我們從復(fù)雜度的角度來(lái)研究深度學(xué)習(xí)中的一 些機(jī)制如 dropout 等[4]。但這套解釋有個(gè)重要問(wèn)題沒(méi)解決:為什么扁平的(寬的)網(wǎng)絡(luò)不 如深度神經(jīng)網(wǎng)絡(luò)?因?yàn)榘丫W(wǎng)絡(luò)“加寬”也能增加復(fù)雜度,雖然效率不如“加深”高。想 象一下,如果增加無(wú)限個(gè)隱層神經(jīng)元,那么即便僅使用一個(gè)隱層,網(wǎng)絡(luò)的復(fù)雜度也可以 提升非常高,甚至超過(guò)很多深度神經(jīng)網(wǎng)絡(luò)。然而在實(shí)踐中人們發(fā)現(xiàn),“寬”的淺層網(wǎng)絡(luò)性 能比不上相對(duì)“窄”的深層網(wǎng)絡(luò),這用復(fù)雜度難以解釋。因此,我們需要更深入一點(diǎn)的 思考。
我們問(wèn)一個(gè)問(wèn)題:深度神經(jīng)網(wǎng)絡(luò)最重要的功用是什么?對(duì)此,機(jī)器學(xué)習(xí)界目前有一個(gè)基本共識(shí),那就是“表示學(xué)習(xí)”(representation learning)。簡(jiǎn)單來(lái)說(shuō),如圖 3 所示,以往我們拿到一個(gè)數(shù)據(jù)對(duì)象,比方說(shuō)一幅圖像,先 要用很多特征比如說(shuō)顏色、紋理等把它描述出來(lái),這個(gè)步驟稱為“特征工程”(feature engineering),然后我們?cè)龠M(jìn)行分類器學(xué)習(xí)。設(shè)計(jì)特征是許多應(yīng)用研究領(lǐng)域的重要內(nèi)容, 例如計(jì)算機(jī)視覺(jué)與模式識(shí)別領(lǐng)域的研究中有相當(dāng)一部分內(nèi)容是關(guān)于設(shè)計(jì)視覺(jué)特征如 SIFT、HOG 等,而這個(gè)部分是機(jī)器學(xué)習(xí)研究所不關(guān)心的,后者主要關(guān)注相對(duì)通用、不依 賴于具體應(yīng)用域的技術(shù),以往主要是針對(duì)表示為“特征向量”的數(shù)據(jù)去做分析建模。現(xiàn) 在有了深度學(xué)習(xí),只需把數(shù)據(jù)從一端扔進(jìn)去,從另外一端就能得到模型,中間用到的特 征描述可以通過(guò)深度學(xué)習(xí)自己來(lái)解決,這就是所謂的“特征學(xué)習(xí)”或者表示學(xué)習(xí)。從某 種角度看,這是機(jī)器學(xué)習(xí)研究的疆域擴(kuò)展到了一些應(yīng)用研究領(lǐng)域的傳統(tǒng)范圍。與以往的機(jī)器學(xué)習(xí)技術(shù)相比,在應(yīng)用上來(lái)說(shuō)這是一個(gè)很大的進(jìn)步,因?yàn)椴辉傩枰耆蕾嚾祟悓?家設(shè)計(jì)特征了,特征本身也可以跟學(xué)習(xí)器一起進(jìn)行聯(lián)合優(yōu)化。
進(jìn)一步我們?cè)賳?wèn):對(duì)表示學(xué)習(xí)來(lái)說(shuō)最關(guān)鍵的是什么?
我們的答案是:逐層加工處理。如圖 4 所示,比方說(shuō)在輸入一幅圖像時(shí),在神經(jīng)網(wǎng) 絡(luò)最底層看到是一些像素,而一層層往上會(huì)逐步出現(xiàn)邊緣、輪廓等抽象級(jí)別越來(lái)越高的 描述。雖然在真實(shí)的神經(jīng)網(wǎng)絡(luò)中未必有這么清晰的分層,但總體上確有自底向上不斷抽 象的趨勢(shì)。
事實(shí)上淺層神經(jīng)網(wǎng)絡(luò)幾乎能做到深層神經(jīng)網(wǎng)絡(luò)所做的別的任何事(例如提升復(fù)雜 度),唯有深度的逐層抽象這件事,它由于層數(shù)淺而做不了。我們認(rèn)為,“逐層加工處理” 正是表示學(xué)習(xí)的關(guān)鍵,也是深度學(xué)習(xí)成功的關(guān)鍵因素之一。
但是在機(jī)器學(xué)習(xí)領(lǐng)域,逐層加工處理并不新鮮,以前已經(jīng)有很多技術(shù)是在進(jìn)行逐層 加工處理。例如決策樹(shù)、Boosting 都是“逐層加工處理”模型,但是與深度神經(jīng)網(wǎng)絡(luò)相 比,它們有兩個(gè)弱點(diǎn):一是模型復(fù)雜度不夠。例如決策樹(shù),對(duì)給定數(shù)據(jù)集來(lái)說(shuō)其模型深 度是受限的,假設(shè)僅考慮離散特征,則樹(shù)的深度不會(huì)超過(guò)特征的個(gè)數(shù),不像深度神經(jīng)網(wǎng) 絡(luò)那樣可以任意提升復(fù)雜度;二是在學(xué)習(xí)過(guò)程中缺乏特征變換,學(xué)習(xí)過(guò)程始終在同一個(gè) 特征空間中進(jìn)行。我們認(rèn)為這兩個(gè)因素對(duì)深度神經(jīng)網(wǎng)絡(luò)的成功也至關(guān)重要。當(dāng)我們同時(shí)考慮“逐層加工處理”和“內(nèi)置特征變換”時(shí)就會(huì)發(fā)現(xiàn),深度模型是非 常自然的選擇,因?yàn)榛谏疃饶P涂梢匀菀椎赝瑫r(shí)做到上面這兩點(diǎn)。在選用深度模型后,由于模型復(fù)雜度高、容易過(guò)擬合,所以我們要用大數(shù)據(jù);它很 難訓(xùn)練,所以我們要有訓(xùn)練技巧;計(jì)算開(kāi)銷大,所以我們要使用強(qiáng)力計(jì)算設(shè)備 …… 我們發(fā)現(xiàn),這些是我們選擇深度模型之后的結(jié)果,而不是選用深度模型的原因!這跟以前 的認(rèn)識(shí)不太一樣。以前認(rèn)為因?yàn)榫邆淞诉@些條件而導(dǎo)致我們能使用深度模型,現(xiàn)在看來(lái) 因果關(guān)系恰是反過(guò)來(lái)的。事實(shí)上,大訓(xùn)練數(shù)據(jù)、訓(xùn)練技巧,乃至強(qiáng)力計(jì)算設(shè)備都不僅限 服務(wù)于深度模型,同樣可以服務(wù)于淺層模型,因此,具備了這些條件并不必然導(dǎo)致深度 模型優(yōu)于淺層模型。
還有一點(diǎn)值得一提:擁有很大的訓(xùn)練數(shù)據(jù)時(shí),需要使用復(fù)雜度高的模型,因?yàn)榈蛷?fù) 雜度模型無(wú)法對(duì)大數(shù)據(jù)進(jìn)行充分利用。比方說(shuō)僅使用一個(gè)簡(jiǎn)單的線性模型,那么有兩千 萬(wàn)樣本還是兩億樣本恐怕沒(méi)有多少區(qū)別,因?yàn)槟P鸵呀?jīng)“學(xué)不進(jìn)去”了。而要模型有足 夠的復(fù)雜度,這又給使用深度模型加了一分,因?yàn)樯疃饶P涂梢匀菀椎赝ㄟ^(guò)加深層數(shù)來(lái) 提升復(fù)雜度。
小結(jié)一下,我們的討論分析導(dǎo)出的結(jié)論是,有三個(gè)關(guān)鍵因素:
? 逐層加工處理
? 內(nèi)置特征變換
? 模型復(fù)雜度夠
這是我們認(rèn)為深度神經(jīng)網(wǎng)絡(luò)能夠成功的關(guān)鍵原因,或者說(shuō)是我們關(guān)于深度神經(jīng)網(wǎng)絡(luò) 成功原因的猜想。有意思的是,這三個(gè)因素并沒(méi)有“要求”我們必須使用神經(jīng)網(wǎng)絡(luò)模型。只要能同時(shí)做到這三點(diǎn),別的模型應(yīng)該也能做深度學(xué)習(xí)。
4 為何有必要探討 DNN 之外的深度模型
沒(méi)有任何模型是完美的,深度神經(jīng)網(wǎng)絡(luò)模型也不例外。
首先,凡是用過(guò)深度神經(jīng)網(wǎng)絡(luò)的人都知道,需花費(fèi)大量的精力來(lái)調(diào)參。這會(huì)帶來(lái)很 多問(wèn)題。第一,調(diào)參經(jīng)驗(yàn)很難共享,例如在圖像任務(wù)上調(diào)參的經(jīng)驗(yàn)很難在做語(yǔ)音任務(wù)時(shí) 借鑒。第二,今天無(wú)論是科學(xué)界還是工程技術(shù)界都非常關(guān)注研究結(jié)果的可重復(fù)性,而深 度學(xué)習(xí)恐怕是整個(gè)機(jī)器學(xué)習(xí)領(lǐng)域中可重復(fù)性問(wèn)題最嚴(yán)重的子領(lǐng)域。常有這樣的情況:一 組研究人員發(fā)文章報(bào)告的結(jié)果,很難被其他研究人員重現(xiàn),因?yàn)榧幢闶褂孟嗤臄?shù)據(jù)、 相同的方法,超參數(shù)設(shè)置稍有不同就可能使結(jié)果有巨大差別。
其次,神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)需要在訓(xùn)練前預(yù)設(shè)。但是在任務(wù)完成前,怎么能知道模 型復(fù)雜度應(yīng)該是多大呢?事實(shí)上,我們通常是在使用超過(guò)必需復(fù)雜度的網(wǎng)絡(luò)。深度神經(jīng) 網(wǎng)絡(luò)的一些最新研究進(jìn)展,例如網(wǎng)絡(luò)剪枝、權(quán)重二值化、模型壓縮等,實(shí)質(zhì)上都是試圖 在訓(xùn)練過(guò)程中適當(dāng)減小網(wǎng)絡(luò)復(fù)雜度。顯然,使用過(guò)高復(fù)雜度的模型必然導(dǎo)致不必要地消 耗了更多計(jì)算開(kāi)銷、導(dǎo)致對(duì)訓(xùn)練樣本量不必要的高需求。有沒(méi)有可能先用一個(gè)簡(jiǎn)單模型, 然后在學(xué)習(xí)過(guò)程中自適應(yīng)地增加模型復(fù)雜度呢?遺憾的是這對(duì)神經(jīng)網(wǎng)絡(luò)很困難,因?yàn)槿?網(wǎng)絡(luò)結(jié)構(gòu)未定,梯度求導(dǎo)對(duì)象在變化,那 BP 算法可就麻煩了。深度神經(jīng)網(wǎng)絡(luò)的其他缺陷例如小數(shù)據(jù)上難以使用、黑箱模型、理論分析困難等就不 贅述了。
或許有人會(huì)說(shuō),學(xué)術(shù)創(chuàng)新研究可能要考慮上述問(wèn)題,而對(duì)應(yīng)用實(shí)踐來(lái)說(shuō)只要性能好 就行,有深度神經(jīng)網(wǎng)絡(luò)就足夠了……其實(shí)即便從應(yīng)用角度來(lái)看,探討神經(jīng)網(wǎng)絡(luò)之外的深 度學(xué)習(xí)模型也很有必要,因?yàn)殡m然深度神經(jīng)網(wǎng)絡(luò)現(xiàn)在很流行,但在許多任務(wù)上(例如 Kaggle 的很多數(shù)據(jù)分析競(jìng)賽中)獲勝的并非深度神經(jīng)網(wǎng)絡(luò),而是隨機(jī)森林、XGBoost 這 些相對(duì)比較傳統(tǒng)的機(jī)器學(xué)習(xí)模型。事實(shí)上,目前深度神經(jīng)網(wǎng)絡(luò)做得好的幾乎都是涉及圖 像、視頻、語(yǔ)音等的任務(wù),都是典型的數(shù)值建模任務(wù),而在其他涉及符號(hào)建模、離散建 模、混合建模的任務(wù)上,深度神經(jīng)網(wǎng)絡(luò)的性能并沒(méi)有那么好。機(jī)器學(xué)習(xí)領(lǐng)域有一個(gè)著名的“沒(méi)有免費(fèi)的午餐”定理[2],它告訴我們,沒(méi)有任何一 個(gè)模型在所有任務(wù)上都優(yōu)于其他模型。實(shí)際上,不同模型各有自己的適用任務(wù)范疇,深 度神經(jīng)網(wǎng)絡(luò)也不例外。因此,有充分的理由去探討深度神經(jīng)網(wǎng)絡(luò)之外的深度學(xué)習(xí)模型,因 為這樣的模型或許能讓我們?cè)趫D像、視頻、語(yǔ)音之外的更多任務(wù)上獲得深度學(xué)習(xí)的性能 紅利。
小結(jié)一下,今天我們談到的深度模型都是深度神經(jīng)網(wǎng)絡(luò),用技術(shù)術(shù)語(yǔ)來(lái)說(shuō),它是多 層可參數(shù)化可微分的非線性構(gòu)件組成的模型,可以用 BP 算法來(lái)訓(xùn)練。這里有兩個(gè)問(wèn)題:一是現(xiàn)實(shí)世界中的問(wèn)題多種多樣,其所涉性質(zhì)并不都是可微的,或能用可微構(gòu)件最優(yōu)建 模的;二是機(jī)器學(xué)習(xí)領(lǐng)域幾十年的積累,有許多構(gòu)件能作為復(fù)雜模型的基礎(chǔ),其中相當(dāng) 一部分是不可微的。
能否基于不可微構(gòu)件來(lái)構(gòu)建新型深度學(xué)習(xí)模型?這是一個(gè)基礎(chǔ)性挑戰(zhàn)問(wèn)題。一旦得 到答案,就同時(shí)回答了其他一些問(wèn)題,例如深度模型是否只能是深度神經(jīng)網(wǎng)絡(luò)?是否能 不用 BP 算法訓(xùn)練?有沒(méi)有可能讓深度學(xué)習(xí)在圖像、視頻、語(yǔ)音之外的更多數(shù)據(jù)分析任 務(wù)上發(fā)揮作用?……
我們最近在這方面進(jìn)行了一些初步探索,提出了“深度森林”這種非神經(jīng)網(wǎng)絡(luò)的新型深度學(xué)習(xí)模型[5,6]。深度森林的基礎(chǔ)構(gòu)件是不可微的決策樹(shù),其訓(xùn)練過(guò)程不基于 BP 算 法,甚至不依賴于梯度計(jì)算。它初步驗(yàn)證了上一節(jié)中關(guān)于深度學(xué)習(xí)奏效原因的猜想,即只要能做到逐層加工處理、內(nèi)置特征變換、模型復(fù)雜度夠,就能構(gòu)建出有效的深度學(xué)習(xí)模型,并非必須使用神經(jīng)網(wǎng)絡(luò)。這種技術(shù)已經(jīng)在大規(guī)模圖像任務(wù)(我們認(rèn)為此類任務(wù)的首選技術(shù)是深度神經(jīng)網(wǎng)絡(luò))之外的許多任務(wù)中顯示出優(yōu)秀性能,包括互聯(lián)網(wǎng)支付非法套現(xiàn)檢測(cè)等大規(guī)模數(shù)據(jù)分析任務(wù)。在一定程度上驗(yàn)證了,在數(shù)值建模之外的任務(wù)上,有可能研制出新型深度學(xué)習(xí)模型來(lái)獲得更好的性能。需要注意的是,任何一種新技術(shù)要取得廣泛成功都需經(jīng)過(guò)長(zhǎng)期探索。以深度神經(jīng)網(wǎng) 絡(luò)中最著名的卷積神經(jīng)網(wǎng)絡(luò)為例,經(jīng)過(guò)了三十來(lái)年、成千上萬(wàn)研究者和工程師探索和改 進(jìn),才取得今天的成功。深度森林還在“嬰兒期”,雖然在某些問(wèn)題上已得以應(yīng)用,但是 不能期待它在廣泛任務(wù)上都能夠立即發(fā)揮作用。
實(shí)際上,我們以為深度森林探索的主要價(jià)值并不在于立即產(chǎn)生一種應(yīng)用性能優(yōu)越的 新算法,而是為深度學(xué)習(xí)的探索提供一個(gè)新思路。以往我們以為深度學(xué)習(xí)就是深度神經(jīng) 網(wǎng)絡(luò),只能基于可微構(gòu)件搭建,現(xiàn)在我們知道了這里有更多的可能性。好比說(shuō)深度學(xué)習(xí) 是一間黑屋子,里面有什么呢?以前我們都知道有深度神經(jīng)網(wǎng)絡(luò),并以為僅有深度神經(jīng) 網(wǎng)絡(luò)?,F(xiàn)在深度森林把這個(gè)屋子打開(kāi)了一扇門(mén),今后可能會(huì)涌現(xiàn)更多的東西。這或許是 這個(gè)探索在學(xué)科領(lǐng)域發(fā)展上更重要的意義。
參考文獻(xiàn)
[1] J. Sirignano. Deep learning models in finance. SIAM News, 2017, 50(5): 1.
[2] 周志華. 機(jī)器學(xué)習(xí). 北京: 清華大學(xué)出版社, 2016.
[3] G. E. Hinton, S. Osindero, and Y.-W. Simon. A fast learning algorithm for deep belief nets. Neural Computation, 2006, 18(7): 1527-1554.
[4] W. Gao and Z.-H. Zhou. Dropout Rademacher complexity of deep neural networks. Science China Information Sciences, 2016, 59(7): 072104: 1-072104: 12.
[5] Z.-H. Zhou and J. Feng. Deep forest: Towards an alternative to deep neural networks. In: IJCAI, 2017: 3553-3559.
未來(lái)智能實(shí)驗(yàn)室的主要工作包括:建立AI智能系統(tǒng)智商評(píng)測(cè)體系,開(kāi)展世界人工智能智商評(píng)測(cè);開(kāi)展互聯(lián)網(wǎng)(城市)大腦研究計(jì)劃,構(gòu)建互聯(lián)網(wǎng)(城市)大腦技術(shù)和企業(yè)圖譜,為提升企業(yè),行業(yè)與城市的智能水平服務(wù)。每日推薦范圍未來(lái)科技發(fā)展趨勢(shì)的學(xué)習(xí)型文章。目前線上平臺(tái)已收藏上千篇精華前沿科技文章和報(bào)告。
聯(lián)系客服