當前位置:
首頁 > 知識 > 入門深度學習必知的知識點:視覺的深度學習與網路

入門深度學習必知的知識點:視覺的深度學習與網路

入門深度學習必知的知識點:視覺的深度學習與網路



已經很久沒有更新內容了,今天抽空來給大家分享一些關於計算機視覺領域的一個重點,那就是 「深度學習」,接下來就來詳細聊聊深度學習(為什麼要深度學習特徵???),然後來說說深度網路的搭建,最後讓我們自己用手 DIY 屬於自己的網路,現在就開始 ing......(文中的鏈接可點擊文末的閱讀全文抵達)


介紹


一說起 「深度學習」,大家有想過為什麼要去搭建複雜網路,去學習更高級的特徵呢?其實很簡單,因為趨勢是朝著類腦那個大方向,現在類腦工作已經得到很多研究員的關注。

類腦計算實際上存在兩個技術層面:第 1 層面是 「走出諾依曼框架」,主要屬於人工神經網路的大範疇;第 2 層面是 「基於神經科學的計算機演算法」,試圖超越人工神經網路框架和擺脫權值計算模型,實現對生物腦的高逼真性模擬。所以歐盟都已經聯合開始研究人腦,都成立一個叫 「人類腦計劃」,美國也開始關注類腦。所以類腦計算這個方向是前途無量的。


第 1 類


主要有歐盟的 「人類腦計劃」 和美國的 「BRAINs」 計劃,雖然技術路徑不同,但都是從生物腦的微觀層面的實驗數據和知識入手,通過逐漸整合,向上尋找中觀和宏觀層面上的數量關係規律,最終建立起整體的腦理論模型。


該類方法的特點是 「自下而上」,一場大規模的微觀海量的數據和碎片化的實驗知識的 「拼圖工程」。首先發展高尖端技術工具,以實現對腦的微觀的結構和功能的全面測量和記錄;然後建立起全腦微觀資料庫;在此基礎上,逐漸向大規模的腦計算模型上發展,並試圖形成對腦活動、腦病變和腦智能的機制性解讀的整體理論;最後形成比較成熟的類腦計算技術和類腦人工智慧。這種研究屬於長周期的大科學或大工程,需要動員大量人力物力和財力。


第 2 類


研究方法的特點是 「自上而下」。直接將研究重心放在一個 「好的」 腦理論的建造上,然後向下導出神經元模型和神經元群體網路模型;之後測試和檢驗模型與微觀神經知識和數據之間的契合度。這種研究的關鍵在於怎樣找到正確的理論入手點,這一步不是單純的建模方法問題,也不是一般的學科性理論問題,而是若干個重要學科的理論進程中的匯合點上的再綜合,屬於科學大周期性的結晶過程。這種研究屬於長周期和 「形而上」 的小科學。目前,採用第 2 類方法的主要有美國 Numenta 公司和中國的神經深構造運算與腦計 算 機 實 驗 室(Neural Deep Structure Computing & MindComputer Lab,Mindputer Lab),兩個實驗室技術路徑雖異,但總體方法都是先從全腦角度來建立理論框架,然後將理論逐漸地向下細化,導出中觀和微觀的計算模型,之後再檢驗與微觀層面的實驗數據和知識的互恰性。


各有利弊


兩類研究方法各有利弊,第 1 類方法就像在萬米懸崖峭壁貼身攀岩,向上的每一步很費時且充滿未知。因為,從海量的數據中去試圖進行全腦網路的微觀拼圖,是一個大隨機性的事件,即使有超級計算機或其他先進微觀技術的幫助,歐美兩個腦項目的 10 年計劃時間是遠遠不夠的。而第 2 類方法更像是空中傘降,難點在降落傘上,只要降落傘做得好,則向下定點降落的時間和複雜度比攀岩小的多。科學史已經證明,一個好的理論是大大削減科學探險隨機性風險的銳利刀具。


有點說偏了,今天我們主要來說說深度學習這些事!


為什麼要深度學習?

先來一個簡單的例子:

入門深度學習必知的知識點:視覺的深度學習與網路


入門深度學習必知的知識點:視覺的深度學習與網路


入門深度學習必知的知識點:視覺的深度學習與網路



這都是底層特徵的可視化,說明底層特徵也只能學習一些基礎的紋理等特徵,但是如果達到人腦的視覺感知,就必須要學習更高級的高層語義特徵。所以才會出現更深更複雜的網路,可以理解為挖掘更高層的語義特徵來進行目標的表示。如下:

入門深度學習必知的知識點:視覺的深度學習與網路


什麼才是深度學習?


一般會有:1)組合模型;2)端到端的學習(End-to-End)。


