0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析深度學習的原理及其架構

ss ? 來源:網絡整理 ? 作者:工程師譚軍 ? 2018-10-07 15:13 ? 次閱讀
深度學習的概念源于人工神經網絡的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現數據的分布式特征表示。
深度學習的概念由Hinton等人于2006年提出。基于深度置信網絡(DBN)提出非監(jiān)督貪心逐層訓練算法,為解決深層結構相關的優(yōu)化難題帶來希望,隨后提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。 [1]
深度學習是機器學習中一種基于對數據進行表征學習的方法。觀測值(例如一幅圖像)可以使用多種方式來表示,如每個像素強度值的向量,或者更抽象地表示成一系列邊、特定形狀的區(qū)域等。而使用某些特定的表示方法更容易從實例中學習任務(例如,人臉識別或面部表情識別)。深度學習的好處是用非監(jiān)督式或半監(jiān)督式的特征學習和分層特征提取高效算法來替代手工獲取特征。
深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。 [2]
同機器學習方法一樣,深度機器學習方法也有監(jiān)督學習與無監(jiān)督學習之分.不同的學習框架下建立的學習模型很是不同.例如,卷積神經網絡(Convolutional neural networks,簡稱CNNs)就是一種深度的監(jiān)督學習下的機器學習模型,而深度置信網(Deep Belief Nets,簡稱DBNs)就是一種無監(jiān)督學習下的機器學習模型。
假設我們有一個系統(tǒng)S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為: I =》S1=》S2=》…。.=》Sn =》 O,如果輸出O等于輸入I,即輸入I經過這個系統(tǒng)變化之后沒有任何的信息損失,設處理a信息得到b,再對b處理得到c,那么可以證明:a和c的互信息不會超過a和b的互信息。這表明信息處理不會增加信息,大部分處理會丟失信息。保持了不變,這意味著輸入I經過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示。現在回到主題Deep Learning,需要自動地學習特征,假設我們有一堆輸入I(如一堆圖像或者文本),假設設計了一個系統(tǒng)S(有n層),通過調整系統(tǒng)中參數,使得它的輸出仍然是輸入I,那么就可以自動地獲取得到輸入I的一系列層次特征,即S1,…, Sn。 [3]
對于深度學習來說,其思想就是對堆疊多個層,也就是說這一層的輸出作為下一層的輸入。通過這種方式,就可以實現對輸入信息進行分級表達了。 [3]
另外,前面是假設輸出嚴格地等于輸入,這個限制太嚴格,可以略微地放松這個限制,例如只要使得輸入與輸出的差別盡可能地小即可,這個放松會導致另外一類不同的Deep Learning方法。上述就是Deep Learning的基本思想。 [3]
把學習結構看作一個網絡,則深度學習的核心思路如下:
①無監(jiān)督學習用于每一層網絡的pre-train;
②每次用無監(jiān)督學習只訓練一層,將其訓練結果作為其高一層的輸入;
③用自頂而下的監(jiān)督算法去調整所有層
主要技術
線性代數、概率和信息論
欠擬合、過擬合、正則化
最大似然估計和貝葉斯統(tǒng)計
隨機梯度下降
監(jiān)督學習和無監(jiān)督學習
深度前饋網絡、代價函數和反向傳播
正則化、稀疏編碼和dropout
自適應學習算法
卷積神經網絡
循環(huán)神經網絡
遞歸神經網絡
深度神經網絡和深度堆疊網絡
LSTM長短時記憶
主成分分析
正則自動編碼器
表征學習
蒙特卡洛
受限波茲曼機
深度置信網絡
softmax回歸、決策樹和聚類算法
KNN和SVM
生成對抗網絡和有向生成網絡
機器視覺和圖像識別
自然語言處理
語音識別和機器翻譯
有限馬爾科夫
動態(tài)規(guī)劃
梯度策略算法
增強學習(Q-learning)
轉折點
2006年前,嘗試訓練深度架構都失敗了:訓練一個深度有監(jiān)督前饋神經網絡趨向于產生壞的結果(同時在訓練和測試誤差中),然后將其變淺為1(1或者2個隱層)。
2006年的3篇論文改變了這種狀況,由Hinton的革命性的在深度信念網(Deep Belief Networks, DBNs)上的工作所引領:
Hinton, G. E., Osindero, S. and Teh, Y.,A fast learning algorithm for deep belief nets.Neural Computation 18:1527-1554, 2006
Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle,Greedy LayerWise Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007
Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeCun Efficient Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press, 2007
在這三篇論文中以下主要原理被發(fā)現:
表示的無監(jiān)督學習被用于(預)訓練每一層;
在一個時間里的一個層次的無監(jiān)督訓練,接著之前訓練的層次。在每一層學習到的表示作為下一層的輸入;
用有監(jiān)督訓練來調整所有層(加上一個或者更多的用于產生預測的附加層);
DBNs在每一層中利用用于表示的無監(jiān)督學習RBMs。Bengio et al paper 探討和對比了RBMs和auto-encoders(通過一個表示的瓶頸內在層預測輸入的神經網絡)。Ranzato et al paper在一個convolutional架構的上下文中使用稀疏auto-encoders(類似于稀疏編碼)。Auto-encoders和convolutional架構將在以后的課程中講解。
從2006年以來,大量的關于深度學習的論文被發(fā)表。

