永不秃头的ssf 2020-06-14 10:55 采纳率: 0%
浏览 514
已结题

如果损失函数的计算过程不涉及模型输出,那么损失函数的梯度如何对模型参数更新起作用?

这个问题来源于细粒度分类的一篇paper:

 

paper

其中问题在paper的4.1,4.2部分,描述的是该网络的损失函数

 

首先它提出了第一个函数用于突出类内的差异,

 

图片说明

 
 
对人脸识别或者细粒度分类有了解的应该对这个损失函数很熟悉,这个其实就是CenterLoss,其中的f(xn)是模型的输出。

然后问题在于第二个损失函数:

图片说明

可以看出该函数只是跟center有关,模型输出并不参与计算。

而centerloss的center是在loss.backward()之后对其进行修改,那么第二个损失函数也应该类似,也就是说在loss.backward()之前,模型输出不参与第二个损失函数的任何计算,只参与backward()之后更新center的步骤

那么按照反向传播的链式法则,第二个损失函数应该对模型参数更新没有影响,那这个函数就没有作用了。

但是在论文中依然提到了其关于模型输出的梯度:

图片说明

这里我就非常不理解了。

有人能够帮助我理解一下吗

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-06-14 15:29
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常