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