这个问题来源于细粒度分类的一篇paper:
其中问题在paper的4.1,4.2部分,描述的是该网络的损失函数
首先它提出了第一个函数用于突出类内的差异,
对人脸识别或者细粒度分类有了解的应该对这个损失函数很熟悉,这个其实就是CenterLoss,其中的f(xn)是模型的输出。
然后问题在于第二个损失函数:
可以看出该函数只是跟center有关,模型输出并不参与计算。
而centerloss的center是在loss.backward()之后对其进行修改,那么第二个损失函数也应该类似,也就是说在loss.backward()之前,模型输出不参与第二个损失函数的任何计算,只参与backward()之后更新center的步骤
那么按照反向传播的链式法则,第二个损失函数应该对模型参数更新没有影响,那这个函数就没有作用了。
但是在论文中依然提到了其关于模型输出的梯度:
这里我就非常不理解了。
有人能够帮助我理解一下吗