深度學習筆記
TensorFlow
- TensorFlow不只是一個實現機器學習算法的接口,也是一種框架,也可用於線性迴歸、邏輯迴歸、隨機森林等算法;
- TensorFlow使用數據流圖來規劃計算流程,每一個運算操做做爲一個節點node,節點之間的鏈接稱爲邊,邊中流動的數據稱爲張量,故而得名TensorFlow,預算操做能夠有本身的屬性,但必須被預先設置,或者能在建立計算圖時被推斷出來;
- TensorFlow有一套爲節點分配設備的策略,這是一個簡單的貪婪策略,不能確保找到全局最優解,但能夠快速找到一個不錯的節點運算分配方案;
- 故障出現的兩種狀況:一是信息從發送節點傳輸到接受節點失敗時,而是週期性的worker心跳檢測失敗時;
- TensorFlow提供的加速神經網絡訓練的並行計算模式:
- 數據並行:經過將一個mini-batch的數據放在不一樣設備上計算沒實現梯度計算的並行化,計算性能損耗很是小,同步的方式優勢是沒有梯度干擾,缺點是容錯性差,異步的方式優勢是有必定容錯性,但由於梯度干擾,致使利用效率降低;
- 模型並行:將計算圖的不一樣部分放在不一樣設備上運算;
- 流水線並行:將計算作成流水線,在一個設備上連續並行執行,提升設備利用率;
卷積神經網絡CNN
- CNN具備極強泛化性,最大的特色在於卷積的權值共享結構,能大幅較少神經網絡的參數量,防止過擬合的同時下降了神經網絡模型的複雜度;
- CNN每一個卷基層中對數據的操做:
- 圖像經過多個不一樣卷積核的濾波,加以偏置,提取出局部特徵,每一個卷積核映射出一個新的2D圖像;
- 將卷積核的濾波結果進行非線性的激活函數處理,常爲ReLU函數;
- 對激活結果進行池化操做(即降採樣),通常採用最大池化,保留最顯著特徵,提高模型的畸變容忍能力;
- 卷積核的大小即爲卷積核擁有的參數多少;
- 採用局部鏈接的方式,參數量獲得了縮減;
- 卷積的好處是無論圖片尺寸如何,咱們須要訓練的權值數量只和卷積核大小、卷積核數量有關,能夠用極少的參數量處理任意大小的圖片,雖然訓練的參數降低了,但隱含節點數量未降低,隱含節點數量只與卷積的步長相關;
- CNN要點:
- 局部鏈接:下降參數量,減輕過擬合,下降訓練複雜度;
- 權值共享:下降參數量,減輕過擬合,賦予對平移的容忍性;
- 池化層中的降採樣:下降輸出參數量,賦予輕度形變的容忍性,調高模型的泛化能力;
- LeNet5的特性:
- 每一個卷基層包含三個部分:卷積、池化、非線性激活函數;
- 使用卷積提取空間特性;
- 降採樣的平均池化層;
- 雙曲正切或S型激活函數;
- MLP(多層神經網絡)做爲最後的分類器;
- 層與層之間的稀疏鏈接減小計算複雜度;
- LeNet5有三個卷積層、一個全鏈接層和一個高斯鏈接層;
- 第一個卷積層6個卷積核,尺寸55,共(55+1)*6 = 156個參數
- 第二個卷積層16個卷積核;
- 第三個卷積層120個卷積核;
- 全鏈接層84個隱含節點,激活函數Sigmoid;
- VGGNet-16網絡結構主要分爲6部分,前5段爲卷積網絡,最後一段爲全鏈接網絡;
- 第一段:兩個卷積層和一個最大池化層,卷積核大小33,卷積核數量64,步長11,第一個卷積層輸入尺寸2242243,輸出尺寸22422464,第二個輸入輸出尺寸均爲22422464,池化層22,輸出尺寸112112*64;
- 第二段:和第一段類似,輸出通道數變爲128,卷積網絡輸出尺寸5656128,池化層保持不變;
- 第三段:三個卷積層和一個最大池化層,輸出通道變爲256,輸出尺寸2828256;
- 第四段:和第三段類似,輸出通道變爲512,經過最大池化將圖片縮爲14*14;
- 第五段:和第四段類似,池化層尺寸22,步長爲22,輸出尺寸77512;
- 第六段:將第五段輸出結果進行扁平化,鏈接一個隱含節點數爲4096的全鏈接層,激活函數爲ReLU;
R-CNN
- 檢測系統三個模塊:
- 生成類別無關區域提案;
- 從每一個區域提取固定長度特徵向量的大型CNN;
- 一組特定類別的線性SVM;
- 須要訓練數據的三個階段:
- CNN微調;
- 檢測器SVM訓練;
- 檢測框迴歸訓練;
- 引入CNN來分類目標候選框,有很高的目標檢測精度,但有明顯缺點:
- 訓練過程是多級流水線;
- 訓練在時間和空間的開銷上極大;
- 目標檢測速度很慢,由於爲每一個目標候選框進行CNN正向傳遞,不共享計算;
Fast R-CNN
- 訓練VGG16網絡比SPP-Net快3倍,測試速度快10倍,比R-CNN訓練快9倍,測試時間快213倍,有13個卷積層和3個fc層;
- 目標檢測難點:
- 大量候選目標位置(提案)須要處理;
- 候選框只提供粗略定位,必須對其精細化以實現精肯定位;
- 優勢:
- 比R-CNN和SPPnet有更高的目標檢測精度mAP;
- 訓練是使用多任務損失的但階段訓練;
- 訓練能夠更新全部網絡層參數;
- 不須要磁盤空間緩存特徵;
- 網絡架構流程:輸入圖像和多個感興趣區域ROI,傳送到全卷積網絡,經池化到固定大小的特徵圖中,而後經過全鏈接層FC映射到特徵向量,網絡對每一個ROI具備兩個輸出向量:Softmax機率和每類檢測框迴歸偏移量;
Faster R-CNN
- Faste R-CNN實現了接近實時檢測的速率,但忽略了生成區域提案框的時間,Faster R-CNN算法經過將RPN網絡集成到目標檢測網絡中共享卷積層,縮減了生成區域提案框的時間,計算提案框的邊界成本小;
- RPN是一種全卷積網絡FCN,能夠針對生成檢測提案框的任務端到端訓練;
- RPN中引入新「錨點」做爲多尺度和縱橫比的參考,避免了枚舉多個尺度或縱橫比得圖像或卷積;
- 爲統一RPN和Fast R-CNN網絡,提出一種訓練方案:保持提案框固定,微調區域提案和微調目標檢測之間交替進行;
- 組成模塊:
- 提出區域提案的CNN網絡;
- 使用區域提案的Fast R-CNN檢測器;
- RPN將一個任意大小的圖像做爲輸入,輸出矩形目標提案框的集合,每一個框由一個objectness得分;
- 爲生成區域提案框,在最後一個共享的卷積層輸出的卷積特徵映射上滑動小網絡,網絡鏈接到輸入卷積特徵映射的n*n的空間窗口,每一個滑動窗口映射到一個低維向量上,向量在輸出給兩個同級的全鏈接的層:檢測框迴歸層reg和檢測框分類層cls;
- 多尺度預測方式:
- 基於圖像/特徵金字塔:以多尺度調整大小,爲每一個尺度計算特徵圖,有效卻耗時;
- 在特徵圖上使用多尺度的滑動窗口;
- 具備共享特徵的網絡的解決方案:
- cls檢測框分類層得分是排名最高的提案框準確的緣由;
歡迎關注本站公眾號,獲取更多信息