【CV论文阅读】 Fast RCNN + SGD笔记
Fast RCNN的結構:
?
先從這幅圖解釋FAST RCNN的結構。首先,FAST RCNN的輸入是包含兩部分,image以及region proposal(在論文中叫做region of interest,ROI)。Image經過深度網絡(deep network)之后得到feature map,然后可以從feature map中找到ROI在其中的投射projection得到每個patch,但論文沒有提及怎么在map中尋找對應的patch,估計可以通過位置關系找到(猜想,因為deep ConvNet 之后相對的位置是不變的)。
把每個patch經過ROI pooling layer,再經過一系列的full connected layer后,分別完成了兩個任務的預估:一是類別的預測softmax,一個是bounding box的預測。
在softmax的預測輸出是類別的概率分布,而bounding box 預測為每個類別都輸出預測回歸方程計算的四個參數(如上篇總結《Rich feature hierarchies for accurate object detection and semantic segmentation》中學習的四個參數,但論文中好像直接就是代表中心坐標以及長寬)。
?
ROI pooling layer:
ROI pooling layer其實是一個max pooling layer。假設有兩個超參數H、W,把輸入的patch劃分成H*W個小方格,假設投影的每個ROI的patch為h*w,則每個小子方格的大小沒h/H*w/W,而在每個方格中,執行的是max pooling layer 的操作。
在這里有必要繼續的討論一下在這個ROI pooling layer怎樣反向誤差傳播。
首先要明白的是,BP算法其實應用的就是導數的鏈式法則,很巧妙地解決了誤差的傳播問題。如下公式:
?
其中aj代表卷積層的輸入,而如果經過一個激活函數之后,得到zj=h(aj),其實zj才是下一層的輸入,而對k求和代表所有包含zj作為輸入的神經元。因此,可以得到公式,而就是誤差。
對應到pooling層,假設輸入層的元素值xi,對應卷積層的i位置,對應的是第r個ROI的layer,它經過ROI pooling層后在對應輸出到j位置。而xi是子窗口中的最大值。把一般的求誤差的公式對應到ROI pooling中,
?
其中i*(r,j)表示第r個ROI從第i的輸入(如果是子窗口中的最大像素值)對應到輸出的第j的位置。而sigma(r)是因為某個像素可能落在多個ROI中。
?
Mini-batch:
當使用pre-trained網絡的參數去初始化Fast RCNN網絡時,需要三個改變。第一,把最后一層的max pooling使用ROI pooling層去替代;第二、最后一層fc層以及softmax層用softmax層和bounding box預測層替代;第三,輸入包含兩種數據:image以及ROI。
batch就是完成一次訓練的數據集,這里對參數進行tune,就是有監督訓練對參數進行微調(使用的是SGD,隨機梯度下降法)。mini batch是通過隨機采樣得到的,首先隨機選擇N張圖片,然后每張圖片隨機采樣R/N個ROI。論文采用R=128,N=2。
今天想明白了一個batch是怎么完成一次訓練。我開始以為是一次輸入一個batch的數據集,其實不是的,一次處理的依然是一張的圖片,而在最后輸出層計算這張圖片的產生的loss,把batch里的圖片全部輸入到網絡里,就產生了loss的和LOSS,這時可以使用這個LOSS去執行BP算法,微調網絡中的參數。
同樣的,當IOU至少是0.5的才有可能是帶有類別標志的,而0.1到0.5的認為是背景,而低于0.1的act as a heuristic for hard example mining(這里我也想不明白)。
?
損失函數:
損失函數由兩部分組成,分別是類別誤差函數以及定位誤差:
?
(@2016/8/17 ? : 訓練時每個ROI輸入時應該都是有label的,這取決于它與label的IOU,如上小節所述。估計訓練時的樣本只會有一個bounding box)
其中類別誤差取類別概率的負對數作為誤差函數。而第二項定位誤差,在真實類別u>=1時才有意義,u=0時表示背景。Bounding box的目標為v,如上文提到,它有四個參數,于是定位誤差為:
?
其中,,而且。
?
尺度不變性:
論文中實現尺度不變性是通過把圖像固定。
?
隨機梯度下降法:
?
@ 2016 /08/21 更新。
現在神經網絡里用的SGD都是指min-batch SGD,找了一個例子from?http://www.cnblogs.com/maybe2030/p/5089753.html#_label2
轉載于:https://www.cnblogs.com/jie-dcai/p/5701435.html
總結
以上是生活随笔為你收集整理的【CV论文阅读】 Fast RCNN + SGD笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: smarty基础
- 下一篇: 浅谈构造函数与构析函数的调用顺序(转载)