softmax与交叉熵的关系

softmax与交叉熵的关系

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。
1)分子:通过指数函数,将实数输出映射到零到正无穷。
2)分母:将所有结果相加,进行归一化。

假设模型三分类问题:-3、1.5、2
y1 = exp(-3) = 0.05
y2 = exp(1.5) = 4.48
y3 = exp(2) = 7.39
分母使概率之和等于1
z1 = y1/(y1+y2+y3) = 0.05/(1.05+4.48+7.39)
z2 = y2/(y1+y2+y3) = 4.48/(1.05+4.48+7.39)
z3 = y3/(y1+y2+y3) = 7.39/(1.05+4.48+7.39)

import numpy as np



x=[-1,1.2,2,3]
y=np.exp(x)
sum=np.sum(y)
z=y/sum

交叉熵:交叉熵越小损失越小分类效果越好

     交叉熵刻画的是预测输出与期望输出的距离,交叉熵的值越小,两个概率分布就越接近。
     假设概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵

在这里插入图片描述
p为标签,q为预测输出 p q同一个变量的两个不同的分布。

神经网络解决多分类中,最后一层输出N个节点,表示分类N种。如果一个输入的样本属于K类,则这个类对应的输出节点值为1,其它为0.这个样本的标签
. … p = [0,0,0,1,0,0]
而实际的输出的每个节点是神经网络的加权的出来的值,在经过一个softmax,得到一个预测输出 .
. . . .q = [0.1,0.1,0.1,0.5,0.1,0.1]
在通过交叉熵H(p,q) 来判定预测输出,与标签的接近程度===使用交叉熵来计算损失

计算方法一:

在这里插入图片描述

假设N=3,期望标签输出为p=(1,0,0),实际预测输出
q1=(0.5,0.2,0.3)
q2=(0.8,0.1,0.1)
在这里插入图片描述
q2与P的交叉熵小说明q2与标签越接近

计算方法二:

在这里插入图片描述在这里插入图片描述
在实际训练中:输入的样本是一个batch,则输出的H(p,q)为多维的,对一个batch最后去平均 == 0.2
在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值