本文是在softmax求导过程中,表达个人对j!=y[i]的理解。
理解这个东西花了3天,有可能理解还有错,请指出。

灵魂拷问:对谁求导啊,谁对谁求导啊?

一般是损失函数对权重求导。数学表达:result = d(loss)/d(W)
求导得到的结果是用来更新权重W用的,数学表达:W = W-result

怎么理解j==y[i]j!=y[i]?

softmax中的loss是这样子的。(下面的公式是从cs231n抄的
outputi=efyijefj output_i=\frac{e^{f_{y_i}}}{ \sum_j e^{f_j} }
Li=log(outputi) L_i = -\log\left(output_i\right)
j是用来遍历calss的index。
i是输入图片的编号,是用来遍历train_num。
f = X*W+b。
y[i]是输入图片的正确标签,假如样本是第3张图片,那么y[3]就是第3张图片的正确标签(猫)。

众所周知,计算结果中分两种情况,j==y[i]j!=y[i]
dj=outputi1(j==y[i]) d_j=output_i-1*(j==y[i])
这里不解释为啥求导出这个结果,就是这个对我来说比较抽象的j==y[i]花了我三天时间。下图带来秒杀级理解:
一个普通菜鸡花了3天时间才明白softmax求导计算结果

相关文章:

  • 2021-09-18
  • 2021-11-22
  • 2022-03-07
  • 2021-12-20
  • 2022-02-13
  • 2021-06-24
  • 2021-10-09
猜你喜欢
  • 2021-04-17
  • 2021-12-02
  • 2022-12-23
  • 2021-07-18
  • 2021-12-29
  • 2021-09-20
  • 2021-11-20
相关资源
相似解决方案