學習


從具體 ------------------------> 抽象


1)組合模型

入門深度學習必知的知識點:視覺的深度學習與網路



猶如上面的流程圖,充分說明了模型的組合學習。


2)End-to-End


下面兩個鏈接是前期推送的內容,充分表明了網路的端到端學習過程。

深度學習 --- 反向傳播的具體案例


神經網路介紹—利用反向傳播演算法的模式學習


接下來參考了 「slide credit Marc』aurelio Ranzato,CVPR 『14 tutorial」

入門深度學習必知的知識點:視覺的深度學習與網路



下面這個鏈接也詳細介紹了 CNN 的演變與改進:


深度網路的 「從古至今」 的蛻變


框架


深度學習發展迅速,隨之不同的框架也大量湧現出來。


Torch7

NYU


scientific computing framework in Lua


supported by Facebook


Theano/Pylearn2


U. Montreal


scientific computing framework in Python


symbolic computation and automatic differentiation


Cuda-Convnet2


Alex Krizhevsky


Very fast on state-of-the-art GPUs with Multi-GPU parallelism

C++ / CUDA library


TF(大家很熟悉了,不詳細介紹)


等等。


因為我入門到現在一直用Caffe,所以今天節詳細說說這個框架。


原因(參考):


Expression: models + optimizations are plaintext schemas, not code.


Speed: for state-of-the-art models and massive data.


Modularity: to extend to new tasks and settings.


Openness: common code and reference models for reproducibility.


Community: joint discussion and development through BSD-2 licensing.

Pure C++ / CUDA architecture for deep learning


Command line, Python, MATLAB interfaces


Fast, well-tested code


Tools, reference models, demos, and recipes


Seamless switch between CPU and GPU


網路(Net)


一個網路是由一組不同連接而成:


name: "dummy-net"


layers


layers

layers


… more layers …


layers


LeNet:

入門深度學習必知的知識點:視覺的深度學習與網路



層(Layer)


name: "conv1"


type: CONVOLUTION


bottom: "data"

top: "conv1"


convolution_param {


num_output: 20


kernel_size: 5


stride: 1


weight_filler {


type: "xavier"


}


}


Protobuf


網路(Net)和層(Layer)就是通過Protobuf來定義的。


Blob


Caffe 源碼 ---Blob 基本使用


Solving:訓練一個網路


如果你需要 GPU 訓練:


caffe train -solver lenet_solver.prototxt -gpu 0


最後舉一些流行的例子,有興趣的朋友可以自己動手去 DIY。


一些例子


目標檢測


R-CNN: Regions with Convolutional Neural Networks


http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/detection.ipynb


Full R-CNN scripts available athttps://github.com/rbgirshick/rcnn

入門深度學習必知的知識點:視覺的深度學習與網路



視覺風格識別

入門深度學習必知的知識點:視覺的深度學習與網路



場景識別

入門深度學習必知的知識點:視覺的深度學習與網路



微調(Fine-tuning)

入門深度學習必知的知識點:視覺的深度學習與網路



輸入:不同的源文件;


最後一層:不同的分類器。


如何成為一名成功的 「煉丹師」——DL 訓練技巧


今天就到這裡,希望可以給需要的朋友一帶來一些幫助,謝謝!


研習社特供福利ID:OKweiwu


人工智慧之神經網路特訓班


20 年清華大學神經網路授課導師,帶你系統學習人工智慧之神經網路!


一站式深入了解深度學習的發展現狀、基本原理和主要方法。


課程鏈接:mooc.ai


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 唯物 的精彩文章:

請問,你真的了解區塊鏈應用?
和比特幣關係最緊密的技術:區塊鏈原來是這麼玩的

TAG:唯物 |

您可能感興趣

掌握神經網路,入門深度學習
用淺度學習訓練深度網路:避開端到端深度學習難題
深度學習基礎知識 | 上
入門深度學習的誤區
深度學習知識脈絡初探
深度學習很難?一文讀懂深度學習!
深度學習與神經網路概述
深度學習入門指南!六步構建深度神經網路
機器學習、深度學習、神經網路、深度神經網路之間有何區別?
深度學習與數據中心
掌握神經網路,快速入門深度學習
當深度學習遇到系統和網路安全
深度學習還是之前的神經網路嗎?
深度學習並非萬能:全方位對比深度學習和經典機器學習
深度學習和神經網路的6大發展趨勢,值得關注!
深度學習第8期:深度學習的常見框架
深度學習如何感知跟蹤位置變化
什麼是深度強化學習:人工智慧和深度學習的下一步
深度學習和神經網路的七大顯著趨勢
深度學習中常見概念