Pytorch入门>Softmax回归 1.0基础概念

本文探讨了回归与分类的区别,回归预测连续数值,分类处理离散值。Softmax常用于分类,输出概率分布。文章介绍了Softmax函数的原理,以及它如何与交叉熵损失函数结合用于优化模型。交叉熵是衡量两个概率分布接近程度的指标,常用于分类问题的损失函数。此外,还简述了信息熵、相对熵的概念及其在模型优化中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 回归与分类

回归任务是连续数值预测,分类任务是离散数值。例如,对于一个人一年的消费记录来说,回归任务可以预测下一个月的支出金额,分类问题可以对消费类型进行划分。
回归问题常输出一个数值之后与真实值比较计算损失,分类问题输出多个值主要与概率分布有关。
Softmax虽然名字里有回归但常是是用于解决分类问题。

2. Softmax分类问题

分类问题中常使用one-hot向量的形式表示数据的标签,将向量位置与标签类别对应,如果是该类则标为1否则标为0。例如,[1,0]可以表示一张猫的图片,[0,1]可以表示一张狗的图片。
简单的分类问题可以使用均方损失训练模型:
MSE(y,y′)=1n∑i=1n(yi−yi′)MSE(y, y^{'}) = \frac{1}{n}\sum_{i=1}^n(y_i-y_i^{'})MSE(y,y)=n1i=1n(yiyi)
将模型输出的最大值作为预测结果:
y^=argmax(Oi)\hat{y} = argmax(O_i)y^=argmax(Oi)
其中oio_ioi代表置信度,因此,需要对正确类别的置信度OyO_yOy远大于其他类的置信度,体现在公式上,我们希望oi−Oyo_i-O_yoiOy大于一个阈值Δ\DeltaΔ:
Oy−Oi≥Δ(y,i)O_y-O_i \geq \Delta (y,i)OyOiΔ(y,i)
在此之上,提出匹配概率,每一位非负且和为1,这就是softmax:
yi^=exp(Oi)∑kexp(ok)\hat{y_i} = \frac{exp(O_i)} {\sum_{k}exp(o_k)}yi^=kexp(ok)exp(Oi)
其中使用指数是因为无论什么数值都是可以变为非负的数,再除以总和,就可以使所有和为1。因为所有元素非负且和为1所以可以看是一个概率,因为输入的标签也满足这样的特性,所以我们得到了真实的概率和预测的概率,可以比较两个概率之间的区别计算损失。

3. Softmax到交叉熵CrossEntropy

信息熵:也叫信息量。通常来说一个事件发生的概率越大,不确定性越小,其携带的信息量就越小。例如生活中我们知道春节是法定假日,因此春节放假这个事情给人的信息就很小。而因为疫情春节假期延长这是一个突发事件,发生的概率小,不确定性大,因此携带的信息量更大,表现在公式上对于事件xxx
I(x)=log(1p(x))=−log(p(x))I(x) =log(\frac{1}{p(x)}) =-log(p(x))I(x)=log(p(x)1)=log(p(x))
其中p(x)p(x)p(x)为事件xxx发生的概率。当事件肯定发生其概率为1时,信息量为0。根据真实的概率分布,我们能够找到一个最优策略,以最小的代价消除系统的不确定性,而这个代价大小就是信息熵。

:熵就是计算一组事件或一个系统的信息量期望,也可以理解为平均编码长度:
H(p)=∑i=1n−p(xi)log(p(xi))H(p) = \sum_{i=1}^n-p(x_i)log(p(x_i))H(p)=i=1np(xi)log(p(xi))
其中p(xi)p(x_i)p(xi)为事件xix_ixi的概率。

交叉熵:交叉熵常用于衡量两个概率分布:
H(p,q)=∑i=1n−pilog(qi)H(p,q) =\sum_{i=1}^n -p_ilog(q_i)H(p,q)=i=1npilog(qi)
可以直观的理解为,用错误的分布q来表示来自真实分布p的平均编码长度。也可以理解为在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。交叉熵越低,这个策略就越好,最低的交叉熵也就是使用了真实分布所计算出来的信息熵,此时交叉熵=信息熵。这也是为什么在机器学习中的分类算法中,我们总是最小化交叉熵,因为交叉熵越低,就证明由算法所产生的策略最接近最优策略,也间接证明我们算法所算出的非真实分布越接近真实分布。

相对熵:也就是俗称的KL散度,用于衡量两个概率分布的距离:
Dkl=∑i=1np(xi)logp(xi)q(xi)D_{kl}=\sum_{i=1}^np(x_i)log\frac{p(x_i)}{q(x_i)}Dkl=i=1np(xi)logq(xi)p(xi)

假设我们想知道某个策略和最优策略之间的差异,我们就可以用相对熵来衡量这两者之间的差异:
D(p∣∣q)=∑i=1np(xi)logp(xi)q(xi)=∑i=1np(xi)log(p(xi))−∑i=1np(xi)log(qi)=H(p,q)−H(p)D(p||q) = \sum_{i=1}^np(x_i)log\frac{p(x_i)}{q(x_i)} = \sum_{i=1}^np(x_i)log(p(x_i))- \sum_{i=1}^np(x_i)log(q_i) = H(p,q)-H(p)D(pq)=i=1np(xi)logq(xi)p(xi)=i=1np(xi)log(p(xi))i=1np(xi)log(qi)=H(p,q)H(p)
由此可以得出:相对熵 = 某个策略的交叉熵 - 信息熵(根据系统真实分布计算而得的信息熵,为最优策略)。 由于信息熵是一个常数(真实的概率分布是固定的),所以最小化交叉熵也就是最小化相对熵。
另外还看到一些评论说最小化交叉熵等同于求最大似然估计,这部分之后学习了极大似然估计再和大家讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值