实习日记~

重读fast-rcnn

2017-12-15  本文已影响0人  飞翔的小瓜瓜

1.为什么要将每个建议框对应的特征框池化到H×W 的size?如何实现?

Fast R-CNN可输入任意size图片,并在全连接操作前加入RoI池化层,将建议框对应特征图中的特征框池化到H×W 的size,以便满足后续操作对size的要求;

    ROI的实现:

    首先假设建议框对应特征图中的特征框大小为h×w,将其划分H×W个子窗口,每个子窗口大小为h/H×w/W,然后对每个子窗口采用max pooling下采样操作,每个子窗口只取一个最大值,则特征框最终池化为H×W的size【特征框各深度同理】,这将各个大小不一的特征框转化为大小统一的数据输入下一层。

2.L1,L2正则化

见相关文章:Z学长论fast-rcnn对L1,L2的损失的选择~~

见链接:机器学习中正则化项L1和L2的直观理解

3.RoI池化层如何进行反向求导训练? 

引用自https://www.cnblogs.com/xuanyuyt/p/6207198.html

首先看普通max pooling层如何求导,设xi为输入层节点,yi为输出层节点,那么损失函数L对输入层节点xi的梯度为:

其中判决函数δ(i,j)表示输入i节点是否被输出j节点选为最大值输出。不被选中【δ(i,j)=false】有两种可能:xi不在yi范围内,或者xi不是最大值。若选中【δ(i,j)=true】则由链式规则可知损失函数L相对xi的梯度等于损失函数L相对yi的梯度×(yi对xi的梯度->恒等于1),故可得上述所示公式;

对于RoI max pooling层,设xi为输入层的节点,yri为第r个候选区域的第j个输出节点,一个输入节点可能和多个输出节点相关连,如下图所示,输入节点7和两个候选区域输出节点相关连;

该输入节点7的反向传播如下图所示。对于不同候选区域,节点7都存在梯度,所以反向传播中损失函数L对输入层节点xi的梯度为损失函数L对各个有可能的候选区域r【xi被候选区域r的第j个输出节点选为最大值】输出yri梯度的累加,具体如下公式所示:

∂L∂xi=∑r∑j[i=i∗(r,j)]∂L∂yrj

[i=i∗(r,j)]={1,0,i=i∗(r,j)≥1otherwise

判决函数[i=i∗(r,j)]表示i节点是否被候选区域r的第j个输出节点选为最大值输出,若是,则由链式规则可知损失函数L相对xi的梯度等于损失函数L相对yrj的梯度×(yrj对xi的梯度->恒等于1),上图已然解释该输入节点可能会和不同的yrj有关系,故损失函数L相对xi的梯度为求和形式。

上一篇下一篇

猜你喜欢

热点阅读