必威电竞|足球世界杯竞猜平台

卷積神經網絡
來源:互聯網

卷積神經網絡(Convolutional Neural Networks,CNN)是一類包含卷積計算且具有深度結構的前饋神經網絡(Feedforward Neural Networks),是深度學習(deep learning)的代表算法之一。卷積神經網絡具有表征學習(representation learning)能力,能夠按其階層結構對輸入信息進行平移不變分類(shift-invariant classification),因此也被稱為“平移不變神經網絡(Shift-Invariant Neural Networks)”。

對卷積神經網絡的研究始于二十世紀80至90年代,時間延遲網絡和LeNet-5是最早出現的卷積神經網絡;在二十一世紀后,隨著深度學習理論的提出和數值計算設備的改進,卷積神經網絡得到了快速發展,并被大量應用于計算機視覺、自然語言處理等領域。

卷積神經網絡仿造生物的視知覺(visual perception)機制構建,可以進行監督學習和非監督學習,其隱含層內的卷積核參數共享和層間連接的稀疏性使得卷積神經網絡能夠以較小的計算量對格點化(grid-like topology)特征,例如像素和音頻進行學習、有穩定的效果且對數據沒有額外的特征工程(feature engineering)要求。

歷史

對卷積神經網絡的研究可追溯至日本學者福島邦彥(Kunihiko Fukushima)提出的neocognitron模型。在其1979和1980年發表的論文中,福島縣仿造生物的視覺皮層(visual cortex)設計了以“neocognitron”命名的神經網絡。neocognitron是一個具有深度結構的神經網絡,并且是最早被提出的深度學習算法之一,其隱含層由S層(Simple-layer)和C層(情結layer)交替構成。其中S層單元在感受野(receptive field)內對圖像特征進行提取,C層單元接收和響應不同感受野返回的相同特征。neocognitron的S層-C層組合能夠進行特征提取和篩選,部分實現了卷積神經網絡中卷積層(convolution layer)和池化層(pooling layer)的功能,被認為是啟發了卷積神經網絡的開創性研究。

第一個卷積神經網絡是1987年由Alexander Waibel等提出的時間延遲網絡(時間 時延 Neural Network, TDNN)。TDNN是一個應用于語音識別問題的卷積神經網絡,使用FFT預處理的語音信號作為輸入,其隱含層由2個一維卷積核組成,以提取頻率域上的平移不變特征。由于在TDNN出現之前,人工智能領域在反向傳播算法(Back-Propagation, BP)的研究中取得了突破性進展,因此TDNN得以使用BP框架內進行學習。在原作者的比較試驗中,TDNN的表現超過了同等條件下的隱馬爾可夫模型(Hidden Markov Model, HMM),而后者是二十世紀80年代語音識別的主流算法。

1988年,Wei Zhang提出了第一個二維卷積神經網絡:平移不變人工神經網絡(SIANN),并將其應用于檢測醫學影像。獨立于Zhang (1988),Yann LeCun在1989年同樣構建了應用于圖像分類的卷積神經網絡,即LeNet的最初版本。LeNet包含兩個卷積層,2個全連接層,共計6萬個學習參數,規模遠超TDNN和SIANN,且在結構上與現代的卷積神經網絡十分接近。LeCun (1989)對權重進行隨機初始化后使用了隨機梯度下降(Stochastic Gradient Descent, SGD)進行學習,這一策略被其后的深度學習研究廣泛采用。此外,LeCun (1989)在論述其網絡結構時首次使用了“卷積”一詞,“卷積神經網絡”也因此得名。

LeCun (1989)的工作在1993年由貝爾實驗室(AT&T Bell Laboratories)完成代碼開發并被大量部署于NCR(National Cash Register Coporation)的支票讀取系統。但總體而言,由于數值計算能力有限和學習樣本不足,這一時期為各類圖像處理問題設計的卷積神經網絡停留在了研究階段,沒有得到廣泛應用。

在LeNet的基礎上,1998年Yann LeCun及其合作者構建了更加完備的卷積神經網絡LeNet-5并在手寫數字的識別問題中取得成功。LeNet-5沿用了LeCun (1989) 的學習策略并在原有設計中加入了池化層對輸入特征進行篩選。LeNet-5及其后產生的變體定義了現代卷積神經網絡的基本結構,其構筑中交替出現的卷積層-池化層被認為有效提取了輸入圖像的平移不變特征。LeNet-5的成功使卷積神經網絡的應用得到關注,微軟在2003年使用卷積神經網絡開發了光學字符讀取(Optical Character Recognition, OCR)系統。其它基于卷積神經網絡的應用研究也得到展開,包括人像識別、手勢識別等。

2006年后,隨著深度學習理論的完善,尤其是逐層學習和參數微調(fine-tuning)技術的出現,卷積神經網絡開始快速發展,在結構上不斷加深,各類學習和優化理論得到引入。自2012年的AlexNet開始,各類卷積神經網絡多次成為ImageNet大規模視覺識別競賽(ImageNet Large Scale Visual Recognition Challenge, ILSVRC)的優勝算法,包括2013年的ZFNet、2014年的VGGNet、GoogLeNet和2015年的ResNet。

結構

輸入層

卷積神經網絡的輸入層可以處理多維數據,常見地,一維卷積神經網絡的輸入層接收一維或二維數組,其中一維數組通常為時間或頻譜采樣;二維數組可能包含多個通道;二維卷積神經網絡的輸入層接收二維或三維數組;三維卷積神經網絡的輸入層接收四維數組。由于卷積神經網絡在計算機視覺領域有廣泛應用,因此許多研究在介紹其結構時預先假設了三維輸入數據,即平面上的二維像素點和RGB通道。

與其它神經網絡算法類似,由于使用梯度下降進行學習,卷積神經網絡的輸入特征需要進行標準化處理。具體地,在將學習數據輸入卷積神經網絡前,需在通道或時間/頻率維對輸入數據進行歸一化,若輸入數據為像素,也可將分布于 的原始像素值歸一化至 區間。輸入特征的標準化有利于提升卷積神經網絡的學習效率和表現。

隱含層

卷積神經網絡的隱含層包含卷積層、池化層和全連接層3類常見構筑,在一些更為現代的算法中可能有Inception模塊、殘差塊(residual block)等復雜構筑。在常見構筑中,卷積層和池化層為卷積神經網絡特有。卷積層中的卷積核包含權重系數,而池化層不包含權重系數,因此在文獻中,池化層可能不被認為是獨立的層。以LeNet-5為例,3類常見構筑在隱含層中的順序通常為:輸入-卷積層-池化層-卷積層-池化層-全連接層-輸出。

