Softmax-with-Loss 层(Softmax 函数和交叉熵误差)的计算说明

https://blog.****.net/weixin_43114885/article/details/90478622

笔记(八),其中

Softmax-with-Loss 层(Softmax 函数和交叉熵误差)的计算图如下:
Softmax-with-Loss 层(Softmax 函数和交叉熵误差)的计算说明

 

其中Softmax 函数(笔记四)

Softmax-with-Loss 层(Softmax 函数和交叉熵误差)的计算说明

  • 可以减去输入的最大值来防止溢出

a = np.array([1010, 1000, 990])

y=np.exp(a) / np.sum(np.exp(a)) # softmax函数的运算
print(y)       # 没有被正确计算
c = np.max(a) # 1010
c = a - c    #将每个元素值减小
print(c)
y=np.exp(c) / np.sum(np.exp(c))
print(y)
 

笔记(五)

交叉熵误差

Softmax-with-Loss 层(Softmax 函数和交叉熵误差)的计算说明

−lnx对应的函数图像如下:

Softmax-with-Loss 层(Softmax 函数和交叉熵误差)的计算说明


0≤yk≤1

所以输出的概率越小损失函数越大,和监督数据越不吻合。