机器学习笔记1: 线性回归

监督学习与非监督学习

机器学习是指给定一些训练数据,使机器能够利用它们分析未知数据。任何机器学习问题都可以分为两类:监督学习(Supervised Learning)和非监督学习(Unsupervised Learning)。这两类的区别在于:监督学习的训练数据有特征有标签,而非监督学习的训练数据没有。

监督学习问题一般是指给定输入预测输出,根据输出值的不同可以分为两类:回归(regression)和分类(classification)。回归预测的是连续值,分类预测的是离散值。

举例来说,给定房子的面积来预测房价是一个回归问题,因为房价是个连续值。如果把它改成预测房价是否超过某个阈值,那么这是一个离散问题,因为输出是个“是”或“否”的离散值。同理,给定一个人的图片预测TA的年龄是个回归问题,预测TA的性别是个分类问题。

而非监督学习问题在给定输入时,不知道预测的结果长什么样子,我们是从一堆数据里推导出其中的结构。

非监督学习最常见的应用是聚类(clustering)。举例来说,给定《美国经济》的1000篇文章,按照不同主题进行自动分类。另一个非聚类的典型例子是鸡尾酒会效应,指的是在一个嘈杂的鸡尾酒会环境中谈话中,尽管周围噪音很多,你仍能分辨出朋友对你说话的声音。

线性回归

让我们先从监督学习中最简单的一个问题开始,假设我们有一个数据集如下,我们假设房价受住房面积的影响。

住房面积(英尺2) 房价(1000$)
2104 400
1600 330
2400 369
1416 232
3000 540
... ...

我们的目标是对给定数据集学习出一个函数h: x → y,使得对每个输入x,h(x)都能很好的预测出输出y。由于历史原因,我们把h称为假设函数(Hypothesis Function)。下图描述了这一过程:

假设函数

我们需要对假设函数进行建模,最简单的方式是将它视为线性函数,因而可表示成:

其中θi称之为参数(parameter)或者权重(weight)。为了简化表述,我们定义θ0=1,那么:

其中最右面等式中的θ和x都是向量表示,n是输入变量的个数(在这个例子中n=1)。

那么我们应该如何选取θ,使得h(x)和y的误差最小。为此我们定义代价函数(cost function)如下:

其中x(i)这种上标表示方式是指第i个训练集的输入数据,y(i)是第i个训练集的输出值,m是训练集的个数。

梯度下降算法

引入了代价函数后,我们的目标变成了:选择合适的θ,使得J(θ)最小。在这方面我们主要介绍梯度下降算法(Gradient Descent)。这个算法的主要思想是先选取一个初始点θ0,然后不断改变θ的值使得J(θ)变小,直到J(θ)收敛到最小值。特别的,为了使J(θ)变得最小,我们选择下一个θ值时应该选择能使J(θ)下降最快的那个值,在数学上就是对J(θ)求导,具体来说下一个选取的θ值就是:

其中α是学习率(learning rate),它会影响梯度下降的幅度。在每次迭代中,可以选取不同的α值。下图是梯度下降算法的图示,在选取初始点后,每次都按下降速率最快的方式寻找下一个点,直到找到最低点。

梯度下降算法图示

我们将J(θ)展开进行推导,由此得到:

因而迭代规则更新为:

这个规则被称为最小均方算法(Least Mean Squares,缩写为LMS)或者Widrow-Hoff算法

这个算法在每次迭代时都要计算一遍训练集的数据,因而被称为批量梯度下降法(Batch Gradient Descent)。当训练集数据量很大时,计算速度将变得很慢。为了解决这个问题,我们可以在每次迭代时随机选取训练集数据的一部分来代替整体,这种方法称之为随机梯度下降法(Stochastic Gradient Descent)。随机梯度下降法由于只选取了部分样本数据,因此迭代过程会比较不稳定,虽然每次迭代不一定按着全体最优解靠近,但整体上趋于全体最优解。

正规方程

梯度下降法求解的缺点是需要很多次迭代,是否存在更好的方法呢。正规方程(Normal Equation)就是一个不需要进行迭代就能求解的方法,其公式如下:

其中X和y定义如下,XT是矩阵X的转置。

这个公式证明需要大量线性代数的知识,详细证明可以查阅参考资料。下表给出了梯度下降和正规函数两个算法的对比。

梯度下降 正规函数
需要选择学习率α 不需要选择学习率α
需要很多次迭代 不需要迭代
O(kn2) O(n3),需要计算XTX的逆矩阵
n很大时也能正常工作 n很大时计算很慢

在实践中,当n>=10000时不适合用正规函数,推荐改用梯度下降算法。

另外正规方程还有一个问题,就是XTX可能是不可逆的。不可逆的可能原因是我们使用了冗余的特征(比如两个特征线性相关)或者使用了太多的特征(比如特征数超过了样本数)。解决方法是删除一些多余的特征。

总结

  • 机器学习问题可以分为监督学习和非监督学习,区别在于训练数据是否有特征
  • 监督学习问题根据预测值的不同分为两类:预测值是连续值的叫回归,预测值是离散值的叫分类
  • 最简单的回归模型是线性回归,求解线性回归的两个方法是:梯度下降和正规方程
  • 当训练数据量较大时(n>=10000)时推荐用梯度下降,数据量较小时用正规函数

参考资料

  • Coursera机器学习课程讲义 1 2
  • 斯坦福大学机器学习课CS229讲义 pdf
  • 网易公开课:机器学习课程 双语字幕视频
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容