深度學習是計算機領域中目前非?;鸬?a href="http://www.ttokpm.com/v/tag/" target="_blank">話題,不僅在學術界有很多論文,在業(yè)界也有很多實際運用。本篇博客主要介紹了三種基本的深度學習的架構,并對深度學習的原理作了簡單的描述。本篇文章翻譯自Medium上一篇入門介紹。

深度學習是計算機領域中目前非?;鸬脑掝},不僅在學術界有很多論文,在業(yè)界也有很多實際運用。本篇博客主要介紹了三種基本的深度學習的架構,并對深度學習的原理作了簡單的描述。翻譯自:原文地址

簡介

機器學習技術在當代社會已經發(fā)揮了很大的作用:從網絡搜索到社交網絡中的內容過濾到電子商務網站的個性化推薦,它正在快速的出現在用戶的消費品中,如攝像機和智能手機。機器學習系統(tǒng)可以用來識別圖像中的物體,將語音轉變成文字,匹配用戶感興趣的新聞、消息和產品等,也可以選擇相關的搜索結果。這些應用越來越多的使用一種叫做“深度學習(Deep Learning)”的技術。

深度學習(Deep Learning)(也稱為深度結構學習【Deep Structured Learning】、層次學習【Hierarchical Learning】或者是深度機器學習【Deep Machine Learning】)是一類算法集合,是機器學習的一個分支。它嘗試為數據的高層次摘要進行建模。以一個簡單的例子來說,假設你有兩組神經元,一個是接受輸入的信號,一個是發(fā)送輸出的信號。當輸入層接收到輸入信號的時候,它將輸入層做一個簡單的修改并傳遞給下一層。在一個深度網絡中,輸入層與輸出層之間可以有很多的層(這些層并不是由神經元組成的,但是它可以以神經元的方式理解),允許算法使用多個處理層,并可以對這些層的結果進行線性和非線性的轉換。

譯者補充:深度學習的思想與人工神經網絡思想是一致的??偟膩碚f,神經網絡是一種機器學習架構,所有的個體單元以權重的方式連接在一起,且這些權重是通過網絡來訓練的,那么它就可以稱之為神經網絡算法。人工神經網絡算法的思想來源于模仿人類大腦思考的方式。人類大腦是通過神經系統(tǒng)得到輸入信號再作出相應反映的,而接受外部刺激的方式是用神經元接受神經末梢轉換的電信號。那么,我們希望通過人造神經元的方式模擬大腦的思考,這就產生了人工神經網絡了。人工神經元組成了人工神經網絡的計算單元,而人工神經網絡結構描述了這些神經元的連接方式。我們可以采用層的方式組織神經元,層與層之間可以互相連接。以前受制于很多因素,我們無法添加很多層,而現在隨著算法的更新、數據量的增加以及GPU的發(fā)展,我們可以用很多的層來開發(fā)神經網絡,這就產生了深度神經網絡。而深度學習其實就是深度神經網絡的一個代名詞。關于人工神經網絡算法可以參考人工神經網絡(Artificial Neural Network)算法簡介。

近些年來,深度學習通過在某些任務中極佳的表現正在改革機器學習。深度學習方法在會話識別、圖像識別、對象偵測以及如藥物發(fā)現和基因組學等領域表現出了驚人的準確性。但是,“深度學習”這個詞語很古老,它在1986年由Dechter在機器學習領域提出,然后在2000年有Aizenberg等人引入到人工神經網絡中。而現在,由于Alex Krizhevsky在2012年使用卷積網絡結構贏得了ImageNet比賽之后受到大家的矚目。