卷積層(convolutional layer)

1. 卷積核(convolutional kernel)

卷積層的功能是對輸入數據進行特征提取,其內部包含多個卷積核,組成卷積核的每個元素都對應一個權重系數和一個偏差量(bias 向量),類似于一個前饋神經網絡的神經元(neuron)。卷積層內每個神經元都與前一層中位置接近的區域的多個神經元相連,區域的大小取決于卷積核的大小,在文獻中被稱為“感受野(receptive field)”,其含義可類比視覺皮層細胞的感受野。卷積核在工作時,會有規律地掃過輸入特征,在感受野內對輸入特征做矩陣元素乘法求和并疊加偏差量:

式中的求和部分等價于求解一次交叉相關(cross-correlation)。為偏差量,和 表示第 層的卷積輸 入和輸出,也被稱為特征圖(feature map),為 的尺寸,這里假設特征圖長寬相同。對應特征圖的像素,為特征圖的通道數,和 是卷積層參數,對應卷積核大小、卷積步長(stride)和填充(padding)層數。

上式以二維卷積核作為例子,一維或三維卷積核的工作方式與之類似。理論上卷積核也可以先翻轉180度,再求解交叉相關,其結果等價于滿足交換律的線性卷積(linear convolution),但這樣做在增加求解步驟的同時并不能為求解參數取得便利,因此線性卷積核使用交叉相關代替了卷積。

特殊地,當卷積核是大小,步長 且不包含填充的單位卷積核時,卷積層內的交叉相關計算等價于矩陣乘法,并由此在卷積層間構建了全連接網絡:

由單位卷積核組成的卷積層也被稱為網中網(Network-In-Network, NIN)或多層感知器卷積層(multilayer perceptron convolution layer, mlpconv)。單位卷積核可以在保持特征圖尺寸的同時減少圖的通道數從而降低卷積層的計算量。完全由單位卷積核構建的卷積神經網絡是一個包含參數共享的多層感知器(Muti-Layer Perceptron, MLP)。

在線性卷積的基礎上,一些卷積神經網絡使用了更為復雜的卷積,包括平鋪卷積(tiled convolution)、反卷積(反褶積)和擴張卷積(dilated convolution)。平鋪卷積的卷積核只掃過特征圖的一部份,剩余部分由同層的其它卷積核處理,因此卷積層間的參數僅被部分共享,有利于神經網絡捕捉輸入圖像的旋轉不變(shift-invariant)特征。反卷積或轉置卷積(transposed convolution)將單個的輸入激勵與多個輸出激勵相連接,對輸入圖像進行放大。由反卷積和向上池化層(up-pooling layer)構成的卷積神經網絡在圖像語義分割(semantic segmentation)領域有重要應用,也被用于構建卷積自編碼器(Convolutional AutoEncoder, CAE)。擴張卷積在線性卷積的基礎上引入擴張率以提高卷積核的感受野,從而獲得特征圖的更多信息,在面向序列數據使用時有利于捕捉學習目標的長距離依賴(long-range dependency)。使用擴張卷積的卷積神經網絡主要被用于自然語言處理(Natrual Language Processing, 失明)領域,例如機器翻譯、語音識別等。

2. 卷積層參數

卷積層參數包括卷積核大小、步長和填充,三者共同決定了卷積層輸出特征圖的尺寸,是卷積神經網絡的超參數。其中卷積核大小可以指定為小于輸入圖像尺寸的任意值,卷積核越大,可提取的輸入特征越復雜。

卷積步長定義了卷積核相鄰兩次掃過特征圖時位置的距離,卷積步長為1時,卷積核會逐個掃過特征圖的元素,步長為n時會在下一次掃描跳過個像素。

由卷積核的交叉相關計算可知,隨著卷積層的堆疊,特征圖的尺寸會逐步減小,例如的輸入圖像在經過單位步長、無填充的的卷積核后,會輸出的特征圖。為此,填充是在特征圖通過卷積核之前人為增大其尺寸以抵消計算中尺寸收縮影響的方法。常見的填充方法為按0填充和重復邊界值填充(replication padding)。填充依據其層數和目的可分為四類:

??有效填充(valid padding):即完全不使用填充,卷積核只允許訪問特征圖中包含完整感受野的位置。輸出的所有像素都是輸入中相同數量像素的函數。使用有效填充的卷積被稱為“窄卷積(narrow convolution)”,窄卷積輸出的特征圖尺寸為。

??相同填充/半填充(same/half padding):只進行足夠的填充來保持輸出和輸入的特征圖尺寸相同。相同填充下特征圖的尺寸不會縮減但輸入像素中靠近邊界的部分相比于中間部分對于特征圖的影響更小,即存在邊界像素的欠表達。使用相同填充的卷積被稱為“等長卷積(equal-width convolution)”。

??全填充(full padding):進行足夠多的填充使得每個像素在每個方向上被訪問的次數相同。步長為1時,全填充輸出的特征圖尺寸為,大于輸入值。使用全填充的卷積被稱為“寬卷積(wide convolution)”

??任意填充(arbitrary padding):介于有效填充和全填充之間,人為設定的填充,較少使用。

帶入先前的例子,若的輸入圖像在經過單位步長的的卷積核之前先進行相同填充,則會在水平和垂直方向填充兩層,即兩側各增加2個像素( )變為大小的圖像,通過卷積核后,輸出的特征圖尺寸為,保持了原本的尺寸。

