王浩瀅
(山東科技大學(xué),山東青島,271021)
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個新領(lǐng)域,是一種以人工神經(jīng)網(wǎng)絡(luò)為架構(gòu),對數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的算法。深度學(xué)習(xí)主要在于學(xué)習(xí)樣本數(shù)據(jù)所存在的內(nèi)在規(guī)律和表示幅度,數(shù)種深度學(xué)習(xí)框架已被成功應(yīng)用在計算機(jī)視覺、語音識別、圖像處理等領(lǐng)域并獲取了極好的效果。同時,“深度學(xué)習(xí)”也成為成為類似術(shù)語,或者說是神經(jīng)網(wǎng)絡(luò)的描述重塑表示方法[1]。
深度學(xué)習(xí)相對于支持向量機(jī)、最大熵值計算方法等"淺層學(xué)習(xí)"而言是一類深層次的研究方向。深度學(xué)習(xí)是通過對原始信號進(jìn)行逐層特征變換,輸入和輸出結(jié)果的不斷迭用,將樣本數(shù)據(jù)層層轉(zhuǎn)換到新的特征空間,從而自動地學(xué)習(xí)得到層次化的特征表示,快速分層處理數(shù)據(jù)建立模型,更有利于分類或特征的可視化[2]。
深度學(xué)習(xí)算法打破了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)對訓(xùn)練層數(shù)的限制,采用貪婪無監(jiān)督逐層訓(xùn)練方法,分開處理層層網(wǎng)絡(luò)結(jié)構(gòu),后一層網(wǎng)絡(luò)沿用前一層的訓(xùn)練結(jié)果進(jìn)行訓(xùn)練。最后每層參數(shù)訓(xùn)練完后,在整個網(wǎng)絡(luò)中利用有監(jiān)督學(xué)習(xí)進(jìn)行參數(shù)微調(diào),從而達(dá)到提高精度的作用,本文就深度學(xué)習(xí)發(fā)展現(xiàn)狀及進(jìn)行簡單概述并對其未來設(shè)計進(jìn)行展望[4]。
深度學(xué)習(xí)是以海量數(shù)據(jù)輸入為基礎(chǔ)的多層神經(jīng)網(wǎng)絡(luò),是一種規(guī)則的自學(xué)習(xí)方法。近年來對多層神經(jīng)網(wǎng)絡(luò)的處理算法不斷優(yōu)化,結(jié)合最新的計算機(jī)技術(shù)以及先進(jìn)的CPU處理器等,使它出現(xiàn)了突破性的進(jìn)展。比如行人的圖像中,就包含了色彩、光線、五官等各種信息,而深度學(xué)習(xí)的關(guān)鍵就是通過多層非線性映射將這些因素成功分離并提取。簡單說,就是可以減少參數(shù),同時還不斷有海量數(shù)據(jù)的輸入,徹底顛覆了“人造特征”的范式,開啟了數(shù)據(jù)驅(qū)動即數(shù)據(jù)自提取特征的范式,計算機(jī)自己發(fā)現(xiàn)規(guī)則,進(jìn)行自學(xué)習(xí)?,F(xiàn)在計算機(jī)認(rèn)圖的能力已經(jīng)凌駕于人類之上,尤其在圖像和語音等復(fù)雜應(yīng)用方面,深度學(xué)習(xí)技術(shù)有了很大的進(jìn)展。
再者是谷歌訓(xùn)練機(jī)械手抓取的例子,谷歌現(xiàn)在用機(jī)器人訓(xùn)練一個深度神經(jīng)網(wǎng)絡(luò),利用程序?qū)崿F(xiàn)一次抓取,根據(jù)攝像頭輸入和執(zhí)行命令,預(yù)測抓取的結(jié)果,使得機(jī)器人可以實(shí)現(xiàn)手眼協(xié)調(diào)。所有行為都從學(xué)習(xí)中自然浮現(xiàn),而不是依靠傳統(tǒng)的系統(tǒng)程序,完全顛覆以往的算法,利用深度學(xué)習(xí)實(shí)現(xiàn)圖像深度信息的采集[4]。
市面上已有的可實(shí)現(xiàn)實(shí)現(xiàn)人的跟蹤的無人機(jī),它的方法就在于,可以通過人工的方式進(jìn)行特征選擇,拿簡單的顏色特征舉例,若單用機(jī)械的方式查找,在幾個人穿著相同的衣服有著差不多的體態(tài)的情況下就很容易跟丟或混淆,此時,若想在這個基礎(chǔ)上繼續(xù)優(yōu)化算法,將特征進(jìn)行調(diào)整,實(shí)屬非常困難,而且調(diào)整后,還會存在對過去某些環(huán)境狀態(tài)不適用的問題,算法的不停迭代卻會影響前面的效果。而利用深度學(xué)習(xí),把所有人最顯眼的個人信息做出來,只區(qū)分好前景和背景。區(qū)分之后,背景全部用數(shù)學(xué)方式進(jìn)行填充,再以此為基礎(chǔ)不斷生產(chǎn)大量背景數(shù)據(jù),進(jìn)行自學(xué)習(xí),便利了查找過程。
圖1 利用卷積神經(jīng)網(wǎng)絡(luò)建立行人重識別模型
對于圖像的處理是深度學(xué)習(xí)算法最早嘗試應(yīng)用的領(lǐng)域,從一開始的大量數(shù)據(jù)提取到不斷優(yōu)化算法,現(xiàn)如今的圖像處理技術(shù)已十分成熟,尤其是2012年在網(wǎng)絡(luò)的訓(xùn)練中引入了權(quán)重衰減的概念,可以以更簡便的算法及參數(shù)幅度產(chǎn)生更多的數(shù)據(jù)?,F(xiàn)在深度學(xué)習(xí)網(wǎng)絡(luò)模型能夠理解和識別一般的自然圖像,不僅大幅提高了圖像識別的精度,同時也避免了需要消耗大量的時間進(jìn)行人工特征提取等重復(fù)性工作,使得運(yùn)算效率得到了大大的提升[4-5]。
深度神經(jīng)網(wǎng)絡(luò)是由多個單層非線性網(wǎng)絡(luò)疊加而成的可以分為前饋深度網(wǎng)絡(luò)、反饋深度網(wǎng)絡(luò)和雙向深度網(wǎng)絡(luò)3類[4]。
作為最早進(jìn)行模型建立的人工神經(jīng)網(wǎng)絡(luò)之一,前饋深度網(wǎng)絡(luò)也叫前饋神經(jīng)網(wǎng)絡(luò),其特點(diǎn)在于數(shù)據(jù)的單方向流動,從輸入到達(dá)輸出單元,且不會構(gòu)成有向環(huán)。典型的前饋神經(jīng)網(wǎng)絡(luò)有卷積神經(jīng)網(wǎng)絡(luò)和單層卷積神經(jīng)網(wǎng)絡(luò)等。
2.1.1 單層卷積神經(jīng)網(wǎng)絡(luò)
卷積階段的輸入是由n1個n2×n3大二維特征圖構(gòu)成的三維數(shù)組,以xi為,該階段的輸出y也是個三維數(shù)組,由m1個m2×m3大特征圖構(gòu)成。在卷積階段,連接輸入特征圖xi和特征圖yj的記為ijω,核的大小為23k ×k[4]。輸出特征圖為:
式中:*為二維離散卷積的運(yùn)算符,bj為練的偏置函數(shù)。
非線性階段是通過非線性變換的方式過濾有效的卷積階段得到的特征向量,提高數(shù)據(jù)處理的精度,兩種非線性操作函數(shù)如圖2所示。
圖2 兩種非線性操作函數(shù)(sin和cos)
下采樣階段,通常采用平均或最大池化的操作。完全去掉下采樣,通過在卷積階段設(shè)置卷積核窗口滑動達(dá)到降低分辨率的算法也已運(yùn)用在一些網(wǎng)絡(luò)模型中[4]。
圖3 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程
2.1.2 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)可以進(jìn)行大型圖像識別,是深度前饋人工神經(jīng)網(wǎng)絡(luò)的一種,多次堆疊單層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),后層網(wǎng)絡(luò)沿用前層網(wǎng)絡(luò)的數(shù)據(jù),其中反向傳播法以及有監(jiān)督的訓(xùn)練方式最為常用,算法流程如圖3所示[4]。
在進(jìn)行圖像識別以及解決各類重識別問題中也廣泛用到卷積神經(jīng)網(wǎng)絡(luò),卷積網(wǎng)絡(luò)模型圖如圖4所示。
圖4 利用神經(jīng)網(wǎng)絡(luò)進(jìn)行層次重識別
卷積神經(jīng)網(wǎng)絡(luò)采用原始信號輸入,減少復(fù)雜的特征提取次數(shù)同時避免圖像重建過程,相較于傳統(tǒng)的計算方法有了較大的改進(jìn),利用權(quán)值共享結(jié)構(gòu)降低了網(wǎng)絡(luò)模型的復(fù)雜度,對特征圖進(jìn)行子抽樣,對照圖像局部相關(guān)系原則有效地減少數(shù)據(jù)處理量。
區(qū)別于前饋深度網(wǎng)絡(luò),反饋深度網(wǎng)絡(luò)反解輸入信號,而不是通過編碼信號進(jìn)行數(shù)據(jù)處理。典型的反饋深度網(wǎng)絡(luò)有反卷積網(wǎng)絡(luò)、層次稀疏編碼網(wǎng)絡(luò)等,通過求解最優(yōu)輸入信號分解問題計算特征,使得特征更精準(zhǔn),更有利于信號的分類或重建。
雙向深度網(wǎng)絡(luò)結(jié)構(gòu)上結(jié)合了編碼器層和解碼器層方式進(jìn)行疊加,以前饋和反饋深度網(wǎng)絡(luò)的訓(xùn)練方法為綜合,包括單層網(wǎng)絡(luò)的預(yù)訓(xùn)練和逐層反向迭代誤差兩個部分,每層使用輸入信號IL與ω計成信號IL+1傳下一層,信號IL+1再同的權(quán)值ω計成重構(gòu)信號映輸入層,通過不斷縮小IL與IL'間差,再通過反向迭代誤差對整個網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行權(quán)值微調(diào)。典型的雙向深度網(wǎng)絡(luò)有深度玻爾茲曼機(jī)、棧式自編碼器等。
深度置信網(wǎng)絡(luò)可以用來進(jìn)行精細(xì)化和網(wǎng)絡(luò)預(yù)訓(xùn)練,由多層無監(jiān)督的受限玻爾茲曼機(jī)和一層有監(jiān)督的前饋反向傳播網(wǎng)絡(luò)組成,是一種快速學(xué)習(xí)算法,建立模型中可以分為無監(jiān)督訓(xùn)練和微調(diào)訓(xùn)練兩個階段,第一階段采用無監(jiān)督的貪婪逐層訓(xùn)練法,以獲得每層的條件概率分布;第二階段采用帶標(biāo)簽的數(shù)據(jù)篩選算法對網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)。深度置信網(wǎng)絡(luò)結(jié)合了無監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)各自的優(yōu)點(diǎn),克服了BP網(wǎng)絡(luò)因隨機(jī)初始化權(quán)值參數(shù)而容易陷人局部最優(yōu)和訓(xùn)練時間長的缺點(diǎn),并具有高靈活性,是構(gòu)建新型深度學(xué)習(xí)網(wǎng)絡(luò)的結(jié)構(gòu)基礎(chǔ)。為解決深度置信網(wǎng)絡(luò)面臨的挑戰(zhàn),科學(xué)家們又提出了卷積深度置信網(wǎng)絡(luò)證明了深度置信網(wǎng)絡(luò)適應(yīng)卷積方式運(yùn)作,利用鄰域像素的空域關(guān)系進(jìn)行卷積操作,更容易得到變換后的高維圖像[4]。
深度循環(huán)網(wǎng)絡(luò)是提出的一類專門用來處理序列的循環(huán)神經(jīng)網(wǎng)絡(luò),它可以像神經(jīng)網(wǎng)絡(luò)那樣擴(kuò)展到更長的序列。它主要由輸人層、隱藏層和輸出層組成,從而實(shí)現(xiàn)了時間記憶的功能。相比傳統(tǒng)的網(wǎng)絡(luò),它更加符合生物神經(jīng)元的連接方式,并且已被廣泛地應(yīng)用在自然語言處理等領(lǐng)域,取得了不錯的進(jìn)展[11][20]。
隨機(jī)梯度下降法是用來求解最小二乘法問題的一種迭代法,隨機(jī)梯度下降法中求解最小化損失函數(shù)的算法過程是每次隨機(jī)取一組樣本θj,對應(yīng)的待擬合函數(shù)h(x),根據(jù)梯度下降法,用損失函數(shù)J(θ)對θ求,再不斷根據(jù)學(xué)習(xí)率更新,得到:
SGD一輪迭代只選用一條隨機(jī)選取的數(shù)據(jù),學(xué)習(xí)時間非常迅速。在非凸函數(shù)上,梯度下降法求得的可能是極值而非最值,因此耗費(fèi)大量的時間和內(nèi)存,而隨機(jī)梯度下降法擁有最終收斂于一個較好的局部極值點(diǎn)的優(yōu)勢,但易出現(xiàn)損失函數(shù)波動等問題。
根據(jù)深度學(xué)習(xí)的特點(diǎn)和現(xiàn)如今取得的進(jìn)展,深度學(xué)習(xí)在未來的發(fā)展中體現(xiàn)出神經(jīng)網(wǎng)絡(luò)呈層數(shù)越來越多,結(jié)構(gòu)越來越復(fù)雜的趨勢。當(dāng)然網(wǎng)絡(luò)層數(shù)越多,結(jié)構(gòu)越復(fù)雜深度學(xué)習(xí)網(wǎng)絡(luò)的性能越好,學(xué)習(xí)效果也越來越好,這表明在未來的發(fā)展中深度網(wǎng)絡(luò)技術(shù)將會不斷進(jìn)步。再者深度神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)功能也將不斷豐富。節(jié)點(diǎn)越來越豐富,不斷接近人腦的結(jié)構(gòu),將更加有利于克服目前神經(jīng)網(wǎng)絡(luò)存在的局限性。深度學(xué)習(xí)可以與強(qiáng)化學(xué)習(xí)、遷移學(xué)習(xí)等不同的機(jī)器學(xué)習(xí)技術(shù)融合,以解決單項(xiàng)技術(shù)面臨的一些缺陷。在領(lǐng)域方面,深度學(xué)習(xí)具有較好遷移學(xué)習(xí)的性質(zhì),使得一個模型訓(xùn)練好后可以拿到另一個問題上做簡單的改進(jìn)就可以繼續(xù)使用。由于深度學(xué)習(xí)在計算機(jī)視覺和語音識別方優(yōu)于過傳統(tǒng)方法,其中一些好的方法經(jīng)過改進(jìn),也適用于其他領(lǐng)域。例如深度學(xué)習(xí)在處理海量數(shù)據(jù)時在并行處理、進(jìn)行模式識別特征提取、數(shù)據(jù)預(yù)測等方面都有巨大的優(yōu)勢,這與聲學(xué)研究具有極大的契合性,因此可以在聲學(xué)處理上運(yùn)用深度學(xué)習(xí)解決部分問題[15]。
很多傳統(tǒng)方法,還在采用人工視覺計算,用計算機(jī)去做局部匹配,再根據(jù)視線測出的兩個匹配數(shù)據(jù)的差距,去推算空間的具體位置,這樣的判斷方法無疑存在很大的誤差,而深度學(xué)習(xí)的出現(xiàn),使得很多公司辛苦積累的軟件算法失去效果,以前提出的“算法為核心競爭力”,正在逐步轉(zhuǎn)變?yōu)?,“?shù)據(jù)為核心競爭力”,這同時也要求技術(shù)人員必須進(jìn)入新的起跑線,研究新技術(shù),尤其是不斷研究像深度學(xué)習(xí)這樣具有強(qiáng)大功能以及競爭力的模型方法。
目前我們所能接觸到的深度學(xué)習(xí)算法多體現(xiàn)在語音識別,手勢識別、圖像識別、自然語言的問題處理等方面,利用編程語言及算法實(shí)現(xiàn)識別功能,利用網(wǎng)絡(luò)上部分開放的資源進(jìn)行識別功能的體現(xiàn),像百度、小米等人工智能語音都是我們學(xué)習(xí)的對象。深度學(xué)習(xí)在如今的發(fā)展中依托先進(jìn)的計算機(jī)技術(shù)以及日益進(jìn)步的處理器等硬件實(shí)力的增強(qiáng)不斷進(jìn)行算法的優(yōu)化與提升,大大解決了以前大量數(shù)據(jù)冗余的問題,且提出多種模型解決復(fù)雜的專業(yè)疑難,在我們的生活中多方面以成功進(jìn)行使用,但在未來基于深度學(xué)習(xí)中的無標(biāo)記數(shù)據(jù)的特征學(xué)習(xí)、模型規(guī)模與訓(xùn)練速度以及其他方法的融合都是值得我們進(jìn)一步研究的問題。