萬字長文帶你看盡深度學習中的各種卷積網絡(上篇)

2021-01-07 手機鳳凰網

雷鋒網 AI 科技評論按:深度學習中的各種卷積網絡大家知多少?對於那些聽說過卻又對它們沒有特別清晰的認識的小夥伴們,Kunlun Bai 這篇文章非常值得一讀。Kunlun Bai 是一位人工智慧、機器學習、物體學以及工程學領域的研究型科學家,在本文中,他詳細地介紹了 2D、3D、1x1 、轉置 、空洞(擴張)、空間可分離、深度可分離、扁平化、 分組等十多種卷積網絡類型。雷鋒網 AI 科技評論編譯如下。

如果你曾聽過深度學習的各種卷積網絡(例如 2D/3D/ 1x1 / 轉置 /空洞(擴張)/ 空間可分離 / 深度可分離 /扁平化 / 分組 / 混洗分組卷積)並疑惑它們到底都是什麼的話,你可以通過這篇文章了解它們實際的工作原理。

在文中,我概括性地介紹了在深度學習中常見的幾種卷積,並採用了大家都能夠明白的方式來解釋它們。針對這一主題,這篇文章以外也有其他的一些文章可供大家參考,我將這些文章的連結附在了文末參考部分,大家可前往閱讀。

1. 卷積 VS 互關聯

2. 深度學習中的卷積網絡(單通道版,多通道版)

3.3D 卷積

4. 1x1 卷積

5. 卷積算法

6. 轉置卷積(反卷積,棋盤效應)

7. 空洞卷積(擴張卷積)

8. 可分離卷積(空間可分離 卷積,深度可分離卷積)

9. 扁平化卷積

10. 分組卷積

11. 混洗分組卷積

12. 逐點分組卷積

1. 卷積 VS 互關聯

卷積是一項廣泛應用於信號處理、圖像處理以及其他工程/科學領域的技術。在深度學習中,卷積神經網絡(CNN)這一模型架構就由這項技術命名的。然而,深度學習中的卷積本質上就是信號/圖像處理中的互關聯(cross-correlation)。二者間只有細微的差別。

不深入考慮細節的話,二者的區別在於:在信號/圖像處理中,卷積被定義為:

它的定義是:一個函數經過翻轉和移動後與另一個函數的乘積的積分。下面的圖像形象化地展示了這個思想:

信號處理中的卷積。過濾函數 g 經過翻轉然後沿著橫軸滑動。對於該函數在橫軸上滑過的每個點的位置,都計算出函數 f 與翻轉後的函數 g 的重合區域。這個重合的區域就是函數 g 在橫軸上滑過的某個特定位置的卷積值。圖像來源:http://fourier.eng.hmc.edu/e161/lectures/convolution/index.html

在這裡,函數 g 是一個過濾函數。這個函數經過翻轉然後沿著橫軸滑動。對於該函數在橫軸上滑過的每個點的位置,都計算出函數 f 與翻轉後的函數 g 的重合區域。這個重合的區域就是函數 g 在橫軸上滑過的某個特定位置的卷積值。

而另一方面,互關聯是這兩個函數的滑動的點積(dot product)或滑動的內積(inner-product)。互關聯的過濾函數不經過翻轉,它直接滑動通過函數 f。函數 f 和函數 g 的重合區域就是互關聯。下圖展示了卷積和互關聯的區別:

在信號處理中,卷積和互關聯的區別。圖像來源:https://en.wikipedia.org/wiki/Convolution

在深度學習中,卷積中的過濾函數是不經過翻轉的。嚴格來說,它就是互關聯。我們本質上就是在執行 element-wise 乘法和加法。但是,這個「卷積」僅在深度學習中被稱為卷積,可以這樣做的原因是因為卷積在訓練期間就學到了過濾函數的權重,如果上面示例中的經翻轉的函數 g 是正確的函數,那麼經過訓練後,卷積所學到的過濾函數就會找到翻轉後的函數 g。因此,在正確的卷積中,就不需要在訓練前早早地翻轉過濾函數。

2. 深度學習中的卷積

執行卷積的目的就是從輸入中提取有用的特徵。在圖像處理中,執行卷積操作有諸多不同的過濾函數可供選擇,每一種都有助於從輸入圖像中提取不同的方面或特徵,如水平/垂直/對角邊等。類似地,卷積神經網絡通過卷積在訓練期間使用自動學習權重的函數來提取特徵。所有這些提取出來的特徵,之後會被「組合」在一起做出決策。

