The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches
該論文主要講述了深度學習的各個網絡,我將熟悉這些網絡,然后選取其中有助于MOT方向的部分進行詳細閱讀,為我閱讀上表中論文做些基礎。
DNN
圖9為基本的神經元非線性模型,其中其中 是輸入信號; 是突觸比重(系數); 是輸入信號的線性組合; 是激活函數(如 s 形) , 是輸出。偏置 加上輸出 的線性組合器,這有應用仿射變換的效果,產生輸出 。神經元的功能可以用數學方法表示如下:
神經元網絡或一般神經元網絡是由包含一個或多個神經元多層感知機的神經元網絡組成。具有MLP的NN模型如圖10所示。
多層感知機可以用數學方法表示(這是一個復合函數)如下:
梯度下降是一種一階優化算法,目的是為了尋找目標函數的局部最優值。
概念如上所示,輸入損失函數ε、學習率η、X數據集和模型公式,就會輸出最佳的θ似的ε最小。但是,由于它訓練時間過長的缺點,現在一般使用SGD隨機梯度下降的方法。
輸入還是損失函數ε、學習率η、X數據集和模型公式,就會輸出最佳的θ似的ε最小。但是在執行過程中,它會對X、Y數據集中每一個x和y進行梯度下降操作,從而大大提高了時間效率。
反向傳播操作BP和SGD是目前DNN非常經典使用方法。對于DL可以使用鏈式規則使用BP計算從頂部到底部層的梯度。iii為一個單路徑網絡。例如: 其中該網絡表示為L層復合函數。假如L=2可以表示為: ,根據鏈式求導法則,可以表示為 。
動量法是SGD方法加速訓練的一種方法。主要思想是使用移動著的梯度的平均值代替當前的梯度值。用數學公式表示為: ,其中γ是動量,η是第三輪訓練的學習率。在訓練中利用動量的主要優點是防止網絡陷入局部極小值。動量的取值為 γ ∈(0,1]。注意:一個較高的動量值超過了它的最小值,可能使網絡不穩定。一般來說,γ 被設置為0.5,直到最初的學習穩定下來,然后增加到0.9或更大。
學習率η是訓練過程中考慮的步長,是訓練DNN一個重要的組成部分。選擇確實非常敏感的,常見的選擇方法有:常量法、因素法和指數衰減法。
流行的CNN結構
大部分CNN(卷積神經網絡)都是由都一組關鍵的基本層(卷積層、下采樣層、全連接層和soft-max層)組成。
LeNet(1998):
例如LeNet-5基本結構是2個卷積層、2個下采樣層,2個全連接層和1個soft-max輸出層。如下圖所示:
AlexNet(2012):
第一個卷積層和最大池化層通過局部相應歸一化(LRN)實現的:使用96個大小為11×11的感受性濾波器。最大池化層通過步幅大小為2的3×3的濾波器實現的。第二個卷積層用5×5的濾波器進行相同操作。第三、四、五個卷積層使用3×3的濾波器,映射特征分別為384、384和296個,后面是兩個完全連接層和soft-max層。
ZFNet(2013):
是AlexNet網絡的拓展,僅僅是將11×11的感受性濾波器改為了7×7的感受性濾波器,減少了網絡參數的數量,提高了整體識別精度。
NiN(Network in Network):
引入了多層感知卷積層的概念,有助于非線性函數的識別。其次是引入了Global Average Pooling(GAP)替換全連接層,減少了網絡參數的數量。
VGG-Net(2014):
表明了網絡的深度是一個關鍵組成部分,VGG架構由兩個卷積層組成(都使用了ReLU激活函數)。后面是一個最大池化層。最后是幾個全連接層(也使用了ReLU激活函數)。在VGG-E有步長為2、尺寸為3×3的卷積濾波器組成。有三個著名的網絡VGG-11、VGG-16和VGG-19,分別有11、16和19層,并且都有3個全連接層。
GoogLeNet(2014):
與傳統CNN相比,目標是降低計算復雜度。合并具有可變接受域的“初始層”,圖16是最初的狀態,圖17是改進之后的狀態。圖17添加了一個1×1的卷積層,主要是在進行計算量大的層之前進行降維操作。GoogLeNet共有22層,但是它的參數數量遠遠小于AlexNet和VGGNet。
Residual Network(ResNet in 2015):
目的是設計多層深度網絡,解決梯度消失的問題。ResNet有34、50、101甚至1202層。
ResNet:
是一個傳統的具有剩余連接的前反饋網絡,剩余層的輸出可以根據前一層 的輸出 輸出來定義。 是執行各種操作之后的輸出,剩余單位的最終輸出是 ,可以用以下方程式來定義: 。
ResNet是由幾個基本的剩余塊組成,但是,剩余塊中的操作可以根據剩余網絡的結構不同而發生變化。Inception-Residual單元基本概念圖如圖19所示:
可以使用一個數學公式將圖19表示出來: ,其中符號?為3×3和5×5過濾器進行濃縮操作,然后使用1×1的濾波器進行卷積運算后和 相加并輸出。
Densely Connected Network (DenseNet):
該網絡由密集連接的CNN層組成,每一層的輸出與dense塊中的所有后面的層相連。目的:實現特征多次利用,極大地減少了網絡參數。DenseNet在兩個挨著的dense塊之間,由幾個dense塊和transition塊組成。
在圖20中, 層接收到了所有前面層的特征 作為輸入,公式可以表示為: 。其中, 為0——l-1層的輸出特征, 可以看做成一個單一的tensor,執行三個運算: Batch-Normalization(批量歸一化,BN);然后,執行一個ReLU操作和一個3×3的卷積運算。而transition塊,先使用BN執行一個1×1的卷積操作,緊接著進行一個2×2的池化操作。
FractalNet (2016):
優點:在速度和準確率之間進行權衡。FractalNet基本結構如圖21所示:
CapsuleNet
CNN的缺點是沒有考慮特征的視角、大小和方向等特殊的關系。第一代CapsuleNet由一個編碼單位的三層capsule節點組成。
下圖架構用于MNIST數據集(2828的照片),將256個特征,進行Conv2d(, , 9),N=(W-F+2P)/S+1=(28-9+20)/1+1=20。輸出到8維的矢量,進行MaxPool2d(2, 2),N=(W-F+2P)/S+1=(20-9+20)/2+1=6。最后結果為32866。
不同模型的比較
其他模型
RCNN:在2015年提出的循環卷積網絡,IRCNN結合了Inception網絡和卷積網絡中最流行的體系結構,2016年提出的FCN用于分割任務。
操作技巧
數據預處理:
樣本重標、平均減法、隨機裁剪、水平或者垂直翻轉數據、顏色抖動和PCA/ZCA白化等。
網絡初始化:
基于對稱激活函數初始化
分批歸一化:考慮標準:提高學習速度、批量規范化做相同工作的因子、L2正則化、加速學習速率衰減、刪除本地相應(LRN)、Shuffle訓練樣本更徹底和訓練時不使用失真的照片。
交替卷積法
激活函數:Sigmoid、tanh和ReLU(Leaky ReLU和ELU)
下采樣層或者池化層:
池化層主要包括最大池化層操作和平均池化層操作。空間金字塔池化層:解決輸入圖片大小不一造成的缺陷、由于把一個feature map從不同的角度進行特征提取,再聚合的特點,顯示了算法的魯棒性、在object recongtion增加了精度。
DL的正則化方法:
SGD、AdaDelta、RMSprop、Adam和EVE。
遞歸神經網絡(RNN)
介紹:
更像人的思想,知曉在提前輸入的基礎上來處理后續任務。
RNN主要包括Jordan網絡和Elman網絡:黃色標記部分為兩個網絡之間的不同。
RNN的主要問題就是梯度消失的問題。解決方案有:(1)范數太大就對梯度進行裁剪和縮放,(2)創建更好地RNN模型。所以Long Short-Term Memory(LSTM)被提出。
Long Short-Term Memory(LSTM)
LSTM把信息傳送到圖32中,包括輸入單元(it)、遺忘單元(ft)和輸出單元(ot),公式定義如下:
Gated Recurrent Unit (GRU)
GRU是RNN的輕量級版本,它將遺忘門和輸入門合并為一個更新門,并將單元狀態和隱藏狀態與其他一些修改的合并在一起。下圖為其公式和結構圖
卷積LSTM(ConvLSTM)
該網絡是用了當前狀態的將來信息和當前狀態的過去信息來預測了當前信息。這在離線學習中是可以實現的,并且起到了很好的效果。下圖為ConvLSTM網絡的架構和公式(其中,*為卷積操作,°為哈達瑪(Hadamard)積):
RNN具體應用的結構變體
應用不同可以分為不同的RNN結構:一對一、多對一、多對多和多對多。綠色為輸入向量、藍色為RNN狀態、橙色為輸出向量。
其中(d)和(e)有很大的不同,(e)應用于視頻分類的問題更多一點。
基于注意力機制的RNN模型
RNN的應用問題
Bidirectional深度RNN被用在駕駛員動作預測。
自動編碼器(AE)和受限玻爾茲曼機(RBM)
本節將討論自動編碼器的無監督深度學習方法(例如:變分自動編碼器(VAE)、去噪聲AE、稀疏AE、堆疊去噪聲AE和分類腦AE)
Review of Auto-Encoder (AE)
AE是一種深度神經網絡方法,用于無監督的特征學習,具有高效的數據編碼和解碼的功能。編碼階段:輸入樣本被映射到具有構造性特征表示的低維特征空間;解碼階段:通過反向處理從低維特征空間中重新生成實際特征。編碼、解碼流程如圖36所示:
編碼器?和解碼器𝜑:
如果考慮一個簡單的具有一個隱藏層的簡單自動編碼器,輸入x∈?d=X,它的映射∈?p=F,它可以被表示為: ,W為權重矩陣,b為偏執參數,σ1為Sigmoid或者RLU激活函數。損失函數可以定義為:
可變的自動編碼器(VAEs)
VAEs克服了GANs的局限性(一、很難隨機選擇特定的噪聲特征來生成特定的圖像;二、GANs區分真假物體)。
VAEs共有兩個損失函數,一個是決定網絡重建圖像效果的均方誤差,一個是KL損失,它決定了隱藏變量和單位高斯分布的匹配程度。假設在編碼器 中,x是一個輸入,z是一個隱藏層。參數(權重參數和偏執參數)為θ。解碼器 中輸入為z,輸出為x,參數(權重參數和偏執參數)為?。損失函數為:
分裂自動編碼器
對傳統自動編碼器結構的改進,主要用于無監督學習。網絡分為不相交的子網絡,其中兩個網絡試圖預測整個圖像的特征表示。
AE的應用
AE主要用于無監督特征信息提取和深度學習方法的編碼和解碼技術,包括CNN、DNN、RNN和RL。
RBM的評述
Restricted Boltzmann Machines(RBM)
生成性對抗網絡(GAN)
A GAN的研究進展
使用條件概率密度函數模型,觀測值和目標值的聯合概率分布的概率模型;GANs屬于一種無監督的深度學習方法。根據圖40可以認為鑒別器(Discriminator)和生成器(Generator)在進行對抗,可以用V(D,G)函數表示。
初試階段,D可以拒絕樣本,因為和訓練樣本明顯不同。log(1-D(G(z)))將會飽和(接近于1),相對于減小log(1-D(G(z))),一般都會擴大D(G(z))。下圖為GAN的概念圖
GAN可以為某些應用程序生成真實感的圖像照片。GANs在游戲開發領域也有很廣泛的應用,生成視頻中的運動以及生成人造視頻。GANs有兩個不同的深度學習領域-半監督和無監督。2015年提出的一種基于半監督的GAN拓撲結構顯示了令人滿意的結果。圖41為通過一次訓練數據集后生成的臥室圖像。
B GAN的應用
(1)GAN用于圖像處理:生成真實的圖片、進行語義切分、用于從文本描述生成或者合成圖像、使用GAN的單圖像取雨系統。
(2)GAN用于語音和音頻處理:
深度強化學習(DRL)
A DRL綜述
B Q學習
引進Q函數來計算狀態-動作組合質量的函數, 通過觀察狀態S和行動狀態A來改變激勵函數R。雙向Q-Learning公式如下: Q是估計效用函數,表示某一種程度下的動作好壞程度;r(s,a)為動作達到最佳效果的獎勵,該方程又稱為貝爾曼方程。其中s、s’、a和a’可以由以下公式得出: 每個時刻都會有一個獎勵函數生成,在未來環境中可以預測獎勵函數的和來作為評判因素: 由于外界因素,必然不會達到理想程度,所以引進常亮r來優化該方程,并且,外界因素越多,r值越小。
C DRL應用和發展方向:
提出了一種新的注意力感知的Face Hallucination,其中深度RL用于提高單塊圖像上的圖像質量,并將其應用于人臉圖像。
遷移學習
A 什么是遷移學習?
在前人訓練好的權重基礎上進行測試或者訓練類似的模型,而不是從頭開始。
B 什么是經過預訓練的模型?
預先訓練的模型是已經在目標領域相同的領域上訓練的模型。可以在該(https://github.com/BVLC/caffe/wiki/Model-Zoo)上獲得不同數據集的VGG、ResNet和Inception網絡模型。
C 為什么要使用遷移學習?
使用遷移學習可以節約很多資源和加快收斂速度。
D 如何使用遷移學習?
標準表Ⅲ所示:
E 工作推理
有專門的機構進行了研究。
F 遷移學習的神話
遷移學習可以從未標記的數據中學習有用的特征、遷移學習可以幫助從相關任務中學習特征。圖46詳細的展示了遷移學習的方法策略:
總結
以上是生活随笔為你收集整理的The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 量化交易 聚宽 布林带策略
- 下一篇: Shell脚本采集基础监控项数据(含采集