王浩瀅
(山東科技大學,山東青島,271021)
深度學習是機器學習的一個新領域,是一種以人工神經網絡為架構,對數據進行表征學習的算法。深度學習主要在于學習樣本數據所存在的內在規律和表示幅度,數種深度學習框架已被成功應用在計算機視覺、語音識別、圖像處理等領域并獲取了極好的效果。同時,“深度學習”也成為成為類似術語,或者說是神經網絡的描述重塑表示方法[1]。
深度學習相對于支持向量機、最大熵值計算方法等"淺層學習"而言是一類深層次的研究方向。深度學習是通過對原始信號進行逐層特征變換,輸入和輸出結果的不斷迭用,將樣本數據層層轉換到新的特征空間,從而自動地學習得到層次化的特征表示,快速分層處理數據建立模型,更有利于分類或特征的可視化[2]。
深度學習算法打破了傳統神經網絡對訓練層數的限制,采用貪婪無監督逐層訓練方法,分開處理層層網絡結構,后一層網絡沿用前一層的訓練結果進行訓練。最后每層參數訓練完后,在整個網絡中利用有監督學習進行參數微調,從而達到提高精度的作用,本文就深度學習發展現狀及進行簡單概述并對其未來設計進行展望[4]。
深度學習是以海量數據輸入為基礎的多層神經網絡,是一種規則的自學習方法。近年來對多層神經網絡的處理算法不斷優化,結合最新的計算機技術以及先進的CPU處理器等,使它出現了突破性的進展。比如行人的圖像中,就包含了色彩、光線、五官等各種信息,而深度學習的關鍵就是通過多層非線性映射將這些因素成功分離并提取。簡單說,就是可以減少參數,同時還不斷有海量數據的輸入,徹底顛覆了“人造特征”的范式,開啟了數據驅動即數據自提取特征的范式,計算機自己發現規則,進行自學習。現在計算機認圖的能力已經凌駕于人類之上,尤其在圖像和語音等復雜應用方面,深度學習技術有了很大的進展。
再者是谷歌訓練機械手抓取的例子,谷歌現在用機器人訓練一個深度神經網絡,利用程序實現一次抓取,根據攝像頭輸入和執行命令,預測抓取的結果,使得機器人可以實現手眼協調。所有行為都從學習中自然浮現,而不是依靠傳統的系統程序,完全顛覆以往的算法,利用深度學習實現圖像深度信息的采集[4]。
市面上已有的可實現實現人的跟蹤的無人機,它的方法就在于,可以通過人工的方式進行特征選擇,拿簡單的顏色特征舉例,若單用機械的方式查找,在幾個人穿著相同的衣服有著差不多的體態的情況下就很容易跟丟或混淆,此時,若想在這個基礎上繼續優化算法,將特征進行調整,實屬非常困難,而且調整后,還會存在對過去某些環境狀態不適用的問題,算法的不停迭代卻會影響前面的效果。而利用深度學習,把所有人最顯眼的個人信息做出來,只區分好前景和背景。區分之后,背景全部用數學方式進行填充,再以此為基礎不斷生產大量背景數據,進行自學習,便利了查找過程。

圖1 利用卷積神經網絡建立行人重識別模型
對于圖像的處理是深度學習算法最早嘗試應用的領域,從一開始的大量數據提取到不斷優化算法,現如今的圖像處理技術已十分成熟,尤其是2012年在網絡的訓練中引入了權重衰減的概念,可以以更簡便的算法及參數幅度產生更多的數據。現在深度學習網絡模型能夠理解和識別一般的自然圖像,不僅大幅提高了圖像識別的精度,同時也避免了需要消耗大量的時間進行人工特征提取等重復性工作,使得運算效率得到了大大的提升[4-5]。
深度神經網絡是由多個單層非線性網絡疊加而成的可以分為前饋深度網絡、反饋深度網絡和雙向深度網絡3類[4]。
作為最早進行模型建立的人工神經網絡之一,前饋深度網絡也叫前饋神經網絡,其特點在于數據的單方向流動,從輸入到達輸出單元,且不會構成有向環。典型的前饋神經網絡有卷積神經網絡和單層卷積神經網絡等。
2.1.1 單層卷積神經網絡
卷積階段的輸入是由n1個n2×n3大二維特征圖構成的三維數組,以xi為,該階段的輸出y也是個三維數組,由m1個m2×m3大特征圖構成。在卷積階段,連接輸入特征圖xi和特征圖yj的記為ijω,核的大小為23k ×k[4]。輸出特征圖為:

式中:*為二維離散卷積的運算符,bj為練的偏置函數。
非線性階段是通過非線性變換的方式過濾有效的卷積階段得到的特征向量,提高數據處理的精度,兩種非線性操作函數如圖2所示。

圖2 兩種非線性操作函數(sin和cos)
下采樣階段,通常采用平均或最大池化的操作。完全去掉下采樣,通過在卷積階段設置卷積核窗口滑動達到降低分辨率的算法也已運用在一些網絡模型中[4]。

圖3 卷積神經網絡訓練過程
2.1.2 卷積神經網絡
卷積神經網絡可以進行大型圖像識別,是深度前饋人工神經網絡的一種,多次堆疊單層的神經網絡結構,后層網絡沿用前層網絡的數據,其中反向傳播法以及有監督的訓練方式最為常用,算法流程如圖3所示[4]。
在進行圖像識別以及解決各類重識別問題中也廣泛用到卷積神經網絡,卷積網絡模型圖如圖4所示。

