逻辑回归:使用SGD(Stochastic Gradient Descent)进行大规模机器学习
请记住,一个重要的关键是建立一个成功的分类要仔细构成具体和简单的术语,因此,它可以由一个有限的回答你的问题预定的类别的列表中的目标变量。请注意,并非所有的功能输入的数据也同样有用,你必须选择的功能被用来作为预测指标变量仔细,你可能需要尝试多种组合,以发现哪些是有用的分类表现良好。记住,务实是非常重要的。有了这些想法,回想起到品酒的例子的目标你的机器的分类应该是帮助你到晚餐时间,不是为了帮助你做微妙的审美判断生活中的美好事物。
参考:http://en.wikipedia.org/wiki/Stochastic_gradient_descent
1 线性回归
了解逻辑回归之前先了解下线性回归:因变量和自变量之间存在线性关系。一般模型如下:

从一般模型可以看出Y和X(X1,X2,X3...)之间存在线性关系。线性回归的目的就是为了确定因变量和自变量的关系程度,换言之,就是求回归模型的参数。
2 逻辑回归
(1) why need it?
要说逻辑回归的优点,自然要先说下线性回归的缺点,主要有难以处理以下两个问题
a. 因变量Y如果不是数值型
b. 因变量与自变量不存在线性关系
(2) 逻辑回归的一般形式
P是概率,是某个事件发生的概率,处理类别属性,例如是否是男性,是否是色狼?
而且进行了logit变换。也就是说logit(P)与自变量之间存在线性关系,而p显然和X不存在线性关系。
那为什么是logit变换,不是XXX其他的变换,这里有一个前提假设:概率与自变量的关系往往是 S 型的曲线
(3)参数估计
模型有了,需要利用已知的样本来进行参数估计,最大似然估计用的比较多。mahout中用的是随机梯度下降法(SGD)。此处介绍下随机梯度下降法。
a. 梯度下降法
搜索寻优的一个过程,假定一个初始状态,然后不断更新,知道达到目标函数的极小值。其中
称为学习率,他决定梯度下降搜索的步长。算法流程如下:
其中W表示权重。
b. 随机梯度下降
sgd解决了梯度下降的两个问题: 收敛速度慢和陷入局部最优。修正部分是权值更新的方法有些许不同。
3 基于梯度下降的学习
对于一个简单的机器学习算法,每一个样例包含了一个(x,y)对,其中一个输入x和一个数值输出y。我们考虑损失函数,它描述了预测值
和实际值y之间的损失。预测值是我们选择从一函数族F中选择一个以w为参数的函数
的到的预测结果。
我们的目标是寻找这样的函数,能够在训练集中最小化平均损失函数
由于我们不知道数据的真实分布,所以我们通常使用
来代替
经验风险用来衡量训练集合的效果。期望风险E(f)描述了泛化(generation)的效果,预测未知样例的能力。
如果函数族F进行足够的限制(sufficiently restrictive),统计机器学习理论使用经验风险来代替期望风险。
3.1 梯度下降
我们经常使用梯度下降(GD)的方式来最小化期望风险,每一次迭代,基于更新权重w:
,
为学习率,如果选择恰当,初始值选择合适,这个算法能够满足线性的收敛。也就是:
,其中
表示残余误差(residual error)。
基于二阶梯度的比较出名的算法是牛顿法,牛顿法可以达到二次函数的收敛。如果代价函数是二次的,矩阵是确定的,那么这个算法可以一次迭代达到最优值。如果足够平滑的话,
。但是计算需要计算偏导hession矩阵,对于高维,时间和空间消耗都是非常大的,所以通常采用近似的算法,来避免直接计算hession矩阵,比如BFGS,L-BFGS。
3.2 随机梯度下降
SGD是一个重要的简化,每一次迭代中,梯度的估计并不是精确的计算,而是基于随机选取的一个样例
:
随机过程
依赖于每次迭代时随机选择的样例,尽管这个简化的过程引入了一些噪音,但是我们希望他的表现能够和GD的方式一样。
随机算法不需要记录哪些样例已经在前面的迭代过程中被访问过,有时候随机梯度下降能够直接优化期望风险,因为样例可能是随机从真正的分布中选取的。
随机梯度算法的收敛性要满足:
并且
二阶随机梯度下降:
这种方法并没有减少噪音,也不会对计算有太大改进。
3.3 随机梯度的一些例子
下面列了一些比较经典的机器学习算法的随机梯度:
逻辑回归:使用SGD(Stochastic Gradient Descent)进行大规模机器学习的更多相关文章
- 使用SGD(Stochastic Gradient Descent)进行大规模机器学习
原贴地址:http://fuliang.iteye.com/blog/1482002 其它参考资料:http://en.wikipedia.org/wiki/Stochastic_gradient_ ...
- 机器学习-随机梯度下降(Stochastic gradient descent)
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- FITTING A MODEL VIA CLOSED-FORM EQUATIONS VS. GRADIENT DESCENT VS STOCHASTIC GRADIENT DESCENT VS MINI-BATCH LEARNING. WHAT IS THE DIFFERENCE?
FITTING A MODEL VIA CLOSED-FORM EQUATIONS VS. GRADIENT DESCENT VS STOCHASTIC GRADIENT DESCENT VS MIN ...
- Stochastic Gradient Descent
一.从Multinomial Logistic模型说起 1.Multinomial Logistic 令为维输入向量; 为输出label;(一共k类); 为模型参数向量: Multinomial Lo ...
- 几种梯度下降方法对比(Batch gradient descent、Mini-batch gradient descent 和 stochastic gradient descent)
https://blog.csdn.net/u012328159/article/details/80252012 我们在训练神经网络模型时,最常用的就是梯度下降,这篇博客主要介绍下几种梯度下降的变种 ...
- 基于baseline和stochastic gradient descent的个性化推荐系统
文章主要介绍的是koren 08年发的论文[1], 2.1 部分内容(其余部分会陆续补充上来). koren论文中用到netflix 数据集, 过于大, 在普通的pc机上运行时间很长很长.考虑到写文 ...
- Stochastic Gradient Descent 随机梯度下降法-R实现
随机梯度下降法 [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 批量梯度下降法在权值更新前对所有样本汇总 ...
- Stochastic Gradient Descent收敛判断及收敛速度的控制
要判断Stochastic Gradient Descent是否收敛,可以像Batch Gradient Descent一样打印出iteration的次数和Cost的函数关系图,然后判断曲线是否呈现下 ...
- 基于baseline、svd和stochastic gradient descent的个性化推荐系统
文章主要介绍的是koren 08年发的论文[1], 2.3部分内容(其余部分会陆续补充上来).koren论文中用到netflix 数据集, 过于大, 在普通的pc机上运行时间很长很长.考虑到写文章目 ...
随机推荐
- [并发编程]使用线程安全队列和条件变量的notify来安排分步骤任务
// 方法1:直接构建N个THread来run foreach (i, size) { thread trd(&Instance::doWork, &inst); lstTrd.pus ...
- JavaScript高级程序设计30.pdf
第12章 DOM2和DOM3 DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3则在这个结构的基础上引入了更多的交互能力,也支持更高级的XML特性 DOM2和DOM3级分为许多模 ...
- Tornado自定义分布式session框架
一.session框架处理请求执行的流程: 1.服务器端生成随机的cookie字符串 2.浏览器发送请求,服务器将cookie返回给浏览器. 3.服务器在生成一个字典.字典的key为cookie,va ...
- 怎样在Yii中显示静态页
在web应用中,我们经产更需要显示静态页,如“关于我们”等,这些文件通常是静态页,通常有如下几种处理方法: 1.把独立的html文件存在Web服务器能直接访问的目录下.这种方案的缺点是很难维护网页布局 ...
- 【转】漫谈ANN(2):BP神经网络
上一次我们讲了M-P模型,它实际上就是对单个神经元的一种建模,还不足以模拟人脑神经系统的功能.由这些人工神经元构建出来的网络,才能够具有学习.联想.记忆和模式识别的能力.BP网络就是一种简单的人工神经 ...
- Altium Designer6打印PCB 设置
1.File-->Page Setup Printer Paper一栏是打印纸的设置,不再罗嗦. 主要是Scaling一栏:ScaleMode项选择:ScaledPrint ...
- hdoj 5443 The Water Problem【线段树求区间最大值】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5443 刷道水题助助兴 #include<stdio.h> #include<stri ...
- 2013腾讯编程马拉松初赛第二场(3月22日) 小Q系列故事——为什么时光不能倒流 ---好水!!
我以为我会是最坚强的那一个 我还是高估了自己 我以为你会是最无情的那一个 还是我贬低了自己 就算不能够在一起 我还是为你担心 就算你可能听不清 也代表我的心意 那北极星的眼泪 闪过你曾经的眼角迷离 那 ...
- 初识Android
#Android项目的目录结构 Activity:应用被打开时显示的界面 src:项目代码 R.java:项目中所有资源文件的资源id Android.jar:Android的jar包,导入此包方可使 ...
- Asp.net mvc 自定义全局的错误事件HandleErrorAttribute无效
Asp.net mvc 自定义全局的错误事件HandleErrorAttribute,结果无效, 原因: 1.没有在RegisterGlobalFilters 里面添加或者你要的位置添加. 2.你把这 ...