CNN 解析 --唐宇迪
生活随笔
收集整理的這篇文章主要介紹了
CNN 解析 --唐宇迪
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 1 卷積過程大概是這樣,注意有深度信息。
- 2.卷積的計算過程,注意卷積的深度要和圖像的通道數相同
- 3.說到卷積,一定要提到下面這張經典的圖
-這張圖的意思,大概就是一個RGB三通道的圖,conv層是兩個filter組成的卷積,維度都是3,最后經過內積以及加和得到兩個特征圖。
-大家也有注意到,本來我的圖像是5*5的,添加了一圈(padding=0),這是因為卷積會重點計算靠近中心的像素點,忽=忽視邊界點,補上padding是為了更好的利用邊界點,這樣不容易丟失特征信息。
-卷積后的特征圖往往會變小,補上padding=0也會使特征圖不會變化,壓縮和降維的操作交給pool層去做即可。
- 4 首先提取圖像的邊緣信息等局部信息,之后再對局部信息進行拼接提取更高層的特征。
- 5.每個卷積層有不同數量的卷積核,一個filter輸出一個特征層
- 特征圖大小計算公式,其中W1、H1表示輸入的寬度、長度;W2、H2表示輸出特征圖的寬度、長度; F表示卷積核長和寬的大小;S表示滑動窗口的步長;P表示邊界填充(加幾圈0)
- 6.卷積參數共享
- 每個卷積層有不同的卷積核,每個卷積核權重矩陣都不相同,但當每個卷積層對圖像進行卷積運算的時候,所有區域都使用同一個權重矩陣,因為不可能不同區域使用不同的權重矩陣,這樣參數過多。
- 每個卷積核都有自己的bias.
- 池化層,對特征圖降維和壓縮
- 卷積的過程就是,特征圖不斷變多,尺度不斷被壓縮。
- 7.如下是Alexnet的架構
- 最后幾層FC是全連接層,用于分類,全連接層的輸入是一位向量,把特征圖模塊的深度轉換到第三個維度,比如[323210,5]
;含義就是將size:32*32,depth:10 的特征圖模塊壓縮到一維,然后分類成5個類別。
- 8.感受野
- 感受野,就是可以推算出當前特征圖的一個數據是由原始輸入層的多少個數據卷積輸出的。
- 下圖的第三次卷積后的一個數據由原始輸入5*5的size得到。
- 這時候就有個疑問,為什么不直接用5*5的卷積層輸出結果,而是用這么多conv層呢,這樣不會使速度變慢嗎?
- 其實神經網絡的運行速度是由參數決定的,多個小conv層往往會有更少的參數
- 很明顯,堆疊小的卷積核所需的參數更少一些,并且卷積過程越多,特征提取 也會越細致,由于每個conv后面跟一個RELU層,所以加入的非線性變換也隨著增多。
- 那是不是層數越多,準確率越高呢?
- 并不是這樣的。
- 這是為了可以有效地堆疊網絡深度,引入Resnet 殘差網絡。
- 當堆疊的層數輸出的準確率未添加的要小時,使堆疊的層數的權重變小,這樣保證網絡的準確率至少不會比原來差。
- 這里是34層的resnet,但有沒有注意到有虛線出現,這是因為不同深度的特征層和無法相加的,可能添加的conv層維度filter變多,這樣就無法和原來的輸出相加,這就需要對原有的輸入做一次conv改變特征層維度 。
- 8遷移學習
- 有個小技巧,在訓練我們的網絡時,可以先去著別人做過的類似的工作,然后之前套用訓練好的權重參數,以及網絡架構,只對輸入輸出做出適合我們任務的修改。
- 分類任務舉例,因為是針對我們的任務分類,所以只對FC層做訓練,之前特征提取的層用訓練好的參數,最后整體網絡架構進行訓練。
- 訓練集和驗證集要采用同一種預處理方式
- batch_size 越大越吃顯存
- tensor 的顏色通道在第一位,在輸出tesor圖像是要修改(transform)
- mini_batch是神經元的個數
- 盡量使用交叉驗證的方式訓練
- 9.反向傳播
- 通過Loss值調整權重,
- 鏈式法則求導調整權重,負梯度值調整權重
- 推薦大家看一下唐宇迪大佬的視頻。
總結
以上是生活随笔為你收集整理的CNN 解析 --唐宇迪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重建AD域控制器的DNS服务器
- 下一篇: 小程序 获取用户信息 openid 等