斯坦福CS229机器学习课程笔记二:GLM广义线性模型与Logistic回归

一直听闻Logistic Regression逻辑回归的大名,比如吴军博士在《数学之美》中提到,Google是利用逻辑回归预测搜索广告的点击率。因为自己一直对个性化广告感兴趣,于是疯狂google过逻辑回归的资料,但没有一个网页资料能很好地讲清到底逻辑回归是什么。幸好,在CS229第三节课介绍了逻辑回归,第四节课介绍了广义线性模型,综合起来总算让我对逻辑回归有了一定的理解。与课程的顺序相反,我认为应该先了解广义线性模型再来看逻辑回归,也许这也是为什么讲逻辑回归的网页资料总让人感觉云里雾里的原因吧。

Generalized Linear Model (GLM) 广义线性模型

这一段主要讲的是广义线性模型的定义和假设,为了看明白逻辑回归,大家要耐着性子看完。

1.The exponential family 指数分布族

因为广义线性模型是围绕指数分布族的,因此需要先介绍,用Andrew大神的话说就是,“虽然不是全部,但是我们见过的大多数分布都属于指数分布族,比如:Bernoulli伯努利分布、Gaussian高斯分布、multinomial多项分布、Poisson泊松分布、gamma分布、指数分布、Dirichlet分布……”服从指数分布族的条件是概率分布可以写成如下形式:

η 被称作natural parameter,它是指数分布族唯一的参数
T(y) 被称作sufficient statistic,很多情况下T(y)=y a(η) 被称作 log partition function
T函数、a函数、b函数共同确定一种分布
接下来看一下为什么说正态分布(高斯分布)属于指数分布族:
正态分布(正态分布有两个参数μ均值与σ标准差,在做线性回归的时候,我们关心的是均值而标准差不影响模型的学习与参数θ的选择,因此这里将σ设为1便于计算)

2.构成广义线性模型的三个假设

  • p(y | x; θ) ∼ ExponentialFamily(η). 输出变量基于输入变量的条件概率分布服从指数分布族
  • our goal is to predict the expected value of T(y) given x. 对于给定的输入变量x,学习的目标是预测T(y)的期望值,T(y)经常就是y
  • The natural parameter η and the inputs x are related linearly: η = θT x. η和输入变量x的关联是线性的:η = θT x

这三个假设其实指明了如何从输入变量映射到输出变量与概率模型,举例来说:线性回归的条件概率分布为正态分布属于指数分布族(参考笔记一中线性回归的似然函数部分);我们的目标是预测T(y)的期望,由上面的计算我们知道T(y)=y,而y的期望值也就是正态分布的参数μ;由上面的计算我们知道μ=η,而η=θT x。因此,线性回归是广义线性回归的一个特例,它的模型是:

Logistic Regression 逻辑回归

1.模型

逻辑回归解决的是分类问题,并且是只分为两类。比如:用户是否会点击广告链接?用户是否会回访?抛一枚硬币正面是否会朝上?于是,从概率的观点出发,我们应该马上想到用伯努利分布来估计事件发生的概率。从广义线性模型的角度来构造逻辑回归模型:
1.1 伯努力分布属于指数分布族(参数Φ指的是y=1的概率,即事件发生的概率)