3. 激勵函數(activation 函數

卷積層中包含激勵函數以協助表達復雜特征,其表示形式如下:

類似于其它深度學習算法,卷積神經網絡通常使用線性整流單元(Rectified Linear Unit, ReLU),其它類似ReLU的變體包括有斜率的ReLU(Leaky ReLU, LReLU)、參數化的ReLU(Parametric ReLU, PReLU)、隨機化的ReLU(Randomized ReLU, RReLU)、指數線性單元(Exponential Linear Unit, ELU)等。在ReLU出現以前,Sigmoid函數和雙曲正切函數(hyperbolic tangent)是常用的激勵函數。

激勵函數操作通常在卷積核之后,一些使用預激活(preactivation)技術的算法將激勵函數置于卷積核之前。在一些早期的卷積神經網絡研究,例如LeNet-5中,激勵函數在池化層之后。

池化層(pooling layer)

在卷積層進行特征提取后,輸出的特征圖會被傳遞至池化層進行特征選擇和信息過濾。池化層包含預設定的池化函數,其功能是將特征圖中單個點的結果替換為其相鄰區域的特征圖統計量。池化層選取池化區域與卷積核掃描特征圖步驟相同,由池化大小、步長集團和填充控制。

1. 池化(Lp pooling)

池化是一類受視覺皮層內階層結構啟發而建立的池化模型,其一般表示形式為:

式中步長、像素 的含義與卷積層相同,是預指定參數。當 時,池化在池化區域內取均值,被稱為均值池化(average pooling);當 時,池化在區域內取極大值,被稱為極大池化(max pooling)。均值池化和極大池化是最常見的池化方法,二者以損失特征圖尺寸為代價保留圖像的背景和紋理信息。此外 時的池化在一些工作中也有使用。

2. 隨機/混合池化

混合池化(mixed pooling)和隨機池化(stochastic pooling)是L池化概念的延伸。隨機池化會在其池化區域內按特定的概率分布隨機選取一值,以確保部分非極大的激勵信號能夠進入下一個構筑。混合池化可以表示為均值池化和極大池化的線性組合

有研究表明,混合池化和隨機池化有利于防止卷積神經網絡的過度擬合,比均值和極大池化有更好的表現。

3. 譜池化(spectral pooling)

譜池化是基于FFT的池化方法,可以和FFT卷積一起被用于構建基于FFT的卷積神經網絡。在給定特征圖尺寸,和池化層輸出尺寸時,譜池化對特征圖的每個通道分別進行DFT變換,并從頻譜中心截取大小的序列進行DFT逆變換得到池化結果。譜池化有濾波功能,可以最大限度地保存低頻變化信息,并能有效控制特征圖的大小。此外,基于成熟的FFT算法,譜池化能夠以很小的計算量完成。

Inception模塊(Inception module)

Inception模塊是對多個卷積層和池化層進行堆疊所得的特殊隱含層構筑。具體而言,一個Inception模塊會同時包含多個不同類型的卷積和池化操作,并使用相同填充使上述操作得到相同尺寸的特征圖,隨后在數組中將這些特征圖的通道進行疊加并通過激勵函數。由于上述做法在一個構筑中引入了多個卷積計算,其計算量會顯著增大,因此為簡化計算量,Inception模塊通常設計了瓶頸層,首先使用單位卷積核,即NIN結構減少特征圖的通道數,再進行其它卷積操作。Inception模塊最早被應用于GoogLeNet并取得了顯著的成功,也啟發了Xception算法中的深度可分卷積(depthwise separable convolution)思想。

全連接層(fully-connected layer)

卷積神經網絡中的全連接層等價于傳統前饋神經網絡中的隱含層。全連接層通常搭建在卷積神經網絡隱含層的最后部分,并只向其它全連接層傳遞信號。特征圖在全連接層中會失去3維結構,被展開為向量并通過激勵函數傳遞至下一層。

在一些卷積神經網絡中,全連接層的功能可部分由全局均值池化(global 平均數 pooling)取代,全局均值池化會將特征圖每個通道的所有值取平均,即若有的特征圖,全局均值池化將返回一個256的向量,其中每個元素都是,步長集團為7,無填充的均值池化。

輸出層

卷積神經網絡中輸出層的上游通常是全連接層,因此其結構和工作原理與傳統前饋神經網絡中的輸出層相同。對于圖像分類問題,輸出層使用邏輯函數或歸一化指數函數(softmax function)輸出分類標簽。在物體識別(object detection)問題中,輸出層可設計為輸出物體的中心坐標、大小和分類。在圖像語義分割中,輸出層直接輸出每個像素的分類結果。

理論

學習范式

監督學習(supervised learning)

卷積神經網絡在監督學習中使用BP框架進行學習,其計算流程在LeCun (1989) 中就已經確定,是最早在BP框架進行學習的深度算法之一。卷積神經網絡中的BP分為三部分,即全連接層與卷積核的反向傳播和池化層的反向通路(backward pass)。全連接層的BP計算與傳統的前饋神經網絡相同,卷積層的反向傳播是一個與前向傳播類似的交叉相關計算:

式中 為代價函數(cost 函數)計算的誤差、為激勵函數的導數、是學習速率(learning rate),若卷積核的前向傳播使用卷積計算,則反向傳播也對卷積核翻轉以進行卷積運算。卷積神經網絡的誤差函數可以有多種選擇,常見的包括Softmax損失函數(softmax loss)、鏈損失函數(hinge loss)、三重損失函數(triplet loss)等。

池化層在反向傳播中沒有參數更新,因此只需要根據池化方法將誤差分配到特征圖的合適位置即可,對極大池化,所有誤差會被賦予到極大值所在位置;對均值池化,誤差會平均分配到整個池化區域。

卷積神經網絡通常使用BP框架內的隨機梯度下降(Stochastic Gradient Descent, SGD)和其變體,例如Adam算法(Adaptive moment estimation)。SGD在每次迭代中隨機選擇樣本計算梯度,在大量學習樣本的情形下有利于信息篩選,在迭代初期能快速收斂,且計算復雜度更小。

非監督學習(unsupervised learning)

卷積神經網絡在監督學習問題下有廣泛應用,但也可以使用無標簽數據進行非監督學習。可用的方法包括卷積自編碼器(Convolutional AutoEncoders, CAE)、卷積受限路德維希·玻爾茲曼機(Convolutional Restricted Boltzmann Machines, CRBM)/卷積深度置信網絡(Convolutional Deep Belief Networks, CDBN)和深度卷積生成對抗網絡(Deep Convolutional Generative Adversarial Networks, DCGAN)。這些算法也可以視為在非監督學習算法的原始版本中引入卷積神經網絡構筑的混合算法。

CAE的構建邏輯與傳統AE類似,首先使用卷積層和池化層建立常規的卷積神經網絡作為編碼器,隨后使用反卷積和向上池化(up-pooling)作為解碼器,以樣本編碼前后的誤差進行學習,并輸出編碼器的編碼結果實現對樣本的維度消減(dimentionality reduction)和聚類(clustering)。在圖像識別問題,例如MNIST中,CAE與其編碼器同樣結構的卷積神經網絡在大樣本時表現相當,但在小樣本問題中具有更好的識別效果。

CRBM是以卷積層作為隱含層的受限路德維希·玻爾茲曼機(Boltzmann Machines, RBM),在傳統RBMs的基礎上將隱含層分為多個“組(group)”,每個組包含一個卷積核,卷積核參數由該組對應的所有二元節點共享。CDBN是以CRBM作為構筑進行堆疊得到的階層式生成模型,為了在結構中提取高階特征,CDBN加入了概率極大池化層( probabilistic max-pooling layer),和其對應的能量函數。CRBMs和CDBMs使用逐層貪心算法(greedy layer-wise training)進行學習,并可以使用稀疏正則化(sparsity regularization)技術。在Caltech-101數據的物體識別問題中,一個24-100的兩層CDBN識別準確率持平或超過了很多包含高度特化特征的分類和聚類算法。

生成對抗網絡( Generative Adversarial Networks, GAN)可被用于卷積神經網絡的非監督學習,DCGAN從一組概率分布,即潛空間(latent space)中隨機采樣,并將信號輸入一組完全由轉置卷積核組成的生成器;生成器生成圖像后輸入以卷積神經網絡構成的判別模型,判別模型判斷生成圖像是否是真實的學習樣本。當生成模型能夠使判別模型無法判斷其生成圖像與學習樣本的區別時學習結束。研究表明DCGANs能夠在圖像處理問題中提取輸入圖像的重要特征,在CIFAR-10數據的試驗中,對DCGAN判別模型的特征進行處理后做為其它算法的輸入,能以很高的準確率對圖像進行分類。

優化

正則化(regularization)

在神經網絡算法的各類正則化方法都可以用于卷積神經網絡以防止過度擬合,常見的正則化方法包括L正則化(L-范數 regularization)、隨機失活(spatial dropout)和隨機連接失活(drop connect)。

L正則化在定義損失函數時加入隱含層參數以約束神經網絡的復雜度:

式中 為損失函數,包含弗羅貝尼烏斯范數(Frobenius norm)的求和項被稱為正則化項,其中 是正則化參數,用以確定正則化項的約束力。可證明,當 時,正則化項是凸函數(convex 函數);特別地,當 時,正則化又被成為Tikhonov正則化(Tikhonov regularization)。時的正則化有利于卷積核權重的稀疏化,但此時的正則化向不是凸函數。

卷積神經網絡中的空間隨機失活(spatial dropout)是前饋神經網絡中隨機失活理論的推廣。在全連接網絡的學習中,隨機失活會隨機將神經元的輸出歸零,而空間隨機失活在迭代中會隨機選取特征圖的通道使其歸零。進一步地,隨機連接失活直接作用于卷積核,在迭代中使卷積核的部分權重歸零。研究表明空間隨機失活和隨機連接失活提升了卷積神經網絡的泛化能力,在學習樣本不足時效果顯著。

分批歸一化(Batch Normalization, BN)

數據的標準化是神經網絡輸入管道中預處理的重要步驟。在深度網絡中,隨著特征在隱含層內的逐級傳遞,其均值和標準差會隨之改變,產生協變漂移(covariate shift)現象。協變漂移是深度網絡發生梯度消失(vanishing gradient)的重要原因。BN以引入額外學習參數為代價部分解決了此類問題,其策略是在隱含層中首先將特征標準化,然后使用兩個線性參數將標準化的特征放大作為新的輸入,神經網絡會在學習過程中更新其BN參數。卷積神經網絡中的BN參數與卷積核參數具有相同的性質,即特征圖中同一個通道的像素共享一組BN參數。此外使用BN時卷積層不需要偏差項,其功能由BN參數代替。

跳躍連接(skip connection)

跳躍連接或短路連接(shortcut connection)來源于循環神經網絡(Recurrent Neural Network, RNN)中的跳躍連接和各類門控算法,是解決深度網絡中梯度消失問題的重要技術。卷積神經網絡中的跳躍連接可以跨越任意數量的隱含層,這里以相鄰隱含層間的跳躍進行說明:

式中 是特征圖的轉換系數,當 和 的尺寸不同時,轉換系數將尺寸更小的特征圖,通常是 轉換為 的尺寸,確保矩陣元素運算成立。當 的輸出值小而 的輸出值大時,卷積層 的輸出近似于等值函數,對該層的特征傳遞沒有負面影響,因此設定了 層的學習基線,使該層在迭代中至少不會退化。在BP框架內,部分誤差在反向傳播時可以跳過 層直接作用于 層,補償了其在深度結構中逐級傳播造成的梯度損失,因此有利于深度結構的誤差傳播。包含跳躍連接的多個卷積層的組合被稱為殘差塊(residual block),是現代卷積神經網絡的重要構筑技術。

加速

通用加速技術

卷積神經網絡可以使用和其它深度學習算法類似的加速技術以提升運行效率,包括量化(quantization)、遷移學習(transfer learning)等。量化即在計算中使用低數值精度以提升計算速度,該技術在各類深度算法中被廣泛使用。對于卷積神經網絡,一個極端的例子是XNOR-Net,即僅由異或門(XNOR)搭建的卷積神經網絡。遷移學習一般性的策略是將非標簽數據遷移至標簽數據以提升神經網絡的表現,卷積神經網絡中遷移學習通常為使用在標簽數據下完成學習的卷積核權重初始化新的卷積神經網絡,對非標簽數據進行遷移,或應用于其它標簽數據以縮短學習過程。

FFT卷積

卷積神經網絡的卷積和池化計算都可以通過FFT轉換至頻率域內進行,此時卷積核權重與BP算法中梯度的FFT能夠被重復利用,逆FFT也只需在輸出結果時使用,降低了計算復雜度。同時作為被廣泛使用的數值計算方法,一些數值計算庫包含了GPU設備的FFT,能提供進一步加速。FFT卷積在處理小尺寸的卷積核時可使用Winograd算法降低內存開銷。

權重稀疏化

在卷積神經網絡中對權重進行稀疏化,能夠減少卷積核的冗余,降低計算復雜度,使用該技術的構筑被稱為稀疏卷積神經網絡(Sparse Convolutional Neural Networks)。在對ImageNet數據的學習中,一個以90%比率稀疏化的卷積神經網絡的運行速度是同結構傳統卷積神經網絡的2至10倍,而輸出的分類精度僅損失了2%。

算法

一維算法

時間延遲網絡(時間 時延 Neural Network, TDNN)

TDNN是一類應用于語音識別問題的一維卷積神經網絡,也是歷史上最早被提出的卷積神經網絡算法之一。這里以TDNN的原始版本Waibel et al. (1987)為例進行介紹。

TDNN的學習目標為對FFT變換的3個語音音節/b,d,g/進行分類,其隱含層完全由單位步長集團,無填充的卷積層組成。在文獻中,TDNN的卷積核尺寸使用“延遲(delay)”表述,由尺寸為3的一維卷積核構成的隱含層被定義為“時間延遲為2的隱含層”,即感受野包含無延遲輸入和2個延遲輸入。在此基礎上,TDNN有兩個卷積層,時間延遲分別為2和4,神經網絡中每個輸入信號與8個隱含層神經元相連。TDNN沒有全連接層,而是將尾端卷積層的輸出直接相加通過激勵函數得到分類結果。按原作,輸入TDNN的預處理數據為15個10毫秒采樣的樣本(frame),每個樣本包含16個通道參數(filterbank coefficients),此時TDNN的結構如下:

1.的卷積層(步長為1,無填充,Sigmoid函數)

2.的卷積層(步長集團為1,無填充,Sigmoid函數)

3.對的特征圖求和輸出

列表中數字的含義為:(卷積核尺寸)×卷積核通道(與輸入數據通道數相同)×卷積核個數。TDNN的輸出層和兩個卷積層均使用Sigmoid函數作為激勵函數。除上述原始版本外,TDNN的后續研究中出現了應用于字符識別和物體識別的算法,其工作方式是將空間在通道維度展開并使用時間上的一維卷積核,即時間延遲進行學習。

WaveNet

WaveNet是被用于語音建模的一維卷積神經網絡,其特點是采用擴張卷積和跳躍連接提升了神經網絡對長距離依賴的學習能力。WaveNet面向序列數據設計,其結構和常見的卷積神經網絡有較大差異,這里按Van Den Oord et al. (2016)做簡單介紹:

WaveNet以經過量化和獨熱編碼(one-hot encoding)的音頻作為輸入特征,具體為一個包含采樣和通道的二維數組。輸入特征在WaveNet中首先進入線性卷積核,得到的特征圖會通過多個擴張卷積塊(dilated stack),每個擴張卷積塊包含一個過濾器(filter)和一個門(gate),兩者都是步長為1,相同填充的線性卷積核,但前者使用雙曲正切函數作為激勵函數,后者使用Sigmoid函數。特征圖從過濾器和門輸出后會做矩陣元素乘法并通過由NIN構建的瓶頸層,所得結果的一部分會由跳躍連接直接輸出,另一部分與進入該擴張卷積塊前的特征圖進行線性組合進入下一個構筑。WaveNet的末端部分將跳躍連接和擴張卷積塊的所有輸出相加并通過兩個ReLU-NIN結構,最后由歸一化指數函數輸出結果并使用交叉作為損失函數進行監督學習。WaveNet是一個生成模型(generative model),其輸出為每個序列元素相對于其之前所有元素的條件概率,與輸入序列具有相同的維度:

WaveNet被證實能夠生成接近真實的英文、中文和德語語音。在經過算法和運行效率的改進后,自2017年11月起,WaveNet開始為谷歌的商業應用“谷歌助手谷歌 Assistant)”提供語音合成

