Andrew Ng机器学习公开课笔记 -- Online Learning

网易公开课,第11课 
notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf

 

和之前看到的batch learning算法不一样,batch learning一定是先用训练集进行训练,然后才进行预测

但是online learning,不必要一定有训练的过程,可以一边预测的同时一边训练

这个其实很现实,系统上线前也许很难收集到数据,并且数据也许也是在不断变化的

下面就用perceptron algorithm作为例子看看如何实现online learning的,

感知器(perception)应该可以说是最为简单的线性分类算法,

可以看到,它可以说是简化版的logistics回归,因为logistics只需要把阶跃函数换成sigmoid函数即可 
同时它也是SVM的理论基础

如何实现online learning,其实也很简单,之前我们学过一个最优化算法,随机梯度下降,就很适合这个场景 
因为这个算法,只需要一个样本点就可以进行优化

而这里写成这个形式,

看着更简单,其实是一样的

别看这个那么简单,但是可以证明即便是对于无限维向量x,这个算法的误差总数(即在数据序列中预测错多少个)也是有上届的,并且和序列中的样本个数或x维数都没有explicit dependence。 

定理如下,更详细的解释和证明,参考在线学习(Online Learning)

本文章摘自博客园,原文发布日期: 2014-08-02

时间: 2024-09-19 21:09:18

Andrew Ng机器学习公开课笔记 -- Online Learning的相关文章

Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

网易公开课,第16课  notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么  但某些sequential decision making问题,比如下棋或直升机自动驾驶  无法确切知道,下一步怎么样是正确的,因为这是一个连续和序列化的决策,比如直到最终直升机crash或下棋输了,你才知道之前的选择是不好的,但中间那么多步决策,到底是哪部分出了问题,可见这是个比较复杂的问题 强化学习,基本思路就是,既然不知道怎样是正确的,那就随便try,然

Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms

网易公开课,第5课  notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 学习算法有两种,一种是前面一直看到的,直接对p(y|x; θ)进行建模,比如前面说的线性回归或逻辑回归,这种称为判别学习算法(discriminative learning algorithms) 另外一种思路,就是这里要谈的,称为生成学习算法(generative learning algorithms),区别在于不会直接对p(y|x; θ)进行建模,而是对p(x

Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

网易公开课,第14, 15课  notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 参考,A Tutorial on Principal Component Analysis, Jonathon Shlens   主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音

Andrew Ng机器学习公开课笔记 -- 学习理论

网易公开课,第9,10课  notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/variance tradeoff 还是用这组图,学习算法追求的是generalization error(对未知数据的预测误差),而不是training error(只是对训练集) 最左边,underfit,我们说这种学习算法有较大的bias  Informally, we define the b

Andrew Ng机器学习公开课笔记 -- 支持向量机

网易公开课,第6,7,8课  notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考   先继续前面对线性分类器的讨论,  通过机器学习算法找到的线性分类的线,不是唯一的,对于一个训练集一般都会有很多线可以把两类分开,这里的问题是我们需要找到best的那条线 首先需要定义Margin,  直观上来讲,best的那条线,应该是在可以正确分类的前提下,离所有的样本点越远越好,why?  因为越

Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection

网易公开课,第10,11课  notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型选择问题,如何来平衡bais和variance来自动选择模型?比如对于多项式分类,如何决定阶数k,对于locally weighted regression如何决定窗口大小,对于SVM如何决定参数C  For instance, we might be using a polynomial reg

Andrew Ng机器学习公开课笔记 -- Logistic Regression

网易公开课,第3,4课  notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面讨论了线性回归问题, 符合高斯分布,使用最小二乘来作为损失函数 下面继续讨论分类问题,分类问题和回归问题不同在于Y的取值是离散的  我们先讨论最简单的binary classification,即Y的取值只有0和1  分类问题一般不会使用回归模型,因为回归模型是输出是连续的,而分类问题需要的输出是离散的 但是一定要用也不是不可以,比如这里继续使用线性回归模型

Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降

网易公开课,监督学习应用.梯度下降  notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个例子,比如,想用面积和卧室个数来预测房屋的价格  训练集如下  首先,我们假设为线性模型,那么hypotheses定义为  , 其中x1,x2表示面积和#bedrooms两个feature  那么对于线性模型,更为通用的写法为   其中把θ和X看成向量,并且x0=1,就可以表示成最后那种,两个向量

Andrew Ng机器学习公开课笔记 – Factor Analysis

网易公开课,第13,14课  notes,9 本质上因子分析是一种降维算法  参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量,浓缩成少数几个因子变量  原始变量,代表浅层的表面现象,所以一定是很多和繁杂的  而因子变量,是代表深层的本质,因,是无法直接观察到的 所以因子分析,就是拨开现象发现本质的过程...很牛逼的感觉 举个例子,观察一个学生,你可以统计到很多原始变量, 代数,几何,语文,英语各科的成绩,每天作业时间,