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