Softmax Regression

本文介绍了Softmax Regression,作为Logistic Regression的扩展,用于多类分类问题。讲解了Softmax模型的假设函数、损失函数及其导数,讨论了参数冗余性与优化方法,并对比了Softmax与Logistic回归的适用场景。
摘要由CSDN通过智能技术生成

Softmax简介

记得之前做过的logistic regression的练习是一个二类分类的问题,模型的假设函数是


      这个函数判断给定的x在当前的模型theta下被预测为1的概率,显然预测为0的概率就是1减去预测为1的概率即可。LR实际上就是在训练数据中的空间中找一条超平面把正负样本分开,与感知机、SVM(支持向量机)也有点类似,但是损失函数是不一样的。LR的损失函数为


LR也可以被扩展到多类分类问题,此时变为Softmax Regression问题,训练数据的类别属于1,2,...,k。这时有k个模型分别预测训练数据属于那个类别的概率。

    模型theta为:

 


损失函数

我们知道LR的损失函数为:

 

    扩展到Softmax Regression的损失函数为(交叉熵或者可看成是根据最大似然推出来的):

  

    对损失函数J求导是关键的一步,求导结果如下(这个要自己动手推一推)

    

    从求导结果我们可以大概看出,假设只有一个样本时,如果样本类别为j,则括号里面的指示函数为真,值为1,减去在当前模型theta下属于类j的概率,如果theta_j与其它theta_k (k!=j)相比较小,计算出的p就相对较小,则对theta_j的梯度就较小(为负数,theta_j越小,该负数越小),而对其它theta_k的p较大,梯度就较大(正数,theta_k越大,该正数越大),然后进行梯度更新时,由于是加上负梯度,所以theta_j就变大,theta_k变小了,这样就往正确结果走进了一步。(应该不是theta_j变大,而是theta_j*x变大,这样模型就能以更大的概率产生数据了,只要根据梯度更新规则:theta_j=theta_j+(1-p_j)*x,两边同时乘x,由于(1-p_j)*x*x>0,这样theta_j*x就变大了,同理,其它的theta_k*x就变小了)

   Softmax Regression有一个特点就是冗余的参数集,表现如下:


      说明theta被过度参数化了,每个theta_i减去同样的一个数后,都是得到相同的模型,说明最优解不唯一。但是由于J(theta)仍然是一个凸函数,所以梯度下降法求解是能得到全局最优解的,所以可能是在最优解处是平坦的,但是用牛顿法就会遇到问题了,因为hessen矩阵是奇异的(不可逆)。

       加入权重衰减后的模型为:


    求导函数变为:


     当k=2时,Softmax回归可以退化为Logistic回归:


     那么什么时候该用Softmax回归,又什么时候该用Logistc回归呢?当类别是严格互斥时用Softmax回归,当不是严格互斥,即某些数据可能属于多个类别时就用Logistic回归。


参考:

http://blog.csdn.net/freeliao/article/details/18447757

http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression



      

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值