1.2 学习的目标是预测T(y)的期望值,而伯努利分布中T(y)=y,另外我们知道伯努利分布的期望就是参数Φ,即E(y)=Φ。
1.3 由η = log(Φ/(1 - Φ) 可以推出 Φ = 1/(1+e-η) (这就是所谓的logistic函数,也是逻辑回归名字的来由),再将η=θT x带入公式,最终我们得到逻辑回归的模型:

因为伯努利分布的参数Φ既是分布的期望,又代表事件发生的概率,因此逻辑回归模型的意义就是:在给定的输入变量组合的条件下,输出变量(二元变量)中一个事件发生的概率。比如:预测在用户是第一次来访(输入变量1),广告链接用的是热门文案(输入变量2)的条件下,广告链接被点击(输出变量)的概率为多少。 看到这里,相信大家应该能够明白:为什么逻辑函数要长成这样,为什么逻辑回归能起作用了吧。

2.策略

逻辑回归使用的策略是最大化对数似然函数,它的似然函数与对数似然函数分别为:

3.算法

3.1 gradient ascent 梯度上升
我们可以用梯度下降找到极小值的点,反过来也可以用梯度上升找到极大值的点: 首先补充一下计算中要用到的逻辑函数,与逻辑函数的导数:


在此基础上我们对对数似然函数求导获得梯度

这个导数和线性回归中的导数如出一辙,但是要注意两者的模型hθ(x)是不一样的,所以最终采用随机梯度上升的迭代规则如下:

3.2 Newton’s method 牛顿方法
从高数中知道极值点就是导数为0的地方,所以最大化对数似然函数的另一个求法是求对数似然函数导数为0的点。而牛顿方法就是求得对数似然函数导数为0的点的方法:

当参数θ只有一个时,牛顿方法的迭代规则:

当参数θ不止一个时,牛顿方法的迭代规则:

相较于批量梯度下降,牛顿方法通常来说有更快的收敛速度,只需要少得多的迭代次数就能得到很接近最小值的结果。但是当模型的参数很多时(参数个数为n)Hessian矩阵的计算成本将会很大,导致收敛速度变慢,但是当参数个数不多时,牛顿方法通常是比梯度下降快得多的。

总结

    1. 原来这么多主流的概率分布都属于指数分布族
    2. 记住构成广义线性模型的三个假设,其实也是构建模型的桥梁
    3. 理解逻辑回归模型是基于伯努利分布的概率模型,它的意义是:在给定的输入变量组合的条件下,输出变量(二元变量)其中一元发生的概率。也因此它适合用来预测广告点击率。
    4. 有梯度下降算法也有梯度上升算法,两者的区别只在+/-号上。此外,还可以使用牛顿方法,通过获得导数为0的点以确定模型的极大/极小值。
时间: 2024-12-24 09:07:29

斯坦福CS229机器学习课程笔记二:GLM广义线性模型与Logistic回归的相关文章

斯坦福CS229机器学习课程笔记一:线性回归与梯度下降算法

应该是去年的这个时候,我开始接触机器学习的相关知识,当时的入门书籍是<数据挖掘导论>.囫囵吞枣般看完了各个知名的分类器:决策树.朴素贝叶斯.SVM.神经网络.随机森林等等:另外较为认真地复习了统计学,学习了线性回归,也得以通过orange.spss.R做一些分类预测工作.可是对外说自己是搞机器学习的还是不太自信,毕竟和科班出身的各位大牛相比自己对这些模型.算法的理解只能算是“知其然而不知其所以然”,用起来总感觉哪里不对劲. 因此,去年早早地就把网易公开课上Andrew大神的斯坦福CS229课程

斯坦福CS229机器学习课程笔记六:学习理论、模型选择与正则化

稍微了解有监督机器学习的人都会知道,我们先通过训练集训练出模型,然后在测试集上测试模型效果,最后在未知的数据集上部署算法.然而,我们的目标是希望算法在未知的数据集上有很好的分类效果(即最低的泛化误差),为什么训练误差最小的模型对控制泛化误差也会有效呢?这一节关于学习理论的知识就是让大家知其然也知其所以然. 学习理论 1.empirical risk minimization(经验风险最小化) 假设有m个样本的训练集,并且每个样本都是相互独立地从概率分布D中生成的.对于假设h,定义training

斯坦福CS229机器学习课程笔记三:感知机、Softmax回归

为了给课程的前四讲画上一个句号,这里补充两个前四讲中Andrew大神提到过的模型. The perceptron learning algorithm 感知机 模型:从模型上来看感知机与逻辑回归十分相似,只不过逻辑回归的g函数是逻辑函数(又称sigmoid函数),它是一条从y值0到1的连续曲线.当z→∞,g(z)→1:当z → −∞,g(z)→0.g(z) = 1/(1+e-z)而感知机的g函数是分段函数,只输出0和1.虽然和逻辑回归形式上相近,但是很难为感知机的预测加上概率解释,也很难说感知机

斯坦福CS229机器学习课程笔记七:算法诊断、误差分析以及如何开始一个机器学习问题

这一节是Andrew对应用机器学习给出的建议,虽然没有数学公式,但却是十分重要的一课. Debugging Learning Algorithms 假设要做一个垃圾邮件分类的模型,已经从海量的词汇表中选出一个较小的词汇子集(100个单词)作为特征. 用梯度上升算法实现了贝叶斯逻辑回归,但测试集的错误率达到了20%,这显然太高了. 如何解决这个问题? 收集更多的训练样本 进一步减少特征数 增加特征数 改变特征(考虑邮件标题/正文) 将梯度上升多运行几个迭代 尝试牛顿方法 使用不同的λ 改用SVM

斯坦福CS229机器学习课程笔记五:支持向量机 Support Vector Machines

SVM被许多人认为是有监督学习中最好的算法,去年的这个时候我就在尝试学习.不过,面对长长的公式和拗口的中文翻译最终放弃了.时隔一年,看到Andrew讲解SVM,总算对它有了较为完整的认识,总体思路是这样的:1.介绍间隔的概念并重新定义符号:2.分别介绍functional margins与geometric margins:3.由此引出最大间隔分类器,同时将最优化问题转化为凸函数的优化问题:4.补充了拉格朗日对偶性的知识:5.利用拉格朗日对偶性,推导最大间隔分类器最优化的对偶问题,即SVM的最优

斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型

生成学习与判别学习 像逻辑回归,用hθ(x) = g(θTx) 直接地来建模 p(y|x; θ) :或者像感知机,直接从输入空间映射到输出空间(0或1),它们都被称作判别学习(discriminative learning).与之相对的是生成学习(generative learning),先对 p(x|y) 与 p(y) 建模,然后通过贝叶斯法则导出后验条件概率分布分母的计算规则为全概率公式:p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0).这一节介绍的

广义线性模型与Logistic回归

一.广义线性模型 广义线性模型应满足三个假设: 第一个假设为给定X和参数theta,Y的分布服从某一指数函数族的分布. 第二个假设为给定了X,目标是输出 X条件下T(y)的均值,这个T(y)一般等于y,也有不等的情况, 第三个假设是对假设一种的变量eta做出定义. 二.指数函数族 前面提到了指数函数族,这里给出定义,满足以下形式的函数构成了指数函数族: 其中a,b,T都是函数. 三.Logistic 函数的导出 Logistic回归假设P(y|x)满足伯努利Bernouli分布即 我们的目标是在

斯坦福大学机器学习课程笔记: 逻辑回归以及梯度下降

斯坦福大学机器学习课程原始讲义(含公开课视频) (转载)

http://blog.csdn.net/v_july_v/article/details/7624837 斯坦福大学机器学习课程原始讲义 本资源为斯坦福大学机器学习课程原始讲义,为Andrew Ng 所讲,共计20个PDF,基本涵盖了机器学习中一些重要的模型.算法.概念,此次一并压缩上传分享给大家,朋友们可以直接点击右边下载:斯坦福大学机器学习课程原始讲义.zip. 斯坦福大学机器学习公开课视频 与之配套的则是斯坦福大学的机器学习公开课的视频: 1. 网易翻译的公开课视频:http://v.1