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

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 条评论
登录 后参与评论

相关文章

来自专栏专知

【EMNLP2018】FAIR动态元嵌入:动态选择词嵌入模型

【导读】词嵌入已经彻底改变了自然语言处理(NLP)的世界。从概念上讲,词嵌入是一种语言建模方法,它将句子中的短语或单词映射到向量和数字。任何NLP应用程序的第一...

751
来自专栏杨熹的专栏

图解RNN

参考视频 RNN-Recurrent Neural Networks ---- 本文结构: 什么是 Recurrent Neural Networks ? R...

3325
来自专栏技术小站

吴恩达深度学习笔记2.2 logistic回归

893
来自专栏磐创AI技术团队的专栏

Tensorflow系列专题(四):神经网络篇之前馈神经网络综述

从本章起,我们将正式开始介绍神经网络模型,以及学习如何使用TensorFlow实现深度学习算法。人工神经网络(简称神经网络)在一定程度上受到了生物学的启发,期望...

643
来自专栏机器之心

无需深度学习框架,如何从零开始用Python构建神经网络

1515
来自专栏新智元

机器学习:你需要多少训练数据?

? 从谷歌的机器学习代码中得知,目前需要一万亿个训练样本 训练数据的特性和数量是决定一个模型性能好坏的最主要因素。一旦你对一个模型输入比较全面的训练数据,通...

3837
来自专栏深度学习思考者

深入浅出——搞懂卷积神经网络误差分析(一)

第一部分 全连接网络的权值更新   卷积神经网络使用基于梯度的学习方法进行监督训练,实践中,一般使用随机梯度下降(机器学习中几种常见的梯度下降方式)的版本,对于...

2287
来自专栏机器学习算法与Python学习

入门 | 什么是自注意力机制?

目前有许多句子表征的方法。本文作者之前的博文中已经讨论了 5 中不同的基于单词表征的句子表征方法。想要了解更多这方面的内容,你可以访问以下链接:https://...

1072
来自专栏https://www.cnblogs.com/L

【机器学习】--隐语义模型

隐语义模型是近年来推荐系统领域较为热门的话题,它主要是根据隐含特征将用户与物品联系起来。

1262
来自专栏企鹅号快讯

深入机器学习系列8-Gradient-boosted tree

梯度提升树 1 Boosting   是一类将弱学习器提升为强学习器的算法。这类算法的工作机制类似:先从初始训练集中训练出一个基学习器,再根据基学习器的表现对训...

2026

扫码关注云+社区