瞎搞系列-重读softmax

本文介绍了softmax函数在机器学习中的作用及其应用,详细解释了softmax如何将多分类输出转化为相对概率,并探讨了其与SVM的区别及损失函数计算方式。

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

瞎搞系列-重读softmax

softmax 在机器学习与深度学习中有着比较广泛的作用,尤其它在处理多分类任务的时候,分类器单元需要通过softmax函数进行数值处理。对于softmax的函数定义如下所示:


其中,vi是分类器前级输出单元的输出,i表示类别索引,总得类别个数为C。Si表示当前元素的指数与所有元素指数和的比值。softmax将多分类的输出数值转化为相对概率,比较容易了解和比较。

一个多分类的问题,C=4.线性分类模型最后输出层包含了四个值,分别是:


经过softmax处理后的相对概率为:


比较明显的是,softmax的输出表征了不同类别之间的相对概率,可以清晰的看到有些概率比较大。softmax将连续值转化为相对概率,更加有利于我们理解。在实际应用中,softmax需要注意数值溢出,所以对V进行数值处理:V中的每个元素减去V中的最大值。


softmax代码:

scores = np.array([123, 456, 789])    # example with 3 classes and each having large scores
scores -= np.max(scores)    # scores becomes [-666, -333, 0]
p = np.exp(scores) / np.sum(np.exp(scores))

2,softmax损失函数

线性分类器的输出是输入x与权重系统的矩阵相乘:s=wx.其中,下标i表示i样本。求导过程的程序设计分为两种:for循环,另一种直接矩阵计算。

实际上,矩阵运算比嵌套循环要快很多,特别是在训练样本数目很多的情况下。

所以在用机器学习算法模型的时候,尽量使用矩阵运算,少用嵌套循环,以提高运算速度。

3,softmax与SVM

softmax线性回归损失函数计算相对概率,叫做交叉熵。SVM的损失函数为hinge loss, 比较关注分类样本和错误样本之间的距离,只要距离大于deta,不需要在乎距离相差多少。而softmax中每个类别的得分函数都会影响到损失函数的大小。

对于正则化来说,正则化参数越大,对权重限制也就越大,正则化参数越大,softmax各类输出越接近。

4,softmax实际应用

转自:点击打开链接



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值