先来看交叉熵的公式:
H(P,Q)=∑xP(x)log(1/Q(x))=-∑xP(x)log(Q(x)) |
在神经网络中,交叉熵的p指的是真实值,而q则是模型输出的预测值。
分类任务输出结果我们用一个列向量向量y=[y1 ,y2 ,...,yn ]T来表示,如果结果判别为第i类,则只有yi为1,其余都为0。(这种向量也被称为one-hot编码,即只有一位为1,其余为0)
此时pj=yj,鉴于上述y的列向量形式,交叉熵也就变成了H(P,Q)=-yilog(qi)=-log(qi)。
这个qj就是输出为第j类的概率,公式表达为:
qi =softmax(x)i =exp(xi)/∑exp(xj) |
(求和从1到n)
输出层一共有n个节点,xi指的是传入第i个节点的值(也就是上一层的x经由wTx+b后计算出的新x,还没有经过激活函数softmax),这样qi也就是新x送入激活函数后的结果,选取令概率q最大的那个i作为输出判别。
与适合回归任务的误差平方和损失MSE相比,采用交叉熵作为目标函数则更适合分类问题。