版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一。卷積神經(jīng)網(wǎng)絡(luò)采取的權(quán)重共享理念降低了訓(xùn)練過程的復(fù)雜程度,分層局部連接的結(jié)構(gòu)使其適合處理圖像分類等任務(wù)。楊立昆等人提出了一個目前使用得最為廣泛的CNN,它的網(wǎng)絡(luò)結(jié)構(gòu)由卷積層和下采樣層交替構(gòu)成,并用誤差梯度的方式進(jìn)行訓(xùn)練。具有高維像素的圖像可以直接輸入CNN,降低了特征提取和分類過程中數(shù)據(jù)重建的復(fù)雜度。CNN有諸多變體網(wǎng)絡(luò),均在大規(guī)模圖像分類方面取得了優(yōu)異的成績,例如AlexNet、VGGNet、GoogLeNet和ResNet等。除了圖像分類,CNN還在很多其他研究領(lǐng)域取得了巨大的成功,如語音識別、圖像分割、自然語言處理等。卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)一個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)LeNet-5主要有2個卷積層、2個下采樣層(池化層)、3個全連接層,LeNet-5的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。1基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別實(shí)例目錄卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層2常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)3卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層從圖中還可以看到,如果把原始圖片和卷積結(jié)果的每個像素點(diǎn)看成一個神經(jīng)元,并且把原始圖片和卷積結(jié)果看成前饋神經(jīng)網(wǎng)絡(luò)中兩個相連的層,那么得到的卷積結(jié)果的每個神經(jīng)元所用的連接權(quán)重都是相同的卷積核中的9個數(shù),即每個輸出神經(jīng)元的權(quán)重是共享的,這比全連接網(wǎng)絡(luò)中的權(quán)重?cái)?shù)量少了很多。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層Conv2DConv2D(二維卷積)類將創(chuàng)建一個卷積核,該卷積核對層輸入進(jìn)行卷積,以生成輸出張量。語法格式如下。keras.layers.Conv2D(filters,kernel_size,strides=(1,1),padding="valid",data_format=None,dilation_rate=(1,1),groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,**kwargs)參數(shù)名稱說明filters接收整數(shù),表示輸出數(shù)據(jù)的通道數(shù)量(卷積中濾波器的數(shù)量),無默認(rèn)值kernel_size接收1個整數(shù)或者用2個整數(shù)表示的元組或列表,指明2D卷積核的寬度和高度??梢允?個整數(shù),為所有空間維度指定相同的值,無默認(rèn)值strides接收1個整數(shù)或者用2個整數(shù)表示的元組或列表,指明卷積沿寬度和高度方向的步長??梢允?個整數(shù),為所有空間維度指定相同的值。若strides=2,則輸出形狀的寬度和高度都將會減半。參數(shù)strides和參數(shù)dilation_rate必須至少有一個為(1,1)。默認(rèn)為(1,1)padding接收"valid"或"same"(大小寫敏感)。Valid表示不進(jìn)行邊界延拓,會導(dǎo)致卷積后的通道尺寸變小。Same表示進(jìn)行邊界延拓,使得卷積后的通道尺寸不變。默認(rèn)為"valid"常用參數(shù)及其說明卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層參數(shù)名稱說明data_format接收字符串,取值為"channels_last"或"channels_first",表示輸入中維度的順序。"channels_last"對應(yīng)輸入尺寸為(batch_size,height,width,channels),"channels_first"對應(yīng)輸入尺寸為(batch_size,channels,height,width)。默認(rèn)情況下為從Keras配置文件~/.keras/keras.json中找到的image_data_format值。如果未設(shè)置該參數(shù),將使用"channels_last"。默認(rèn)為Nonedilation_rate接收1個整數(shù)或用2個整數(shù)表示的元組或列表,指定擴(kuò)張(空洞)卷積的膨脹率??梢允?個整數(shù),為所有空間維度指定相同的值。一個膨脹率為2的3×3卷積核,其感受野與5×5的卷積核相同,而且僅需要9個參數(shù)。默認(rèn)為(1,1)常用參數(shù)及其說明卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層參數(shù)名稱說明activation接收要使用的激活函數(shù)(詳見activations)。如果不指定,則不使用激活函數(shù)(即線性激活)。默認(rèn)為Noneuse_bias接收布爾值,表示該層是否使用偏置向量。默認(rèn)為True常用參數(shù)及其說明卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層如果use_bias為True,則會創(chuàng)建一個偏置向量并將其添加到輸出中。如果activation不是None,它也會應(yīng)用于輸出。當(dāng)使用二維卷積層作為網(wǎng)絡(luò)第一層時,需要給網(wǎng)絡(luò)提供input_shape參數(shù)。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層若將膨脹率參數(shù)dilation_rate設(shè)置為2,則卷積核的尺寸將擴(kuò)大一倍,然后按照普通卷積的過程對圖像進(jìn)行卷積。一個膨脹率為2的3×3卷積核如下圖所示,其感受野與5×5的卷積核相同,而且僅需要9個參數(shù)。實(shí)際計(jì)算時沒有必要對卷積核填充為0的地方和圖像相應(yīng)的像素點(diǎn)計(jì)算內(nèi)積。在相同的計(jì)算條件下,空洞卷積提供了更大的感受野??斩淳矸e經(jīng)常用在實(shí)時圖像分割中。當(dāng)網(wǎng)絡(luò)層需要較大的感受野,而計(jì)算資源有限且無法提高卷積核數(shù)量或大小時,可以考慮空洞卷積。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層SeparableConv2D深度方向的SeparableConv2D(可分離二維卷積)的操作包括兩個部分。首先執(zhí)行深度方向的空間卷積(分別作用于每個輸入通道),如下圖所示。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層然后將所得輸出通道混合在一起進(jìn)行逐點(diǎn)卷積,如下圖所示。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層SeparableConv2D的計(jì)算過程如下圖所示。假設(shè)輸入層的數(shù)據(jù)的大小是7×7×3(高×寬×通道)在SeparableConv2D的第一步中,不將Conv2D中3個3×3的卷積算子作為一個卷積核,而是分開使用3個卷積算子,每個卷積算子的大小為3×3;一個大小為3×3的卷積算子與輸入層的一個通道(僅一個通道,而非所有通道)做卷積運(yùn)算,得到1個大小為5×5的映射圖;然后將這些映射圖堆疊在一起,得到一個5×5×3的中間數(shù)據(jù)。第一步的計(jì)算過程如上圖從左往右方向的前3幅圖所示。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層SeparableConv2D的計(jì)算過程如下圖所示。假設(shè)輸入層的數(shù)據(jù)的大小是7×7×3(高×寬×通道)在SeparableConv2D的第二步中,為了擴(kuò)展深度,用1個大小為1×1的卷積核,每個卷積核有3個1×1的卷積算子,對5×5×3的中間數(shù)據(jù)進(jìn)行卷積,可得到1個大小為5×5的輸出通道。用128個1×1的卷積核,則可以得到128個輸出通道。第二步的計(jì)算過程如上圖的右半部分的2幅圖所示。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層SeparableConv2D會顯著降低Conv2D中參數(shù)的數(shù)量。對于深度較淺的網(wǎng)絡(luò)而言,如只有一到兩個卷積層時,如果用SeparableConv2D替代Conv2D,網(wǎng)絡(luò)的能力可能會顯著下降,得到的網(wǎng)絡(luò)可能是次優(yōu)的。但是,如果運(yùn)用得當(dāng),SeparableConv2D能在不降低網(wǎng)絡(luò)性能的前提下實(shí)現(xiàn)效率提升??煞蛛x的卷積可以理解為將卷積核分解成兩個較小的卷積核。在Keras中,SeparableConv2D類的語法格式如下。keras.layers.SeparableConv2D(filters,kernel_size,strides=(1,1),padding='valid',data_format=None,dilation_rate=(1,1),depth_multiplier=1,activation=None,use_bias=True,depthwise_initializer='glorot_uniform',pointwise_initializer='glorot_uniform',bias_initializer='zeros',depthwise_regularizer=None,pointwise_regularizer=None,bias_regularizer=None,activity_regularizer=None,depthwise_constraint=None,pointwise_constraint=None,bias_constraint=None)SeparableConv2D類的常用參數(shù)及其說明類似Conv2D類。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層DepthwiseConv2DDepthwiseConv2D(深度可分離二維卷積)的第一步是執(zhí)行深度方向的空間卷積(其分別作用于每個輸入通道),如下圖所示。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層DepthwiseConv2D類的語法格式如下。keras.layers.SeparableConv2D(filters,kernel_size,strides=(1,1),padding='valid',data_format=None,dilation_rate=(1,1),depth_multiplier=1,activation=None,use_bias=True,depthwise_initializer='glorot_uniform',pointwise_initializer='glorot_uniform',bias_initializer='zeros',depthwise_regularizer=None,pointwise_regularizer=None,bias_regularizer=None,activity_regularizer=None,depthwise_constraint=None,pointwise_constraint=None,bias_constraint=None)depth_multiplier參數(shù)用于控制深度卷積步驟中每個輸入通道生成多少個輸出通道。DepthwiseConv2D的參數(shù)類似SeparableConv2D,只是少了filters參數(shù),因?yàn)檩敵鐾ǖ赖臄?shù)量等于輸入通道的數(shù)量乘depth_multiplier值。DepthwiseConv2D類的常用參數(shù)及其說明類似Conv2D類。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層Conv2DTransposeConv2DTranspose(轉(zhuǎn)置二維卷積)常常用于CNN中對特征圖進(jìn)行上采樣。Conv2DTranspose對普通卷積操作中的卷積核做轉(zhuǎn)置處理,將普通卷積的輸出作為轉(zhuǎn)置卷積的輸入,而將轉(zhuǎn)置卷積的輸出作為普通卷積的輸入。普通卷積的計(jì)算過程如下圖所示。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層Conv2DTranspose的計(jì)算過程如下圖示。
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層Conv2DTranspose類的語法格式如下。keras.layers.Conv2DTranspose(filters,kernel_size,strides=(1,1),padding='valid',output_padding=None,data_format=None,dilation_rate=(1,1),activation=None,use_bias=True,kernel_initializer='glorot_uniform',bias_initializer='zeros',kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None)Conv2DTranspose類中的output_padding參數(shù)用于接收1個整數(shù)或用2個整數(shù)表示的元組或列表,以指定沿輸出張量的高度和寬度的填充量。沿給定維度的輸出填充量必須低于沿同一維度的步長。如果該參數(shù)接收的值為“None”(默認(rèn)),那么輸出尺寸將自動推理出來。Conv2DTranspose類的常用參數(shù)及其說明類似Conv2D類。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層Conv3DConv3D(三維卷積)的計(jì)算過程如右圖所示。左上方部分只有一個輸入通道、一個輸出通道、一個三維的卷積算子(3×3×3)。如果有64個輸入通道(每個通道輸入一個三維的數(shù)據(jù)),要得到32個輸出通道(每個通道也輸出一個三維的數(shù)據(jù)),則需要32個卷積核,每個卷積核有64個3×3×3的卷積算子。Conv3D中可訓(xùn)練的參數(shù)的數(shù)量通常遠(yuǎn)遠(yuǎn)多于普通的Conv2D。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層需要注意,Conv3D的輸入要求是一個五維的張量,即[批大小,長度,寬度,高度,通道數(shù)],而Conv2D的輸入要求是一個四維的張量,即[批大小,寬度,高度,通道數(shù)]。如果Conv3D和Conv2D混合使用,則要用Reshape層調(diào)整相應(yīng)的輸入數(shù)據(jù)的大?。ㄕ{(diào)整數(shù)據(jù)大小時忽略第一維的批大?。?。在Keras中的,Conv3D的語法格式如下,其參數(shù)和二維卷積基本一致,只是輸入和輸出多了一維。keras.layers.Conv3D(filters,kernel_size,strides=(1,1,1),padding="valid",data_format=None,dilation_rate=(1,1,1),groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,**kwargs)卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層2.池化層在卷積層中,可以通過調(diào)節(jié)步長參數(shù)來達(dá)到減小輸出尺寸的目的。池化層同樣基于局部相關(guān)性的思想,在局部相關(guān)的一組元素中進(jìn)行采樣或信息聚合,從而得到新的元素值。如最大池化(MaxPooling)層返回局部相關(guān)元素集中最大的元素值,平均池化(AveragePooling)層返回局部相關(guān)元素集中元素的平均值。池化即下采樣(Downsample),目的是減少特征圖的尺寸。池化操作對于每個卷積后的特征圖都是獨(dú)立進(jìn)行的,池化窗口規(guī)模一般為2×2。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層相對于卷積層進(jìn)行的卷積運(yùn)算,池化層進(jìn)行的運(yùn)算一般有以下幾種。(1)最大池化。取4個元素的最大值。這是最常用的池化方法。(2)平均值池化。取4個元素的平均值。(3)高斯池化。借鑒高斯模糊的方法。不常用。如果池化層的輸入單元大小不是2的整數(shù)倍,則一般采取邊緣補(bǔ)零(ZeroPadding)的方式補(bǔ)成2的整數(shù)倍,再池化。MaxPooling2D(二維最大池化)的計(jì)算過程如下圖所示,其中池化窗口大小為(2,2),步長大小為(2,2),由一個大小為4×4的通道池化得到一個大小為2×2的通道。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層MaxPooling2D類的語法格式如下keras.layers.MaxPooling2D(pool_size=(2,2),strides=None,padding="valid",data_format=None,**kwargs)常用參數(shù)及其說明表參數(shù)名稱說明pool_size接收一個整數(shù)或者用同一個整數(shù)表示的元組或列表,表示池化窗口的大小。默認(rèn)為(2,2),即每2×2個像素中取一個最大值strides接收1個整數(shù)或者用2個整數(shù)表示的元組或列表,指明卷積沿寬度和高度方向的步長??梢允?個整數(shù),為所有空間維度指定相同的值。默認(rèn)為None,即strides=pool_sizepadding接收"valid"或"same"(大小寫敏感)。valid表示不進(jìn)行邊界延拓,會導(dǎo)致卷積后的通道尺寸變小。same表示進(jìn)行邊界延拓,使得卷積后的通道尺寸不變。默認(rèn)為"valid"卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層3.歸一化層對于淺層網(wǎng)絡(luò)來說,隨著網(wǎng)絡(luò)訓(xùn)練的進(jìn)行,當(dāng)每層中參數(shù)更新時,靠近輸出層的輸出較難出現(xiàn)劇烈變化。但對深度神經(jīng)網(wǎng)絡(luò)來說,即使輸入數(shù)據(jù)已做標(biāo)準(zhǔn)化,訓(xùn)練中網(wǎng)絡(luò)參數(shù)的更新依然很容易造成網(wǎng)絡(luò)輸出值的劇烈變化。這種計(jì)算數(shù)值的不穩(wěn)定性會導(dǎo)致操作者難以訓(xùn)練出有效的深度網(wǎng)絡(luò)。歸一化層利用小批上的平均值核標(biāo)準(zhǔn)差,不斷調(diào)整網(wǎng)絡(luò)的中間輸出,從而使整個網(wǎng)絡(luò)在各層的中間輸出的數(shù)值更穩(wěn)定,提高訓(xùn)練網(wǎng)絡(luò)的有效性。歸一化層目前主要有5種,批歸一化(BatchNormalization,BN)層層歸一化(LayerNormalization,LN)層實(shí)例歸一化(InstanceNormalization,IN)層組歸一化(GroupNormalization,GN)層可切換歸一化(SwitchableNormalization,SN)層卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層批歸一化層的特性如下。(1)批歸一化層的計(jì)算方式是將每個通道的N、H、W單獨(dú)拿出來進(jìn)行歸一化處理。(2)N越小,批歸一化層的表現(xiàn)越不好,因?yàn)橛?jì)算過程中所得到的平均值和方差不能代表全局。層歸一化層的特性如下。(1)層歸一化層的計(jì)算方式是將C、H、W單獨(dú)拿出來進(jìn)行歸一化處理,不受N的影響。(2)常用在RNN中,但是如果輸入的特征區(qū)別很大,則不建議使用層歸一化層做歸一化處理。實(shí)例歸一化層的特性如下。(1)實(shí)例歸一化層的計(jì)算方式是將H、W單獨(dú)拿出來進(jìn)行歸一化處理,不受C和N的影響。(2)常用在風(fēng)格化遷移中,但是如果特征圖可以用到通道之間的相關(guān)性,則不建議使用實(shí)例歸一化層做歸一化處理。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層組歸一化層的特性如下。(1)組歸一化層的計(jì)算過程:首先將C分成G組,然后將C、H、W單獨(dú)取出進(jìn)行歸一化處理,最后將G組歸一化之后的數(shù)據(jù)合并。(2)組歸一化層介于層歸一化層和實(shí)例歸一化層之間,例如,G的大小可以為1或者為C??汕袚Q歸一化層的特性如下。(1)將批歸一化層、層歸一化層和實(shí)例歸一化層結(jié)合,分別為它們賦予權(quán)重,讓網(wǎng)絡(luò)自己去學(xué)習(xí)歸一化層應(yīng)該使用什么方法。(2)因?yàn)榻Y(jié)合了多個歸一化層,所以訓(xùn)練方式復(fù)雜。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層深度學(xué)習(xí)中最常用的歸一化層是批歸一化層。批歸一化層應(yīng)用了一種變換,該變換可將該批所有樣本在每個特征上的平均值保持在0左右,將標(biāo)準(zhǔn)偏差保持在1左右。把可能逐漸向非線性傳遞函數(shù)(如Sigmoid函數(shù))取值的極限飽和區(qū)靠攏的分布,強(qiáng)制拉回到平均值為0、方差為1的標(biāo)準(zhǔn)正態(tài)分布,使得規(guī)范化后的輸出落入對下一層的神經(jīng)元較為敏感的區(qū)域,以此避免梯度消失問題。因?yàn)樘荻纫恢倍寄鼙3直容^大的狀態(tài),所以神經(jīng)網(wǎng)絡(luò)參數(shù)的調(diào)整效率比較高,即向損失函數(shù)最優(yōu)值“邁動的步子”大,加快收斂速度。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
keras.layers.BatchNormalization(axis=-1,momentum=0.99,epsilon=0.001,center=True,scale=True,beta_initializer="zeros",gamma_initializer="ones",moving_mean_initializer="zeros",moving_variance_initializer="ones",beta_regularizer=None,gamma_regularizer=None,beta_constraint=None,gamma_constraint=None,renorm=False,renorm_clipping=None,renorm_momentum=0.99,fused=None,trainable=True,virtual_batch_size=None,adjustment=None,name=None,**kwargs)參數(shù)名稱說明axis接收整數(shù),表示要規(guī)范化的軸,通常為特征軸。例如在進(jìn)行data_format="channels_first"的二維卷積后,一般會設(shè)axis=1。默認(rèn)為-1momentum接收浮點(diǎn)數(shù),表示動態(tài)平均值的動量。默認(rèn)為0.99epsilon接收大于0的小浮點(diǎn)數(shù),用于防止出現(xiàn)除0錯誤。默認(rèn)為0.001center接收布爾值,若設(shè)為True,將會將beta作為偏置加上去,否則忽略參數(shù)beta。默認(rèn)為Truescale接收布爾值,若設(shè)為True,則會乘gamma,否則不使用gamma。當(dāng)下一層是線性的時,可以設(shè)為False,因?yàn)榭s放的操作將被下一層執(zhí)行。默認(rèn)為True常用參數(shù)及其說明卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層4.正則化層在深度神經(jīng)網(wǎng)絡(luò)中,如果網(wǎng)絡(luò)的參數(shù)較多,而訓(xùn)練樣本較少,則訓(xùn)練出來的網(wǎng)絡(luò)可能產(chǎn)生過擬合的現(xiàn)象。過擬合的具體表現(xiàn)為,網(wǎng)絡(luò)在訓(xùn)練集上的表現(xiàn)好,預(yù)測準(zhǔn)確率較高;但是在測試集的表現(xiàn)不好,預(yù)測準(zhǔn)確率較低。但對深度神經(jīng)網(wǎng)絡(luò)來說,即使輸入數(shù)據(jù)已做標(biāo)準(zhǔn)化,訓(xùn)練中網(wǎng)絡(luò)參數(shù)的更新依然很容易造成網(wǎng)絡(luò)輸出值的劇烈變化。這種計(jì)算數(shù)值的不穩(wěn)定性會導(dǎo)致操作者難以訓(xùn)練出有效的深度網(wǎng)絡(luò)。Dense層正則化的英文為regularizaiton,直譯為規(guī)則化。設(shè)置正則化的目的是防止網(wǎng)絡(luò)過擬合,進(jìn)而增強(qiáng)網(wǎng)絡(luò)的泛化能力。最終目的是讓泛化誤差(GeneralizationError)的值無限接近于甚至等于測試誤差(TestError)的值。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層對過擬合曲線與正則化后的曲線的模擬,如下圖所示。其中上下劇烈波動的這條曲線為過擬合曲線。而平滑的曲線則是正則化后的曲線,正則化給訓(xùn)練的目標(biāo)函數(shù)加上一些規(guī)則,限制其曲線變化的幅度。Dense類用于實(shí)現(xiàn)Dense層,從而構(gòu)造正則化層,其語法格式詳見第2章2.3.2小節(jié)對Dense類目介紹。Dense類的參數(shù)kernel_regularizer表示應(yīng)用于權(quán)重矩陣的正則化函數(shù),bias_regularizer表示應(yīng)用于偏置向量的正則化函數(shù),activity_regularizer表示應(yīng)用于圖層的輸出的正則化函數(shù)。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層
卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層Dropout層Dropout是正則化技術(shù)之一,用于在網(wǎng)絡(luò)中對抗過擬合。Dropout有效的原因是Dropout層能夠使網(wǎng)絡(luò)避免在訓(xùn)練數(shù)據(jù)上產(chǎn)生復(fù)雜的相互適應(yīng)。Dropout這個術(shù)語代指在神經(jīng)網(wǎng)絡(luò)中丟棄部分神經(jīng)元(包括隱藏神經(jīng)元和可見神經(jīng)元)。在訓(xùn)練階段,Dropout使得每次訓(xùn)練只有部分網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)得到更新,因而是一種高效的神經(jīng)網(wǎng)絡(luò)模型平均化的方法。卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層前向傳播時,讓某個神經(jīng)元的激活值以一定的概率停止工作,可以使網(wǎng)絡(luò)泛化性更強(qiáng),因?yàn)樯窠?jīng)元不會太依賴某些局部的特征。隨機(jī)(臨時)刪除網(wǎng)絡(luò)中一些隱藏層的神經(jīng)元,得到修改后的網(wǎng)絡(luò)。然后使一小批輸入數(shù)據(jù)前向傳播,再把得到的損失通過修改后的網(wǎng)絡(luò)反向傳播,按照SGD更新對應(yīng)的參數(shù)(只更新沒有被刪除的神經(jīng)元的權(quán)重)。最后恢復(fù)被刪除的神經(jīng)元,重復(fù)此過程。Dropout層的工作示意如下圖所示。參數(shù)名稱說明rate接收在0和1之間的浮點(diǎn)數(shù),表示需要丟棄的輸入比例。無默認(rèn)值noise_shape接收整數(shù)張量,表示將與輸入相乘的二進(jìn)制Dropout層的形狀。例如,如果輸入尺寸為(batch_size,timesteps,features),然后希望Dropout層在所有時間步都是一樣的,則可以使用noise_shape=(batch_size,1,features)。默認(rèn)為Noneseed接收整數(shù),表示隨機(jī)種子。默認(rèn)為None常用參數(shù)及其說明卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層tf.keras.layers.Dropout(rate,noise_shape=None,seed=None,***kwargs)在Keras中,Dropout類的語法格式如下。1基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別實(shí)例目錄卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層2常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)3基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別實(shí)例基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別實(shí)例部分代碼#構(gòu)造網(wǎng)絡(luò)fromkerasimportSequential,layers,optimizersmodel=Sequential([
#二維卷積操作的輸入數(shù)據(jù)要求:[樣本數(shù),寬度,高度,通道數(shù)]
layers.Reshape((28,28,1),input_shape=(28,28)),
#3×3的卷積核,輸出32個通道
layers.Conv2D(32,kernel_size=(3,3),activation='relu'),
#取2×2網(wǎng)格的最大值進(jìn)行池化
layers.MaxPooling2D(pool_size=(2,2)),
layers.Conv2D(64,kernel_size=(3,3),activation='relu'),
layers.MaxPooling2D(pool_size=(2,2)),
layers.Conv2D(64,kernel_size=(3,3),activation='relu'),左邊代碼中,在conv2d_1中進(jìn)行卷積并在max_pooling2d_1中進(jìn)行池化后,得到32個通道的大小為(13,13)的數(shù)據(jù),經(jīng)過一個卷積核大小為3×3的卷積層conv2d_2,輸出64個通道,這個卷積層有(32×3×3+1)×64=18496個可訓(xùn)練的參數(shù)。需要注意,Conv2D用不同的卷積參數(shù)對不同的輸入通道進(jìn)行卷積,然后加上一個常數(shù)項(xiàng),最后得到一個輸出通道。整個網(wǎng)絡(luò)一共有93322個可訓(xùn)練的參數(shù)。1基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別實(shí)例目錄卷積神經(jīng)網(wǎng)絡(luò)中的常用網(wǎng)絡(luò)層2常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)3常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)1.LeNet-5LeNet-5是楊立昆在1998年設(shè)計(jì)的用于手寫數(shù)字識別的卷積神經(jīng)網(wǎng)絡(luò),它是早期卷積神經(jīng)網(wǎng)絡(luò)中最有代表性的網(wǎng)絡(luò)結(jié)構(gòu)之一。LeNet-5共有7層(不包括輸入層),每層都包含不同數(shù)量的訓(xùn)練參數(shù),如下圖所示。常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)LeNet-5中主要有2個卷積層、2個池化層和3個全連接層。具體的Keras實(shí)現(xiàn)可參考代碼3-9。由于當(dāng)時缺乏大規(guī)模訓(xùn)練數(shù)據(jù),計(jì)算機(jī)的計(jì)算能力也跟不上,LeNet-5對于復(fù)雜問題的處理結(jié)果并不理想。不過,通過對LeNet-5的網(wǎng)絡(luò)結(jié)構(gòu)的分析,可以直觀地了解卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建方法,可以為分析、構(gòu)建更復(fù)雜、更多層的卷積神經(jīng)網(wǎng)絡(luò)做準(zhǔn)備。常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)2.AlexNetAlexNet于2012年由亞歷克斯·克里澤夫斯基(AlexKrizhevsky)、伊利亞·薩茨基(IlyaSutskever)和杰弗里·欣頓等人提出,在2012年的ILSVRC中取得了最佳的成績,從此CNN變體才開始被大眾熟知。ILSVRC是ImageNet發(fā)起的挑戰(zhàn),是計(jì)算機(jī)視覺領(lǐng)域的“奧運(yùn)會”。全世界的團(tuán)隊(duì)帶著他們的網(wǎng)絡(luò)來對ImageNet中數(shù)以千萬的、共1000個類別的圖片進(jìn)行分類、定位、識別,這是一個相當(dāng)有難度的工作。常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)輸入的圖像的尺寸是256×256,然后通過隨機(jī)裁剪,得到大小為227×227的圖像,將其輸入網(wǎng)絡(luò)中,最后得到1000個數(shù)值為0到1的輸出,代表輸入樣本的類別。2012年的ILSVRC中,使用了ImageNet數(shù)據(jù)集對AlexNet網(wǎng)絡(luò)進(jìn)行了訓(xùn)練,該數(shù)據(jù)包含來自22000多個類別的超過1500萬個帶注釋的圖像。構(gòu)建網(wǎng)絡(luò)時使用了ReLU激活函數(shù),縮短了訓(xùn)練時間,這是因?yàn)镽eLU函數(shù)比傳統(tǒng)的tanh函數(shù)快幾倍。還使用了數(shù)據(jù)增強(qiáng)技術(shù),包括圖像轉(zhuǎn)換、水平反射等。添加了Dropout層,以解決訓(xùn)練數(shù)據(jù)過擬合的問題。使用基于小批的SGD優(yōu)化算法訓(xùn)練網(wǎng)絡(luò),具有動量和重量衰減的特定值。每一層權(quán)重均初始化為平均值為0、標(biāo)準(zhǔn)差為0.01的高斯分布,第二層、第四層和第五層的卷積的偏置被設(shè)置為1.0,而其他層的則設(shè)置為0,目的是加速初期學(xué)習(xí)的速率(因?yàn)榧せ詈瘮?shù)是ReLU,1.0的偏置可以讓大部分輸出為正),簡稱學(xué)習(xí)率。學(xué)習(xí)率初始值為0.01,在訓(xùn)練結(jié)束前共減小3次,每次減小都出現(xiàn)在錯誤率停止下降的時候,每次減小都是把學(xué)習(xí)率除以10。常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)3.VGGNetVGGNet(VisualGeometryGroupNetwork)于2014年被牛津大學(xué)的卡倫·西蒙揚(yáng)(KarenSimonyan)和安德魯·西塞曼(AndrewZisserman)提出,主要特點(diǎn)是“深度且簡潔”。深度指的是VGGNet有19層,遠(yuǎn)遠(yuǎn)超過了之前的CNN變體。簡潔則在于它在結(jié)構(gòu)上一律采用步長為1的3×3的卷積核,以及步長為2的2×2的最大池化窗口。VGGNet一共有6種不同的網(wǎng)絡(luò)結(jié)構(gòu),但是每種結(jié)構(gòu)都含有5組卷積,每組卷積都使用3×3的卷積核,每組卷積后進(jìn)行2×2的最大池化,接下來是3個全連接層。在訓(xùn)練高級別的網(wǎng)絡(luò)時,可以先訓(xùn)練低級別的網(wǎng)絡(luò),用前者獲得的權(quán)重初始化高級別的網(wǎng)絡(luò),可以加快網(wǎng)絡(luò)的收斂。常用卷積神經(jīng)網(wǎng)絡(luò)算法及其結(jié)構(gòu)VG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聊城職業(yè)技術(shù)學(xué)院《的分層開發(fā)技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 麗江師范高等??茖W(xué)校《工程制圖Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西司法警官職業(yè)學(xué)院《學(xué)術(shù)論文寫作(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江漢藝術(shù)職業(yè)學(xué)院《健身俱樂部經(jīng)營與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北大學(xué)知行學(xué)院《山地戶外運(yùn)動》2023-2024學(xué)年第一學(xué)期期末試卷
- 自貢職業(yè)技術(shù)學(xué)院《商業(yè)銀行與業(yè)務(wù)經(jīng)營》2023-2024學(xué)年第一學(xué)期期末試卷
- 周口師范學(xué)院《教育歷史與比較研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶科技學(xué)院《工程管理軟件與BM技術(shù)應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江樹人學(xué)院《圖像處理軟件應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 長江大學(xué)文理學(xué)院《材料力學(xué)B(外)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023年高考數(shù)學(xué)專項(xiàng)練習(xí)痛點(diǎn)問題之概率統(tǒng)計(jì)經(jīng)典解答題含解析
- 物業(yè)管理勞務(wù)外包合同范本
- 消費(fèi)者心理與行為分析PPT(第四版)完整全套教學(xué)課件
- 小學(xué)四年級語文下冊全書背誦內(nèi)容
- 2023-2024學(xué)年福建省漳州市初中語文七年級上冊期末??荚囶}
- 全國小學(xué)語文研究《低年級作文 》精品課件寫話教學(xué)課件
- 附錄常見感嘆詞及用法
- GB/T 21709.5-2008針灸技術(shù)操作規(guī)范第5部分:拔罐
- 大三上-診斷學(xué)復(fù)習(xí)重點(diǎn)
- 應(yīng)收賬款的管理培訓(xùn)課件
- 股東變更情況報(bào)告表
評論
0/150
提交評論