全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation
目錄
- 論文詳解
- 1.和VGG網絡的對比
- 2.那么fcn是什么?
- 3.論文改進的模型
- 3.1怎樣進行上采樣的問題
- 3.2從哪里開始上采樣的問題--跳躍連接的問題
- 3.3整體設計思想
- 4.1實驗結果
- 4.1語義分割的評價標準
- 4.2參數設置的問題
- 5.論文解決的問題
論文詳解
下面的五個部分是對論文提出的模型的理解,如果你想了解論文本身,那么請移步:
1.論文閱讀的儲備知識-CNN
2.讀論文的普適性過程
3.摘要部分詳細閱讀
4.引言部分詳細閱讀
5.相關工作部分
1.和VGG網絡的對比
我們清楚在VGG網絡當中,我們最后需要使用三個全連接層開始對原有圖像進行處理,最后得到的是一個1×1000的向量,表示的是1000種識別種類的概率。VGG當中最后的全連接是整個模型中的較大敗筆
我們可以粗略的理解一下這個事情,1.我們使用一維向量進行計算的過程中,會丟失大量的二維信息。這是十分不好的。
2.那么fcn是什么?
經過下采樣操作和上采樣還原之后,得到的還是一張圖片,經過人眼觀看,我們可能什么都看不出來,但是計算機還是可以看出來這是一個圖片。
其實就是將最后的幾層也是做成一個卷積層,讓其還是一個圖片。
當然在這里我們注意一下,正常的,我們做卷積,最后都是通過一個view()讓其變成一維的,然后送到線性層進行處理。這呢,就會丟失很多信息,這是我們不愿意看到的。
所以fcn是對原來的沒有經過view的圖片進行處理,來來完成信息的保留。再加之,我們本身的目的就是在像素級別進行識別。
3.論文改進的模型
3.1怎樣進行上采樣的問題
我們為了更好的理解這個圖片,我們得先明白這個東西里面每個到底都是表示些什么。這里的每一塊都是包含了卷積和池化,也就是我們常常說的下采樣的意思。得到的內容是圖像的像素信息縮小。為了達到端到端的目的,我們就必須對縮小后的圖片進行還原。
這個還原的過程就對應著被稱作,上采樣,這個上采樣的方法其實有很多,但是本文提出的上采樣的方法是反卷積。
這里我們回憶之前常有的上采樣方式就是差值的方式,FCN創新性提出的就是使用反卷積的方式來完成這個上采樣的方式。這個想到反卷積這個概念其實不難,因為有卷積就可能有反卷積。關鍵就在于怎么具體定義這個反卷積的操作。
這里注意反卷積的問題,他并不是真正的反向的卷積,不能還原因卷積而丟失的值,只是恢復了大小。同時反卷積又稱為轉置卷積。
仔細理解其原理的話,其實就是一個可以放大原有內容的卷積操作。
3.2從哪里開始上采樣的問題–跳躍連接的問題
在開始之前我們要先明確一個概念。什么是淺層網絡,什么是深層網絡?什么是淺層網絡?,粗略的理解一下就是:深層網絡就是經過的層數較多,淺層網絡就是經過的層數較少。較淺層的網絡就是較淺層的幾個下采樣塊,較深層的網絡就是深層的下采樣塊。
經過本文的試驗,研究團隊得到一個信息就是,淺層網絡,所能學習的范圍更小,但是更能得到某一點的具體細節,深層網絡學習的范圍更大,但是不能很好的得到局部信息。這就是之前我們在閱讀論文當中提到的,局部信息和全局信息不能同時得到的這個矛盾。
當然這里的學習范圍是有一個專有名詞的,那就是感受域。
文章之前已經說了上采樣的事情,這時候第二件事情就是什么時候開始上采樣的問題。
這里注意一個問題,我們直接使用一個跳躍連接把兩個下采樣都連接起來不久局部信息和整體信息都聯系起來了嗎,哪還有什么兩者的沖突?其實是對的,但是邏輯上的先后不對。
我們在一開始的時候是沒有提出這種跳躍連接的,必須是一層一層的不斷得出來。這樣持續不斷的下采樣,到最后我們只得到了全局的信息,而沒有得到整體的信息。所以,大家的感覺的是沒有錯的,跳躍連接正是緩解兩個沖突的一個方法。
我們看一下這篇文章是如何做跳躍連接的操作的:
為了看懂這個圖我們先要理解兩個事情:
1.這個5005003的這個表示方式是什么意思,這里的500500是寬度,3是我們熟系的通道數channels。
2.這里的藍色是卷積層,這里的綠色是池化層,橘色是反卷積層,黃色是合并層(add或是cat),灰色的是一個卷積核大小為33的卷積層,這里主要是對其中內容進行一步預處理之后再加入其中。
好了現在我們可以開始理解這個圖了,
1.輸入之后經過不斷地操作,我們從原有的輸入逐漸變成了343421這里的34*34好理解就是一個最后輸出的結果的大小,這個21呢是這個論文當中的標簽種類的個數。
2.這個疊加的過程中一邊還原一邊疊加新的,是還原到對應大小才能疊加之前的內容嘛。
3.3整體設計思想
這里整體的設計思想就是在深層次的網絡當中,使用反卷積進行還原的時候,可能丟失部分細節信息,所以我們使用跳連接的方式來緩解這個問題。
4.1實驗結果
4.1語義分割的評價標準
Pixel Accuracy(PA)像素精度:標記正確的像素占比。
Mean Pixel Accuracy(MPA)均像素精度:計算每個類內被正確分配的像素的比例,之后直接對比例進行平均(不加權重,加入權重不久和之前一樣了嗎?)
Mean Intersection over Union(MIoU)均交并比:計算真實值和預測值的交集和并集。(可以看到均交并比就是多了一個簡單的均值其實沒什么)
前面兩個我們是很容易理解的但是其并不是最好用,最好用的是第三個,但是第三個又不好理解,所以我們畫了下面一個圖來幫助我們理解一下。這里的真實值表示為實際為標簽a的位置,預測值為預測為真的位置。也就AB的交集和AB的并集的比例嘛一下子就理解了。就是看重合的多少嘛。
4.2參數設置的問題
GPU: NVIDIA Tesla K40c
優化器:SGD
優化器一般就選擇SGD或是Ada
學習率:10的-4次方,一般情況下,學習率在1000個epoch之后會有更新,一般是大家根據自己網絡設置的。
batch size:20
5.論文解決的問題
1.CNN網絡輸出為一個概率值,不太夠用。
FCN輸出一個圖片更加好用。
2.CNN網絡使用全連接層使得信息丟失。
FCN全部使用卷積層,保留二維信息。
3.上采樣丟失很多細節信息。
使用跳連接保留這些信息。
總結
以上是生活随笔為你收集整理的全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FCN全连接卷积网络(5)--Fully
- 下一篇: 什么是空洞卷积?