二維算法

LeNet-5

LeNet-5是一個應用于圖像分類問題的卷積神經網絡,其學習目標是從一系列由32×32×1灰度圖像表示的手寫數字中,識別和區分0-9。LeNet-5的隱含層由2個卷積層、2個池化層構筑和2個全連接層組成,按如下方式構建:

1.的卷積層(步長集團為1,無填充),均值池化(步長為2,無填充),tanh激勵函數

2.的卷積層(步長為1,無填充),均值池化(步長為2,無填充),tanh激勵函數

3.2個全連接層,神經元數量為120和84

從現代深度學習的觀點來看,LeNet-5規模很小,但考慮LeCun et al. (1998)的數值計算條件,LeNet-5是完整的深度學習算法。LeNet-5使用雙曲正切函數作為激勵函數,使用均方差(平均數 Squared Error, MSE)作為誤差函數并對卷積操作進行了修改以減少計算開銷,這些設置在隨后的卷積神經網絡算法中已被更優化的方法取代。在現代機器學習庫的范式下,LeNet-5是一個易于實現的算法,這里提供一個使用TensorFlowKeras的計算例子:

該例子使用MNIST數據代替LeCun et al. (1998)的原始數據,使用交叉熵(categorical cross-entropy)作為損失函數。

ILSVRC中的優勝算法

