RoI Pooling中每個bin選擇RoI中的哪些特徵點做Max Pooling?
RoI Pooling中一個很容易理解出錯的地方在於對於某個bin,其由RoI中哪些特徵點做Max Pooling。
最近發現網上很多教程中給的示例都是錯誤的,比如以下教程給出的示例:
Region of interest pooling explained閱讀caffe2的源碼:caffe2/operators/http://roi_pool_op.cc可知:
上面這句注釋的意思是RoI Pooling結果的每個bin在RoI中起始和結束的index。
比如對於上圖來說最終RoI Pooling的結果的第0個bin,其實際計算應該是:
可以看到在實際劃分時,roi中有一些特徵點是被重複使用的,最終得到RoI Pooling結果應該是:
上述內容實際上在RoI Pooling的反向傳播公式中也有體現:
其中j的累加意思就是對於RoI中的特徵點i,在相同的RoI中其可能會被多個bin所使用,所以其梯度需要考慮多個RoI的多個bin。
推薦閱讀: