0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

卷積神經(jīng)網(wǎng)絡結構組成與解釋

穎脈Imgtec ? 2023-06-28 10:05 ? 次閱讀

來源:機器學習算法那些事


卷積神經(jīng)網(wǎng)絡是以卷積層為主的深度網(wǎng)路結構,網(wǎng)絡結構包括有卷積層、激活層、BN層、池化層、FC層、損失層等。卷積操作是對圖像和濾波矩陣做內積(元素相乘再求和)的操作。


1. 卷積層

常見的卷積操作如下:

卷積操作解釋圖解
標準卷積一般采用3x3、5x5、7x7的卷積核進行卷積操作。???????515a9746-1558-11ee-a579-dac502259ad0.gif
分組卷積將輸入特征圖按通道均分為 x 組,然后對每一組進行常規(guī)卷積,最后再進行合并。517a183c-1558-11ee-a579-dac502259ad0.png
空洞卷積為擴大感受野,在卷積核里面的元素之間插入空格來“膨脹”內核,形成“空洞卷積”(或稱膨脹卷積),并用膨脹率參數(shù)L表示要擴大內核的范圍,即在內核元素之間插入L-1個空格。當L=1時,則內核元素之間沒有插入空格,變?yōu)闃藴示矸e。

518d08fc-1558-11ee-a579-dac502259ad0.png


深度可分離卷積深度可分離卷積包括為逐通道卷積和逐點卷積兩個過程。????

519da568-1558-11ee-a579-dac502259ad0.png

(通道卷積,2D標準卷積)

51b73eec-1558-11ee-a579-dac502259ad0.png

(逐點卷積,1x1卷積)

反卷積屬于上采樣過程,“反卷積”是將卷積核轉換為稀疏矩陣后進行轉置計算。

51c8bb36-1558-11ee-a579-dac502259ad0.png


可變形卷積指標準卷積操作中采樣位置增加了一個偏移量offset,如此卷積核在訓練過程中能擴展到很大的范圍。

51d8fbd6-1558-11ee-a579-dac502259ad0.png

補充:

1 x 1卷積即用1 x 1的卷積核進行卷積操作,其作用在于升維與降維。升維操作常用于chennel為1(即是通道數(shù)為1)的情況下,降維操作常用于chennel為n(即是通道數(shù)為n)的情況下。??????????????

降維:通道數(shù)不變,數(shù)值改變。

51e4bb7e-1558-11ee-a579-dac502259ad0.png升維:通道數(shù)改變?yōu)閗ernel的數(shù)量(即為filters),運算本質可以看為全連接。51f4a2dc-1558-11ee-a579-dac502259ad0.png卷積計算在深度神經(jīng)網(wǎng)絡中的量是極大的,壓縮卷積計算量的主要方法如下:

序號方法
1采用多個3x3卷積核代替大卷積核(如用兩個3 x 3的卷積核代替5 x 5的卷積核)
2采用深度可分離卷積(分組卷積)
3通道Shuffle
4Pooling層
5Stride = 2
6等等

2. 激活層

介紹:為了提升網(wǎng)絡的非線性能力,以提高網(wǎng)絡的表達能力。每個卷積層后都會跟一個激活層。激活函數(shù)主要分為飽和激活函數(shù)(sigmoid、tanh)與非飽和激活函數(shù)(ReLU、Leakly ReLU、ELU、PReLU、RReLU)。非飽和激活函數(shù)能夠解決梯度消失的問題,能夠加快收斂速度。??????????????常用函數(shù):ReLU函數(shù)、Leakly ReLU函數(shù)、ELU函數(shù)等52068830-1558-11ee-a579-dac502259ad0.pngReLU函數(shù)5217f1d8-1558-11ee-a579-dac502259ad0.pngLeakly ReLU函數(shù)

52284826-1558-11ee-a579-dac502259ad0.png

ELU函數(shù)


