机器学习 第四讲: Logistic Regression

Logistic Regression

之前我们讨论过回归问题,并且讨论了线性回归模型。现在我们来看看分类问题,分类问题与回归问题类似,只不过输出变量一个是离散的,一个是连续的。我们先关注二分类问题,假设

输出变量 y 只能取 0 或者 1 两个值,直观上,对于所有的输入变量,我们都希望可以映射到 [0-1] 的范围内, 为此,我们可以建立如下的函数:

hθ(x)=g(θTx)=11+e?θTx

其中,

g(z)=11+e?z

称之为 logistic 函数 或者 sigmoid 函数. 很容易看出这个函数的值域在(0-1)之间。我们可以求得 logistic 函数的导数为:

g′(z)=1(1+e?z)2e?z=1(1+e?z)?(1?1(1+e?z))=g(z)(1?g(z))

那么,对于 logistic 回归模型,如何估计参数 θ。我们之前讲过,从最大似然估计出发,可以导出最小均方误差函数,也就是

最小二乘回归模型。同样地,我们仍然可以利用最大似然估计的方法来拟合 logistic 回归模型的参数,我们先给出如下的概率假设:

P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1?hθ(x)

考虑到 y 只能取 0 或 1 两个值,上面的概率分布可以用一个式子表示成:

p(y|x;θ)=(hθ(x))y(1?hθ(x))1?y

假设一组训练集含有m个训练样本,并且训练样本是相互独立的,那么这组训练集的概率分布为:

L(θ)=p(y|X;θ)=∏i=1mp(yi|xi;θ)=∏i=1m(hθ(xi))yi(1?hθ(xi))1?yi

对上式取对数,可以得到:

l(θ)=logL(θ)=∑i=1myilogh(xi)+(1?yi)log(1?h(xi))

如何使得上式的概率最大?我们可以利用梯度下降法,定义如下的式子:

θ:=θ+α?θl(θ)

其中,?θl(θ) 是函数 l(θ) 对 θ 的导数。

为了推导l(θ) 对 θ 的导数,我们先考虑只有一对训练样本的情况。则:

??θjl(θ)=(yg(θTx)?1?y1?g(θTx))??θjg(θTx)=(yg(θTx)?1?y1?g(θTx))g(θTx)(1?g(θTx))??θjθTx=(y(1?g(θTx))?(1?y)g(θTx))xj=(y?g(θTx))xj=(y?hθ(x))xj

因此,我们可以得到如下的参数 θj的更新表达式:

θj:=θj+α(y?hθ(x))xj

我们可以看到,这个表达式和第一讲里的LMS更新表达式很像,两者的区别在于LMS里的 hθ(x) 是一个线性函数,所以我们称之为线性回归,而这里的 hθ(x) 是一个非线性函数。

Generalized Linear Models

迄今为止,我们探讨了一个回归问题(第一讲),也探讨了一个分类问题(第三讲)。在回归问题中,我们定义了如下的概率分布:y|x;θ~N(μ,σ2), 而在分类问题中,我们定义了另外一种概率分布:y|x;θ~Bernoulli(?). 接下来,我们将说明,上面所提到的两种分布,是一个广义分布族的特殊情况。这个广义分布族我们称之为,Generalized Linear Models (GLMs) (广义线性模), 我们也将说明该广义分布族中的其他模型能够适用于其他的回归或者分类问题。

The exponential family

首先我们定义一个指数族分布。如果任何一组变量满足指数族分布,那么该变量的概率分布可以表示为:

p(y;η)=b(y)exp(ηTT(y)?a(η))(1)

其中,η 称之为 natural parameter 或者 canonical parameter, T(y) 是 sufficient statistic, a(η)是log partition function. e?a(η)是归一化参数。

对于给定的 T,a,b,可以得到关于 η 的一组概率分布,不同的 η 对应着不同的概率分布。

接下来,我们将证明,Bernoulli分布和Gaussian分布是属于指数分布中的两种情况。Bernoulli分布,假设均值为?,写作Bernoulli}(?),输出变量的范围为y∈{0,1}, 那么,Bernoulli分布可以表示成 p(y=1;?)=?, p(y=0;?)=1??,不同的?可以得到不同均值的\textbf{Bernoulli}分布。我们将会看到,通过设置T,a,b,式(1)可以变成Bernoulli分布。

Bernoulli分布可以写成:

