机器学习中的Softmax回归及其运算原理

释放双眼,带上耳机,听听看~!
了解机器学习中的Softmax回归以及其在解决多分类问题中的运算原理。文章讨论了Softmax回归的含义、运算方法以及在神经网络中的应用。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第27天,点击查看活动详情

机器学习在监督学习领域主要解决两个问题,分类和回归问题。那么分类问题又分为二分类问题和多分类问题,而二分类问题相对来说很好解决,我们只需要构建输出层有一个神经元的神经网络,然后结合sigmoid函数,即可实现二分类问题。而神经网络的多分类问题就相对复杂一些,假如我们要解决三分类的问题,那么我们构建神经网络的时候,就需要构建一个输出层为三个神经元的神经网络,然后配合使用softmax回归来完成神经网络多分类的任务。

机器学习中的Softmax回归及其运算原理

Softmax回归的含义

通常,机器学习实践者用 分类 这个词来描述两个有微妙差别的问题:
(1)我们只对样本的硬性类别感兴趣,即属于哪个类别;
(2)我们希望得到软性类别,即得到属于每个类别的概率。
这两者的界限往往很模糊,这其中的一个原因是:即使我们只关心硬类别,但我们仍然使用软类别的模型。

那么我拿一个图像分类的问题来具体说明一下。假设每次输入的是一个图像,可能是“猫”,“鸡”和“狗”中的任意一个,那对于它们的标签表示我们肯定不能用{猫,鸡,狗}{text{猫}, text{鸡},text{狗}}。于是,我们使用统计学家很早以前就发明的一种表示分类数据的简单方法:独热编码(one-hot encoding)。独热编码是一个向量,它的分量和类别一样多。类别对应的分量设置为1,其他所有分量设置为0。在我们的例子中,标签yy将是一个三维向量,其中(1,0,0)(1, 0, 0)对应于“猫”、(0,1,0)(0, 1, 0)对应于“鸡”、(0,0,1)(0, 0, 1)对应于“狗”:

softmax回归是一个单层神经网络。由于计算每个输出o1o_1o2o_2o3o_3取决于所有输入x1x_1x2x_2x3x_3x4x_4,所以softmax回归的输出层也是全连接层。

机器学习中的Softmax回归及其运算原理

Softmax运算

那么对于多分类问题来说,使用的softmax函数即是网络输出层的激活函数,softmax函数可以对输出值进行归一化操作,把所有输出值都转化为概率,所有概率值加起来等于1。

为了将未归一化的预测变换为非负并且总和为1,同时要求模型保持可导。首先对每个未归一化的预测求幂,这样可以确保输出非负。为了确保最终输出的总和为1,需要再对每个求幂后的结果除以它们的总和。运算公式如下:

y^=softmax(o)其中y^j=exp⁡(oj)∑kexp⁡(ok)hat{mathbf{y}} = mathrm{softmax}(mathbf{o})quad text{其中}quad hat{y}_j = frac{exp(o_j)}{sum_k exp(o_k)}

其中 y^jhat{y}_j (模型的输出)可以视为属于 类jj 的概率。然后我们可以选择具有最大输出值的类别 argmax⁡jyjoperatorname*{argmax}_j y_j 作为我们的预测。例如,如果y^1hat{y}_1y^2hat{y}_2y^3hat{y}_3分别为0.1、0.8和0.1,那么我们预测的类别是2,在我们的例子中代表“鸡”。

我们可以看出对于所有的jj总有0≤y^j≤10 leq hat{y}_j leq 1,因此,y^hat{mathbf{y}}可以视为一个正确的概率分布。softmax运算不会改变未归一化的预测omathbf{o}之间的顺序,只会确定分配给每个类别的概率。因此,在预测过程中,仍然用下式来选择最有可能的类别。

argmax⁡jy^j=argmax⁡joj.operatorname*{argmax}_j hat y_j = operatorname*{argmax}_j o_j.

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

LLaMA模型详解:从Alpaca到Vicuna的微调和性能对比

2023-12-18 18:17:14

AI教程

Mochi Diffusion:极致性能和极低内存占用的苹果芯片Mac应用

2023-12-18 18:21:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索