進行卷積操作有許多優勢,例如權重共享(weights sharing)和平移不變性(translation invariant)。此外,卷積也可以考慮到像素的空間關係。這些優勢都非常有幫助,尤其是在許多的計算機視覺任務中,因為這些任務往往涉及到對某些組成部分與其他組成部分有某些空間關係的目標進行識別(例如一隻狗的身體通常是跟它的腦袋、四條腿以及尾巴相連的)。

2.1 卷積:單通道版

面向單通道的卷積,圖像源自:https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning-1f6f42faee1

在深度學習中,卷積就是元素級別( element-wise) 的乘法和加法。對於一張僅有 1 個通道的圖像,卷積過程如上圖所示,過濾函數是一個組成部分為 [[0, 1, 2], [2, 2, 0], [0, 1, 2]] 的 3 x 3 矩陣,它滑動穿過整個輸入。在每一個位置,它都執行了元素級別的乘法和加法,而每個滑過的位置都得出一個數字,最終的輸出就是一個 3 x 3 矩陣。(注意:在這個示例中,卷積步長=1;填充=0。我會在下面的算法部分介紹這些概念。)

2.2 卷積:多通道版

在許多應用中,我們處理的是多通道的圖像。一個典型的案例就是 RGB 圖像,如下圖所示,每一個 RGB 通道都分別著重於原始圖像的不同方面。

每一個 RGB 通道都分別著重於原始圖像的不同方面,圖片拍攝於:中國雲南元陽

另一個多通道數據的案例就是卷積神經網絡中的層。一個卷積網絡層往往都由多個通道(一般為數百個通道)組成,每一個通道描述出前一個層的不同方面。那我們如何實現不同深度的層之間的過渡呢?又如何將深度為 n 的層轉化為後面的深度為 m 的層呢?

在介紹這個過程之前,我們先搞清楚幾個名詞:層(layer)、通道(channel)、特徵映射(feature map)、過濾器(filter)以及卷積核(kernel)。從層級角度來說,「層」和「過濾器」的概念屬於一個層級,而「通道」和「卷積核」都在下一個層級。「通道」和「特徵映射」是指同一個東西。一層可以有多個通道(或特徵映射);如果輸入的是 RGB 圖像,那這個輸入層有 3 個通道。「通道」一般用來形容「層」的架構。類似地,「卷積核」則用來形容「過濾器」的架構。

「層」(「過濾器」)和「通道」(「卷積核」)之間的區別

過濾器和卷積核之間的區別非常微妙,有時候,二者可以交替使用,這無疑就製造了些困惑。但根本上來講,二者還是有些細微區別的:「卷積核」指的是指權重組成的 2D 數組 ;「過濾器」則是由多個卷積核堆疊在一起的 3D 架構概念。對於一個 2D 過濾器來說,過濾器就相當於卷積核,但是對於一個 3D 過濾器以及深度學習中的大多數卷積而言,一個過濾器由一組卷積核組成。每個卷積核都是獨一無二的,強調了輸入通道的不同方面。

帶著對這些概念的了解,下面讓我們一起來看看多通道卷積。生成一個輸出通道,就需要將每一個卷積核應用到前一層的輸出通道上,這是一個卷積核級別的操作過程。我們對所有的卷積核都重複這個過程以生成多通道,之後,這些通道組合在一起共同形成一個單輸出通道。下圖可以讓大家更清晰地看到這個過程。

這裡假設輸入層是一個 5 x 5 x 3 矩陣,它有 3 個通道。過濾器則是一個 3 x 3 x 3 矩陣。首先,過濾器中的每個卷積核都應用到輸入層的 3 個通道,執行 3 次卷積後得到了尺寸為 3 x 3 的 3 個通道。

面向多通道的 2D 卷積的第一步:過濾器每個卷積核分別應用到輸入層的 3 個通道上。圖片源自:https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning-1f6f42faee1

之後,這 3 個通道都合併到一起(元素級別的加法)組成了一個大小為 3 x 3 x 1 的單通道。這個通道是輸入層(5 x 5 x 3 矩陣)使用了過濾器(3 x 3 x 3 矩陣)後得到的結果。

