逻辑回归之从Logistic回归到sigmoid与softmax的分类问题
来源:互联网 发布:cache数据库优点缺点 编辑:程序博客网 时间:2024/05/16 05:19
写在最前面
- 是否觉得logistic,sigmoid与softmax有点混淆,自己看了书以及查阅资料以后,弄清了他们的关系,分享给大家。By the way,如果要面试机器学习算法岗之类的,逻辑回归是入门,希望这篇文章也作为你学习别的算法的思路入门。
- Logistic回归即逻辑斯谛回归,后面就简称逻辑回归啦。虽然名字中带有回归,但其实是一种经典的分类方法。
- 本文主要从分类问题出发,介绍逻辑回归的模型,参数估计,为何可以用作分类问题。
- 同时介绍二分类sigmoid函数与多分类softmax函数,其实sigmoid与softmax是分类模型中的一个非线性转换函数。
- 下一篇博文将结合吴恩达的课程从神经网络的角度理解逻辑回归。
—————————————————————————————————————————————
逻辑回归的分类
1. 关于logistic函数(也叫logistic分布函数)
- 此图中
μ =0.5,γ =1 - 函数性质
- 关于(
μ ,0.5)中心对称 - 值域
∈ [0,1] - 在x->
∞ 时,梯度变化缓慢(为什么后来神经网络的激活函数不再使用它的原因,后续博文详细介绍)
- 关于(
2. 二项逻辑回归与sigmoid函数
二项逻辑回归解决的是二分类问题。其中用到的非线性变换函数是sigmoid函数。
- sigmoid函数其实是logistic函数的特殊情况,即
μ=0,γ=1 F(x)=11+e−x
图像与上文相一致。 - 函数性质
- 首先具有logistic函数的所有性质
- 简单变形
F(x)=ex1+ex F(x)=1−F(−x) 即ex1+ex=1−e−x1+e−x
- 考察导数(还是比较重要的)
F‘(x)=F(x)(1−F(x))<F(x) (值域也在[0,1]!)
推导如下:F‘(x)=(11+e−x)‘
=−e−x(1+e−x)2
=−e−x1+e−x×11+e−x
=−11+ex×ex1+ex (变形一)
=F(x)×(1−F(x))
- sigmoid函数其实是logistic函数的特殊情况,即
二项逻辑回归(二分类问题)
分类模型(记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)=log∏ni=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))1−yi
——–>
LogL(w,b)=log∏ni=1p(yi|xi)=∑ni=1logp(yi|xi)
=∑ni=1log(p(yi=1|xi))yi×(p(yi=0|xi))1−yi
=∑ni=1log(p(yi=1|xi))yi+log(p(yi=0|xi))1−yi
=∑ni=1yilog(θ(wixi+bi))+(1−yi)log(1−θ(wixi+bi)) (将p(yi|xi)的公式带入)
=∑ni=1yi×logŷ +(1−yi)×log(1−ŷ ) (用ŷ 表示预测值)
接下来的工作是最大化似然函数,来估计参数
max(LogL(w,b)) ——–>w,b
因为损失函数我们理解的是越小越好啦,因此这里这样定义成本函数:
J(y,ŷ )=−1nLogL(w,b) (在对数似然函数前面加“-”号就完成了最大化似然函数到最小化成本函数的转换~)
此时这个函数是凸函数,我们可以放心大胆的在模型训练中进行优化了!
3.多项逻辑回归与softmax函数
- 首先需要弄清楚的是softmax回归其实是逻辑回归的一般化形式,是二项逻辑回归的扩展。
- 所以多项逻辑回归即softmax回归,用来处理多分类问题。
- softmax函数
根据WIKI百科定义,softmax函数形式如下:δ(Zj)=eZj∑Kk=1eZk for j = 1,2,…,K
这里可以将Z展开为矩阵的形式。定义这样阐述:softmax将一个k维向量映射到区间[0,1]的k维向量。 多项逻辑回归(softmax回归)
p(y=j|X,W)=eXTwj∑Kk=1eXTwk
具体的对于一个输入x,怎样实现它的分类情况呢?
———>p(y|x)=⎡⎣⎢⎢⎢⎢p(y=1|x)p(y=2|x)...p(y=K|x)⎤⎦⎥⎥⎥⎥=∑kj=11exTwk⎡⎣⎢⎢⎢⎢exTw1exTw2...exTwK⎤⎦⎥⎥⎥⎥
和理解二项回归的思路一样,这里经过线性回归+softmax非线性转换将x映射到[0,1]区间的K个概率值,哪个概率大大就是哪个咯。在换一种思路来理解,其实多项逻辑回归就是K个线性分类器再加上Softmax函数的非线性转换,最终映射到[0,1]区间的概率值,哪一个线性分类器对应的概率值大,输入就属于该分类!- 成本函数
对比二项逻辑回归的成本函数,可以推出:
————>LogL(ŷ ,y)=−1n∑ni=1∑Kj=1(y=j)log(p(y=j|w,x))
后续写到神经网络时,再补充梯度下降咯…
- 成本函数
写在最后
- 写的很辛苦(注重格式,排版,公式好看 balabala,虽然最终效果不怎么样),Latex公式编辑还得多多练习呀。However,希望能对大家有所帮助
- 理清这个思路(我觉得很重要的),逻辑回归用来解决分类问题,其中的sigmoid函数与softmax函数是非线性转换,这种“巧妙”的转换实现了回归用来解决分类问题(个人理解,如有错误,大家多多指正呀。)
- 再就是机器学习解决问题的一般思路,假设空间一般用来选择模型,模型确定以后就是参数学习的问题,这个过程中为了得到更好的模型,有正则化和优化的处理,分别对应着过拟合和参数优化。
- 写了不算少,说的也不算少,对你有帮助就好!
- 逻辑回归之从Logistic回归到sigmoid与softmax的分类问题
- Logistic回归与sigmoid
- Softmax回归与Logistic回归
- Logistic回归与Softmax回归
- 线性回归、岭回归、逻辑回归、信息量与熵、多类的分类问题softmax、链式法则与BP神经网络
- 逻辑回归与softmax回归
- 逻辑回归与softmax回归
- 机器学习-基于Logistic回归和Sigmoid函数的分类
- Logistic and Softmax Regression (逻辑回归和Softmax回归)
- Logistic and Softmax Regression (逻辑回归和Softmax回归)
- 从线性回归(Linear regression)到逻辑回归(Logistic regression)
- 分类问题之逻辑回归
- 神经网络学习:逻辑回归与 SoftMax 回归
- 机器学习之logistic回归与分类
- logistic回归和softmax回归
- 逻辑回归解决多分类和softmax
- CS229学习笔记之分类问题与逻辑回归
- 分类数据之logistic回归
- Java面试题全集(中)
- Tensorboard出现空白页解决方案
- jQuery选择器分门别类
- 在win10中使用Windows Subsystem for Linux(Archlinux)
- 【鱼C·零基础入门学习python】第16课到第22课习题答案
- 逻辑回归之从Logistic回归到sigmoid与softmax的分类问题
- Windows如何设置NODE_ENV
- 欢迎使用CSDN-markdown编辑器
- 关于深度学习的优化理论的一些点
- Java面试题全集(下)
- java语法
- 校内训练题 20170916
- C#委托及事件处理机制浅析
- hbuilder快捷键