深度學習架構

1、生成式深度架構(Generative deep architectures),主要是用來描述具有高階相關性的可觀測數據或者是可見的對象的特征,主要用于模式分析或者是總和的目的,或者是描述這些數據與他們的類別之間的聯合分布。(其實就是類似與生成模型)

2、判別式深度架構(Discriminative deep architectures),主要用于提供模式分類的判別能力,經常用來描述在可見數據條件下物體的后驗類別的概率。(類似于判別模型)

3、混合深度架構(Hybrid deep architectures),目標是分類,但是和生成結構混合在一起了。比如以正在或者優(yōu)化的方式引入生成模型的結果,或者使用判別標注來學習生成模型的參數。

盡管上述深度學習架構的分類比較復雜,其實實際中對應的模型的例子就是深度前饋網絡,卷積網絡和遞歸神經網絡(Deep feed-forward networks, Convolution networks and Recurrent Networks)。

深度前饋網絡(Deep feed-forward networks)

深度前饋網絡也叫做前饋神經網絡,或者是多層感知機(Multilayer Perceptrons,MLPs),是深度學習模型中的精粹。

前饋網絡的目標是近似某些函數。例如,對于一個分類器,y=f(x)y=f(x)來說,它將一個輸入值xx變成對應的類別yy。前饋網絡就是定義一個映射y=f(x;θ)y=f(x;θ),并學習出參數θθ使得產生最好的函數近似。

簡而言之,神經網絡可以定義成輸入層,隱含層和輸出層。其中,輸入層接受數據,隱含層處理數據,輸出層則輸出最終結果。這個信息流就是接受xx,通過處理函數ff,在達到輸出yy。這個模型并沒有任何的反饋連接,因此被稱為前饋網絡。模型如下圖所示:

卷積神經網絡(Convolution Neural Networks)

在機器學習中,卷積神經網絡(簡稱CNN或者ConvNet)是一種前饋神經網絡,它的神經元的連接是啟發(fā)于動物視覺皮層。單個皮質神經元可以對某個有限空間區(qū)域的刺激作出反應。這個有限空間可以稱為接受域。不同的神經元的接受域可以重疊,從組成了所有的可見區(qū)域。那么,一個神經元對某個接受域內的刺激作出反應,在數學上可以使用卷積操作來近似。也就是說,卷積神經網絡是受到生物處理的啟發(fā),設計使用最少的預處理的多層感知機的變體。

卷積神經網絡在圖像和視頻識別、推薦系統(tǒng)以及自然語言處理中都有廣泛的運用。

LeNet是早期推動深度學習發(fā)展的卷積神經網絡之一。這是Yann LeCun從1988年以來進行的許多詞的成功迭代后得到的開創(chuàng)性工作,稱之為LeNet5。在當時,LeNet架構主要用來進行字符識別的工作,如讀取郵編,數字等。如下圖所示,卷積神經網絡主要包含四塊:

卷積層(Convolutional Layer)

激活函數(Activation Function)

池化層(Pooling Layer)

全連接層(Fully Connected Layer)

卷積層(Convolutional Layer)

卷積層是基于單詞“卷積(Convolution)”而來,這是一種數學上的操作,它是對兩個變量f\*gf\*g進行操作產生第三個變量。它和互相關(cross-correlation)很像。卷積層的輸入是一個m×m×rm×m×r圖像,其中m是圖像的高度和寬度,r是通道的數量,例如,一個RGB圖像的通道是3,即r=3r=3。卷積層有kk個濾波器【filters】(或者稱之為核【kernel】),其大小是n×n×qn×n×q,這里的nn是比圖像維度小的一個數值,qq既可以等于通道數量,也可以小于通道數量,具體根據不同的濾波器來定。濾波器的大小導致了

激活函數(Activation Function)

為了實現復雜的映射函數,我們需要使用激活函數。它可以帶來非線性的結果,而非線性可以使得我們很好的擬合各種函數。同時,激活函數對于壓縮來自神經元的無界線性加權和也是重要的。

激活函數很重要,它可以避免我們把大的數值在高層次處理中進行累加。激活函數有很多,常用的有sigmoid,tanh和ReLU。

池化層(Pooling Layer)

