我们如何计算重叠区域的最大池化梯度?

人工智能 卷积神经网络 反向传播 坡度 汇集 最大池化
2021-11-01 07:28:50

在研究 CNN 中的反向传播时,我不明白我们如何计算具有重叠区域的最大池的梯度。

这也是测验中的一个问题,也可以在本书中找到。

2个回答

当神经网络中的梯度可以遵循多条路径到达同一参数时,来自源的不同梯度值通常可以相加,因为前向操作也是求和和ddx(y+z)=dydx+dzdx.

内核梯度(图像区域上的总和)已经是这种情况,重叠聚合也同样如此,包括最大值、最小值或平均值。

因此,在第一种情况下,如果您在输入参数上有一个最大池[a0,a1,a2,a3,a4]最大函数m0=max(a0,a1,a2),m1=max(a2,a3,a4)重叠在a2, 和梯度mJ=[Jm0,Jm1],那么你会将这些梯度分配给向量a根据每组中的哪些项目是该组的最大值,当它们重叠时添加它们。

例子:

如果a=[3,0,1,2,0]mJ=[0.7,0.9], 然后aJ=[0.7,0,0,0.9,0]

如果a=[3,0,4,2,0]mJ=[0.7,0.9], 然后aJ=[0,0,1.6,0,0]

表示最大池的 x(h,w) 输入和 y(h,w) - 输出。

然后dLdx(h,w)=dLdy(h,w)

从 x(hw) 得到的所有 y(h',w') 使得 y(h',w') = x(h,w)。

此相关的第 11 页