1.公式
用sigmoid推导
上式做一下转换:
y 视为类后验概率 p(y = 1 | x),则上式可以写为:
则有:
将上式进行简单综合,可写成如下形式:
写成对数形式就是我们熟知的交叉熵损失函数了,这也是交叉熵损失的推导由来:
2.代码画图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig)
X=np.linspace(0.01,0.99,101)
Y=np.linspace(0.01,0.99,101)
X,Y=np.meshgrid(X,Y)
Z=-(X*np.log2(Y)+(1-X)*np.log2(1-Y))
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap='rainbow')
plt.show()
可看出当两个分布一致时,熵取值最小