面向多通道的 2D 卷積的第二步:3 個通道都合併到一起(元素級別的加法)組成了一個大小為 3 x 3 x 1 的單通道。圖片源自:https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning-1f6f42faee1

同樣地,我們可以將這個過程視作將一個 3D 過濾器矩陣滑動通過輸入層。注意,這個輸入層和過濾器的深度都是相同的(即通道數=卷積核數)。這個 3D 過濾器僅沿著 2 個方向(圖像的高&寬)移動(這也是為什麼 3D 過濾器即使通常用於處理 3D 體積數據,但這樣的操作還是被稱為 2D 卷積)。在每一個滑過的位置,我們都執行元素級別的乘法和加法,最終得出一個數值。下面這個例子中,過濾器橫向滑過 5 個位置、縱向滑過 5 個位置。全部完成後,我們得到了一個單輸出通道。

看待 2D 卷積的另一個角度:將這個過程視作將一個 3D 過濾器矩陣滑動通過輸入層。注意,這個輸入層和過濾器的深度都是相同的(即通道數=卷積核數)。這個 3D 過濾器僅沿著 2 個方向(圖像的高&寬)移動(這也是為什麼 3D 過濾器即使通常用於處理 3D 體積數據,但這樣的操作還是被稱為 2D 卷積)。輸出是一個 1 層的矩陣。

現在我們可以看到如何在不同深度的層之間實現過渡。假設輸入層有 Din 個通道,而想讓輸出層的通道數量變成 Dout ,我們需要做的僅僅是將 Dout 個過濾器應用到輸入層中。每一個過濾器都有 Din 個卷積核,都提供一個輸出通道。在應用 Dout 個過濾器後,Dout 個通道可以共同組成一個輸出層。

標準 2D 卷積。通過使用 Dout 個過濾器,將深度為 Din 的層映射為另一個深度為 Dout 的層。

3.3D 卷積

在上部分的最後一張圖中,我們看到了將卷積在 3D 體積上的執行情況。但是一般而言,我們依舊將這一操作視為深度學習中的 2D 卷積——3D 體積數據上的 2D 卷積:其過濾器和輸入層的深度是一樣的;3D 過濾器僅沿著 2 個方向(圖像的高&寬)移動。這樣操作得出的結果就是一個 2D 圖像(僅有 1 個通道)。

有 2D 卷積,自然就有 3D 卷積。3D 卷積是 2D 卷積的一般化。在 3D 卷積中,過濾器的深度要比輸入層的深度更小(卷積核大小<通道大小),結果是,3D 過濾器可以沿著所有 3 個方向移動(高、寬以及圖像的通道)。每個位置經過元素級別的乘法和算法都得出一個數值。由於過濾器滑動通過 3D 空間,輸出的數值同樣也以 3D 空間的形式呈現,最終輸出一個 3D 數據。

在 3D 卷積中,過濾器的深度要比輸入層的深度更小(卷積核大小<通道大小),結果是,3D 過濾器可以沿著所有 3 個方向移動(高、寬以及圖像的通道)。每個位置經過元素級別的乘法和算法都得出一個數值。由於過濾器滑動通過 3D 空間,輸出的數值同樣也以 3D 空間的形式呈現,最終輸出一個 3D 數據。

和對 2D 區域中目標的空間關係進行解碼的 2D 卷積相似,3D 卷積也可以描述 3D 空間中目標的空間關係。對於一些應用來說,這種 3D 關係很重要,例如在 CT 和 MRI 等生物醫學圖像的 3D 分割/重建中,這些圖像的目標如血管都是蜿蜒分布在 3D 空間中的。

4. 1x1 卷積

由於我們在前一個部分——3D 卷積中探討了深度級別的操作,接下來讓我們了解另一個有趣的操作,1 x 1 卷積。

你或許想知道為什麼這個卷積是有幫助作用的。我們剛剛是否讓輸入層中的每個數值都乘以了一個數值?是,也不是。對於僅有 1 個通道的層來說,這項操作不重要。在上面的示例中,我們讓每一個組成部分都乘以了一個數值。

如果輸入層有多個通道,那事情就變得非常有趣了。下圖闡述了 1 x 1 卷積在一個維度為 H x W x D 的輸入層上的操作方式。經過大小為 1 x 1 x D 的過濾器的 1 x 1 卷積,輸出通道的維度為 H x W x 1。如果我們執行 N 次這樣的 1 x 1 卷積,然後將這些結果結合起來,我們能得到一個維度為 H x W x N 的輸出層。