ILSVRC為各類應用于計算機視覺人工智能算法提供了比較的平臺,其中有多個卷積神經網絡算法在圖像分類和物體識別任務中獲得優勝,包括AlexNet、ZFNet、VGGNet、GoogLeNet和ResNet,這些算法在ImageNet數據中展現了良好的學習性能,也是卷積神經網絡發展中具有代表意義的算法。

對AlexNet、ZFNet的編程實現與LeNet-5類似,對VGGNet、GoogLeNet和ResNet的編程實現較為繁瑣,一些機器學習庫提供了完整的封裝模型和完成學習的權重,這里提供一個使用TensorFlowKeras的例子:

1. AlexNet

AlexNet是2012年ILSVRC圖像分類和物體識別算法的優勝者,也是LetNet-5之后對現代卷積神經網絡產生重要影響的算法。AlexNet的隱含層由5個卷積層、3個池化層和3個全連接層組成,按如下方式構建:

1.的卷積層(步長集團為4,無填充,ReLU),極大池化(步長為2、無填充),LRN

2.的卷積層(步長為1,相同填充,ReLU),極大池化(步長為2、無填充),LRN

3.的卷積層(步長為1,相同填充,ReLU)

4.的卷積層(步長為1,相同填充,ReLU)

5.的卷積層(步長為1,相同填充,ReLU),極大池化(步長集團為2、無填充)

6.3個全連接層,神經元數量為4096、4096和1000

AlexNet在卷積層中選擇ReLU作為激勵函數,使用了隨機失活,和數據增強(數據 data augmentation)技術,這些策略在其后的卷積神經網絡中被廣泛使用。AlexNet也是首個基于GPU進行學習的卷積神經網絡,Krizhevsky (2012) 將AlexNet按結構分為兩部分,分別在兩塊GPU設備上運行。此外AlexNet的1-2部分使用了局部響應歸一化(local response normalization, LRN),在2014年后出現的卷積神經網絡中,LRN已由分批歸一化取代。

2. ZFNet

ZFNet是2013年ILSVRC圖像分類算法的優勝者,其結構與AlexNet相近,僅將第一個卷積層的卷積核大小調整為、步長減半:

