logistic regression 以及梯度下降

先说下线性回归(直接上图)

如上图所示,根据肿瘤尺寸数据进行判断。设hypothesis函数为根据上图可以看出线性h(x)能够将上述数据进行有效分类,当h(x)>0.5,则为肿瘤患者,当h(x)<0.5,则为正常。但是线性模型会出现下面的一种情况

此时通过调整线性模型的参数后最终得到的线性模型为蓝色的直线,此时就会发现最右侧的红色叉号被预测成了正常,这显然是不合理的,并且后果是严重的(人家有病,你预测正常,影响治疗.....),此外以二分类为例子,假设label={0,1},但是我们使用线性模型最终的到predict y可能非常大或者非常小,这显然是不合理的。由此引入了所谓的logistic regression(逻辑回归)。

2logistic regression(逻辑回归)

逻辑回归其实就是改变了我们的hypothesis(如下图所示)

此时的0<h(x)<1,还有就是sigmoid function等价于logistic funtion,可以发现在用这个模型来处理上面的肿瘤问题,就可以解决上述的分错情况,并且预测的y值永远都在[0,1],说道这里,再说一下决策边界(decision boundary)其实就是将数据最大化正确分类的边界面。例如下图,假设形如h(x)=g(θ0+θ1x1+θ2x2)的hypothesis参数θ=[-3,1,1]T,
则有

predict Y=1, if -3+x1+x2>=0

predict Y=0, if -3+x1+x2<0

刚好能够将图中所示数据集进行很好地分类

另外还有非线性决策边界,都差不多。

logistic regression的cost function

回想一下线性回归的costfunction如下所示

此时我们不能再用线性模型的cost function来设计逻辑回归的cost function,因为这涉及到非凸函数的梯度下降问题(容易陷入局部极小值),具体如下图所示,左下方的图是将逻辑回归的hypothesis函数直接使用线性模型的cost function涉及模式得到的costfunction图,因为逻辑回归本身的hypothesis函数就是一个非线性的,所以以这种方式最终的得到的cost
function肯定是一个非凸函数,如果在使用梯度下降方法进行优化参数,很容易陷入局部最小值,影响最终的分类结果。

此时就到了cost function的设计时刻了。如下图所示

刚开始我也不理解为什么这么设计costfunction,后来看andrew的视频中有详细的解释,上图中的坐标横轴代表的是h(x),纵轴代表的是cost function,注意上述坐标图是在y=1的情况下画出的此时对应有,当h(x)=1也就是我们的预测值为1,且y=1(实际标签值=1),此时说明我们能够正确预测,且cost
function=0,对应的正好是坐标图中的(1,0)这个点,如图所示,曲线与h(x)轴的交点为(1,0),当我们的h(x)=0,也就是预测为0,且y=1,也就是实际对应标签应该是1的时候,这是表明判断是错误的,是有误差的,对应上图中的h(x)=0时,cost趋近于无穷大,也就是说y=1的条件下,如果我们能够正确预测,则cost=0,对应曲线与h(x)轴的交点(1,0),当预测错误(h(x)=0),此时的cost趋近于无穷大,也就是说我们对这种错误的情况,会进行惩罚,赋予cost function一个非常大的数,之后在进行梯度下降的时候进行调整。同理,当y=0的时候的情形是相类似的。如下图所示(分析过程和y=1类似)

以上对于logistic 的cost function解释来自于coursera的短幅教程,因为是短幅教程,所以Andrew教授没有对其做详细的公式推导证明,想观看的小伙伴可以去网易公开课上找到详细的教程以及推导。我后边有花时间看了下Andrew的详细课程,下面来具体推导下logistic 的cost function具体推导以及由来。

首先我们的hypothesis为现在我们做如下假设:也就是说h(x)代表的是在x为随机变量,theata为参数的情况下y=1的概率。由此我们可以退出最大似然函数(在x为随机变量,theata为参数的条件下y的最大似然函数如下)如下

下面我们要做的就是找到一个合适的theata使得L(theata)的值最大,利用高数里边学的知识,先设l(theata)=log(L(theata)),再利用反梯度下降法,然后一步一步的迭代更新theata的值,从而找到最大L(theata)时候的theata值。如下所示(这里的l(theata)是不是与我们上边的cost function有点相似啊,其实就是它了):

注意这里请观察theataj,与我们的线性model形式惊人的相似,难道logistic什么都没有做吗?和liner model一样吗?其实不是这样,这里的h(x)已经不是线性了,这点很重要。

ok,到这里基本上logistic已经讲完,后续再继续补充吧,还有一种更为高效的方法,直接通过矩阵运算得到更新的theata,避免这么多的迭代,后边在继续补充!

reference:

http://blog.csdn.net/pakko/article/details/37878837

http://blog.csdn.net/abcjennifer/article/details/7716281

http://open.163.com/movie/2008/1/E/B/M6SGF6VB4_M6SGHM4EB.html

时间: 2024-10-16 11:16:09

logistic regression 以及梯度下降的相关文章

机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

机器学习中的数学-回归(regression)、梯度下降(gradient descent)&lt;1&gt;

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

(转)机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recogni

机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)

最近在Coursera上看吴大神的Machine Learning,感觉讲的真的很棒.所以觉得应该要好好做做笔记,一方面是加强自己对ML中一些方法的掌握程度和理解,另一方面也能方便自己或者同样爱好ML的同学. 线性回归(Linear Regression) 线性回归(Linear Regression)应该是机器学习中最基本的东西了.所谓回归,想必大家在高中时期的课程里面就接触过,给定一系列离散的点(x0,y0),求一条直线 f(x)=ax+b 以使得最小.在machine learning 中

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可

回归、梯度下降

回归(regression).梯度下降(gradient descent) 发表于332 天前 ? 技术, 科研 ? 评论数 3 ? 被围观 1152 次+ 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是 stanfo

机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)

本文介绍了机器学习中基本的优化算法-梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有样本的特征向量组成的矩阵 x(i) 是第i个样本包含的所有特征组成的向量x(i)=(x(i)1,x(i)2...,x(i)n) y(i) 第i个样本的label,每个样本只有一个label,y(i)是标量(一个数值) hθ(x(i)) :拟合函数,机器学习中可以用多种类型的拟合函数 θ 是函数变量,

[Exercise]随机梯度下降、logistic回归

代码: 1 import numpy as np 2 import csv 3 import math as mt 4 5 def hypo(tt,xx): #hypothesis函数 6 exp=mt.e 7 tmp=0.0 8 for i in range(0,4): 9 tmp+=tt[i]*xx[i] 10 ans=mt.pow(exp,tmp)/(1+mt.pow(exp,tmp)) 11 return ans 12 13 def GDA(tt,iter): #随机梯度下降 14 fo

Regularization in Linear Regression & Logistic Regression

一.正则化应用于基于梯度下降的线性回归 上一篇文章我们说过,通过正则化的思想,我们将代价函数附加了一个惩罚项,变成如下的公式: 那么我们将这一公式套用到线性回归的代价函数中去.我们说过,一般而言θ0我们不做处理,所以我们把梯度下降计算代价函数最优解的过程转化为如下两个公式. 我们通过j>0的式子,能够分析得出,θj 我们可以提取公因子,即将上式变成: 由于θj的系数小于1,可以看出, 正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的 基础上令 θ 值减少了一个额外的值. 那么至