南京市第十三中學 周子揚
機器學習與深度學習的發(fā)展及應用
南京市第十三中學 周子揚
本文綜述了機器學習常見算法的應用,以及深度學習中常見網絡模型的基本原理及深度學習在計算機視覺、語言識別、信息檢索、自然語言處理等四個方面的應用。在本文的相關工作中,闡述了近七十年來機器學習的發(fā)展狀況以及深度學習的產生與發(fā)展。
機器學習;深度學習;神經網絡;應用
機器學習,是指借助算法來分析數(shù)據(jù)規(guī)律、并利用規(guī)律來預測結果的算法,它分為監(jiān)督學習、無監(jiān)督學習和強化學習。深度學習是機器學習中神經網絡算法的擴展,它是機器學習的第二個階段--深層學習(第一階段為淺層學習),其中深度是指神經網絡的層數(shù)。因為機器學習中的單層感知機只適用于線性可分問題,而無法處理線性不可分問題。但深度學習中的多層感知機可以實現(xiàn),它針對淺層學習的劣勢—維度災難(特征的維度過高,或者無法有效表達特征),能夠通過它的層次結構、低層次特征中提取高層次特征,彌補淺層學習的不足。
由于機器學習的發(fā)展,機器學習自動學習數(shù)據(jù)隱含高等級特征的能力,會隨著模型的改進以及訓練數(shù)據(jù)的擴充而逐步提升,這導致深度學習也隨之發(fā)展。
1.分類
(1)決策樹算法(Decision Tree, DT)
DT算法可用于文章分類工作,將關鍵句子分為不同類別;也可以用于人臉識別,對人的面部特征分類,例如鼻梁高低,獲取特征數(shù)據(jù)后,與數(shù)據(jù)庫內數(shù)據(jù)匹配,進而識別。
(2)人工神經網絡(Artificial Neural Network, ANN)
網易公司為了過濾互聯(lián)網上的廣告、謠言、暴恐等不健康內容,利用ANN研發(fā)了反垃圾系統(tǒng),過濾不良信息。
(3)支持向量機(Support Vector Machine, SVM)
SVM可以快速處理大量的數(shù)據(jù),用于生物學分類問題,例如人類等高等真核生物基因剪接位點識別問題;也可以通過構造一系列超平面,將大規(guī)模的圖片進行分類。
(4)樸素貝葉斯(Na?ve Bayes, NB)
NB對大量的數(shù)據(jù)的分類效率穩(wěn)定,常用于醫(yī)院給病人分類的系統(tǒng),也用于新聞網站的新聞分類。
2.預測類
(1)k-近鄰(KNN)
KNN算法常用于手寫數(shù)字識別領域,準確率非常高。處理數(shù)據(jù)時,先將訓練數(shù)據(jù)用矩陣儲存,之后再轉化為向量。然后將測試數(shù)據(jù)輸入模型,輸出所寫數(shù)字。
(2)邏輯回歸(Logistic Regression, LR)
銀行在進行信用評估時常使用LR算法,例如在客戶填寫信息表,銀行從表和第三方信息源處獲得客戶的信用信息,并將此數(shù)據(jù)作為輸入,信用值作為輸出,經過LR計算確認該客戶的信用等級。醫(yī)學方面也時常用到LR,根據(jù)病人的危險因素,預測病人的發(fā)病概率。
(3)GBDT
GBDT算法可用于廣告點擊率的預估方面。和傳統(tǒng)的LR相比,GBDT擁有多種優(yōu)勢,其具有多種區(qū)分性特征。而且由GBDT得到的結果中的特征和特征組合都具有區(qū)分性,效果可以和人工預測相媲美。
神經網絡是深度學習中的一種算法,它也是深度學習的載體。它包含輸入層、神經元和輸出層,最早的單層神經網絡又叫感知機,在結構上它由輸入層、隱藏層和輸出層組成,連接各層之間的是權值。
假設輸入為x,輸出為y’,真實值為y,則損失函數(shù)E為:
訓練時它的權值W為隨機值:
通過梯度來更新,公式其中表示學習率,用于修正權值的變化幅度。
但單層神經網絡有局限,它不可以處理非線性可分的問題,而且如果增加層數(shù),則計算量會迅速增大。后來兩層神經網絡被提出用于解決非線性可分問題,為減少計算量,有人提出BP算法。其中BP算法是一種由后向前計算梯度、更新權值的機制,它基于高等數(shù)學中的鏈式法則。
深度神經網絡(DNN)是指具有兩層以上的神經網絡,它可以通過增加層數(shù)或者增加每層的單元數(shù),來存儲更多的參數(shù),從而構建更精密的模型。
它的訓練是基于貪心算法的逐層訓練,也就是訓練好上一層之后再增加下一個層,把上一層的輸入作為下一層的輸出。通過梯度下降方法來更新權值。
1.循環(huán)神經網絡(RNN )
但DNN會隨著層數(shù)的增加而記憶退化,也就是出現(xiàn)梯度消失或梯度爆炸等問題,為更好的記憶參數(shù),有人提出循環(huán)神經網絡的概念。
圖1 RNN展開圖及LSTM結構對比
如圖2所示,隱層中的神經元基于時間傳遞,即上一時刻的隱層中的參數(shù)輸出,作為下一時刻隱層中的輸入。RNN的訓練主要基于BPTT算法,它的局限在于,長期依賴問題。當它處理那些需要前后聯(lián)系的信息的問題時,效果會變得差。比如,機器翻譯里的長句翻譯,若是基于RNN構建模型來訓練,翻譯效果極差。
為了解決該問題,有人提出長短期記憶(LSTM)。將RNN中的隱藏層中的神經元替換為更復雜的神經元結構——增加了一些門結構,如輸入門、輸出門、遺忘門。
RNN的內部結構,它只包含了一個tanh的簡單處理邏輯,LSTM為解決長期記憶問題,將tanh替換,其中的遺忘層,用于決定遺忘的信息,它讀取上一時刻中的參數(shù)xt-1、ht-1,輸出經過sigmoid激活函數(shù)。輸出值為0表示全部忘記,1表示全部記住。輸入門決定存儲的信息,輸出門表示傳遞給下一時刻的信息。
2.卷積神經網絡(CNN)
CNN是一個多層神經網絡,它解決了深層神經網絡中模型復雜、參數(shù)過多問題。它由輸入層、特征提取層、特征映射層等組成。
CNN通過三種機制——局部感受野、權值共享、時間/空間亞采樣,來保證信息的穩(wěn)定性——尺度、位移、形狀不變。
特征提取層是一個卷積層,它通過卷積運算來強化特征信息,同時降低噪音。特征映射層是個下采樣層 ,它通過對此圖像進行子抽樣,來減少信息量從而降低噪音。
卷積神經網絡通過感受野和權值共享來減少參數(shù)的個數(shù),從而降低訓練模型的訓練成本。普通的神經網絡是通過全局來感受外界圖像,而卷積神經網絡是通過局部感受野來感受外界圖像,第一層的神經元綜合起來傳遞給高層,然后高層得到全局信息。通過這種方式可以減少權值參數(shù)。
3.受限波爾茲曼機(RBM )
RBM由可視層和隱藏層兩部分組成,它是基于能量模型和波爾茲曼網絡。能量模型是一種基于狀態(tài)來定義狀態(tài)的能量的模型,而波爾茲曼網絡是一種隨機網絡,它的輸入層可以計算隱層節(jié)點的值得概率,輸出層也可以。下圖為受限制波爾茲曼機的結構。
隱藏層和可視層通過權值連接,而同層之間沒有連接。所有的隱藏層和可視層都滿足波爾茲曼分布,所以可以通過輸入可視層來得到隱藏層,然后由隱藏層得到可視層,根據(jù)偏差來調整參數(shù)直得到的可視層與原來的可視層一致為止,這時候的隱藏層便可以作為可視層變換后的特征。
增加隱藏層的數(shù)量便得到深度波爾茲曼機,把靠近可視層的部分改為有向圖模型,遠離可視層的部分仍為受限制波爾茲曼機時,便可得到深度信念網絡(DBN)。DBN是一種生成模型,它由多個RBM組成,訓練時通過逐層傳遞的方式來計算權值參數(shù),這樣便于學習權值。
1.計算機視覺
傳統(tǒng)的機器視覺方法,主要取決于自定義的特征,然而這些特征不能抓取高等級的邊界信息。為了彌補小規(guī)模樣本的不足--不能有效表達復雜特征,計算機視覺開始轉向深度學習,比如2012年A.Krizhevsky對Image Net LSVRC 2010數(shù)據(jù)集(有1000個種類的120萬個圖像),用DNN來分類。在top1 和 top5 上的錯誤率依次是 37.5% 和17.0%,超過了傳統(tǒng)方法。除此之外,深度學習在人臉識別中也取得很好的識別效果,比如2014年Sun Yi用深度隱藏身份特征(deep hidden identity feature)來表示面部特征,在LFW上測試準確度達到97.45%。
2.語音識別
語音識別已經發(fā)展了幾十年,傳統(tǒng)的方法是統(tǒng)計學方法,主要基于隱馬爾可夫-高斯混合模型(HMM-GMM)。傳統(tǒng)方法的特征無法涵蓋語音數(shù)據(jù)的原有結構特征,因而對數(shù)據(jù)相關性的容忍度低,而DNN替換GMM后可以彌補此不足。比如2012年微軟的語音視頻檢索系統(tǒng),通過深度學習方法將單詞錯誤率(word error rate)從27.4%降到18.5%。DNN相比于HMM-GMM有10%左右的提升,CNN相比DNN,對數(shù)據(jù)間的相關性適應能力更強。
3.信息檢索
傳統(tǒng)信息檢索采用TF-IDF系統(tǒng),但該系統(tǒng)針對大詞匯量的問題處理效率低下,而且語義相似性也沒有考慮到。深度學習從2009年開始應用于信息檢索,DNN可以很好地表示文檔的詞計數(shù)特征,通過深度自編碼器將語義相似的文檔存放在相近的地址,從而提高檢索效率。比如2014年,Shen Yelong提出的卷積深度語義模型,可以將上下文中相同語義的單詞通過卷積結構,投影到上下文特征空間向量,把準確率從43.1%提高到44.7%。
4.自然語言處理
傳統(tǒng)的自然語言處理多是分離式處理問題,比如語言模型、語義相關詞,沒有整體處理。傳統(tǒng)系統(tǒng)有一些不足,比如淺層結構、分類線性可分,需要人工特征預處理等。2008年R.Collobert在自然語言處理領域開始應用DNN,錯誤率達到14.3%。
機器學習是人工智能里的一個重要方向,隨著機器學習中神經網絡算法的深入研究,深度學習的網絡算法也日益完善,機器學習與深度學習的應用也不斷推廣。本文先綜述了機器學習常見算法的應用,然后由神經網絡引入深度學習,介紹了深度學習中常見網絡的原理以及應用。
由于作者見解和時間局限,關于機器學習和深度學習的研究有待完善,因而接下來會注重更多深度學習算法的研究。
[1]張建明,詹智財,成科揚,詹永照.深度學習的研究與發(fā)展[J/OL].江蘇大學學報(自然科學版),2015,36(02):191-200(2015-01-22)[2017-08-21].http://kns.cnki.net/kcms/detail/32.1668.n.20150122.1716.013.html.
[2]毛勇華,桂小林,李前,賀興時.深度學習應用技術研究[J/OL].計算機應用研究,2016,33(11):3201-3205(2016-06-15)[2017-08-21].http://kns.cnki.net/kcms/detail/51.1196.tp.20160615.1021.018.html.
[3]胡侯立,魏維,胡蒙娜.深度學習算法的原理及應用[J].信息技術,2015(02):175-177[2017-08-21].DOI:10.13274/j.cnki.hdzj.2015.02.045.
[4]喬林,張雄偉,史海寧,賈沖.第4講 深度學習應用中的常見模型[J].軍事通信技術,2016,37(01):98-104[2017-08-21].DOI:10.16464/j.cnki.cn32-1289.2016.01.020.