Softmax
本系列重点在浅显易懂,快速上手。不进行过多的理论讲解:也就是不去深究what,而是关注how。全文围绕以下三个问题展开:
1)长什么样?
2)解决什么问题?
3)怎么实现?
3.1)从数学讲,原理
3.2)从代码上讲,如何掉包实现
长什么样
上节讲了逻辑回归实现2分类,那么多分类的问题,就要通过softmax来实现,在此之前回忆“线性回归”和“逻辑回归”
1)线性回归建模,用于预测y是连续值的问题,值域的范围是(-∞,+∞)最终的目的就是为了找到一组θ1,θ2,...,θ13,θ0θ_1,θ_2,...,θ_{13},θ_0θ1,θ2,...,θ13,θ0(除了系数,还包含一个常数项θ0θ_0θ0,使得下式成立。
θ1∗x1+θ2∗x2+......+θk∗xk+θ0=y θ_1*x_1+θ_2*x_2+......+θ_{k}*x_k+θ_0=y θ1∗x1+θ2∗x2+......+θk∗xk+θ0=y
2)逻辑回归建模,用于解决二分类问题,y值代表的是取1的概率。值域的范围是[0,1]最终的目的就是为了找到一组θ1,θ2,θ3,θ4,θ0θ_1,θ_2,θ_3,θ_4,θ_0θ1,θ2,θ3,θ4,θ0(除了4个系数,还包含一个常数项θ0θ_0θ0),使得下式成立。
11+e−(θ1∗x1+θ2∗x2+θ3∗x3+θk∗xk+θ0)=11+e−θTx=y \frac{1}{1+e^{-(θ_1*x_1+θ_2*x_2+θ_3*x_3+θ_k*x_k+θ_0)}} = \frac{1}{1+e^{-θ^Tx}} = y 1+e−(θ1∗x1+θ2∗x2+θ3∗x3+θk∗xk+θ0)1=1+e−θTx1=y
3)softmax模型,用于解决多分类问题,假如要解决3分类问题。模型的输出应该是什么形式的? 假如还是按逻辑回归的方式,输出一个[0,1]之间的值,那这个值应该代表取到类别1,类别2,类别的概率?所以,应该同时输出3个值,y1,y2,y3y_1,y_2,y_3y1,y2,y3,再配个分母,即:
[y1y1+y2+y3,y2y1+y2+y3,y3y1+y2+y3] \left[\\ \frac{y_1}{y_1+y_2+y_3},\\ \frac{y_2}{y_1+y_2+y_3},\\ \frac{y_3}{y_1+y_2+y_3}\\ \right] [y1+y2+y3y1,y1+y2+y3y2,y1+y2+y3y3]
分别代表是类别1,类别2,类别3的概率,加起来为1。具体的函数解析式,应该是如下形式:
θ1_1∗x1+θ1_2∗x2+......+θ1_n∗xn+θ1_0=y1θ2_1∗x1+θ2_2∗x2+......+θ2_n∗xn+θ3_0=y2θ3_1∗x1+θ3_2∗x2+......+θ3_n∗xn+θ3_0=y3 θ_{1\_1}*x_1+θ_{1\_2}*x_2+......+θ_{1\_n}*x_n+θ_{1\_0}=y_1\\ θ_{2\_1}*x_1+θ_{2\_2}*x_2+......+θ_{2\_n}*x_n+θ_{3\_0}=y_2\\ θ_{3\_1}*x_1+θ_{3\_2}*x_2+......+θ_{3\_n}*x_n+θ_{3\_0}=y_3 θ1_1∗x1+θ1_2∗x2+......+θ1_n∗xn+θ1_0=y1θ2_1∗x1+θ2_2∗x2

Softmax是一种用于多分类问题的模型,它扩展了逻辑回归的概念。模型输出每个类别的概率,确保所有概率之和为1。通过最大似然估计得到交叉熵损失函数,并使用梯度下降法优化参数。文章介绍了Softmax的数学原理,代码实现以及在sklearn库中的应用。
最低0.47元/天 解锁文章
576