1.的卷積層(步長集團為2,無填充,ReLU),極大池化(步長為2、無填充),LRN

2.的卷積層(步長為1,相同填充,ReLU),極大池化(步長為2、無填充),LRN

3.的卷積層(步長為1,相同填充,ReLU)

4.的卷積層(步長為1,相同填充,ReLU)

5.的卷積層(步長集團為1,相同填充,ReLU),極大池化(步長為2、無填充)

6.3個全連接層,神經元數量為4096、4096和1000

ZFNet對卷積神經網絡的貢獻不在其構筑本身,而在于其原作者通過反卷積考察了ZFNet內部的特征提取細節,解釋了卷積神經網絡的特征傳遞規律,即由簡單的邊緣、夾角過渡至更為復雜的全局特征。上述理論對卷積神經網絡的算法改進和應用拓展具有重要意義。

3. VGGNet

VGGNet是牛津大學視覺幾何團隊(Visual Geometry Group, VGG)開發的一組卷積神經網絡算法,包括VGG-11、VGG-11-LRN、VGG-13、VGG-16和VGG-19。其中VGG-16是2014年ILSVRC物體識別算法的優勝者,其規模是AlexNet的2倍以上并擁有規律的結構,這里以VGG-16為例介紹其構筑。VGG-16的隱含層由13個卷積層、3個全連接層和5個池化層組成,按如下方式構建:

1.的卷積層(步長為1,相同填充,ReLU),的卷積層(步長集團為1,相同填充,ReLU),極大池化(步長為2、無填充)

2.的卷積層(步長為1,相同填充,ReLU),的卷積層(步長為1,相同填充,ReLU),極大池化(步長為2、無填充)

3.的卷積層(步長為1,相同填充,ReLU),的卷積層(步長為1,相同填充,ReLU),的卷積層(步長集團為1,相同填充,ReLU),極大池化(步長為2、無填充)

4.的卷積層(步長為1,相同填充,ReLU),的卷積層(步長為1,相同填充,ReLU),的卷積層(步長為1,相同填充,ReLU),極大池化(步長為2、無填充)

5.的卷積層(步長為1,相同填充,ReLU),的卷積層(步長為1,相同填充,ReLU),的卷積層(步長集團為1,相同填充,ReLU),極大池化(步長為2、無填充)

6.3個全連接層神經元數量為4096、4096和1000

VGGNet構筑中僅使用3×3的卷積核并保持卷積層中輸出特征圖尺寸不變,通道數加倍,池化層中輸出的特征圖尺寸減半,簡化了神經網絡的拓撲結構并取得了良好效果。

4. GoogLeNet

GoogLeNet是2014年ILSVRC圖像分類算法的優勝者,是首個以Inception模塊進行堆疊形成的大規模卷積神經網絡,共有四個版本,即Inception v1、Inception v2、Inception v3、Inception v4。這里以Inception v1為例介紹。首先,Inception v1的Inception模塊被分為四部分:

??N1個的卷積

??B3個的卷積核(BN,ReLU),N3個的卷積核(步長集團為1,相同填充,BN,ReLU)

??B5個的卷積核(BN,ReLU),N5個的卷積核(步長為1,相同填充,BN,ReLU)

??的極大池化(步長為1,相同填充),Np個的卷積核(BN,ReLU)

在此基礎上,對3通道的RGB圖像輸入,Inception v1按如下方式構建:

1.的卷積層(步長集團為2,無填充,BN,ReLU),的極大池化(步長為2,相同填充),LRN

2.的卷積層(步長為1,相同填充,BN,ReLU),LRN,極大池化(步長為2,相同填充)

3.Inception模塊()

4.Inception模塊()

5.3×3極大池化(步長集團為2,相同填充)

6.Inception模塊()

7.旁枝:5×5均值池化(步長為3,無填充)

8.Inception模塊()

9.Inception模塊()

10.Inception模塊()

11.旁枝:5×5均值池化(步長為3,無填充)

12.Inception模塊()

13.Inception模塊()

14.全局均值池化,1個全連接層,神經元數量為1000,權重40%隨機失活

GoogLeNet中Inception模塊的提出促進了卷積神經網絡的發展,并啟發了一些更為現代的算法,例如2017年提出的Xception。Inception v1的另一特色是其兩個旁枝輸出,旁枝和主干的所有輸出會通過指數歸一化函數得到結果,對神經網絡起正則化的作用。

5. 殘差神經網絡(Residual Network, ResNet)

ResNet來自微軟人工智能團隊微軟 Research,是2015年ILSVRC圖像分類和物體識別算法的優勝者,其表現超過了GoogLeNet的第三代版本Inception v3。ResNet是使用殘差塊建立的大規模卷積神經網絡,其規模是AlexNet的20倍、VGG-16的8倍,在ResNet的原始版本中,其殘差塊由2個卷積層、1個跳躍連接、BN和激勵函數組成,ResNet的隱含層共包含16個殘差塊,按如下方式構建:

1.的卷積層(步長集團為2,無填充,ReLU,BN),的極大池化(步長為2,相同填充)

2.3個殘差塊:卷積層(步長為1,無填充,ReLU,BN),卷積層(步長為1,無填充)

3.1個殘差塊:(步長為2,無填充,ReLU,BN),(步長為1,無填充,ReLU,BN)

4.3個殘差塊:(步長集團為1,無填充,ReLU,BN),(步長為1,無填充,ReLU,BN)

5.1個殘差塊:(步長為2,無填充,ReLU,BN),(步長為1,無填充,ReLU,BN)

6.5個殘差塊:(步長為1,無填充,ReLU,BN),(步長為1,無填充,ReLU,BN)

7.1個殘差塊:(步長集團為2,無填充,ReLU,BN),(步長為1,無填充,ReLU,BN)

8.2個殘差塊:(步長為1,無填充,ReLU,BN),(步長為1,無填充,ReLU,BN)

9.全局均值池化,1個全連接層,神經元數量為1000

ResNet的重要貢獻是在隱含層中通過跳躍連接技術構建的殘差塊。殘差塊的堆疊解決了深度網絡學習中梯度衰減的問題,被其后的諸多算法使用,包括GoogLeNet的第四代版本Inception v4。

