论文地址
This looks like that: deep learning for interpretable image recognition
prototype layer
prototype layer对应的公式如下:
gpj=maxz⃗ ∈patch(z)−log(||z⃗ −pj||22+ϵ) g p j = max z → ∈ p a t c h ( z ) − l o g ( | | z → − p j | | 2 2 + ϵ )
其中max层可以用现成的maxpool层来实现,下面重点讨论新的层实现
fz=−log(||z⃗ −pj||22+ϵ) f z = − l o g ( | | z → − p j | | 2 2 + ϵ )
这个层的输入输出的通道数可以不一致,但是每个通道内的尺寸需要一致. 为了后续讨论方便,约定以下符号
* in_data: (batchSize, inChNum, height, width), 输入数据,即公式中的 z z
* weight: (outChNum, inChNum, 3, 3), filter权重, 此处假设采用3x3的filter
* out_data: (batchSize, outChNum, height, width), 输出数据,迹公式中的
in_data (one sample)
z00 z 00 | z01 z 01 | z02 z 02 |
z10 z 10 | z11 z 11 | z12 z 12 |
z20 z 20 | z21 z 21 | z22 z 22 |
z30 z 30 | z31 z 31 | z32 z 32 |
weight (one sample and one output channel)
w00 w 00 | w01 w 01 |