逻辑回归之从Logistic回归到sigmoid与softmax的分类问题

来源:互联网 发布:cache数据库优点缺点 编辑:程序博客网 时间:2024/05/16 05:19

写在最前面

  • 是否觉得logistic,sigmoid与softmax有点混淆,自己看了书以及查阅资料以后,弄清了他们的关系,分享给大家。By the way,如果要面试机器学习算法岗之类的,逻辑回归是入门,希望这篇文章也作为你学习别的算法的思路入门。
  • Logistic回归即逻辑斯谛回归,后面就简称逻辑回归啦。虽然名字中带有回归,但其实是一种经典的分类方法。
  • 本文主要从分类问题出发,介绍逻辑回归的模型,参数估计,为何可以用作分类问题。
  • 同时介绍二分类sigmoid函数与多分类softmax函数,其实sigmoid与softmax是分类模型中的一个非线性转换函数。
  • 下一篇博文将结合吴恩达的课程从神经网络的角度理解逻辑回归。

—————————————————————————————————————————————

逻辑回归的分类

1. 关于logistic函数(也叫logistic分布函数)

F(x)=11+e(xμ)/γ

  • 此图中μ=0.5, γ=1
  • 函数性质
    • 关于(μ,0.5)中心对称
    • 值域[0,1]
    • 在x->时,梯度变化缓慢(为什么后来神经网络的激活函数不再使用它的原因,后续博文详细介绍)