池化是一個基于樣本的離散化過程。其目的上降低輸入表示的采樣(這里的輸入可以是圖像,隱層的輸出等),減少它們的維度,并允許我們假設特征已經被包含在了子區(qū)域中。

這部分的作用是通過提供一種抽象的形式表示來幫助過擬合表示。同樣的,它也通過減少了參數的數量降低了計算的復雜度并為內部的表示提供一個基本的不變性的轉換。

目前最常用的池化技術有Max-Pooling、Min-Pooling和Average-Pooling。下圖是2*2濾波器的Ma-Pooling操作示意圖。

全連接層(Fully Connected Layer)

“全連接”的意思是指先前的層里面的所有的神經元都與后一個層里面的所有的神經元相連。全連接層是一種傳統(tǒng)的多層感知機,在輸出層,它使用softmax激活函數或者其他激活函數。

遞歸神經網絡(Recurrent Neural Networks)

在傳統(tǒng)的神經網絡中,我們假設所有的輸入之間相互獨立。但是對于很多任務來說,這并不是一個好的主意。如果你想知道一個句子中下一個單詞是什么,你最好知道之前的單詞是什么。RNN之所以叫RNN就是它對一個序列中所有的元素都執(zhí)行相同的任務,所有的輸出都依賴于先前的計算。另一種思考RNN的方式是它會記住所有之前的計算的信息。

一個RNN里面有很多循環(huán),它可以攜帶從輸入中帶來的信息。如下圖所示,x_tx_t是一種輸入,A是RNN里面的一部分,h_th_t是輸出。本質上,您可以從句子中輸入文字,甚至還可以從字符串中輸入x_tx_t格式的字符,通過RNN可以提供一個h_th_t。 RNN的一些類型是LSTM,雙向RNN,GRU等。

由于任何輸入和輸出都可以在RNN中變成一對一或者多對多的形式,RNN可以用在自然語言處理、機器翻譯、語言模型、圖像識別、視頻分析、圖像生成、驗證碼識別等領域。下圖展示了RNN可能的結構以及對模型的解釋。

應用

深度學習有很多應用,很多特別的問題也可以通過深度學習解決。一些深度學習的應用舉例如下:

黑白圖像的著色

深度學習可以用來根據對象及其情景來為圖片上色,而且結果很像人類的著色結果。這中解決方案使用了很大的卷積神經網絡和有監(jiān)督的層來重新創(chuàng)造顏色。

機器翻譯

深度學習可以對未經處理的語言序列進行翻譯,它使得算法可以學習單詞之間的依賴關系,并將其映射到一種新的語言中。大規(guī)模的LSTM的RNN網絡可以用來做這種處理。

圖像中的對象分類與檢測

這種任務需要將圖像分成之前我們所知道的某一種類別中。目前這類任務最好的結果是使用超大規(guī)模的卷積神經網絡實現的。突破性的進展是Alex Krizhevsky等人在ImageNet比賽中使用的AlexNet模型。

自動產生手寫體

這種任務是先給定一些手寫的文字,然后嘗試生成新的類似的手寫的結果。首先是人用筆在紙上手寫一些文字,然后根據寫字的筆跡作為語料來訓練模型,并最終學習產生新的內容。

自動玩游戲

這項任務是根據電腦屏幕的圖像,來決定如何玩游戲。這種很難的任務是深度強化模型的研究領域,主要的突破是DeepMind團隊的成果。

聊天機器人

一種基于sequence to sequence的模型來創(chuàng)造一個聊天機器人,用以回答某些問題。它是根據大量的實際的會話數據集產生的。想了解詳情,可以參考:https://medium.com/shridhar743/generative-model-chatbots-e422ab08461e

結論

從本篇博客來看,由于模仿了人類大腦,深度學習可以運用在很多領域中。目前有很多領域都在研究使用深度學習解決問題。盡管目前信任是個問題,但是它終將被解決。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8306

    瀏覽量

    131841
  • 深度學習
    +關注

    關注

    73

    文章

    5422

    瀏覽量

    120590
