這篇文章陸陸續(xù)續(xù)看了快兩周,其中也遇到了自己很多的知識(shí)的漏洞,踩了很多坑,這里希望能夠和大家說一說,也希望大家可以分享一下自己的看法.
1:FCN基本思路
自從CNN成功之后,很多人都在嘗試使用CNN進(jìn)行圖像分割,個(gè)人認(rèn)為CNN最厲害的地方是他的多層結(jié)構(gòu)可以自動(dòng)提取學(xué)習(xí)的特征,并且將其學(xué)習(xí),并且將提取的這些特征進(jìn)行分類,但是我們當(dāng)用CNN進(jìn)行圖像分割的時(shí)候,CNN的這項(xiàng)優(yōu)勢反而變成了劣勢,因?yàn)樵谔卣魈崛r(shí)丟失了一些細(xì)節(jié),反倒沒有辦法指出某些像素點(diǎn)屬于那些物體,而FCN跟傳統(tǒng)的CNN進(jìn)行像素分割不同,FCN是試圖從抽象的這些抽象的特征中恢復(fù)每個(gè)像素的類別,也就是從物體的分類到像素點(diǎn)級別的分類,這可以說是一個(gè)很大的突破.
2:end-to-end模型怎么理解?
在論文閱讀中,我們多次發(fā)現(xiàn)讀者強(qiáng)調(diào)FCN是end-to-end的,這一個(gè)部分我覺得用NLP的流程思路去想想還是挺有意思的.在我們之前的NLP對話系統(tǒng)中,往往是由很多個(gè)模塊組成的,每一個(gè)模塊單獨(dú)執(zhí)行一塊任務(wù),這些模塊合在一起就構(gòu)成了整個(gè)系統(tǒng),這樣有些面向?qū)ο蟮乃枷?但是這樣每一個(gè)模塊質(zhì)量的好壞將直接影響到下一個(gè)步驟甚至是整個(gè)任務(wù),這是非端到端的.
現(xiàn)在到了深度學(xué)習(xí)了,深度學(xué)習(xí)的模型直接在訓(xùn)練過程中從輸入數(shù)據(jù)開始,到達(dá)輸出端就會(huì)有一個(gè)輸出結(jié)果,這樣和真實(shí)的結(jié)果之間就會(huì)有一個(gè)誤差值,這個(gè)誤差會(huì)經(jīng)過反向傳播之后不斷進(jìn)行迭代,每層進(jìn)行微調(diào),直到我們的模型誤差達(dá)到一個(gè)合理的范圍.
最后通俗的說,端到端模型就是輸入原始數(shù)據(jù),經(jīng)過模型,獲得你想要的結(jié)果.
3:FCN基本結(jié)構(gòu)
FCN將傳統(tǒng)CNN中的全連接層轉(zhuǎn)化成一個(gè)個(gè)的卷積層
在上圖中,我們可以看到FCN將傳統(tǒng)的CNN中的三層全連接層全部修改為卷積層,卷積核的大小(通道數(shù),寬锚沸,高)分別為(4096,1,1)参袱、(4096,1,1)划乖、(1000,1,1)蹬铺。所有的層都是卷積層察纯,所以叫做FCN.
但是我們熟悉卷積原理我們應(yīng)該知道,每一次卷積都是對圖像的一次縮小,每一次縮小帶來的是分辨率越低,圖像越模糊,而在第一部分我們知道FCN是通過像素點(diǎn)進(jìn)行圖像分割,那FCN是怎么解決的這一個(gè)問題?
答案是上采樣,比如我們在3次卷積后,圖像分別縮小了2 4 8倍,因此在最后的輸出層,我們需要進(jìn)行8倍的上采樣,從而得到原來的圖像大小.而上采樣本身就是一個(gè)反卷積實(shí)現(xiàn)的,論文中的解釋:卷積的forward闸拿、backward操作對調(diào)污桦,也就是轉(zhuǎn)置卷積.
上圖是這個(gè)卷積和反卷積上采樣的過程:所說的是對第5層的輸出(32倍放大)反卷積到原圖大小亩歹,得到的結(jié)果還是不夠精確,一些細(xì)節(jié)無法恢復(fù)凡橱。于是Jonathan將第4層的輸出和第3層的輸出也依次反卷積小作,分別需要16倍和8倍上采樣,結(jié)果就精細(xì)一些了稼钩。
有對反卷積不理解的同學(xué)可以去看看知乎的提問,如果通俗易懂的解釋反卷積?
從論文中得到的結(jié)果來看,從32倍,16倍,8倍到最終結(jié)果,結(jié)果越來越精細(xì).
4:優(yōu)點(diǎn)和不足
優(yōu)點(diǎn):
1:模型的拓展性簡單
主要結(jié)構(gòu)與很多模型都類似,基本上現(xiàn)在的采用CNN的模型都可以通過將全連接層轉(zhuǎn)換為卷積層來轉(zhuǎn)化為全卷機(jī)模型,這樣就可以輸出空間的映射.
2:速度快速,高效
因?yàn)楸苊饬擞捎谑褂孟袼貕K而帶來的重復(fù)存儲(chǔ)和計(jì)算卷積的問題顾稀。
缺點(diǎn):
1:結(jié)果不夠精細(xì)
從上圖中來看,進(jìn)行8倍上采樣雖然比32倍的效果好了很多,但是上采樣的結(jié)果還是比較模糊和平滑变抽,對圖像中的細(xì)節(jié)不敏感.
2:沒有考慮像素之間的關(guān)系,缺乏空間一致性.
5:展望
FCN雖然有一些缺點(diǎn),但是我們更應(yīng)該關(guān)注他的優(yōu)點(diǎn),關(guān)注他啟發(fā)性的思路,通過像素與像素之間的關(guān)系來去將圖像進(jìn)行分割,比如有一些學(xué)者采用了FCN+CRF的結(jié)合,這都是一些大膽的創(chuàng)新,值得我們學(xué)習(xí).
引用資料:
1:FCN學(xué)習(xí)筆記?https://zhuanlan.zhihu.com/p/34453588
2:什么是?end-to-end?神經(jīng)網(wǎng)絡(luò)??https://www.zhihu.com/question/51435499