深度学习——softmax回归,pytorch实现

本文介绍了softmax回归模型,包括softmax运算、交叉熵损失函数的原理和模型预测及评价。在PyTorch中实现softmax回归,通过softmax运算将输出转换为概率分布,交叉熵损失函数用于衡量预测与真实标签的差异,最终通过准确率评估模型性能。
摘要由CSDN通过智能技术生成

softmax回归模型

softmax回归跟线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。假设有4种特征和3种输出动物类别,则有

\begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{21} + x_3 w_{31} + x_4 w_{41} + b_1\end{aligned}

\begin{aligned} \ o_2 &= x_1 w_{12} + x_2 w_{22} + x_3 w_{32} + x_4 w_{42} + b_2 \end{aligned}

\begin{aligned} \ o_3 &= x_1 w_{13} + x_2 w_{23} + x_3 w_{33} + x_4 w_{43} + b_3. \end{aligned}

softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出o_1, o_2, o_3的计算都要依赖于所有的输入x_1, x_2, x_3, x_4,softmax回归的输出层也是一个全连接层。

softmax运算

既然分类问题需要得到离散的预测输出,一个简单的办法是将输出值o_i当作预测类别是iii的置信度,并将值最大的输出所对应的类作为预测输出,即输出\underset{i}{\arg}\max o_i。 

直接使用输出层的输出有两个问题。一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。

softmax运算符(softmax operator)解决了以上两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:

\hat{y}_1, \hat{y}_2, \hat{y}_3 = \text{softmax}(o_1, o_2, o_3),其中\hat{y}1 = \frac{ \exp(o_1)}{\sum{i=1}^3 \exp(o_i)}\hat{y}2 = \frac{ \exp(o_2)}{\sum{i=1}^3 \exp(o_i)} ,\hat{y}3 = \frac{ \exp(o_3)}{\sum{i=1}^3 \exp(o_i)}.

容易看出\hat{y}_1 + \hat{y}_2 + \hat{y}_3 = 10 \leq \hat{y}_1, \hat{y}_2, \hat{y}_3 \leq 1,因此\hat{y}_1, \hat{y}_2, \hat{y}_3是一个合法的概率分布。注意到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vinkuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值