摘要: 對神經網絡概念還很朦朧?來看看阿里技術大牛的分享!
在本文的第1部分中,咱們簡要概述了神經網絡和深度學習。特別是,咱們討論了感知機模型、前饋神經網絡和反向傳播。在本節中,咱們將深刻學習神經網絡其餘的相關知識,特別是卷積神經網絡(CNN)和遞歸神經網絡(RNN)。segmentfault
從20世紀90年代到2006年發展的第二個低谷期,以後神經網絡再次進入羣衆視角,此次影響力比之前更大。神經網絡興起期間的一個重大事件是Hinton包括Salahundinov在內在多個學術論壇提交的多層神經網絡(如今稱爲「深度學習」)的論文。網絡
其中一個論文解決了爲神經網絡設置初始化值的問題。簡單來講,解決方案是將輸入值視爲x,將輸出值視爲解碼x,而後經過此方法找到更好的初始化點。另外一篇論文提出了一種快速訓練深度神經網絡的方法。實際上,有許多因素促成了神經網絡的普及,例如,計算資源的巨大增加和數據的可用性。在20世紀80年代,因爲缺少數據和計算資源,很難訓練大規模的神經網絡。工具
神經網絡的早期興起是由三個巨人驅動的,即Hinton,Bengio和LeCun。Hinton的主要成就是Restricted Boltzmann Machine和Deep Autoencoder,Bengio的主要貢獻是使用元模型進行深度學習的一系列突破。這也是深度學習取得重大突破的第一個領域:學習
2013年,基於元模型的語言建模已經可以賽過當時最有效的方法 -機率模型。LeCun的主要成就是與CNN有關的研究。深度學習在NIPS、ICML、CVPR、ACL等一些重要的峯會上,吸引了很多關注。其中包括Google Brain,Deep Mind和Facebook AI的出現,這些都將他們的研究中心放在深度學習領域。測試
深度學習進入爆發期後的第一個突破是在語音識別領域。在咱們開始使用深度學習以前,全部的模型都是在先前定義的統計數據庫上進行的。2010年,微軟使用深度學習神經網絡進行語音識別,咱們從下圖中能夠看出,兩個錯誤指標都降低了2/3,這是一個明顯的改善。基於最新的ResNet技術,微軟已將該指標降至6.9%,並逐年實現了改進提高。網站
在圖像分類領域,CNN模型在2012年經歷了ImageNet形式的重大突破。在ImageNet中,圖像分類使用海量數據集進行測試,而後分類爲1000種類型。在應用深度學習以前,因爲Hinton和他的學生在2012年使用CNN所作的工做,圖像分類系統的最佳錯誤率爲25.8%(2011年),僅下降了10%。阿里雲
從圖中咱們能夠看出,自2012年以來,該指標每一年都經歷了重大突破,全部這些突破都是使用CNN模型實現的。雲計算
這些巨大的成就在很大程度上歸功於現代系統的多層結構,由於它們容許獨立學習和經過分層抽象結構表達數據的能力。抽象的特徵能夠應用於各類任務,對深度學習的當前流行作出了重大貢獻。spa
接下來,咱們將介紹兩種經典和常見類型的深度學習神經網絡:一種是卷積神經網絡(CNN),另外一種是遞歸神經網絡(RNN)。
卷積神經網絡有兩個核心概念。一個是卷積,另外一個是池化(pooling)。在這一點上,有些人可能會問咱們爲何不簡單地使用前饋神經網絡而選擇CNN。例如,以1000x1000圖像爲例,神經網絡在隱藏層上將擁有100萬個節點。那麼,前饋神經網絡將具備10 ^ 12個參數。在這一點上,系統幾乎不可能學習,由於它須要絕對大量的估算。
可是,大量圖像具備這樣的特徵:若是咱們使用CNN對圖像進行分類,那麼因爲卷積的概念,隱藏層上的每一個節點只須要鏈接並掃描圖像的一個位置的特徵。若是隱藏層上的每一個節點鏈接到10 * 10個估算,則最終參數數量爲1億,若是能夠共享多個隱藏層訪問的本地參數,則參數數量會顯着減小。
看下圖,前饋神經網絡和CNN之間的區別顯然很大。圖像中的模型從左到右依次爲徹底鏈接、正常、前饋、徹底鏈接的前饋和CNN建模神經網絡。咱們能夠看到,能夠共享CNN神經網絡隱藏層上節點的鏈接權重參數。
另外一個操做是池化。CNN將在卷積原理的基礎上在中間造成隱藏層,即池化層。最多見的池化方法是Max Pooling,其中隱藏層上的節點選擇最大輸出值。由於多個內核正在池化,因此咱們在中間得到了多個隱藏層節點。
有什麼好處?首先,池化進一步減小了參數的數量,其次,它提供了必定量的平移不變性。如圖所示,若是圖像中顯示的九個節點之一要經歷轉換,則在池化層上生成的節點將保持不變。
CNN的這兩個特性使其在圖像處理領域中流行,而且已成爲圖像處理領域的標準。下面的可視化汽車的例子是CNN在圖像分類領域中應用的一個很好的例子。在將汽車的原始圖像輸入CNN模型後,咱們能夠經過卷積和ReLU激活層傳遞一些簡單粗糙的特徵,如邊緣和點。咱們能夠直觀地看到它們距離最上面的輸出層的輸出圖像越近,它們越接近汽車的輪廓。此過程將最終檢索隱藏的圖層表示並將其鏈接到分類圖層,以後它將接收圖像的分類,如圖像中顯示的汽車、卡車、飛機、船舶和馬。
下圖是LeCun和其餘研究人員在早期手寫識別領域使用的神經網絡。該網絡在20世紀90年代在美國郵政系統中獲得應用,有興趣的讀者能夠登陸LeCun的網站查看手寫識別的動態過程。
雖然CNN在圖像識別領域已經變得很是受歡迎,但它在過去兩年中也成爲文本識別的工具。例如,CNN是目前文本分類最佳解決方案的基礎。在肯定一段文本的類別方面,全部人真正須要作的是從文本中的關鍵詞中尋找指示,這是一項很是適合CNN模型的任務。
CNN具備普遍的實際應用,例如在調查、自動駕駛汽車、分段和神經風格中。神經風格是一個不錯的應用程序。例如,App Store中有一個名爲Prisma的流行應用程序,它容許用戶上傳圖像並將其轉換爲不一樣的樣式。例如,它能夠轉換爲Van Goh的Starry Night風格,這個過程在很大程度上依賴於CNN。
至於遞歸神經網絡背後的基本原理,咱們能夠從下圖中看到,這種網絡的輸出不只依賴於輸出x,還依賴於隱藏層的狀態,隱藏層的狀態根據先前的輸入x進行更新。展開的圖像顯示了整個過程,來自第一個輸入的隱藏層是S(t-1),它影響下一個輸入X(t)。遞歸神經網絡模型的主要優勢是咱們能夠在順序數據操做中使用它,如文本,語言和語音,其中當前數據的狀態受先前數據狀態的影響,使用前饋神經網絡很難處理這種類型的數據。
說到遞歸神經網絡,咱們不能提出咱們前面提到的LSTM模型。LSTM實際上並非一個完整的神經網絡,簡而言之,它是RNN節點通過複雜處理的結果。LSTM具備三個門,即輸入門,遺忘門和輸出門。
這些門中的每個用於處理單元中的數據並肯定單元中的數據是否應該被輸入,遺忘或輸出。
最後,咱們來談談神經網絡的跨學科應用,這種應用正在得到普遍承認。該應用程序涉及將圖像轉換爲圖像的文本描述或描述它的標題,咱們能夠首先使用CNN模型來描述具體的實現過程,以提取有關圖像的信息並生成矢量表示。稍後,咱們能夠將該向量做爲輸入傳遞給已經訓練過的遞歸神經網絡,以產生圖像的描述。
在本文中,咱們討論了神經網絡的發展,並介紹了該領域的幾個基本概念和方法。上述文章基於孫飛博士在年度阿里雲計算大會上發表的演講。他目前正在致力於研究推薦系統和文本生成方法。
本文做者:【方向】
本文爲雲棲社區原創內容,未經容許不得轉載。