2. 二项逻辑回归与sigmoid函数

  • 二项逻辑回归解决的是二分类问题。其中用到的非线性变换函数是sigmoid函数。

    • sigmoid函数其实是logistic函数的特殊情况,即μ=0,γ=1
      F(x)=11+ex
      图像与上文相一致。
    • 函数性质
      • 首先具有logistic函数的所有性质
      • 简单变形
        • F(x)=ex1+ex
        • F(x)=1F(x)ex1+ex=1ex1+ex
      • 考察导数(还是比较重要的)
        F(x)=F(x)(1F(x))<F(x) (值域也在[0,1]!)
        推导如下:
        F(x)=(11+ex)
        =ex(1+ex)2
        =ex1+ex×11+ex
        =11+ex×ex1+ex (变形一)
        =F(x)×(1F(x))
  • 二项逻辑回归(二分类问题)

    • 分类模型(记sigmoid函数为θ
      p(Y=1|x)=θ(w.x+b) (稍观察一下,发现就是在线性回归的基础上加了个非线性变换哦)
      p(Y=0|x)=1θ(w.x+b)
      在给定的输入x下,上述两式分别求得Y=1和Y=0的概率,比较这两个概率值的大小,
      将x分类到概率值大的那一类。(线性回归+sigmoid函数=二项逻辑回归

    • 损失函数(Loss function)

      • 对比线性回归,它用到的loss function是MSE(均方误差)。逻辑回归是否亦可以采用MSE呢,事实证明不可以,因为此时用MSE作为loss function,函数是非凸的,不能进行凸优化了呀(比如就会取得局部最小值啦,后续写一篇专门介绍凸优化的文章)
      • 因此拿出概率统计的知识,如何做参数估计呢,你可能想到点估计,矩估计,极大似然估计…(如果不懂其实也没关系啦你记住就好),其中极大似然估计经常用到,这里用到的就是它!
      • 关于MLE(极大似然估计),就是假定随机变量不变,最大化似然函数对参数做出估计,简单介绍一下两种类型(连续和离散)的似然函数的求解方法。
        离散型:
        L(θ)=L(x1,x2,...,xn;θ)=ni=1p(xi;θ)
        连续性:
        L(θ)=L(x1,x2,...,xn;θ)=ni=1f(xi;θ)
        形式看起来特别像,都是累乘的形式,只不过离散的是分布的累乘,而连续的是概率密度的累乘。实际应用中,一般用到的是对数似然函数 ,就是利用到log函数的性质(和的对数等于对数的积),方便运算。

      • 实际操作一下
        首先似然函数
        L(w)=ni=1p(yi|xi)
        然后对数似然函数
        LogL(w)=logni=1p(yi|xi)=ni=1logp(yi|xi)
        这里对p(yi|xi),对于每一个输入xi,p(yi=1|xi)与p(yi=0|xi)其实是互斥的,从公式也可以看出来,当然最直观的就是,二分类问题你不是1就是0咯。因此可以得出:
        p(yi|xi)=(p(yi=1|xi))yi×(p(yi=0|xi))1yi
        ——–>
        LogL(w,b)=logni=1p(yi|xi)=ni=1logp(yi|xi)
        =ni=1log(p(yi=1|xi))yi×(p(yi=0|xi))1yi
        =ni=1log(p(yi=1|xi))yi+log(p(yi=0|xi))1yi
        =ni=1yilog(θ(wixi+bi))+(1yi)log(1θ(wixi+bi)) (将p(yi|xi)的公式带入)
        =ni=1yi×logŷ +(1yi)×log(1ŷ ) (用ŷ 表示预测值)
        接下来的工作是最大化似然函数,来估计参数
        max(LogL(w,b)) ——–>w,b
        因为损失函数我们理解的是越小越好啦,因此这里这样定义成本函数:
        J(y,ŷ )=1nLogL(w,b) (在对数似然函数前面加“-”号就完成了最大化似然函数到最小化成本函数的转换~)
        此时这个函数是凸函数,我们可以放心大胆的在模型训练中进行优化了!


3.多项逻辑回归与softmax函数

  • 首先需要弄清楚的是softmax回归其实是逻辑回归的一般化形式,是二项逻辑回归的扩展。
  • 所以多项逻辑回归即softmax回归,用来处理多分类问题。

  • softmax函数
    根据WIKI百科定义,softmax函数形式如下:
    δ(Zj)=eZjKk=1eZk for j = 1,2,…,K
    这里可以将Z展开为矩阵的形式。定义这样阐述:softmax将一个k维向量映射到区间[0,1]的k维向量。
  • 多项逻辑回归(softmax回归)
    p(y=j|X,W)=eXTwjKk=1eXTwk
    具体的对于一个输入x,怎样实现它的分类情况呢?
    ———>
    p(y|x)=p(y=1|x)p(y=2|x)...p(y=K|x)=kj=11exTwkexTw1exTw2...exTwK
    和理解二项回归的思路一样,这里经过线性回归+softmax非线性转换将x映射到[0,1]区间的K个概率值,哪个概率大大就是哪个咯。在换一种思路来理解,其实多项逻辑回归就是K个线性分类器再加上Softmax函数的非线性转换,最终映射到[0,1]区间的概率值,哪一个线性分类器对应的概率值大,输入就属于该分类!

    • 成本函数
      对比二项逻辑回归的成本函数,可以推出:
      ————>
      LogL(ŷ ,y)=1nni=1Kj=1(y=j)log(p(y=j|w,x))
      后续写到神经网络时,再补充梯度下降咯…

写在最后

  • 写的很辛苦(注重格式,排版,公式好看 balabala,虽然最终效果不怎么样),Latex公式编辑还得多多练习呀。However,希望能对大家有所帮助
  • 理清这个思路(我觉得很重要的),逻辑回归用来解决分类问题,其中的sigmoid函数与softmax函数是非线性转换,这种“巧妙”的转换实现了回归用来解决分类问题(个人理解,如有错误,大家多多指正呀。)
  • 再就是机器学习解决问题的一般思路,假设空间一般用来选择模型,模型确定以后就是参数学习的问题,这个过程中为了得到更好的模型,有正则化和优化的处理,分别对应着过拟合和参数优化。
  • 写了不算少,说的也不算少,对你有帮助就好!
原创粉丝点击