p(y;?)=?y(1??)(1?y)=exp(ylog?+(1?y)log(1??))=exp((log(?1??))y+log(1??))

为了用式(1)表示Bernoulli分布,我们可以定义 η=log(?/(1??)),我们也可以得到 ?=1/(1+e?η),进一步的,我们可以定义

T(y)=y;a(η)=?log(1??)=log(1+eη);b(y)=1;

我们可以看到,通过定义合适的 T,a,b,Bernoulli分布可以用广义的指数分布族表示。

接下来,我们看看Gaussian分布和广义指数分布族的关系,我们定义高斯分布为 N~(μ,σ2),在讨论最大似然概率的时候,我们曾经看到方差 σ2 对最终的结果没有影响,为了简化这个问题,这里假定

方差为1,即σ2=1, 那么Gaussian概率分布可以表示为:

p(y;μ)=12π??√exp(?12(y?μ)2)=12π??√exp(?12y2)?exp(μy?12μ2)

因此,我们可以定义

η=μ;T(y)=y;a(η)=μ2/2=η2/2;b(y)=12π??√exp(?y2/2)

同样可以看到,Gaussian分布可以表示成指数分布。

事实上,我们常见的很多分布都是指数分布族中的一种,像multinomial (二项式分布), Poisson (泊松分布), 还有Gamma 分布,Beta分布等。

构造 Generalized Linear Models(GLMs)

这一章节,我们将要探讨如何构造Generalized Linear Models(GLMs),通常情况下,当我们考虑一个回归问题或者分类问题,我们希望预测随机变量y的值,y

是关于x的函数值,为了能够建立GLM模型,求得y关于x的条件分布,我们先给出三个假设:

1: y|x;θ~ExponentialFamily(η), 即给定x和θ,y的分布是满足指数族分布的。

2:给定x,我们的目标是预测T(y)关于x的期望值,大多数情况下,T(y)=y,这意味着我们希望预测值h(x)满足 h(x)=E[y|x].

3: natural parameter η与输入x满足线性关系,即 η=θTx.

这三个假设可以让我们派生出一系列非常优美的学习算法,我们称之为广义线性模型,这些模型可以非常有效地建立关于y的不同的概率分布,接下来,我们将简单证明

之前提到的logistic regression和一般最小二乘(LMS)都从GLMs 演化而来。

为了证明一般最小二乘是广义线性模型中的一个特例,我们先假设目标变量y是连续的,并且假设y关于x的条件分布服从高斯分布 N~(μ,σ2),我们把指数族分布式(1) 定义成高斯分布的形式,那么 μ=η,因此,我们有:

hθ(x)=E[y|x;θ]=μ=η=θTx

从上式可以看出,第一个等式基于假设2,因为高斯分布的期望就是均值μ,所以第二个等式也成立,第三个等式基于假设1,最后一个等式基于假设3。

我们可以看到从这三个假设可以推导出一般最小二乘的假设函数是 hθ(x)=θTx,所以一般最小二乘属于广义线性模型中的一种。现在我们看看 logistic regression, 这里我们探讨的是二分类问题,所以y∈{0,1}。考虑到y只能取0,1两个值,所以选择Bernoulli分布来表示y相对于x的条件分布,Bernoulli表示成指数分布族的时候,我们知道?=1/(1+e?η), 而且注意,如果 y|x;θ~Bernoulli(?),那么 E[y|x;θ]=?,所以和一般最小二乘的推导相似,我们可以得到:

hθ(x)=E[y|x;θ]=?=1/(1+e?η)=1/(1+e?θTx)

因此我们可以得到logistic regression的假设函数 hθ(x)=1/(1+e?θTx),所以logistic regression也是广义线性模型中的一种. 一般来说,某个分布的期望与natural parameter η的关系可以用函数g表示为(g(η)=E[T(y);η]),函数g称为canonical response function,而g的反函数g?1称为canonical link function。所以高斯分布的 canonical response function就是 identify function,而Bernoulli分布的 canonical response function就是 logistic function。

参考文献

Andrew Ng, “Machine Learning”, Stanford University.

时间: 2024-10-09 04:06:42

机器学习 第四讲: Logistic Regression的相关文章

机器学习实战四(Logistic Regression)

