1. 程式人生 > >20180813視頻筆記 深度學習基礎上篇(1)之必備基礎知識點 深度學習基礎上篇(2)神經網絡模型視頻筆記:深度學習基礎上篇(3)神經網絡案例實戰 和 深度學習基礎下篇

20180813視頻筆記 深度學習基礎上篇(1)之必備基礎知識點 深度學習基礎上篇(2)神經網絡模型視頻筆記:深度學習基礎上篇(3)神經網絡案例實戰 和 深度學習基礎下篇

計算 概念 人臉識別 大量 png 技巧 表現 lex github

深度學習基礎上篇(3)神經網絡案例實戰

https://www.bilibili.com/video/av27935126/?p=1

第一課:開發環境的配置

Anaconda的安裝

庫的安裝

WindowsTensorFlow的安裝

Jupyternotebook 可視化方便,但不能debug

第二課:IDE的使用

PyCharm

Eclipce的下載安裝環境配置

第三課:一個簡單的神經網絡的代碼實現

使用jupyternotebook演示敲代碼的過程

例子:只有一個隱藏層的神經網絡

不懂:

1.正常傳播和反向傳播的計算 ,為什麽反向計算是x*(1-x)

2.反向:傳播時,delta error

計算時表示的意義。

第四課:對比一下神將網絡和softmax區別(說明神經網絡的強大)

Softmax分類器的表現:

將一個平面線性(直線)分類為3個區域

神經網絡的表現:可以表現出非線性(曲線)分類

容易過擬合,體現在訓練時表現很好,測試時就表現不理想了。

少量的異常點將嚴重影響,導致過擬合。

第五課:圖片分類,多分類問題

5000張訓練圖片,用來找到最好的wb的值;

500張測試圖片

十種分類,用softmax分類函數解決多分類問題。

視頻老師的QQ:474241623

還有第六課課也沒有看完

2018812日星期日

深度學習基礎下篇

https://www.bilibili.com/video/av28005781?p=2

第一課:卷積神經網絡的應用

分類

推薦(像是圖片推薦)

檢測(在哪裏,是什麽)

語義分割(圖像分割)

自動駕駛

人臉檢測(找關鍵點)

人的姿勢判斷,找人的關節

醫學疾病識別

漢字識別

路標識別

讀圖片內容 語義

