亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CNN網絡層的知識有哪些

發布時間:2022-01-04 15:24:35 來源:億速云 閱讀:168 作者:柒染 欄目:大數據

這篇文章給大家介紹CNN網絡層的知識有哪些,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

卷積神經網絡(CNN)由輸入(Inputs)、卷積層(Convolutions layer)、激活層(Activation)、池化層(Pooling layer)和全連接層(Fully Connected,  FC)成。這句話的意思是CNN里面可以有這些層,但是每種網絡層(Layer)的個數理論上是可以任意多個的。這也就有了后來的AlexNet,GoogLeNet,ResNet等著名的網絡結構,后面我會選擇一兩個介紹下吧。他們的主要區別就在于Layer的深度不一樣,也就是Layer的數量。一般來說Layer越深,能學習到的特征就越多。但是Layer越多需要的數據量就越大,需要的計算資源也就更多。但是近幾年大量可獲得的數據的出現(ImageNet Datasets),更牛皮的GPU (NVIDIA),促進了Layer向更深的方向發展。

今天呢我還是會再舉個栗子,通過下面這張圖,把CNN涉及到的網絡層的一些細節逐一介紹。

CNN網絡層的知識有哪些

圖1:卷積神經網絡細節圖(來源于網絡)

我們從左往右逐個先大概瀏覽一下,首先是一張31x39x1大小的一張灰度圖,然后通過4個Convolution layer,3個Pooling layer, 一個FC,最后是一個用于分類的SoftMax layer。如果換做彩色圖,也是可以的,對于灰度圖和彩色圖處理上的區別,可能就在于最開始的通道數(channel number)不一樣,其實并不影響什么,通過卷積之后得到的特征圖(FeatureMaps),其實就是通道(channel)。

1.  Inputs-->Convolutional layer1-->max-Pooling1

        輸入是一張圖片,然后對他做一系列的處理計算,最后就能知道它是什么,比如說可以知道它是一個人頭像的照片。

然后我們看一下細節的東西,圖片的中間有一個4x4x1大小的卷積核。通過Convolutional layer 1得到一個28x36x20大小的Feature Maps。這里有個公式之前提到過,就是(31-4+1)x(39-4+1)=28x36。如果圖片大小和卷積核大小變了,還是一樣的計算方法哈。這里是沒有加邊緣的,就是之前提到過得Zero Padding,后面遇到了再說細節。為什么是20個Feature Maps呢?是因為它用了20個4x4大小的卷積核對圖像做卷積處理。為什么要用20個呢?是因為特征圖越多,可以學習到的特征就越多。那可不可以用更大的數字?可以的。但是不保證效果一定就好。

還是那句話,deep learning是一門實驗性極強的學科,參數的設置都是要通過具體的問題,經過多次實驗最終得到的。所以說做deep learning是一個很費時間,資源的工作。還記得我剛開始要學deep learning的時候,有人就說不建議一個人去搞這個,最好有個團隊,因為無論從硬件和軟件,都是一個挑戰,我敢說國內很多大學的實驗室,是沒有相關的計算資源的。當時我就不明白為啥一個人不行,所以我傻乎乎的堅持學,哎,想想那個過程,都是淚!!!如果你現在的狀態和我開始的時候是一樣的,我建議keep going,you can do it better ! 打好基礎,問題會一步步解決的!卷積層就說到這,下面再看一下Pooling。

你可能也注意到了,這張圖寫的Max-Pooling,也叫最大值池化。那有沒有別的Pooling?有。還有一種但沒有Max更常用的叫做均值Pooling,Mean-Pooling。從名稱上應該就能體會到他們的區別,MaxPooling呢就是取池化窗口(Pooling Window)中最大的那個值最為新的值,MeanPooling呢就是取平均值。上圖的Pooling Window的池化大小(Pooling size)是2x2,也就是一個window里面有4個值,對吧,然后max一下,就是把最大的取出來。先別想整幅圖,就看這個2x2大小的圖,Pooling之后相當于把長和寬都取了一半,對不對?2x2取最大值,那不就剩下1個數了,1個就是1x1大小。那么對于整副圖來說,圖片的大小也就變為原來的一半。那么問題來了,為什么要做Pooling?不做行不行?