在ResNet的基礎上有很多研究嘗試了改進算法,其中較重要的包括預激活ResNet(preactivation ResNet)、寬ResNet(wide ResNet)、隨機深度ResNets(Stochastic Depth ResNets, SDR)和RiR(ResNet in ResNet)等。預激活ResNet將激勵函數和BN計算置于卷積核之前以提升學習表現和更快的學習速度;寬ResNet使用更多通道的卷積核以提升原ResNet的“寬度”,并嘗試在構筑中引入隨機失活等優化技術;SDR在學習中隨機使卷積層失活并用等值函數取代以達到正則化的效果;RiR使用包含跳躍連接和傳統卷積層的并行結構建立廣義殘差塊,對ResNet進行了推廣。上述改進算法都報告了比傳統ResNet更好的學習表現,但尚未在使用標準數據的大規模比較,例如ILSVRC中得到驗證。

全卷積構筑

部分計算機視覺問題,例如圖像語義分割(semantic segmentation)和超分辨率圖像生成(super resolution imaging)要求輸入與輸出均為格點數據且輸入端的特征圖大小可變。全卷積構筑為解決上述問題而設計的神經網絡算法。

SRCNN(Super Resolution CNN)

SRCNN是最早被提出的全卷積構筑之一,被應用于超分辨率圖像生成。其構筑分為3部分:特征提取端、非線性映射和特征重構,其中特征提取端將低分辨率輸入按插值算法升采樣至目標分辨率并使用的卷積核提取特征;非線性映射是一個瓶頸層,進行低分辨率特征和高分辨率特征的線性變換。特征重構端是一個轉置卷積,將高分辨率特征重構是目標分辨率并輸出結果。

UNet

UNet是一個包含4層降采樣、4層升采樣和類似跳躍連接結構的全卷積網絡,其特點是卷積層在降采樣和升采樣部分完全對稱,且降采樣端的特征圖可以跳過深層采樣,被拼接至對應的升采樣端。UNet在其提出之初主要被用于醫學影像的語義分割,并在之后的應用研究中被擴展至3維視頻數據的語義分割??和超分辨率圖像生成。UNet是一個泛用性較好的全卷積網絡,也衍生出了一些面向特定問題的改進版本,例如在降采樣端引入殘差塊構筑的HDense-UNet??、包含深監督設計和模型剪枝的UNet++等。

性質

連接性

卷積神經網絡中卷積層間的連接被稱為稀疏連接(sparse connection),即相比于前饋神經網絡中的全連接,卷積層中的神經元僅與其相鄰層的部分,而非全部神經元相連。具體地,卷積神經網絡第l層特征圖中的任意一個像素(神經元)都僅是層中卷積核所定義的感受野內的像素的線性組合。卷積神經網絡的稀疏連接具有正則化的效果,提高了網絡結構的穩定性和泛化能力,避免過度擬合,同時,稀疏連接減少了權重參數的總量,有利于神經網絡的快速學習,和在計算時減少內存開銷。

卷積神經網絡中特征圖同一通道內的所有像素共享一組卷積核權重系數,該性質被稱為權重共享(weight sharing)。權重共享將卷積神經網絡和其它包含局部連接結構的神經網絡相區分,后者雖然使用了稀疏連接,但不同連接的權重是不同的。權重共享和稀疏連接一樣,減少了卷積神經網絡的參數總量,并具有正則化的效果。

在全連接網絡視角下,卷積神經網絡的稀疏連接和權重共享可以被視為兩個無限強的先驗(pirior),即一個隱含層神經元在其感受野之外的所有權重系數恒為0(但感受野可以在空間移動);且在一個通道內,所有神經元的權重系數相同。

表征學習

作為深度學習的代表算法,卷積神經網絡具有表征學習能力,即能夠從輸入信息中提取高階特征。具體地,卷積神經網絡中的卷積層和池化層能夠響應輸入特征的平移不變性,即能夠識別位于空間不同位置的相近特征。能夠提取平移不變特征是卷積神經網絡在計算機視覺問題中被廣泛應用的重要原因。

平移不變特征在卷積神經網絡內部的傳遞具有一般性的規律。在圖像處理問題中,卷積神經網絡前部的特征圖通常會提取圖像中顯著的高頻和低頻特征;隨后經過池化的特征圖會顯示出輸入圖像的邊緣特征(aliasing artifacts);當信號進入更深的隱含層后,其更一般、更完整的特征會被提取。反卷積和反池化(un-pooling)可以對卷積神經網絡的隱含層特征進行可視化。一個成功的卷積神經網絡中,傳遞至全連接層的特征圖會包含與學習目標相同的特征,例如圖像分類中各個類別的完整圖像。

生物學相似性

卷積神經網絡中基于感受野設定的稀疏連接有明確對應的神經科學過程——視覺神經系統視覺皮層(visual cortex)對視覺空間(visual space)的組織。視覺皮層細胞從視網膜上的光感受器接收信號,但單個視覺皮層細胞不會接收光感受器的所有信號,而是只接受其所支配的刺激區域,即感受野內的信號。只有感受野內的刺激才能夠激活該神經元。大量視覺皮層細胞通過系統地將感受野疊加完整接收視網膜傳遞的信號并建立視覺空間。事實上機器學習的“感受野”一詞即來自其對應的生物學研究。卷積神經網絡中的權重共享的性質在生物學中沒有明確證據,但在對與大腦學習密切相關的目標傳播(target-propagation, TP)和反饋調整(feedback alignment, FA)機制的研究中,權重共享顯著提升了學習效果。

應用

計算機視覺

圖像識別(image classification)

卷積神經網絡長期以來是圖像識別領域的核心算法之一,并在大量學習數據時有穩定的表現。對于一般的大規模圖像分類問題,卷積神經網絡可用于構建階層分類器(hierarchical classifier),也可以在精細分類識別(fine-grained recognition)中用于提取圖像的判別特征以供其它分類器進行學習。對于后者,特征提取可以人為地將圖像的不同部分分別輸入卷積神經網絡,也可以由卷積神經網絡通過非監督學習自行提取。

對于字符檢測(text detection)和字符識別(text recognition)/光學字符讀取,卷積神經網絡被用于判斷輸入的圖像是否包含字符,并從中剪取有效的字符片斷。其中使用多個歸一化指數函數直接分類的卷積神經網絡被用于谷歌街景圖像的門牌號識別、包含條件隨機場(Conditional Random Fields, CRF)圖模型的卷積神經網絡可以識別圖像中的單詞,卷積神經網絡與循環神經網絡(Recurrent Neural Network, RNN)相結合可以分別從圖像中提取字符特征和進行序列標注(sequence labelling)。

物體識別(object recognition)

