机器学习(回归八)——Softmax回归

前面博客说的是logistic逻辑回归,这篇博客则是Softmax回归,可以说Softmax回归是logistic回归的一般化(因为logistic是二分类的),适用于K分类的问题。Softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。

概念函数
p ( y = k ∣ x ; θ ) = e θ k T x ∑ l = 1 k e θ k T x , k = 1 , 2 , . . . , K p(y=k|x;\theta)=\frac{e^{\theta ^T_k x}}{\sum_{l=1}^k e^{\theta ^T_k x}},k=1,2,...,K p(y=kx;θ)=l=1keθkTxeθkTx,k=1,2,...,K
如果分子和分母不用指数的形式,直接 θ k T x θ_k^T x θkTx作为分子, ∑ l = 1 K θ l T x \sum_{l=1}^Kθ_l^T x l=1KθlTx 作为分母,结果也是0到1之间的概率,为什么还要用指数形式呢?
因为:e为底的指数函数,当自变量大小1时,因变量变化是特别剧烈的。如 θ 1 x = 100 , θ 2 x = 101 θ_1 x=100 ,θ_2 x=101 θ1x=100θ2x=101 ,此时变化比较小,如果变成指数形式,差异就会被放大很多,这是我们期望看到的。

原理
h θ ( x ) = [ p ( y ( i ) = 1 ∣ x ( i ) ; θ ) p ( y ( i ) = 2 ∣ x ( i ) ; θ ) . . . p ( y ( i ) = k ∣ x ( i ) ; θ ) ] = 1 ∑ j = 1 k e θ j T x ( i )   ⟹ θ = [ θ 11 θ 12 ⋯ θ 1 n θ 21 θ 22 ⋯ θ 2 n ⋮ ⋮ ⋱ ⋮ θ k 1 θ k 2 ⋯ θ k n ] h_\theta(x) = \begin{bmatrix} p(y^{(i)}=1|x^{(i)};\theta) \\ p(y^{(i)}=2|x^{(i)};\theta) \\ ...\\ p(y^{(i)}=k|x^{(i)};\theta) \end{bmatrix} =\frac{1}{\sum_{j=1}^k e^{\theta ^T_j x^{(i)}}} \, \Longrightarrow \theta= \begin{bmatrix} \theta_{11} & \theta_{12} & \cdots & \theta_{1n} \\ \theta_{21} & \theta_{22} & \cdots& \theta_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ \theta_{k1} & \theta_{k2} & \cdots & \theta_{kn} \\ \end{bmatrix} hθ(x)=p(y(i)=1x(i);θ)p(y(i)=2x(i);θ)...p(y(i)=kx(i);θ)=j=1keθjTx(i)1θ=θ11θ21θk1θ12θ22θk2θ1nθ2nθkn

损失函数
我们根据逻辑回归的损失函数,稍微变化一下
J ( θ ) = − 1 m ∑ i = 1 m ∑ j = 1 k I ( y ( i ) = j ) ln ⁡ ( e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) ) J(\theta)=-\frac{1}{m} \sum_{i=1}^m \sum_{j=1}^k I(y^{(i)}=j) \ln \left( \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} \right) J(θ)=m1i=1mj=1kI(y(i)=j)ln(l=1keθkTx(i)eθkTx(i))
I ( y ( i ) = j ) = { 1 , y ( i ) = j 0 , y ( i ) ≠ j I(y^{(i)}=j)=\begin{cases} 1, y^{(i)}=j\\ 0,y^{(i)} \neq j \end{cases} I(y(i)=j)={1,y(i)=j0,y(i)=j

假如有一条样本 ( x ( i ) , y ( i ) ) (x^{(i)}, y^{(i)}) (x(i),y(i)) 属于 j j j 类,我们希望的是这条样本为此类别时 ( y ( i ) = j ) (y^{(i)}=j) (y(i)=j) 的概率越大越好,即此时的 e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} l=1keθkTx(i)eθkTx(i) 越大越好,也就是 ln ⁡ ( e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) ) \ln \left( \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} \right) ln(l=1keθkTx(i)eθkTx(i)) 越大越好。总共m条样本,累加起来再除上m,最后再取相反数。
e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} l=1keθkTx(i)eθkTx(i) 取值是0~1,则 ln ⁡ ( e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) ) \ln \left( \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} \right) ln(l=1keθkTx(i)eθkTx(i)) 为负数,取相反数后, 的值为正,便得上面的J(θ)。
所以,我们期望的是 J ( θ ) J(θ) J(θ) 越小越好,所以我们可以令 J ( θ ) J(θ) J(θ) 为损失函数。

梯度下降法求解
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j − I ( y ( i ) = j ) ln ⁡ ( e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) ) = ∂ ∂ θ j − I ( y ( i ) = j ) ln ⁡ ( θ j T x ( i ) − ln ⁡ ( ∑ l = 1 k e θ l T x ( i ) ) ) = − I ( y ( i ) = j ) ( 1 − e θ k T x ( i ) ∑ l = 1 k e θ k T x ( i ) ) x ( i ) \begin{aligned} \frac{\partial}{\partial \theta _j} J(\theta) &= \frac{\partial}{\partial \theta _j} -I(y^{(i)}=j) \ln \left( \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} \right)\\ &=\frac{\partial}{\partial \theta _j} -I(y^{(i)}=j) \ln \left( \theta^T_j x^{(i)} - \ln \left( \sum_{l=1}^k e^{\theta_l^T x^{(i)}} \right) \right)\\ &= -I(y^{(i)}=j) \left( 1- \frac{e^{\theta ^T_k x^{(i)}}}{\sum_{l=1}^k e^{\theta ^T_k x^{(i)}}} \right) x^{(i)} \end{aligned} θjJ(θ)=θjI(y(i)=j)ln(l=1keθkTx(i)eθkTx(i))=θjI(y(i)=j)ln(θjTx(i)ln(l=1keθlTx(i)))=I(y(i)=j)(1l=1keθkTx(i)eθkTx(i))x(i)

所以对于批量或随机梯度下降有以下式子:
θ j = θ j + α ∑ i = 1 m I ( y ( i ) = j ) ( 1 − p ( y ( i ) = j ∣ x ( i ) ; θ ) ) x ( i ) θ j = θ j + α I ( y ( i ) = j ) ( 1 − p ( y ( i ) = j ∣ x ( i ) ; θ ) ) x ( i ) \begin{aligned} \theta_j &= \theta_j + \alpha \sum_{i=1}^m I(y^{(i)}=j)(1-p(y^{(i)}=j | x^{(i)};\theta))x^{(i)}\\ \theta_j &= \theta_j + \alpha I(y^{(i)}=j)(1-p(y^{(i)}=j | x^{(i)};\theta))x^{(i)} \end{aligned} θjθj=θj+αi=1mI(y(i)=j)(1p(y(i)=jx(i);θ))x(i)=θj+αI(y(i)=j)(1p(y(i)=jx(i);θ))x(i)

逻辑回归在真正的二分类中,效果还是可以的,但它不适合多分类,虽然softmax可以做,但实际应用中,对于多分类很少用softmax。但有两点需要注意

  • softmax和其他多分类的求解方式很不一样。其他多分类要构建很多个模型,而softmax只构建一个。
  • softmax属于各类别的概率都算出来,以最大的为标准,和深度学习最一个隐层的功能非常类似。所以深度学习最后一层是softmax
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值