图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现

1.全连接层反向传播

C C 为loss
全连接层输入:(bottom_data) a a
全连接层输出:(top_data) z z
假设 a a 维度K_, z z 维度N_,则权值矩阵维度为N_行*K_列,batchsize=M_
全连接层每个输出zi=b+jwijaj z i = b + ∑ j w i j a j

1.1bottom_diff计算:

对bottom_data求导: Caj=iCziziaj=iziwij ∂ C ∂ a j = ∑ i ∂ C ∂ z i ⋅ ∂ z i a j = ∑ i z i ′ w i j (batchsize=1时)
当batchsize不为1时,需要分别获得各个样本下的结果,组成矩阵:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第1张图片
caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第2张图片

1.2weight_diff计算:

对weight求导: Cwij=Cziziwij=ziaj ∂ C ∂ w i j = ∂ C ∂ z i ⋅ ∂ z i w i j = z i ′ a j
当batchsize不为1时,需要将各个样本下的结果进行求和:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第3张图片
caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第4张图片

1.3bias_diff计算:

对bias进行求导: Cb=iCzizib=izi ∂ C ∂ b = ∑ i ∂ C ∂ z i ⋅ ∂ z i b = ∑ i z i ′ (batchsize=1时)
当batchsize不为1时,需要分别获得各个样本下的结果,组成向量:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第5张图片
caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第6张图片

2.Pooling层反向传播

2.1 Max Pooling:

图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第7张图片
首先,在前向传播时,在输出新的feature map的同时,还要记录每个输出点对应于前一层feature map中的位置,放入mask或者top_mask中(top_mask是指,该mask存放在top_data里当作输出的一部分)
max pooling 前向传播caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第8张图片
在反向传播时:将top_diff按照记录下来的index返回到输入层中,即只对前向传播时选中的一些位置进行误差传播,如下图:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第9张图片
max pooling 反向传播caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第10张图片

2.2 Average Pooling

前向传播较简单,block内数值的平均值作为输出,每个输出值对应固定的输入block,如图:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第11张图片
反向传播,将输出层各个位置的梯度,平均分配到其对应的输入block中,如图:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第12张图片
average pooling 反向传播caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第13张图片

3.Relu层反向传播

由Relu定义可得其导数:

f(x)={xαxx>0x0,f(x)={1αx>0x0 f ( x ) = { x x > 0 α x x ⩽ 0 , f ′ ( x ) = { 1 x > 0 α x ⩽ 0

其中 α α 默认为0
则Relu反向传播只需判断原始输入数据是否大于0,若大于0则将top_diff直接传到前层,否则将top_diff乘上 α α 传到前层,如图:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第14张图片
Relu层反向传播caffe实现:
图文+代码分析:caffe中全连接层、Pooling层、Relu层的反向传播原理和实现_第15张图片

你可能感兴趣的:(深度学习,深度学习,CNN,反向传播,caffe)