【机器学习 吴恩达】CS229课程笔记notes1翻译-Part II分类和logistic回归

来源:互联网 发布:比特精灵软件下载 编辑:程序博客网 时间:2024/06/06 09:53

CS229 课程笔记

吴恩达


Part II  分类和logistic回归

      我们现在谈论分类问题。分类问题与回归问题类似,区别是在分类问题中,我们现在想要预测的y值只取少量的离散值。现在,我们聚焦于二值分类问题,y只取两个值,0和1。(我们在这里说的大多数可以扩展到多分类问题。)例如,如果我们试图构建一个垃圾邮件分类器,x(i)可能是一封邮件的某些特征,如果邮件是垃圾邮件,y为1,如果不是垃圾邮件,y为0。0也叫做负类,1叫做正类,它们用符号“-”和“+”表示。给定x(i),相应的y(i)也叫做训练样本的标签。

 

5  Logistic回归

      我们可以尝试解决分类问题,忽略y是离散值的事实,使用我们之前的线性回归算法试图预测给定x的y的值。然而,很容易构建这样的例子,但是这种算法的性能非常差。直观地,对于hθ(x),取值大于1或小于0没有意义,我们知道,y∈{0,1}。

      为了解决分类问题,让我们改变我们的假设hθ(x)的形式。我们将选择

 

      其中

 

      这叫做logistic函数,或sigmoid函数,下面是g(z)的描点图像:

 

      注意,当z-->∞时,g(z)趋向于1,当z--> -∞时,g(z)趋向于0。因此,g(z),h(x)的取值介于0和1之间。如前所述,我们仍使得x0=1,因此

      现在,我们g(z)函数的选择如上所述,实际上其他平滑地从0增长到1的函数也可以使用,但由于很多原因(当我们谈论广义线性模型和生成学习算法时我们会看到),选择logistic函数是十分自然的。在继续之前,sigmoid函数的推导是一个有用的特性,推导如下:

 

      因此,给定logistic回归模型,我们怎么拟合θ?下面我们将看到最小平方回归怎么在一系列假设下推导成最大似然估计,让我们给我们的分类模型赋予一系列概率假设,然后通过最大似然拟合参数。

      让我们假设

 

      上式可以写得更紧凑一点,如下:

 

      假设m个训练样本是独立生成的,我们可以写出似然函数如下:

 

      如前,最大化log似然函数更容易:

 

      我们怎么最大化似然函数?与我们在线性回归例子中的推导相似,我们可以使用梯度上升。写成向量符号,我们的更新可以写成。(注意,更新公式中为正而不是负,是由于我们现在是最大化,而不是最小化一个函数。)让我们从一个训练样本开始,对对数似然函数l(θ)求导如下:

 

      上面,我们使用g’(z)=g(z)(1-g(z))的事实,这给出了我们随机梯度上升规则:

 

      如果我们把上式与LMS(最小均方)更新规则做比较,我们看到它看起来很相似,但他们不是同一个算法,因为hθ(x(i))现在定义为θTx(i)的非线性函数。尽管如此,对于两个非常不同的算法和学习问题,我们最后得到相同的更新规则,这令人惊讶。这是巧合?还是背后有更深层的原因?我们将在广义线性模型(GLM)中进行回答。

 

6  插话:感知学习算法

     我们现在简要谈论一种算法,当我们谈论学习理论时,我们还将回来。考虑修改logistic回归方法,迫使其输出值或者是0或者是1,为此,我们需要改变g的定义为阈值函数:

 

      如果我们像前面一样,让hθ(x)=g(θTx),但使用修改后的g的定义,我们使用更新规则

 

      那么我们得到感知学习算法。

      在20世纪60年代,感知被认为是大脑中单个神经元的一个粗略的模型。尽管它如此简单,但在我们后面课程中谈论学习理论时,它将提供给我们分析的起始点。然而,尽管感知算法外观上与我们谈论的其他算法相似,相较于logistic回归与最小平方线性回归,它实际上是一个非常不同类型的算法。特别地,很难赋予感知预测有意义的概率解释,或者像最大似然估计算法那样推导感知算法。

 

7  最大化l(θ)的其他算法

      回到logistic回归,g(z)是sigmoid函数,让我们现在谈论一个不同的算法来最小化l(θ)。

      我们考虑牛顿方法找到函数的零点。特别地,假定我们有函数f:R-->R,我们希望找到一个值θ,使得f(θ)=0。这里θ∈R是一个实数。牛顿方法执行下面的更新:

 

      该方法有一个自然的解释,我们认为它通过一个线性函数逼近函数f,该线性函数是f在当前的θ处的切线,使得线性函数等于0,让下一个θ值为线性函数为0的地方的θ值。

      下面是牛顿方法的运行过程:

 

      在最左图中,函数f沿着线y=0绘制。我们试图找到θ,以便f(θ)=0;得到的θ的值大约为1.3,。假定我们用θ=4.5初始化该算法。牛顿方法拟合出一条直线,为f在θ=4.5处的切线,与值为0的线有交点(中图)。这给出我们下一个θ值,大约为2.8。最右图显示了再运行一次迭代的结果,更新的θ值大约为1.8,更多的迭代之后,我们快速靠近θ=1.3。

      牛顿方法给出了一种方式使得f(θ)=0。如果我们想要用它来最大化某个函数l呢?l的最大值相当于一阶导数l’(θ)为0的点。因此,通过让f(θ)=l’(θ),我们可以使用相同的算法来最大化l,我们获得更新规则:

 

      (考虑:如果我们想要使用牛顿方法来最小化,而不是最大化一个函数,应该改变什么?)

      最后,在我们的logistic回归中,θ是向量值,因此我们需要扩展牛顿方法来应用到logistic回归中。将牛顿方法扩展到多维情形中(也叫做Newton-Raphson方法),通过如下给出:

 

      这里,是l(θ)关于θi的偏导数向量,H是n×n矩阵(实际上是n+1×n+1矩阵,假定我们包括截距项),叫做Hessian矩阵,其矩阵项如下给出:

 

      牛顿方法比批梯度下降算法收敛得更快,需要更少的迭代就能非常靠近最小值。然而,一次牛顿方法的迭代比梯度下降算法的代价更高,因为它需要计算n×n的Hessian矩阵,并对它求逆;但只要n不太大,牛顿方法通常更快。当我们把牛顿方法应用到最大化logistic回归对数似然函数l(θ)时,该方法叫做Fisher scoring。


阅读全文
0 0
原创粉丝点击