softmax分类及交叉熵损失

回归就是通过y=wx+b得到的。

而如果是分类,则输出层神经元个数即为类别数。例如3类,

o(i)=wx+b,i=1,2,3,   然后将输出值o做指数变化exp(o(i)),得到的exp(o(1))/sumexp(o(i)),即将输出值变为和为1的概率分布。(即对输出进行指数归一化处理)

分类的损失函数一般用交叉熵损失函数(回归一般用L2损失)

交叉熵的定义:,H(	extbf{y(i)},	extbmathbf{hat{y}(i)})=-sum_{j=1}^{q}y_{j}^{(i)}*loghat{y}_{j}^{(i)},其中y_hat是模型预测值构成的向量,而y是实际类别构成的向量,实际类别中y∑j=1qy(i)jlogy^(i)j∑j=1qy(i)jlogy^(i)j只有一个元素非零的矢量(这个元素位置即为类别)。

因此交叉熵可以写成H(y(i),y^(i))=-y_{i}^{(i)}*loghat{y}_{i}^{(i)},     因此实际交叉熵损失只关心正确预测类别的概率,只要足够大(比其他类别的大)就可正确分类。

交叉熵损失函数:L(Theta)=frac{1}{n}sum_{i=1}^{n}H(	extbf{y(i)},	extbmathbf{hat{y}(i)}),    最小化交叉熵损失函数等价于最大化训练数据集所有标签类别联合预测概率。(即最大化y1,y2,  y3:各正确预测类别的概率)

原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725319.html