第一章網絡
引言架構
1、本文動機函數
過去幾年,計算機視覺研究主要集中在卷積神經網絡上(一般簡稱爲 ConvNet 或 CNN),在大量諸如分類和迴歸任務上已經實現了目前爲止最佳的表現。儘管這些方法的歷史能夠追溯到多年前,但相對而言,對這些方法的理論理解及對結果的解釋還比較淺薄。學習
實際上,計算機視覺領域的不少成果都把 CNN 看成了一種黑箱,這種方式雖然有效的,但對結果的解釋倒是模糊不清的,這也沒法知足科學研究的需求。尤爲是當這兩個問題是互補關係時:編碼
學習的方面(好比卷積核),它到底學習到的是什麼?
模型結構設計方面(好比卷積層數量、卷積核數量、池化策略、非線性函數的選擇),爲何某些組合會優於其餘組合呢?求解這些問題的答案,不只有利於咱們更好地理解卷積神經網絡,並且還能進一步提高它的工程實用性。設計
此外,當前 CNN 的實現方法都須要大量訓練數據,並且模型的設計方案對最終的結果有很大的影響。而更深層的理論理解應該減輕模型對數據的依賴性。儘管大量的研究已經集中在卷積神經網絡的實現方式,但目前爲止,這些研究結果很大程度上還只侷限在對卷積操做內部處理的可視化上,目的是爲了理解卷積神經網絡中不一樣層的變化狀況。深度學習
2、本文目標基礎
針對以上問題,本文將綜述幾種當前最優秀的多層卷積結構模型。更重要的是,本文還將經過不一樣方法來總結標準卷積神經網絡的各類組件,並介紹它們所基於的生物學或合理的理論基礎。此外,本文還將介紹如何經過可視化方法及實例研究來嘗試理解卷積神經網絡內部的變化狀況。咱們的最終目標是向讀者詳細展現卷積神經網絡中所涉及到的每個卷積層操做,着重強調當前最早進的卷積神經網絡模型並說明將來仍需解決的問題。變量
第二章可視化
多層網絡結構
近年來,在深度學習或深層神經網絡取得成功前,計算機視覺識別系統最早進的方法主要由兩個步驟組成,這兩個步驟各自分離但又互補:
首先,咱們須要經過人工設計操做(如卷積、局部或全局編碼方法)將輸入數據轉換成合適的形式。這種輸入的變換形式,一般是爲了獲得輸入數據的一種緊湊或抽象的表徵,同時還要根據當前任務的須要手動設計一些不變量。經過這種轉換,咱們可以將輸入數據表徵成一種更容易分離或識別的形式,這有助於後續的識別分類。
其次,轉換後的數據一般做爲分類器(如支持向量機)訓練的輸入信號。一般而言,任何分類器的表現都會受到變換後的數據質量及所使用的變換方法的影響。
多層神經網絡結構的出現爲解決這一問題帶來了新的方式,這種多層結構不只可以訓練目標分類器,還能從輸入數據中直接學習所需的變換操做。這種學習方式一般稱爲表徵學習,當將其應用在深度或多層神經網絡結構中時,咱們稱之爲深度學習。
多層神經網絡定義爲是一種從輸入數據的層次抽象表徵中提取有用信息的計算模型。通常而言,設計多層網絡結構的目標是爲了在高層凸顯輸入數據的重要信息,同時能讓那些不太不重要的信息變化更具魯棒性。
近年來,研究者已經提出了不少不一樣類型的多層架構,而大多數的多層神經網絡都是以堆疊的方式,將一些線性和非線性函數模塊組合造成多層結構。本章將會覆蓋計算機視覺應用中最早進的多層神經網絡結構。其中,人工神經網絡是咱們須要的關注重點,由於這種網絡結構的表現很是突出。爲了方便起見,在下文咱們會直接將這類網絡稱爲神經網絡。