圖4 利用神經網絡進行層次重識別
卷積神經網絡采用原始信號輸入,減少復雜的特征提取次數同時避免圖像重建過程,相較于傳統的計算方法有了較大的改進,利用權值共享結構降低了網絡模型的復雜度,對特征圖進行子抽樣,對照圖像局部相關系原則有效地減少數據處理量。
區別于前饋深度網絡,反饋深度網絡反解輸入信號,而不是通過編碼信號進行數據處理。典型的反饋深度網絡有反卷積網絡、層次稀疏編碼網絡等,通過求解最優輸入信號分解問題計算特征,使得特征更精準,更有利于信號的分類或重建。
雙向深度網絡結構上結合了編碼器層和解碼器層方式進行疊加,以前饋和反饋深度網絡的訓練方法為綜合,包括單層網絡的預訓練和逐層反向迭代誤差兩個部分,每層使用輸入信號IL與ω計成信號IL+1傳下一層,信號IL+1再同的權值ω計成重構信號映輸入層,通過不斷縮小IL與IL'間差,再通過反向迭代誤差對整個網絡結構進行權值微調。典型的雙向深度網絡有深度玻爾茲曼機、棧式自編碼器等。
深度置信網絡可以用來進行精細化和網絡預訓練,由多層無監督的受限玻爾茲曼機和一層有監督的前饋反向傳播網絡組成,是一種快速學習算法,建立模型中可以分為無監督訓練和微調訓練兩個階段,第一階段采用無監督的貪婪逐層訓練法,以獲得每層的條件概率分布;第二階段采用帶標簽的數據篩選算法對網絡參數進行微調。深度置信網絡結合了無監督學習和有監督學習各自的優點,克服了BP網絡因隨機初始化權值參數而容易陷人局部最優和訓練時間長的缺點,并具有高靈活性,是構建新型深度學習網絡的結構基礎。為解決深度置信網絡面臨的挑戰,科學家們又提出了卷積深度置信網絡證明了深度置信網絡適應卷積方式運作,利用鄰域像素的空域關系進行卷積操作,更容易得到變換后的高維圖像[4]。
深度循環網絡是提出的一類專門用來處理序列的循環神經網絡,它可以像神經網絡那樣擴展到更長的序列。它主要由輸人層、隱藏層和輸出層組成,從而實現了時間記憶的功能。相比傳統的網絡,它更加符合生物神經元的連接方式,并且已被廣泛地應用在自然語言處理等領域,取得了不錯的進展[11][20]。
隨機梯度下降法是用來求解最小二乘法問題的一種迭代法,隨機梯度下降法中求解最小化損失函數的算法過程是每次隨機取一組樣本θj,對應的待擬合函數h(x),根據梯度下降法,用損失函數J(θ)對θ求,再不斷根據學習率更新,得到:

SGD一輪迭代只選用一條隨機選取的數據,學習時間非常迅速。在非凸函數上,梯度下降法求得的可能是極值而非最值,因此耗費大量的時間和內存,而隨機梯度下降法擁有最終收斂于一個較好的局部極值點的優勢,但易出現損失函數波動等問題。
根據深度學習的特點和現如今取得的進展,深度學習在未來的發展中體現出神經網絡呈層數越來越多,結構越來越復雜的趨勢。當然網絡層數越多,結構越復雜深度學習網絡的性能越好,學習效果也越來越好,這表明在未來的發展中深度網絡技術將會不斷進步。再者深度神經網絡節點功能也將不斷豐富。節點越來越豐富,不斷接近人腦的結構,將更加有利于克服目前神經網絡存在的局限性。深度學習可以與強化學習、遷移學習等不同的機器學習技術融合,以解決單項技術面臨的一些缺陷。在領域方面,深度學習具有較好遷移學習的性質,使得一個模型訓練好后可以拿到另一個問題上做簡單的改進就可以繼續使用。由于深度學習在計算機視覺和語音識別方優于過傳統方法,其中一些好的方法經過改進,也適用于其他領域。例如深度學習在處理海量數據時在并行處理、進行模式識別特征提取、數據預測等方面都有巨大的優勢,這與聲學研究具有極大的契合性,因此可以在聲學處理上運用深度學習解決部分問題[15]。
很多傳統方法,還在采用人工視覺計算,用計算機去做局部匹配,再根據視線測出的兩個匹配數據的差距,去推算空間的具體位置,這樣的判斷方法無疑存在很大的誤差,而深度學習的出現,使得很多公司辛苦積累的軟件算法失去效果,以前提出的“算法為核心競爭力”,正在逐步轉變為,“數據為核心競爭力”,這同時也要求技術人員必須進入新的起跑線,研究新技術,尤其是不斷研究像深度學習這樣具有強大功能以及競爭力的模型方法。
目前我們所能接觸到的深度學習算法多體現在語音識別,手勢識別、圖像識別、自然語言的問題處理等方面,利用編程語言及算法實現識別功能,利用網絡上部分開放的資源進行識別功能的體現,像百度、小米等人工智能語音都是我們學習的對象。深度學習在如今的發展中依托先進的計算機技術以及日益進步的處理器等硬件實力的增強不斷進行算法的優化與提升,大大解決了以前大量數據冗余的問題,且提出多種模型解決復雜的專業疑難,在我們的生活中多方面以成功進行使用,但在未來基于深度學習中的無標記數據的特征學習、模型規模與訓練速度以及其他方法的融合都是值得我們進一步研究的問題。