3. BN層(BatchNorm)介紹:通過一定的規(guī)范化手段,把每層神經(jīng)網(wǎng)絡任意神經(jīng)元的輸入值的分布強行拉回到均值為0,方差為1的標準正態(tài)分布。BatchNorm是歸一化的一種手段,會減小圖像之間的絕對差異,突出相對差異,加快訓練速度。但不適用于image-to-image以及對噪聲明感的任務中。常用函數(shù):BatchNorm2dpytorch用法:nn.BatchNorm2d(num_features, eps, momentum, affine)num_features:一般輸入?yún)?shù)為batch_sizenum_featuresheight*width,即為其中特征的數(shù)量。eps:分母中添加的一個值,目的是為了計算的穩(wěn)定性,默認為:1e-5。momentum:一個用于運行過程中均值和方差的一個估計參數(shù)(我的理解是一個穩(wěn)定系數(shù),類似于SGD中的momentum的系數(shù))。

affine:當設為true時,會給定可以學習的系數(shù)矩陣gamma和beta。


4. 池化層(pooling)介紹:pooling一方面使特征圖變小,簡化網(wǎng)絡計算復雜度。一方面通過多次池化壓縮特征,提取主要特征。屬于下采樣過程。常用函數(shù):Max Pooling(最大池化)、Average Pooling(平均池化)等。MaxPooling 與 AvgPooling用法:1. 當需綜合特征圖上的所有信息做相應決策時,通常使用AvgPooling,例如在圖像分割領域中用Global AvgPooling來獲取全局上下文信息;在圖像分類中在最后幾層中會使用AvgPooling。2. 在圖像分割/目標檢測/圖像分類前面幾層,由于圖像包含較多的噪聲和目標處理無關的信息,因此在前幾層會使用MaxPooling去除無效信息。5241e51a-1558-11ee-a579-dac502259ad0.png

補充:上采樣層重置圖像大小為上采樣過程,如Resize,雙線性插值直接縮放,類似于圖像縮放,概念可見最鄰近插值算法和雙線性插值算法。實現(xiàn)函數(shù)有nn.functional.interpolate(input, size = None, scale_factor = None, mode = 'nearest', align_corners = None)和nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride = 1, padding = 0, output_padding = 0, bias = True)


5. FC層(全連接層)介紹:連接所有的特征,將輸出值送給分類器。主要是對前層的特征進行一個加權和(卷積層是將數(shù)據(jù)輸入映射到隱層特征空間),將特征空間通過線性變換映射到樣本標記空間(label)。全連接層可以通過1 x 1卷機+global average pooling代替??梢酝ㄟ^全連接層參數(shù)冗余,全連接層參數(shù)和尺寸相關。常用函數(shù):nn.Linear(in_features, out_features, bias)5256e6c2-1558-11ee-a579-dac502259ad0.jpg補充:分類器包括線性分類器與非線性分類器。

分類器介紹??常見種類優(yōu)缺點
線性分類器線性分類器就是用一個“超平面”將正、負樣本隔離開
LR、Softmax、貝葉斯分類、單層感知機、線性回歸、SVM(線性核)等
線性分類器速度快、編程方便且便于理解,但是擬合能力低
非線性分類器非線性分類器就是用一個“超曲面”或者多個超平(曲)面的組合將正、負樣本隔離開(即,不屬于線性的分類器)
決策樹、RF、GBDT、多層感知機、SVM(高斯核)等
非線性分類器擬合能力強但是編程實現(xiàn)較復雜,理解難度大



6. 損失層介紹:設置一個損失函數(shù)用來比較網(wǎng)絡的輸出和目標值,通過最小化損失來驅動網(wǎng)絡的訓練。網(wǎng)絡的損失通過前向操作計算,網(wǎng)絡參數(shù)相對于損失函數(shù)的梯度則通過反向操作計算。

常用函數(shù):分類問題損失(離散值:分類問題、分割問題):nn.BCELoss、nn.CrossEntropyLoss等?;貧w問題損失(連續(xù)值:推測問題、回歸分類問題):nn.L1Loss、nn.MSELoss、nn.SmoothL1Loss等。


7. Dropout層

介紹:在不同的訓練過程中隨機扔掉一部分神經(jīng)元,以防止過擬合,一般用在全連接層。在測試過程中不使用隨機失活,所有的神經(jīng)元都激活。?????????????????????

常用函數(shù):nn.dropout