收藏 人收藏

    評論

    相關推薦

    深度學習的硬件架構解析

    深度學習在這十年,甚至是未來幾十年內都有可能是最熱門的話題。雖然深度學習已是廣為人知了,但它并不僅僅包含數學、建模、學習和優(yōu)化。算法必須在優(yōu)
    發(fā)表于 11-18 16:00 ?5663次閱讀

    超越英偉達Pascal五倍?揭秘英特爾深度學習芯片架構 精選資料推薦

    在被英特爾收購兩年之后,深度學習芯片公司 Nervana 終于準備將代號為「Lake Crest」的架構轉化為實際的產品了。對于英特爾來說,現在入局或許有些遲到,英偉達已經占據深度
    發(fā)表于 07-26 07:04

    AUTOSAR架構深度解析 精選資料推薦

    AUTOSAR架構深度解析本文轉載于:AUTOSAR架構深度解析目錄AUTOSAR架構深度解析A
    發(fā)表于 07-28 07:40

    如何在交通領域構建基于圖的深度學習架構

    學習架構因為這篇文獻對于交通領域中的各種問題、方法做了一個比較清楚的綜述,所以是一篇很有價值的文獻,很適合剛進入這個方向的同學。
    發(fā)表于 08-31 08:05

    討論紋理分析在圖像分類中的重要性及其深度學習中使用紋理分析

    紋理就能被更準確地捕捉和分類?! ≡诨诩y理的分類任務重,紋理分析對于深度學習的重要性  由于紋理基于局部模式,而傳統(tǒng)的深度學習方法強調復雜的特征,對紋理分類沒有幫助,因此,傳統(tǒng)的CN
    發(fā)表于 10-26 16:57

    什么是深度學習?使用FPGA進行深度學習的好處?

    什么是深度學習為了解釋深度學習,有必要了解神經網絡。神經網絡是一種模擬人腦的神經元和神經網絡的計算模型。作為具體示例,讓我們考慮一個輸入圖像并識別圖像中對象類別的示例。這個例子對應機器
    發(fā)表于 02-17 16:56

    新芯片架構瞄準深度學習和視覺處理

    深度學習本質上是以一組算法為基礎,透過具有多個處理層、由線性與非線性交易組成的深度繪圖,嘗試在數據中建模高層級抽象。ThinCI架構的獨特之處似乎就在于其處理
    發(fā)表于 11-03 15:17 ?1841次閱讀
    新芯片<b class='flag-5'>架構</b>瞄準<b class='flag-5'>深度</b><b class='flag-5'>學習</b>和視覺處理

    介紹了計算機視覺領域內比較成功的10個深度學習架構

    近年來,深度學習的發(fā)展勢頭迅猛,要跟上深度學習的進步速度變得越來越困難了。幾乎每一天都有關于深度學習
    的頭像 發(fā)表于 01-11 10:49 ?9153次閱讀

    MIT深度學習基礎知識 編碼器-解碼器架構分析

    本文以 7 種架構范例簡要介紹深度學習,每種范例均提供 TensorFlow 教程鏈接。
    的頭像 發(fā)表于 02-21 15:53 ?1.1w次閱讀
    MIT<b class='flag-5'>深度</b><b class='flag-5'>學習</b>基礎知識 編碼器-解碼器<b class='flag-5'>架構</b>分析

    基于深度學習的行為識別算法及其應用

    基于深度學習的行為識別算法及其應用
    發(fā)表于 06-16 14:56 ?20次下載

    什么是深度學習(Deep Learning)?深度學習的工作原理詳解

    學習中的“深度”一詞表示用于識別數據模式的多層算法或神經網絡。DL 高度靈活的架構可以直接從原始數據中學習,這類似于人腦的運作方式,獲得更多數據后,其預測準確度也將隨之提升。? ? 此
    的頭像 發(fā)表于 04-01 10:34 ?9864次閱讀

    深度學習中的圖像分割

    深度學習可以學習視覺輸入的模式,以預測組成圖像的對象類。用于圖像處理的主要深度學習架構是卷積神經
    的頭像 發(fā)表于 05-05 11:35 ?1119次閱讀

    什么是深度學習算法?深度學習算法的應用

    什么是深度學習算法?深度學習算法的應用 深度學習算法被認為是人工智能的核心,它是一種模仿人類大腦
    的頭像 發(fā)表于 08-17 16:03 ?1860次閱讀

    深度學習框架連接技術

    ,深度學習框架能夠很好的為應用程序提供預測、檢測等功能。因此本文旨在介紹深度學習框架連接技術的基本原理及其應用。 基本原理
    的頭像 發(fā)表于 08-17 16:11 ?669次閱讀

    深度學習框架和深度學習算法教程

    深度學習框架和深度學習算法教程 深度學習是機器學習
    的頭像 發(fā)表于 08-17 16:11 ?953次閱讀