机器学习实战四(Logistic Regression) 这一章会初次接触最优化算法,在日常生活中应用很广泛.这里我们会用到基本的梯度上升法,以及改进的随机梯度上升法. Logistic回归 优点:计算代价不高,易于理解和实现 缺点:容易欠拟合,分裂精度可能不高 原理:根据现有数据堆分类边界线建立回归公式,依次进行分类. 这里的回归其实就是最佳拟合的意思. 1.基于Logistic回归和Sigmoid函数的分类. 我们需要一个这样的函数:接受所有的输入,然后预测出类别.例如,如果只有两类,则输出

机器学习 (三) 逻辑回归 Logistic Regression

文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样. § 3.  逻辑回归 Logistic Regression 1 分类Classification 首先引入了分类问题的概念——在分类(Classification)问题中,所需要预测的$y$是离散值.例如判断一封邮件是否属于垃圾邮件.判断一个在线交

Coursera台大机器学习课程笔记9 -- Logistic Regression

这一节课主要讲如何用logistic regression做分类. 在误差衡量问题上,选取了最大似然函数误差函数,这一段推导是难点. 接下来是如何最小化Ein,采用的是梯度下降法,这个比较容易. 参考:http://beader.me/mlnotebook/section3/logistic-regression.html http://www.cnblogs.com/ymingjingr/p/4330304.html

(笔记)斯坦福机器学习第四讲--牛顿法

本讲内容 1. Newton's method(牛顿法) 2. Exponential Family(指数簇) 3. Generalized Linear Models(GLMs)(广义线性模型) 1.牛顿法 假如有函数, 寻找使得 牛顿法的步骤如下: (1) initialize  as some value. 上图中用  初始化 的值 (2) 在这一点上对f求值得到,之后计算这一点的导数值 (3) 作该点的切线,得到与横轴的交点的值,此为牛顿法的一次迭代. 更新公式为           我

机器学习之逻辑回归(Logistic Regression)

"""逻辑回归中的Sigmoid函数"""   import numpy as np   import matplotlib.pyplot as plt     def sigmoid(t):   return 1/(1+np.exp(-t))     x=np.linspace(-10,10,500)   y=sigmoid(x)     plt.plot(x,y)   plt.show() 结果: 逻辑回归损失函数的梯度:   逻辑回归算法:

斯坦福机器学习视频笔记 Week3 Logistic Regression and Regularization

我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost functon),以及逻辑回归对多分类的应用. 我们还涉及正规化. 机器学习模型需要很好地推广到模型在实践中没有看到的新例子. 我们将介绍正则化,这有助于防止模型过度拟合训练数据. Classification 分类问题其实和回归问题相似,不同的是分类问题需要预测的是一些离散值而不是连续值. 如垃圾邮件分

机器学习技法(5)--Kernel Logistic Regression

回顾一下soft margin SVM的知识: 然而从另一个角度来看,分为真的有犯错和没有犯错: 在没有犯错的时候,ξn=0就好了.于是ξn就可以写成一个求max的过程.根据这个思路,我们有了SVM的新形式: 这样一来,ξn就不再是一个独立的变量,它变成了一个由b和w决定的变量,这样的话,式子又被简化了. 简化后的式子和L2的正则差不多: SVM和正则化有很多相似的点: 这些联系可以帮助我们以后换一种视角看待SVM. 下面从错误衡量的视角看LR和SVM: 由此可以看出SVM≍L2的LR. 那么再

机器学习基石——第9-10讲.Linear Regression

本栏目(机器学习)下机器学习基石专题是个人对Coursera公开课机器学习基石(2014)的学习心得与笔记.所有内容均来自Coursera公开课Machine Learning Foundations中Hsuan-Tien Lin林轩田老师的讲解.(https://class.coursera.org/ntumlone-002/lecture) 第9讲-------Linear Regression 从这一节开始,开始涉及到How Can Machines Learn的问题了. 一.Linear

最详细的基于R语言的Logistic Regression(Logistic回归)源码,包括拟合优度,Recall,Precision的计算

这篇日志也确实是有感而发,我对R不熟悉,但实验需要,所以简单学了一下.发现无论是网上无数的教程,还是书本上的示例,在讲Logistic Regression的时候就是给一个简单的函数及输出结果说明.从来都没有讲清楚几件事情: 1. 怎样用训练数据训练模型,然后在测试数据上进行验证(测试数据和训练数据可能有重合)? 2. 怎样计算预测的效果,也就是计算Recall,Precision,F-measure等值? 3. 怎样计算Nagelkerke拟合优度等评价指标? 发现这些书本和一些写博客的朋友,