一般來說,Pooling可以減小輸入的大小,加速模型的訓練過程。但是這樣做會不會造成信息的損失呢?損失肯定是有的,但是相比如訓練時間以及最后的準確度,這點損失幾乎可以忽略。為什么可以忽略?那是因為圖片具有“靜態性”的屬性,簡單說就是一副圖片相鄰區域的特征幾乎一樣,想想實際生活中的圖片正是這樣的,你懂的!

然后說了這么多,貌似沒有提到Activation,Activation一般是加在Convolutional后面,Activation的作用呢就是激活。怎么理解激活呢,從神經學的角度來說,有些神經元通過卷積之后可能就died了,所以激活一下,讓他活過來。好了別鬧了,我們處理的是圖片,明顯是無生命的東西。從數學的角度講,Activation就是為了把一些丟失的值給變回來,來彌補Convolutional造成的信息的損失, Activation通常有很多種做法,不同的做法對應不同的激活函數(Activationfunction)。常見的之前提到過,比如softmax,relu,Leak relu,tanh,sigmoid等。區別是什么呢?這個各位看官自己去查一下吧,不難,就是幾個數學公式,我舉個栗子吧,不想單獨講一次了。比如我們的relu,公式是

F(x) = max(0, x)

是不是很簡單!relu就是把輸入x和0比較一下,取最大值,說白了就是把正數保留,負數變為0。函數圖像就不畫了,但是各位要去看一下哦~。

    

CNN網絡層的知識有哪些

圖2: (./copy圖1.sh )(方便看)

2.  Convolutional layer 4--> Deephidden identity features

         在這個之前把1 Inputs-->Convolutional layer1-->max-Pooling1再double一下就可以了,計算方法完全一樣,其實你也可以triple kill,quadruple kill,甚至 penta kill一下。都是沒得問題的。只不過需要注意的是,不論你用什么框架,TensorFlow,Keras,還是Caffe,還是別的,都要注意他們先后的參數設置,要保證正確。如果不正確就會導致前一個Layer的輸出無法作為后一個Layer的輸入,說白了就是要匹配。如果不懂,可以去嘗試寫n個這樣的循環,先不考慮最后分類的結果怎么樣,n你自己定,然后你就明白了。(為了讓大家動手寫,我也是操碎了心吶!)

到了Convolutional 4的時候,原始圖片變為了80個1x2的Feature Maps。最后這個FC稍微有點特殊,特殊之處在于他的一部分是Convolutional layer 4,一部分是Max-Pooling layer 3。暫且可以不考慮那么多,就說Convolutionallayer 4,他經過FC之后,變為80x2x1=160維特征的一個特征向量。Deep hidden identity features就是經過前面這一系列完美(亂七八糟)的計算得到的深層的關于輸入圖像的特征。到這里應該明白了什么是FC,簡單說就是把上一個layer的特征全部鋪平(Dense)了。

關于特征(Features)其實坑點也挺多的,在Machine Learning里面Feature selection 也是一個重要的課題,后面再講吧。最后面的那個Soft-max layer,就是把FC做一個多分類回歸,關于soft-max分類呢,他是sigmoid的一個推廣,sigmoid一般解決二分類問題,而soft-max呢是多分類。細節請關注后續分享!

關于CNN網絡層的知識有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

cnn
AI

涿鹿县| 库车县| 闻喜县| 县级市| 枞阳县| 博爱县| 青田县| 逊克县| 青河县| 宜城市| 承德县| 平果县| 巴彦淖尔市| 科技| 荆州市| 离岛区| 宁海县| 大方县| 九台市| 蓝山县| 陆良县| 福海县| 台南县| 嘉峪关市| 常山县| 榆树市| 伊春市| 张北县| 宕昌县| 资兴市| 尉氏县| 乐山市| 浦江县| 天峻县| 华容县| 黑河市| 阿克陶县| 三穗县| 莱阳市| 甘洛县| 乌兰浩特市|