過濾器大小為 1 x 1 x D 的 1 x 1 卷積

1 x 1 卷積最初是在 Network-in-network 的論文(論文閱讀地址:https://arxiv.org/abs/1312.4400)中被提出的,之後在谷歌的 Inception 論文(論文閱讀地址:https://arxiv.org/abs/1409.4842)中被大量使用。1 x 1 卷積具有如下幾個優勢:

減少維度以實現更有效率的計算;

進行更有效率的低維度嵌入,或者對特徵進行池化;

卷積以後反覆應用非線性特徵。

前兩個優勢我們可以從上面的圖像中觀察到。執行 1 x 1 卷積後,我們明顯減少了維度的深度級別。假設原始輸入有 200 個通道,1 x 1 卷積會將這些通道(特徵)嵌入到一個單通道中。第三個優勢在 1 x 1 卷積執行後才顯現出來,它會將線性整流函數(ReLU)等非線性激活函數添加進模型中。非線性特徵讓網絡學習更複雜的函數。

谷歌的 Inception 論文中也對這些優勢進行了描述:

「上面這個模塊(至少在這個樸素的形式中)的一個大問題是,即便是數量適度的 5 x 5 卷積,在有大量過濾器的卷積層之上的計算也會過於昂貴。

這就給提出的框架帶來了第二個思路:明智地減少維度並進行投影,不然就會過度增加對於計算的要求。這是基於成功實現嵌入上的:即便是低維度的嵌入也可以容納大量關於相對較大的圖像塊的信息... 也就是說,在執行計算昂貴的 3 x 3 卷積和 5 x 5 卷積前,往往會使用 1 x 1 卷積來減少計算量。此外,它們也可以利用調整後的線性激活函數來實現雙重用途。」

針對 1 x 1 卷積,Yann LeCun 提出了一個非常有趣的角度:「在卷積網絡中,不存在像「全連接層」這樣的東西,而只有含有一些 1x1 卷積核和 1 個全連接表的卷積層」

5. 卷積算法

我們現在知道了如何處理卷積的深度。接下來討論一下怎樣處理在其他兩個方向(高&寬)中的卷積,以及重要的卷積算法(onvolution arithmetic)。

這裡有一些需要了解的名詞:

卷積核大小(Kernel size):卷積核在前一部分已經討論過了。卷積核大小確定卷積的視野。

卷積步長(Stride):它確定的是卷積核滑動通過圖像的步長。步長為 1 表示卷積核一個像素一個像素地滑動通過圖像;步長為 2 則表示卷積核在圖像上每滑動一次就移動了 2 個像素(即跳過 1 個像素)。對於下面這個案例中的圖像,我們採用大於或等於 2 的步長。

填充(Padding):填充定義如何處理圖像的邊界。如果有必要的話,可以通過將輸入邊界周圍的填充設置為 0,這樣的話,經過填充後的卷積(Tensorflow 中的「相同」填充)就可以保持空間輸出維度與輸入圖像的維度一樣。另一方面,如果不在輸入邊界周圍添加 0 填充,未填充的卷積(Tensorflow 中的「有效」填充)僅對輸入圖像的像素執行卷積,輸出大小也會小於輸入大小。

下圖表示使用卷積核大小為 3、步長為 1;填充為 1 的 2D 卷積:

這裡有一篇不錯的文章(A guide to convolution arithmetic for deep learning,https://arxiv.org/abs/1603.07285)詳細地描述了算法,大家可前往閱讀。這篇文章對其進行了詳細介紹,並針對不同的卷積核大小、卷積步長以及填充分別進行了案例分析。這裡我僅僅概括出了最常用的結果:

對於一個大小為 i、卷積核大小為 k、填充為 p 以及卷積步長為 s 的輸入圖像,經過卷積的輸出圖像的大小為 o:

6. 轉置卷積(反卷積)

對於許多應用以及在許多網絡架構中,我們通常需要朝與標準卷積相反的方向做轉換,例如,當我們想要執行上採樣(up-sampling)時。這些案例其中就包括生成高解析度圖像以及在自動編碼器或語義分割中將低維度特徵映射映射到高維度空間中。(在隨後的案例中,語義分割首先在編碼器中提取特徵映射,然後在解碼器中還原原始圖像的大小從而能夠在原始圖像中對每一個像素進行分類。)

傳統上,研究者可以通過應用插值(interpolation)方案或者手動創建規則來實現上採樣。神經網絡等現代架構則反過來趨向於讓網絡自己自動學習合適的轉換,而不需要人類的幹預。我們可以使用轉置卷積來實現這一點。

在書面表達上,轉置卷積也稱作反卷積(deconvolution),或小數步長的卷積(fractionally strided convolution)。不過值得一提的是,將其稱作「反卷積」並不是那麼合適,因為轉置卷積並不完全是信號/圖像處理中所定義的反卷積。從技術上來說,信號處理中的反卷積是卷積的逆向操作,跟這裡所說的轉置卷積不一樣。正因為此,一些論文作者強烈反對將轉置卷積稱作反卷積,而大眾要這樣稱呼主要是為了簡單起見。隨後,我們會探討為什麼將這種操作稱作轉置卷積才是自然且更合適的。

我們可以直接使用卷積來實現轉置卷積。例如在下圖的案例中,我們 2 x 2 的輸入上做轉置卷積:其卷積核為 3 x 3,卷積步長為 1,填充為 2 x 2 的空格。上採樣的輸出大小為 4 x 4。

將 2 x 2 輸入上採樣為 4 x 4 輸出,圖片源自: https://github.com/vdumoulin/conv_arithmetic

非常有趣的是,研究者可以通過應用花式填充和步長,將相同的 2 x 2 輸入圖像映射出不同的圖像大小。下圖中,在同一個卷積核為 3 x 3,卷積步長為 1,填充為 2 x 2 空格的 2 x 2 的輸入(輸入之間插入了一個空格)上做轉置卷積,得出的輸出大小為 5 x 5。

將 2 x 2 輸入上採樣為 5 x 5 輸出,圖片源自:https://github.com/vdumoulin/conv_arithmetic

通過觀察上述案例中的轉置卷積,我們可以初步建立一些認知。但是要想較好地掌握它的應用,在電腦上看看它怎樣通過矩陣乘法來實現會比較有用。從中,我們還可以了解到為什麼「轉置卷積」這個名字更合適。

在卷積中,我們設定卷積核為 C,輸入圖像為 Large,卷積輸出的圖像為 Small。在做卷積(矩陣乘法)後,我們將大圖像下採樣(down-sample)為小的輸出圖像。矩陣乘法中的卷積實現遵循 C x Large = Small。

下面案例顯示了這項操作如何實現。它將輸入也壓平為 16 x 1 矩陣,之後將卷積核轉換為一個稀疏矩陣 (4 x 16),接著在稀疏矩陣和壓平的輸入間執行矩陣乘法運算,最終得出的矩陣(4 x 1)轉換回 2 x 2 的輸出。

卷積的矩陣乘法:從大小 4 x 4 為 Large 輸入圖像到大小為 2 x 2 的 Small 輸出圖像

現在,如下圖所示,如果我們對等式兩邊的矩陣 CT 進行多次轉置,並利用一個矩陣和其轉置矩陣相乘得出一個單元矩陣的屬性,我們可以得出下面的運算公式:CT x Small = Large。

卷積的矩陣乘法:從大小 2x 2 為 Large 輸入圖像到大小為 4 x 4 的 Small 輸出圖像

正如你在這裡看到的,轉置卷積執行的是從小圖像到大圖像的上採樣。這也是我們所要實現的。而現在,你也可以了解到「轉置卷積」這個名字的由來。

轉置卷積的通用算法可以在《深度學習的卷積算法指南》「A guide to convolution arithmetic for deep learning」這篇文章的「Relationship 13」和「Relationship 14」章節中找到。

6.1 棋盤效應(Checkerboard artifacts)

所謂的「棋盤效應」是研究人員在使用轉置卷積時可以觀察到的一種令人不快的現象(奇怪的棋盤格狀偽影)。

「棋盤效應」的一些案例。圖片源自論文「Deconvolution and Checkerboard Artifacts」,https://distill.pub/2016/deconv-checkerboard/

《反卷積和棋盤效應》(Deconvolution and Checkerboard Artifacts,https://distill.pub/2016/deconv-checkerboard)對於這一現象有一個非常好的闡述。大家可以前往閱讀這篇文章了解詳細內容。這裡我僅僅概括出關鍵點。

造成棋盤效應的原因是轉置卷積的「不均勻重疊」(uneven overlap)。這種重疊會造成圖像中某個部位的顏色比其他部位更深。

在下圖中,頂部這層是輸入層,底部這層則是操作轉置卷積後的輸出層。在轉置卷積過程中,小的這層映射到大的那層。

在案例(a)中,其卷積步長為 1,過濾器大小為 2。正紅線所標出的,輸入圖像上的第一個像素映射為輸出圖像上的第一個和第二個像素。綠線標出的則是輸入圖像上的第二個像素映射為輸出圖像上的第二個和第三個像素。這樣的話,輸出圖像上的第二個像素就收到了輸入圖像上的第一個和第二個像素的雙重信息,而整個卷積過程中,輸出圖像中間部分的像素都從輸入圖像中接收到了同樣多的信息,這樣就導致了卷積核重疊的區域。而在案例(b)中,當過濾器的大小增加到 3 時,這個接收到最多信息的中間部分縮小了。但是這樣的話問題不大,因為重疊部分依舊是均勻的。在輸出圖像中間部分的像素從輸入圖像中接收到同樣多的信息。

圖片源自並修改於論文「Deconvolution and Checkerboard Artifacts」,https://distill.pub/2016/deconv-checkerboard/

現在針對下面的案例,我們將卷積步長改為 2。在案例(a)中,過濾器的大小為 2,輸出圖像上的所有像素從輸入圖像中接收到同樣多的信息,它們都從輸入圖像中接收到一個像素的信息,這裡就不存在轉置卷帶來的重疊區域。

圖片源自並修改於論文「Deconvolution and Checkerboard Artifacts」,https://distill.pub/2016/deconv-checkerboard/

而在案例(b)中,當我們將過濾器大小增至 4 時,均勻的重疊區域縮小了,但是研究者依舊可以將輸出圖像的中間部分用作有效的輸出,其中每個像素從輸入圖像中接收到的信息是同樣多的。

然而,在案例(c)和(d)中,當過濾器大小變成 3 或 5 時,情況就變得非常有趣了。在這兩個案例中,輸出圖像上的每個像素與其毗鄰的像素所接收到的信息量都不相同。研究者在輸出圖像上無法找到一個連續並均勻的重疊區域。

當過濾器大小無法被卷積步長整除時,轉置卷積就會出現「不均勻重疊」。這種「不均勻重疊」會造成圖像中某個部位的顏色比其他部位更深,因而會帶來「棋盤效應」。實際上,不均勻重疊區域會在二維上更加極端。因為二維上的兩個模式會相乘,因而最終的不均勻性是原來的平方。

在應用轉置卷積時,可以做兩件事情來減輕這種效應。第一,確認使用的過濾器的大小是能夠被卷積步長整除的,從而來避免重疊問題。第二,可以採用卷積步長為 1 的轉置卷積,來減輕「棋盤效應」。然而,正如在最近許多模型中所看到的,這種效益依舊可能會顯露出來。

這篇論文進一步提出了一個更好的上採樣方法:首先調整圖像大小(使用最近鄰域內插法(Nearest Neighbor interpolation)和雙向性內插法(bilinear interpolation)),然後製作一個卷積層。通過這樣做,論文作者成功避免了這一「棋盤效應」。大家或許也想要在自己的應用中嘗試一下這個方法吧。

(上篇)

via:https://towardsdatascience.com/a-comprehensive-introduction-to-different-types-of-convolutions-in-deep-learning-669281e58215雷鋒網

相關焦點

  • 萬字長文帶你看盡深度學習中的各種卷積網絡
    來源:AI科技評論摘要:深度學習中的各種卷積網絡大家知多少?深度學習中的各種卷積網絡大家知多少?
  • 萬字長文帶你看盡深度學習中的各種卷積網絡(下篇)
    8.2 深度可分離卷積 現在,讓我們移步到深度可分離卷積,它在深度學習中的應用要更普遍得多(例如在 MobileNet 和 Xception 中)。深度可分離卷積由兩步組成:深度卷積以及 1x1 卷積。 在介紹這些步驟前,值得回顧一下前面部分所提到的 2D 卷積核 1x1 卷積。讓我們先快速過一下標準的 2D 卷積。
  • 一文讀懂深度學習中的各種卷積
    ,但你知道深度學習領域的卷積究竟是什麼,又有多少種類嗎?研究學者 Kunlun Bai 發布了一篇介紹深度學習的卷積文章,用淺顯易懂的方式介紹了深度學習領域的各種卷積及其優勢。如果你聽說過深度學習中不同種類的卷積(比如 2D / 3D / 1x1 /轉置/擴張(Atrous)/空間可分/深度可分/平展/分組/混洗分組卷積),並且搞不清楚它們究竟是什麼意思,那麼這篇文章就是為你寫的,能幫你理解它們實際的工作方式。
  • 卷積有多少種?一文讀懂深度學習中的各種卷積
    ,但你知道深度學習領域的卷積究竟是什麼,又有多少種類嗎?研究學者 Kunlun Bai 近日發布一篇介紹深度學習的卷積文章,用淺顯易懂的方式介紹了深度學習領域的各種卷積及其優勢。鑑於原文過長,機器之心選擇其中部分內容進行介紹,2、4、5、9、11、12 節請參閱原文。
  • 一文帶你了解卷積網絡中的幾何學
    在Cohen等人的論文《規範等變卷積網絡和二十面體CNN》中,這種現象尤其明顯。這篇論文也正是本文要探討的對象。論文中使用了規範場理論的用辭,那些喜歡把「量子」和「場」兩個詞合起來使用的所有的物理學當中,規範場理論居於中心地位。論文承諾對規範場理論的基礎知識提供一個直觀的解讀,其實,我也不得不承認,它做到了,而且它也許是目前我看到的最棒的入門介紹。
  • 深度| 理解深度學習中的卷積
    有太多的公開課、教程在反覆傳頌卷積神經網絡的好,卻都沒有講什麼是「卷積」,似乎默認所有讀者都有相關基礎。這篇外文既友好又深入,所以翻譯了過來。文章高級部分通過流體力學量子力學等解釋卷積的做法在我看來有點激進,這些領域恐怕比卷積更深奧,所以只需簡略看看即可。以下是正文:卷積現在可能是深度學習中最重要的概念。正是靠著卷積和卷積神經網絡,深度學習才超越了幾乎其他所有的機器學習手段。
  • 卷積為什麼如此強大?理解深度學習中的卷積
    卷積現在可能是深度學習中最重要的概念。正是靠著卷積和卷積神經網絡,深度學習才超越了幾乎其他所有的機器學習手段。但卷積為什麼如此強大?它的原理是什麼?在這篇文章將講解卷積及相關概念,幫助你徹底地理解它。1.1 什麼是卷積?整篇文章都會探討這個問題,但先把握行文脈絡會很有幫助。那麼粗略來講,什麼是卷積呢?你可以把卷積想像成一種混合信息的手段。
  • 詳述Deep Learning中的各種卷積(四)
    本文梳理舉例總結深度學習中所遇到的各種卷積,幫助大家更為深刻理解和構建卷積神經網絡
  • 深度學習元老Yann Lecun詳解卷積神經網絡
    早在20世紀80年代末,Yann LeCun就作為貝爾實驗室的研究員提出了卷積網絡技術,並展示如何使用它來大幅度提高手寫識別能力。上世紀末本世紀初,當神經網絡失寵時Yann LeCun是少數幾名一直堅持的科學家之一。他於2003年成為紐約大學教授,並從此引領了深度學習的發展,目前任職於Facebook FAIR實驗室。
  • Women Who Code帶你探秘深度卷積神經網絡(DCNN)
    WWC將帶領你走進Deep Learning的世界,揭開深度卷積神經網絡(DCNN)的神秘面紗。    深度機器學習作為AI領域的一個重要分支,已經成為了AI的代名詞。DCNN是深度學習的關鍵技術,它通過模擬人腦進行分析學習,算法訓練時不用人工幹預。這十年中,網際網路巨頭和全球各個科研機構都投入了巨大的人力物力用於理論和工業級探索,AlphaGo圍棋之戰更是引燃了全球的熱情。
  • 典型的深度學習算法(一):卷積神經網絡(CNN)
    通過上一篇文章,相信大家對深度學習的概念、原理已經有了大致了解,近期企通查將會對深度學習中的幾種典型算法進行介紹。在深度學習領域中,已經驗證的典型成熟算法有卷積神經網絡(CNN)、循環神經網絡(RNN)、生成對抗網絡(GAN)、深度強化學習(DRL)等,下面企通查將帶領大家對典型的深度學習算法之一——卷積神經網絡(CNN)一探究竟。
  • 深度學習基礎:一步一步講解卷積神經網絡
    導語卷積神經網絡(Convolutional Neural Networks, CNN)是一類包含卷積計算且具有深度結構的前饋神經網絡(Feedforward Neural Networks),是深度學習(deep learning)的代表算法之一。本文來源於吳恩達老師的深度學習課程[1]筆記部分。
  • 深度學習之卷積神經網絡經典模型
    如今在計算機視覺領域,卷積神經網絡的良好效果深得廣大開發者的喜歡,並且上文提到的AlexNet模型擁有更好的效果,所以廣大從業者學習者試圖將其改進以獲得更好地效果。而後來很多人經過驗證認為,AlexNet模型中所謂的局部歸一化響應浪費了計算資源,但是對性能卻沒有很大的提升。VGG的實質是AlexNet結構的增強版,它側重強調卷積神經網絡設計中的深度。
  • 一圖看盡深度學習架構譜系
    機器之心整理參與:蔣思源、李澤南、李亞洲近幾年,深度學習高速發展,出現了大量的新模型與架構,以至於我們無法理清網絡類型之間的關係。在這篇文章中,香港科技大學(HKUST)助理教授金成勳總結了深度網絡類型之間的譜系圖,以便於我們索引不同類型網絡的傑出研究成果。
  • 一文看盡神經網絡中不同種類的卷積層
    同時研究人員也提出了各種新的卷積或者卷積組合來進行改進,其中有的改進是針對速度、有的是為了加深模型、有的是為了對速度和準確率的trade-off。本文將簡單梳理一下卷積神經網絡中用到的各種卷積核以及改進版本,著重講其思路以及作用。目錄1.
  • 【深度好文】如何用深度學習識別網絡欺詐?
    ,深度學習!CNN是深度學習的研究熱點卷積類神經網絡(簡稱CNN)是人工神經網絡的一種,在語音分析和圖像分析中是熱點研究。它的權值共享網絡結構使之更類似於生物神經網絡,降低了網絡模型的複雜度,使圖像可以直接作為網絡的輸入,避免了傳統識別算法中複雜的特徵提取和數據重建過程。
  • 譯文 | 讓深度卷積網絡對抗:DCGAN——深度卷積生成對抗網絡
    它只是把經典GAN中的G和D換成了兩個卷積神經網絡(CNN)。但是,並不是直接替換就可以了, DCGAN 對卷積神經網絡的結構做了一些改變,以提高樣本的質量和收斂的速度。具體有哪些改變,將在本文中看到。摘要    近年來,深度卷積神經網絡(CNN)的監督學習在計算機視覺應用上發揮巨大的作用,然而CNN的非監督學習只受到較少的關注。
  • 形象理解深度學習中八大類型卷積
    本文總結了深度學習中常用的八大類型的卷積,以非常形象的方式幫助你建立直覺理解,為你的深度學習提供有益的參考。分別是單通道卷積、多通道卷積、3D卷積、1 x 1卷積、轉置卷積、擴張卷積、可分離卷積、分組卷積。
  • 從全卷積網絡到大型卷積核:深度學習的語義分割全指南
    By路雪 2017年7月14日  語義分割一直是計算機視覺中十分重要的領域,隨著深度學習的流行,語義分割任務也得到了大量的進步。本文首先闡釋何為語義分割,然後再從論文出發概述多種解決方案。本文由淺層模型到深度模型,簡要介紹了語義分割各種技術,雖然本文並沒有深入講解語義分割的具體實現,但本文簡要地概述了每一篇重要論文的精要和亮點,希望能給讀者一些指南。  什麼是語義分割?  語義分割指像素級地識別圖像,即標註出圖像中每個像素所屬的對象類別。
  • 深度學習最強資源推薦:一文看盡 GAN 的前世今生
    因此,我將回顧幾年來 GAN 研究中最酷結果背後的關鍵思想。我不打算詳細解釋轉置卷積和 Wasserstein 距離等概念。相反,我將提供一些最好的資源的連結,你可以使用這些資源快速了解這些概念,這樣你就會了解它們是如何融入大局的。如果你還在閱讀,我假設你知道深度學習的基礎知識,你知道卷積神經網絡是如何工作的。