什么是深度學(xué)習(xí)?有什么優(yōu)點和缺點?
人工智能(AI)是一門科學(xué),機器學(xué)習(xí)(ML)是目前最主流的人工智能實現(xiàn)方法,而深度學(xué)習(xí)(DL)則是機器學(xué)習(xí)(ML)的一個分支,也是當(dāng)下最流行的機器學(xué)習(xí)(ML)的一種。
深度學(xué)習(xí)在機器學(xué)習(xí)領(lǐng)域是一個很熱的概念,經(jīng)過媒體和大V等炒作,這個概念變得近乎有些神話的感覺,下面讓我來慢慢揭開深度學(xué)習(xí)的神秘面紗。^_^
深度學(xué)習(xí)(DeepLearning)的概念由Hinton等人于2006年提出。基于深度置信網(wǎng)絡(luò)(DBN)提出非監(jiān)督貪心逐層訓(xùn)練算法,為解決深層結(jié)構(gòu)相關(guān)的優(yōu)化難題帶來希望,隨后提出多層自動編碼器深層結(jié)構(gòu)。此外Lecun等人提出的卷積神經(jīng)網(wǎng)絡(luò)是第一個真正多層結(jié)構(gòu)學(xué)習(xí)算法,它利用空間相對關(guān)系減少參數(shù)數(shù)目以提高訓(xùn)練性能。
那么究竟什么是深度學(xué)習(xí)呢?深度學(xué)習(xí)(DL)是機器學(xué)習(xí)中一種基于對數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法,是一種能夠模擬出人腦的神經(jīng)結(jié)構(gòu)的機器學(xué)習(xí)方法。深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。而人工神經(jīng)網(wǎng)絡(luò)ANN(ArTIficial Neural Network)是從信息處理角度對人腦神經(jīng)元網(wǎng)絡(luò)進(jìn)行抽象,建立某種簡單模型,按不同的連接方式組成不同的網(wǎng)絡(luò),簡稱為神經(jīng)網(wǎng)絡(luò)或類神經(jīng)網(wǎng)絡(luò)。因此,深度學(xué)習(xí)又叫深層神經(jīng)網(wǎng)絡(luò)DNN(Deep Neural Networks),是從之前的人工神經(jīng)網(wǎng)絡(luò)ANN模型發(fā)展而來的。
深度學(xué)習(xí)是機器學(xué)習(xí)研究中的一個新領(lǐng)域,其動機在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機制來解釋數(shù)據(jù),比如圖像,聲音和文本等。深度學(xué)習(xí),能讓計算機具有人一樣的智慧,其發(fā)展前景必定是無限的。
同機器學(xué)習(xí)方法一樣,深度機器學(xué)習(xí)方法也有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之分.不同的學(xué)習(xí)框架下建立的學(xué)習(xí)模型很是不同.例如,卷積神經(jīng)網(wǎng)絡(luò)(ConvoluTIonalneural networks,簡稱CNNs)就是一種深度的監(jiān)督學(xué)習(xí)下的機器學(xué)習(xí)模型,而深度置信網(wǎng)(DeepBelief Nets,簡稱DBNs)就是一種無監(jiān)督學(xué)習(xí)下的機器學(xué)習(xí)模型。
深度學(xué)習(xí)所涉及的技術(shù)主要有:線性代數(shù)、概率和信息論、欠擬合、過擬合、正則化、最大似然估計和貝葉斯統(tǒng)計、隨機梯度下降、監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)、深度前饋網(wǎng)絡(luò)、代價函數(shù)和反向傳播、正則化、稀疏編碼和dropout、自適應(yīng)學(xué)習(xí)算法、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)、深度神經(jīng)網(wǎng)絡(luò)和深度堆疊網(wǎng)絡(luò)、LSTM長短時記憶、主成分分析、正則自動編碼器、表征學(xué)習(xí)、蒙特卡洛、受限波茲曼機、深度置信網(wǎng)絡(luò)、softmax回歸、決策樹和聚類算法、KNN和SVM、生成對抗網(wǎng)絡(luò)和有向生成網(wǎng)絡(luò)、機器視覺和圖像識別、自然語言處理、語音識別和機器翻譯、有限馬爾科夫、動態(tài)規(guī)劃、梯度策略算法和增強學(xué)習(xí)(Q-learning)等等。
討論深度學(xué)習(xí),肯定會講到“深度(Depth)”一詞,“深度”即層數(shù)。從一個輸入中產(chǎn)生一個輸出所涉及的計算可以通過一個流向圖(flowgraph)來表示:流向圖是一種能夠表示計算的圖,在這種圖中每一個節(jié)點表示一個基本的計算以及一個計算的值,計算的結(jié)果被應(yīng)用到這個節(jié)點的子節(jié)點的值。考慮這樣一個計算集合,它可以被允許在每一個節(jié)點和可能的圖結(jié)構(gòu)中,并定義了一個函數(shù)族。輸入節(jié)點沒有父節(jié)點,輸出節(jié)點沒有子節(jié)點。這種流向圖的一個特別屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。
深度超過8層的神經(jīng)網(wǎng)絡(luò)才叫深度學(xué)習(xí)。含多個隱層的多層學(xué)習(xí)模型是深度學(xué)習(xí)的架構(gòu)。深度學(xué)習(xí)可以通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
深度學(xué)習(xí)的”深度“是指從”輸入層“到”輸出層“所經(jīng)歷層次的數(shù)目,即”隱藏層“的層數(shù),層數(shù)越多,深度也越深。所以越是復(fù)雜的選擇問題,越需要深度的層次多。除了層數(shù)多外,每層”神經(jīng)元“-黃色小圓圈的數(shù)目也要多。例如,AlphaGo的策略網(wǎng)絡(luò)是13層,每一層的神經(jīng)元數(shù)量為192個。
深度學(xué)習(xí)可通過學(xué)習(xí)一種深層非線性網(wǎng)絡(luò)結(jié)構(gòu),實現(xiàn)復(fù)雜函數(shù)逼近,表征輸入數(shù)據(jù)分布式表示,并展現(xiàn)了強大的從少數(shù)樣本集中學(xué)習(xí)數(shù)據(jù)集本質(zhì)特征的能力。多層的好處是可以用較少的參數(shù)表示復(fù)雜的函數(shù)。
深度學(xué)習(xí)的實質(zhì),是通過構(gòu)建具有很多隱層的機器學(xué)習(xí)模型和海量的訓(xùn)練數(shù)據(jù),來學(xué)習(xí)更有用的特征,從而最終提升分類或預(yù)測的準(zhǔn)確性。因此,“深度模型”是手段,“特征學(xué)習(xí)”是目的。深度學(xué)習(xí)強調(diào)了模型結(jié)構(gòu)的深度,突出了特征學(xué)習(xí)的重要性,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預(yù)測更加容易。與人工規(guī)則構(gòu)造特征的方法相比,利用大數(shù)據(jù)來學(xué)習(xí)特征,更能夠刻畫數(shù)據(jù)的豐富內(nèi)在信息。
深度學(xué)習(xí)的訓(xùn)練過程:1)自下上升非監(jiān)督學(xué)習(xí),從底層開始,一層一層的往頂層訓(xùn)練。采用無標(biāo)定數(shù)據(jù)(有標(biāo)定數(shù)據(jù)也可)分層訓(xùn)練各層參數(shù),這是一個無監(jiān)督訓(xùn)練過程,是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的部分,這個過程可以看作是feature learning過程。
2)自頂向下的監(jiān)督學(xué)習(xí),通過帶標(biāo)簽的數(shù)據(jù)去訓(xùn)練,誤差自頂向下傳輸,對網(wǎng)絡(luò)進(jìn)行微調(diào)?;诘谝徊降玫降母鲗訁?shù)進(jìn)一步fine-tune整個多層模型的參數(shù),這一個有監(jiān)督訓(xùn)練過程。
深度學(xué)習(xí)的第一步不是隨機初始化,而是通過學(xué)習(xí)輸入數(shù)據(jù)的結(jié)構(gòu)得到的,因而這個初值更接近全局最優(yōu),從而能夠取得更好的效果。所以深度學(xué)習(xí)效果好很大程度上歸功于第一步的feature learning過程。
對深度學(xué)習(xí)而言,訓(xùn)練集就是用來求解神經(jīng)網(wǎng)絡(luò)的權(quán)重的,最后形成模型;而測試集,就是用來驗證模型的準(zhǔn)確度的。
深度學(xué)習(xí)領(lǐng)域研究包含:優(yōu)化(OpTImizaTIon),泛化(Generalization),表達(dá)(Representation)以及應(yīng)用(Applications)。除了應(yīng)用(Applications)之外每個部分又可以分成實踐和理論兩個方面。
根據(jù)解決問題、應(yīng)用領(lǐng)域等不同,深度學(xué)習(xí)有許多不同實現(xiàn)形式:卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeural Networks)、深度置信網(wǎng)絡(luò)(DeepBelief Networks)、受限玻爾茲曼機(RestrictedBoltzmann Machines)、深度玻爾茲曼機(Deep BoltzmannMachines)、遞歸自動編碼器(RecursiveAutoencoders)、深度表達(dá)(DeepRepresentation)等。
深度學(xué)習(xí)的優(yōu)點:深度學(xué)習(xí)提出了一種讓計算機自動學(xué)習(xí)出模式特征的方法,并將特征學(xué)習(xí)融入到了建立模型的過程中,從而減少了人為設(shè)計特征造成的不完備性。而目前以深度學(xué)習(xí)為核心的某些機器學(xué)習(xí)應(yīng)用,在滿足特定條件的應(yīng)用場景下,已經(jīng)達(dá)到了超越現(xiàn)有算法的識別或分類性能。
深度學(xué)習(xí)的缺點:只能提供有限數(shù)據(jù)量的應(yīng)用場景下,深度學(xué)習(xí)算法不能夠?qū)?shù)據(jù)的規(guī)律進(jìn)行無偏差的估計。為了達(dá)到很好的精度,需要大數(shù)據(jù)支撐。由于深度學(xué)習(xí)中圖模型的復(fù)雜化導(dǎo)致算法的時間復(fù)雜度急劇提升,為了保證算法的實時性,需要更高的并行編程技巧和更多更好的硬件支持。因此,只有一些經(jīng)濟(jì)實力比較強大的科研機構(gòu)或企業(yè),才能夠用深度學(xué)習(xí)來做一些前沿而實用的應(yīng)用。
深度學(xué)習(xí)成功應(yīng)用于計算機視覺、語音識別、記憶網(wǎng)絡(luò)、自然語言處理等其他領(lǐng)域。
深度學(xué)習(xí)是關(guān)于自動學(xué)習(xí)需要建模的數(shù)據(jù)潛在分布的多層表達(dá)的復(fù)雜算法。深度學(xué)習(xí)算法自動的提取分類需要的低層次或者高層次特征。總之,深度學(xué)習(xí)是用多層次的分析和計算手段,得到結(jié)果的一種方法。
結(jié)語目前深度學(xué)習(xí)的發(fā)展引起其他它領(lǐng)域的革命。深度學(xué)習(xí)的火熱得益于各行各業(yè)豐富的大數(shù)據(jù)發(fā)展和計算機計算能力的提升,同時也要歸功于過去經(jīng)驗。今后深度學(xué)習(xí)將繼續(xù)解決各種識別(Recognition)和演繹(Ability to Act)方面的相關(guān)問題。當(dāng)然,機器學(xué)習(xí)本身也不是完美的,也不是解決世間任何機器學(xué)習(xí)問題的利器,深度學(xué)習(xí)目前仍有大量工作需要研究,不應(yīng)該被放大到一個無所不能的程度。