圖片合成(CVPRappPrisma

(內容加風格 產生新的圖片)

第二課:卷積神經網絡

復習神經網絡的概念:

全連接層

激活函數

反向傳播 lossw2 w1 w0

梯度計算 梯度的反向傳播

第三課:卷積神經網絡(激活之前需要卷積,激活之後需要池化)

組成:

input輸入層

conv卷積層(增加了)

Relu激活函數

pool池化層(增加了) 西瓜書稱之為 采樣層

FC全連接層

什麽是卷積?特征提取的過程

Filter 過濾器/核函數:提取特征(視頻老師稱filter為提取特征的 小助手)

卷積操作的作用:用來提取特征;卷積次數少時提取的特征稱為低微特征,多次之後就稱為高維特征(一種說法)

對圖像的相同區域提取多次不同的特征,得到多個特征圖,作為一次卷積的結果。

卷積的計算過程,圖片是一個三維的數據,一張原始圖分解成有RGB的三張圖,卷積計算的過程中每張圖之間是單獨處理的;圖片中的像素點就是輸入x;

感受野(每次處理的一小塊區域)

卷積之後圖片的大小

感受野是一個小區域。

特征圖的大小計算公式(需要其保持不變):(w-f)/s +1

w:原始圖片的寬度

f:感受野的寬度

S:感受野右移的步長

第四課:特征圖的生成過程,pad的設置和使用

增加pad(在原始圖片周圍增加一圈或者多圈0值,相當於增加原始圖片的寬度和高度),保證多次卷積之後,特征圖的大小保持不變。

註意:設置的感受野大小和步長必須合理,即使計算公式結果是整數;

通常的取值:感受野的大小 周圍0圈的大小對應關系

F=3時,pad=1

F=5時,pad=2

F=7時,pad=3

卷積中的參數共享原則:提取每一層特征圖時的權重wb都是相同的。w的個數是感受野中點的個數*3RGB三層都需要設置權重w*特征圖的層數;

一次卷積操作時,會將RGB三層原始圖片,轉成多層特征圖。對於同一個感受野,不同的RGB層和不同的特征層,對應不同的權重;但對同一個感受野,不同的RGB使用相同的b,不同的特征圖使用不同的b;

目的是減少參數wb的數量,如果每一個感受野計算的每一個特征成參數全部不相同的話,參數太多,計算難度急劇增加,且容易過擬合。

第五課:池化層

卷積層不改變圖片的大小;改變圖片的深度(將RGB3層,轉正多層特征層)

池化層改變圖片的大小;不改變圖片的深度;

例如:

maxpooling:提取其中最大那個特征作為新的特征(通常是將4個中提取一個最大的)。

Avgpooling:(提取平均的特征值),基本會使用這種方法了。

整體的神經網絡過程通常是:

多次循環conv relu conv relu pool之後再全連接處理

第六課:case study 論文舉例講解 卷積 池化 全連接

AlexNet Krizheskuu et al.2012

感受野大小:11*11 5*5

池化的大小:

VGGNet Simonyan and Zisserman,2014

感受野大小:3*3 更小提取的特征更加細膩

池化的大小:2*2中提取一個

深度殘差網絡(深度學習的趨勢,他的層數越多,效果越好,計算量卻不會明顯增加) 可以達到120

全連接層的參數遠多於前面卷積時的參數。池化使不使用參數的。

第七章:卷積神經網絡 應用實例

分類和定位(classification and location

應用在:

對圖片分類

對圖片中的對象分類並定位

目標檢測(detectionfaster CNN

分割

用回歸來定位,通過不斷找到更加合適的區域(方框)來定位;

實現分類和定位的過程:

最後是兩個全連接層, 用來分類、回歸定位

步驟1:訓練一個分類模型(alexNet, VGG , GoogleNet

參數初始化:第一種是高斯初始化,自己訓練,通常很慢;第二種是fine tune 直接使用別人訓練好的參數,只需要改變最後的全連接層的參數。

步驟2:更具自己的實際需求更改全連接層。

步驟3:訓練,使用SGD隨機梯度下降 和L2 loss值的計算(如使用歐式距離)來評估訓練效果。

步驟4:測試,同時得到分類和定位。

回歸模塊添加在哪裏?卷積層之後還是全連接層之後,效果通常差別較大,試了才知道效果。

應用在人體關鍵點檢測 pose estimation

概念:滑動窗口Sliding window 。特點:思路簡單,計算量大

取不同的scale 大小變換,進行滑動窗口測試。因為在不同圖中的大小會不同,所以需要使用不容的窗口大小來滑動。

不同的卷積神經網絡在imageNet 中的表現:

AlexNet2012 < overFeat 2013 < VGG < resNet(2015深度殘差網絡)(有一個經典的例子是134152層)

第八章:物體檢測

RCNN

Region proposals 區域建議, RCNN的處理方法是一張圖提取2K個框再處理。

實現的方法:Selective serach,將相鄰的相似的區域歸為一種,最後就將一張圖分割層多個對象。

RCNN 2014是 物體檢測的開篇之作

套用RCNN的步驟:

步驟1fine tune ,使用別人的卷積參數

步驟2:更改最後的全連接層(改成我們自己要的分類數量,改成20個分類)

步驟3:卷積提取特征,將池化處理後的數據存儲在磁盤上,

步驟4:從磁盤上提取特征,再使用分類方法。使用SVM分類20個種類。

步驟5:從磁盤上提取特征,再使用回歸定位。

數據集:data set

技術分享圖片

RCNN 的缺點:

測試時間慢

特征先存儲後提取來分類和定位

Fast R-CNN 改進:1.卷積共享 2.將所有操作整合在一起(end to end),使用兩個全連接層,分別在實現分類和定位(集成在了神經網絡中,CNN是分成兩段實現的)

技術分享圖片

技術分享圖片

測試一張圖片需要2.3秒。

Fater RCNN https://www.bilibili.com/video/av28005781/?p=8

將分類的特征框提取Selective serach改進

Fast cnn 是將Selective serach和卷積網絡 單獨處理

Faster cnn 將特征提取Region proposals和卷積集成在一起,之後再分類處理,更快。

Faster RCNN : region Proposal network CNN之後,利用卷積層數據提取候區域。 將每一個框變換成9種不同大小的框來處理。

技術分享圖片

技術分享圖片

技術分享圖片

第九課:技巧:設計神經網絡的技巧,註意事項

2018813日星期一

感受野大小的變化

連續的多次卷積之後,圖層的大小不會改變,但是每一個像素點能表示的原始圖片的信息更多。

得到一個7*7的感受野的方法(一個點表示原始圖像的49個像素點)

第一種模型:直接卷積一次,用7*7的感受野(卷積一次),7*7=49個參數

第二種模型:用三次3*3的卷積(連續卷積3次),3*3*3=27個參數

第二種模型的優勢:參數更少,非線性更強(3個激活函數ReLU

深度殘差網絡:先1*1卷積,再3*3,再1*1

Pooling之後圖片會變小,可能會丟失一些信息,通常會通過增加pool之後的層數來彌補可能造成的不必要的信息丟失。(常見的的層數翻倍)

第十課:技巧:數據增加,擴展數據

原因:深度學習,數據越多越好;數據越多,模型越不容易過擬合。

圖片處理方法:

  1. 圖片翻轉(左右鏡像變化)
  2. Random crops/scales 圖片隨機裁剪/大小變換,模擬對面出現遮擋的情況
  3. 平移
  4. 旋轉
  5. 拉升
  6. 壓縮
  7. ……

圖片處理是將多種方法混合處理,隨機選擇做種方法,隨機選擇多種具體的處理參數(如左右平移的距離大小,旋轉角度)

第十一課:技巧:transfer learning

目的/原因:節約大量訓練時間,別人通常都是訓練一兩天的到的;

模型:數據量不夠時。使用公認的比較好的模型(要求別人的訓練數據集和自己的相識,如人臉識別)來使用,

步長:Transfer learning 時,自己只需要微調,步長的設置通常是正常設置時的0.1倍,或者更小,因為只需要在別人的基礎上微調參數。

自己的數據越大,借用的模型越匹配越好,只需要Finetune a few layers 更改一點;

數據足夠,但模型不相似,就大改別人的模型 finetune a larger number of layers

模型剛好,但數據不夠時,use liner classifter on top layer;

模型在哪裏找?

Model zoo

Http://github.com/BVLC/caffe/wiki/model-zoo

第十二課:框架 caffe

caffe.berkeleyvision.org

20180813視頻筆記 深度學習基礎上篇(1)之必備基礎知識點 深度學習基礎上篇(2)神經網絡模型視頻筆記:深度學習基礎上篇(3)神經網絡案例實戰 和 深度學習基礎下篇