卷積神經網絡可以通過三類方法進行物體識別:滑動窗口(sliding window)、選擇性搜索(selective search)和YOLO(You Only Look Once)。滑動窗口出現最早,并被用于手勢識別等問題,但由于計算量大,已經被后兩者淘汰。選擇性搜索對應區域卷積神經網絡(Region-based CNN),該算法首先通過一般性步驟判斷一個窗口是否可能有目標物體,并進一步將其輸入復雜的識別器中。YOLO算法將物體識別定義為對圖像中分割框內各目標出現概率的回歸問題,并對所有分割框使用同一個卷積神經網絡輸出各個目標的概率,中心坐標和框的尺寸。基于卷積神經網絡的物體識別已被應用于自動駕駛和交通實時監測系統。

此外,卷積神經網在圖像語義分割(semantic segmentation)、場景分類(scene labeling)和圖像顯著度檢測(Visual Saliency Detection)等問題中也有應用,其表現被證實超過了很多使用特征工程的分類系統。

行為認知(action recognition)

在針對圖像的行為認知研究中,卷積神經網絡提取的圖像特征被廣泛應用于行為分類(action classification)。在視頻的行為認知問題中,卷積神經網絡可以保持其二維結構并通過堆疊連續時間片段的特征進行學習、建立沿時間軸變化的3D卷積神經網絡、或者逐幀提取特征并輸入循環神經網絡,三者在特定問題下都可以表現出良好的效果。

姿態估計(pose estimation)

姿態估計在圖像中將人的姿態用坐標的形式輸出,最早在姿態估計中使用的卷積神經網絡是DeepPose,DeepPose的結構類似于AlexNet,以完整的圖片作為輸出,按監督學習的方式訓練并輸出坐標點。此外也有關于局部姿態估計的卷積神經網絡應用研究。對于視頻數據,有研究使用滑動窗口的卷積神經網絡進行逐幀的姿態估計。

神經風格轉換(neural style transfer)

神經風格轉換是卷積神經網絡的一項特殊應用,其功能是在給定的兩份圖像的基礎上創作第三份圖像,并使其內容和風格與給定的圖像盡可能地接近。神經風格轉換在本質上利用了圖像特征在卷積神經網絡內的傳播規律,并定義內容(content loss)和風格(style loss)的誤差函數進行學習。神經風格轉換除進行藝術創作外,也被用于照片的后處理。

自然語言處理

總體而言,由于受到窗口或卷積核尺寸的限制,無法很好地學習自然語言數據的長距離依賴和結構化語法特征,卷積神經網絡在自然語言處理(Natural Language Processing, 失明)中的應用要少于循環神經網絡,且在很多問題中會在循環神經網絡的構架上進行設計,但也有一些卷積神經網絡算法在多個NLP主題中取得成功。

語音處理(speech Processing)領域,卷積神經網絡的表現被證實優于隱馬爾可夫模型(Hidden Markov Model, HMM)、高斯混合模型(Gaussian Mixture Model, GMM )和其它一些深度算法。有研究使用卷積神經網絡和HMM的混合模型進行語音處理,模型使用了小的卷積核并將替池化層用全連接層代替以提升其學習能力。卷積神經網絡也可用于語音合成(speech synthesis)和語言建模(language modeling),例如WaveNet使用卷積神經網絡構建的生成模型輸出語音的條件概率,并采樣合成語音。卷積神經網絡與長短記憶模型(Long Short Term Memory model, LSTM)相結合可以很好地對輸入句子進行補全。其它有關的工作包括genCNN、ByteNet等。

其它

物理學

卷積神經網絡在包含大數據問題的物理學研究中有重要應用。在高能物理學中,卷積神經網絡被用于粒子對撞機Σ粒子 colliders)輸出的噴流圖(jet image)的分析和深度學習,有關研究包括夸克(quark)/膠子(gluon)分類、W玻色子(W boson)識別和中微子相互作用(neutrino interaction)研究等。卷積神經網絡在天體物理學中也有應用,有研究使用卷積神經網絡對天文望遠鏡圖像進行星系形態學(galaxy morphology)分析和提取星系模型(galactic model)參數。利用遷移學習技術,預訓練的卷積神經網絡可以對LIGO(Laser Interferometer Gravitational-wave Observatory)數據中的噪聲(glitch)進行檢測,為數據的預處理提供幫助。

遙感科學

卷積神經網絡在遙感科學,尤其是衛星遙感中有廣泛應用。在解析遙感圖像的幾何、紋理和空間分布特征時,卷積神經網絡在計算效率和分類準確度方面均有明顯優勢。依據遙感圖像的來源和目的,卷積神經網絡被用于下墊面使用和類型改變(land use/land cover change)研究以及物理量,例如海冰覆蓋率(sea-ice concentration)的遙感反演。此外卷積神經網絡被廣泛用于遙感圖像的物體識別和圖像語義分割,后兩者是直接的計算機視覺問題,這里不再贅述。

大氣科學

在大氣科學中,卷積神經網絡被用于數值模式的統計降尺度(Statistical Downscaling, SD)和格點氣候數據的極端天氣檢測。在統計降尺度方面,由超分辨率卷積神經網絡( Super-分辨率 CNN, SRCNN)堆疊的多層級的降尺度系統可以將插值到高分辨率的原始氣象數據和高分辨率的數字高程模型(Degital 高程 Model, DEM)作為輸入,并輸出高分辨率的氣象數據,其準確率超過了傳統的空間分解誤差訂正(Bias Corrected Spatial Disaggregation, BCSD)方法。在極端天氣檢測方面,仿AlexNet結構的卷積神經網絡在監督學習和半監督學習中被證實能以很高的準確度識別氣候模式輸出和再分析數據(reanalysis 數據)中的熱帶氣旋(tropical cyclones)、大氣層河流(atmospheric rivers)和鋒面(weather fronts)現象。

包含卷積神經網絡的編程模塊

現代主流的機器學習庫和界面,包括TensorFlowKeras、Thenao、微軟CNTK等都可以運行卷積神經網絡算法。此外一些商用數值計算軟件,例如MATLAB也有卷積神經網絡的構建工具可用。

機械故障診斷

近年來,卷積神經網絡以及它的各種變體(深度殘差網絡、深度殘差收縮網絡等)均被成功應用于機械故障診斷領域。

參考資料 >

A TensorFlow implementation of DeepMind's WaveNet paper.Github Inc..2018-11-14

Coldewey, D. Google's WaveNet uses neural nets to generate eerily convincing speech and music.TechCrunch.2018-11-14

生活家百科家居網