8. 優(yōu)化器介紹:為了更高效的優(yōu)化網(wǎng)絡結構(損失函數(shù)最?。?,即是網(wǎng)絡的優(yōu)化策略,主要方法如下:

解釋??優(yōu)化器種類?特點
基于梯度下降原則(均使用梯度下降算法對網(wǎng)絡權重進行更新,區(qū)別在于使用的樣本數(shù)量不同)??????GD(梯度下降); SGD(隨機梯度下降,面向一個樣本); BGD(批量梯度下降,面向全部樣本); MBGD(小批量梯度下降,面向小批量樣本)?????引入隨機性和噪聲
基于動量原則(根據(jù)局部歷史梯度對當前梯度進行平滑)Momentum(動量法); NAG(Nesterov Accelerated Gradient)
???
加入動量原則,具有加速梯度下降的作用????
自適應學習率(對于不同參數(shù)使用不同的自適應學習率;Adagrad使用梯度平方和、Adadelta和RMSprop使用梯度一階指數(shù)平滑,RMSprop是Adadelta的一種特殊形式、Adam吸收了Momentum和RMSprop的優(yōu)點改進了梯度計算方式和學習率)???Adagrad; Adadelta; RMSprop; Adam?????自適應學習

常用優(yōu)化器為Adam,用法為:torch.optim.Adam。???????

補充:卷積神經(jīng)網(wǎng)絡正則化是為減小方差,減輕過擬合的策略,方法有:L1正則(參數(shù)絕對值的和); L2正則(參數(shù)的平方和,weight_decay:權重衰退)。


9. 學習率?介紹:學習率作為監(jiān)督學習以及深度學習中重要的超參,其決定著目標函數(shù)能否收斂到局部最小值以及合適收斂到最小值。合適的學習率能夠使目標函數(shù)在合適的時間內收斂到局部最小值。????

常用函數(shù):torch.optim.lr_scheduler; ExponentialLR; ReduceLROnplateau; CyclicLR等。???????


卷積神經(jīng)網(wǎng)絡的常見結構

常見結構有:跳連結構(ResNet)、并行結構(Inception V1-V4即GoogLeNet)、輕量型結構(MobileNetV1)、多分支結構(SiameseNet; TripletNet; QuadrupletNet; 多任務網(wǎng)絡等)、Attention結構(ResNet+Attention)

結構????????????介紹與特點圖示
跳連結構(代表:ResNet)2015年何愷明團隊提出。引入跳連的結構來防止梯度消失問題,今兒可以進一步加大網(wǎng)絡深度。擴展結構有:ResNeXt、DenseNet、WideResNet、ResNet In ResNet、Inception-ResNet等???????????????

5267fae8-1558-11ee-a579-dac502259ad0.png

并行結構(代表:Inception V1-V4)2014年Google團隊提出。不僅強調網(wǎng)絡的深度,還考慮網(wǎng)絡的寬度。其使用1×1的卷積來進行升降維,在多個尺寸上同時進行卷積再聚合。其次利用稀疏矩陣分解成密集矩陣計算的原理加快收斂速度。??5283edde-1558-11ee-a579-dac502259ad0.jpg
輕量型結構(代表:MobileNetV1)2017年Google團隊提出。為了設計能夠用于移動端的網(wǎng)絡結構,使用Depth-wise Separable Convolution的卷積方式代替?zhèn)鹘y(tǒng)卷積方式,以達到減少網(wǎng)絡權值參數(shù)的目的。擴展結構有:MobileNetV2、MobileNetV3、SqueezeNet、ShuffleNet V1、ShuffleNet V2等????????52933f5a-1558-11ee-a579-dac502259ad0.png
多分支結構(代表:TripletNet)?基于多個特征提取方法提出,通過比較距離來學習有用的變量。該網(wǎng)絡由3個具有相同前饋網(wǎng)絡(共享參數(shù))組成的,需要輸入是3個樣本,一個正樣本和兩個負樣本,或者一個負樣本和兩個正樣本。訓練的目標是讓相同類別之間的距離竟可能的小,讓不同的類別之間距離竟可能的大。常用于人臉識別。

52a22402-1558-11ee-a579-dac502259ad0.jpg


Attention結構(代表:ResNet+Attention)對于全局信息,注意力機制會重點關注一些特殊的目標區(qū)域,也就是注意力焦點,進而利用有限的注意力資源對信息進行篩選,提高信息處理的準確性和效率。注意力機制有Soft-Attention和Hard-Attention區(qū)分,可以作用在特征圖上、尺度空間上、channel尺度上和不同時刻歷史特征上等。??????????????

52b78310-1558-11ee-a579-dac502259ad0.png


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    BP神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡的比較

    BP神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡在多個方面存在顯著差異,以下是對兩者的比較: 一、結構特點 BP神經(jīng)網(wǎng)絡 : BP
    的頭像 發(fā)表于 02-12 15:53 ?180次閱讀

    卷積神經(jīng)網(wǎng)絡的工作原理和應用

    卷積神經(jīng)網(wǎng)絡(FCN)是深度學習領域中的一種特殊類型的神經(jīng)網(wǎng)絡結構,尤其在計算機視覺領域表現(xiàn)出色。它通過全局平均池化或轉置卷積處理任意尺寸的輸入,特別適用于像素級別的任務,如圖像分割
    的頭像 發(fā)表于 07-11 11:50 ?1429次閱讀

    循環(huán)神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)是深度學習領域中兩種非常重要的神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-04 14:24 ?1618次閱讀

    卷積神經(jīng)網(wǎng)絡與循環(huán)神經(jīng)網(wǎng)絡的區(qū)別

    網(wǎng)絡結構,分別適用于不同的應用場景。本文將從基本概念、結構組成、工作原理及應用領域等方面對這兩種神經(jīng)網(wǎng)絡進行深入解讀。
    的頭像 發(fā)表于 07-03 16:12 ?4173次閱讀

    卷積神經(jīng)網(wǎng)絡的實現(xiàn)原理

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-03 10:49 ?777次閱讀

    bp神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡區(qū)別是什么

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經(jīng)網(wǎng)絡的比較: 基本結構 BP神經(jīng)網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)絡,由輸入層、隱藏層和
    的頭像 發(fā)表于 07-03 10:12 ?1572次閱讀

    卷積神經(jīng)網(wǎng)絡的基本結構和工作原理

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-03 09:38 ?1125次閱讀

    卷積神經(jīng)網(wǎng)絡激活函數(shù)的作用

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNNs)是深度學習中一種重要的神經(jīng)網(wǎng)絡結構,廣泛應用于圖像識別、語音識別、自然語言處理等領域。在卷積
    的頭像 發(fā)表于 07-03 09:18 ?1363次閱讀

    卷積神經(jīng)網(wǎng)絡訓練的是什么

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-03 09:15 ?619次閱讀

    卷積神經(jīng)網(wǎng)絡的基本結構和訓練過程

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)是一種在圖像識別、視頻處理、自然語言處理等多個領域廣泛應用的深度學習算法。其獨特的網(wǎng)絡結構和算法設計,使得CNN在
    的頭像 發(fā)表于 07-02 18:27 ?1220次閱讀

    卷積神經(jīng)網(wǎng)絡的原理與實現(xiàn)

    1.卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。 卷積神經(jīng)網(wǎng)絡是一種前饋
    的頭像 發(fā)表于 07-02 16:47 ?839次閱讀

    卷積神經(jīng)網(wǎng)絡的基本結構及其功能

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經(jīng)網(wǎng)絡的基
    的頭像 發(fā)表于 07-02 14:45 ?2701次閱讀

    卷積神經(jīng)網(wǎng)絡的原理是什么

    基本概念、結構、訓練過程以及應用場景。 卷積神經(jīng)網(wǎng)絡的基本概念 1.1 神經(jīng)網(wǎng)絡 神經(jīng)網(wǎng)絡是一種受人腦
    的頭像 發(fā)表于 07-02 14:44 ?907次閱讀

    卷積神經(jīng)網(wǎng)絡和bp神經(jīng)網(wǎng)絡的區(qū)別

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)和BP神經(jīng)網(wǎng)絡(Backpropagation Neural Networks,簡稱BPNN)是兩種
    的頭像 發(fā)表于 07-02 14:24 ?5170次閱讀

    卷積神經(jīng)網(wǎng)絡的基本結構

    廣泛應用于圖像識別、自然語言處理、語音識別等領域。本文將詳細闡述卷積神經(jīng)網(wǎng)絡的概念、基本結構及其在各領域的應用。
    的頭像 發(fā)表于 07-01 15:58 ?695次閱讀