斯坦福机器学习

---
title: 斯坦福机器学习-线性回归
photos:
- http://7xrw7v.com1.z0.glb.clouddn.com/bb2cf32cadac65e934ab587c5f456329.png
tags:
- 斯坦福机器学习
date: 2016-09-05 16:34:34
---

摘要:

- 单变量线性回归
- 代价函数
- 梯 度 下 降
- 学习率
- 多 变 量 线 性 回 归
- 特 征 缩 放
- 多 项 式 回 归
- 正 规 方 程

<!--more-->

不积跬步,无以至千里;不积小流,无以成江海。”
——荀子《劝学篇》

这句话写在开头,以作警示。

未来几天,将男神:Andrew Ng 的机器学习视频过一遍,该系列博客主要来自视频及网上Ryan Cheung的笔记。

### 单变量线性回归 LINEAR REGRESSION WITH ONE VARIABLE
#### 模 型 表 达 MODEL REPRESENTATION

假使我们回归问题的训练集(Training Set)如下表所示:

![](http://7xrw7v.com1.z0.glb.clouddn.com/73c6b4e5a7705360cda20eff49dead22.png)

我们将要用来描述这个回归问题的标记如下:
![](http://7xrw7v.com1.z0.glb.clouddn.com/be3df77f13e39781bbfc35c14d344ff1.png)

![](http://7xrw7v.com1.z0.glb.clouddn.com/8dca07a0928836e4c08a3ac70d6c47b9.png)

因而,要解决房价预测问题,我们实际上是`要将训练集“喂”给我们的学习算法,`进而学习得
一个假设 h,然后将我们要预测的房屋的尺寸作为输入变量输入给 h,预测出该房屋的交易价
格作为输出变量输出为结果。

对于我们的房价预测问题,我们该如何表达 h?

一种可能的表达方式为:![](http://7xrw7v.com1.z0.glb.clouddn.com/cb9cbe7a8bbf807e946625171e960672.png)

`因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。`

#### 代 价 函 数 ( COST FUNCTION)

现在要做的便是为我们的模型选择
合适的参数(parameters)$θ_0$ 和$θ_1$ 。
在房价问题这个
例子中便是在 y 轴上的截距和直线的斜率。

我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训
练集中实际值之间的差距(下图中蓝线所指)就是`建模误差(modeling error)。`
![](http://7xrw7v.com1.z0.glb.clouddn.com/4bf409d21695a63dec094e9e7ba487e4.png)

`我们的目标:`
选择出可以使得建模误差的平方和能够最小的模型参数。
即:使得`代价函数`![](http://7xrw7v.com1.z0.glb.clouddn.com/237776bde0b15795cc0954d0edfaa23f.png)最小。

我们绘制一个等高线图,三个坐标分别为$θ_0$ 和$θ_1$ 和 $J(θ_0, θ_1 )$:
![](http://7xrw7v.com1.z0.glb.clouddn.com/dedd34eaf4ffb44031cecc5c485cd9dd.png)
可以看出在三维空间中存在一个使得 $J(θ_0, θ_1 )$最小的点。

![](http://7xrw7v.com1.z0.glb.clouddn.com/c87a08e34628b75b929e4c42bada5fe5.png)

#### 梯 度 下 降 ( GRADIENT DESCENT)
为了求代价函数$J(θ_0, θ_1 )$的最小值,我们将使用梯度下降算法。
梯度下降是一个用来求函数最小值的算法。

梯度下降算法的思想:
![](http://7xrw7v.com1.z0.glb.clouddn.com/5b50132c0be823bd52f939050ee25734.png)
![](http://7xrw7v.com1.z0.glb.clouddn.com/9877c74194eff74b247555aa7376fa2a.png)

##### 批量梯度下降(batch gradient descent)算法
![](http://7xrw7v.com1.z0.glb.clouddn.com/dfe92fc85f0cd7d85ed771235e5a10d6.png)

其中`α是学习率(learning rate)`,它决定了我们沿着能让代价函数下降程度最大的方向向下迈
出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价
函数的导数。

#### 对 线 性 回 归 运 用 梯 度 下 降 法
对我们之前的线性回归问题运用梯度下降法,`关键在于求出代价函数的导数,`即:
![](http://7xrw7v.com1.z0.glb.clouddn.com/1957e346e9c2205084bfa13262ffaec2.png)

![](http://7xrw7v.com1.z0.glb.clouddn.com/cc634ab0911b9e5fdf90a3a9f539c492.png)

![](http://7xrw7v.com1.z0.glb.clouddn.com/929a7dab00fc05cbdc9b939ec07a2ec0.png)

注意:对于凸函数(convex function)只有一个全局最优解。

### 多 变 量 线 性 回 归

#### 多 维 特 征 ( MULTIPLE FEATURES)
现在我们对房价模型增加更多的特征,例如
房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x 1 ,x 2 ,...,x n )。

![](http://7xrw7v.com1.z0.glb.clouddn.com/e6888adc50af3e60378e7bf94ac5d51a.png)

![](http://7xrw7v.com1.z0.glb.clouddn.com/d936b216cc8e8af416254da51b1fe7f0.png)

支持多变量的假设 h 表示为:
![](http://7xrw7v.com1.z0.glb.clouddn.com/bb07e6c00c62a26fff4bf38f713bcb8b.png)

引入$X_0$=1

![](http://7xrw7v.com1.z0.glb.clouddn.com/6615106f1da64c63368bb7406a8c9155.png)
此时模型中的参数是一个 n+1 纬的向量,任何一个训练实例也都是 n+1 纬的向量,特征矩阵
X 的纬度是 m*(n+1)。

因此公式简化为:
![](http://7xrw7v.com1.z0.glb.clouddn.com/b03b7668b63a8aa1fa853f7a2d7e085f.png)其中上标 T 代表矩阵转置。

#### 多 变 量 梯 度 下 降 ( GRADIENT DESCENT FOR MULTIPLE VARIABLES)

在多变量线性回归中,我们也构建一个代价函数,则这个代价函数
是所有建模误差的平方和,即:
![](http://7xrw7v.com1.z0.glb.clouddn.com/49c0c24e67b30da7ebe919d9351d4af2.png)

`我们的目标:`找出使得代价函数最小的一系列参数。

`多变量线性回归的批量梯度下降算法为:`
![](http://7xrw7v.com1.z0.glb.clouddn.com/0eb341cbbd759c101dc654c414876369.png)

即:

![](http://7xrw7v.com1.z0.glb.clouddn.com/d9008bae69016724fcf434e0e1ed127f.png)

求导数后得到:

![](http://7xrw7v.com1.z0.glb.clouddn.com/4265396384c7510aa89a3e82cffc51a3.png)

我们 开始随机选择一系列的参数直,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。

#### 特 征 缩 放 ( FEATURE SCALING)

`面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。`

例子:

房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的直为 0-2000 平方英尺,而房间数量的直则是 0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

![](http://7xrw7v.com1.z0.glb.clouddn.com/66c0544a8ad1140f07f09c565bd333b8.png)

![](http://7xrw7v.com1.z0.glb.clouddn.com/14a49ba53cc09749621f6c837716f972.png)

#### 学 习 率 (LEARNING RATE)

我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。

![](http://7xrw7v.com1.z0.glb.clouddn.com/c28d8c9c51c4b7138aab24e3f8ee2ad4.png)

`其他方法:`
也有一些自动测试是否收敛的方法,例如将代价函数的变化直与某个阀直(例如 0.001)进行比较,
但通常看上面这样的图表更好。

- 如果学习率α过小,则达到收敛所需的迭代次数
会非常高
- 如果学习率α过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致
无法收敛。

通常可以考虑尝试这些学习率:

$\alpha$ = 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, 3, 10

### 多 项 式 回 归 ( POLYNOMIAL REGRESSION)
线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型:

![](http://7xrw7v.com1.z0.glb.clouddn.com/24f0d9e6c6e035b668030e76167e9776.png)

或者三次方模型:

![](http://7xrw7v.com1.z0.glb.clouddn.com/8ed43e9ff8d9b2746ab9bd702a184eec.png)

![](http://7xrw7v.com1.z0.glb.clouddn.com/ca01b038d3afca5f275e823f4471f8f6.png)

通常我们需要先观察数据然后再决定准备尝试怎样的模型。

方法:我们可以令

![](http://7xrw7v.com1.z0.glb.clouddn.com/c9c07272348a20e2f5f0d86d38f4f97e.png)
从而将模型转化为线性回归模型。

`注:如果我们采用多项式回归模型,在运行梯度下降算法前,
特征缩放非常有必要。`

### 正 规 方 程 ( NORMAL EQUATION)

到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,正规方程方法是更好的解决方案。

`正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:`
![](http://7xrw7v.com1.z0.glb.clouddn.com/f4963307a27d5554ae0113c924c8e110.png)

假设我们的训练集特征矩阵为 X(包含了 x 0 =1)并且我们的训练集结果为向量 y,则利用正规
方程解出向量

![](http://7xrw7v.com1.z0.glb.clouddn.com/74c6fdd54aa8aaeb56fe72b3fba78046.png)

上标 T 代表矩阵转置,上标-1 代表矩阵的逆。

#### 例子

以下表所示数据为例:

![](http://7xrw7v.com1.z0.glb.clouddn.com/ddd9a6382bbab5ebf4ae656b0a6daad7.png)

运用正规方程方法求解参数:

![](http://7xrw7v.com1.z0.glb.clouddn.com/e4ad4eaab52da9c8e421ff1a33fa1b14.png)

在 Octave 中,正规方程写作:pinv(X‘*X)*X‘*y

```
注:对于那些不可逆的矩阵(通常是因为特征之间不独立,如同时包含英尺
为单位的尺寸和米为单位的尺寸两个特征,也有可能是特征数量大于训
练集的数量),正规方程方法是不能用的。
```

#### 梯度下降与正规方程的比较
![](http://7xrw7v.com1.z0.glb.clouddn.com/19893cefee6385ccd1c1228d9b4b7e9a.png)

时间: 2024-10-27 12:36:48

斯坦福机器学习的相关文章

斯坦福机器学习公开课---1.机器学习简单介绍

斯坦福机器学习公开课---1. 机器学习简单介绍 1.1  介绍 机器学习流行原因--- 1)      由人工智能AI发展来的一个领域 2)      是计算机需要开发的一项新的能力,涉及工业和基础学科中的很多内容. 应用学习算法,如设计自主机器人,计算生物学和其他被机器学习影响的领域. 1.2  机器学习应用 1)        数据挖掘 网站点击流数据.电子医疗记录.计算生物学和工程学. 2)        无法手动进行编程的领域 自动直升机.手写体识别.自然语言处理NLP和计算机视觉.

斯坦福机器学习公开课学习笔记(1)—机器学习的动机与应用

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 斯坦福机器学习公开课差不多是网上能找到的最好的机器学习入门课程了.现在一共有20节课放到网络上,博主是在网易公开课学的,那里的视频有中文字幕然后课件也很全. (地址:http://v.163.com/special/opencourse/machinelearning.html) 主讲师Andrew Ng(已经被百度诏安了)是华裔科学家,看他的课特别有亲切感.感觉他们的课跟国内老师的课区别还是挺大的

cs229 斯坦福机器学习笔记(一)

前言 说到机器学习,很多人推荐的学习资料就是斯坦福Andrew Ng的cs229,有相关的视频和讲义.不过好的资料 != 好入门的资料,Andrew Ng在coursera有另外一个机器学习课程,更适合入门.课程有video,review questions和programing exercises,视频虽然没有中文字幕,不过看演示的讲义还是很好理解的(如果当初大学里的课有这么好,我也不至于毕业后成为文盲..).最重要的就是里面的programing exercises,得理解透才完成得来的,毕

斯坦福机器学习课程汇总

斯坦福机器学习课程汇总 前言 首先感谢吴恩达建立Coursera这样一个优秀的在线学习平台,以及他发布在这个平台上的机器学习课程. 这门课程将整个机器学习领域的基础知识,用浅显易懂的方式,深入浅出的进行了介绍.使得一个拥有高中数学知识的学生也能听得明白. 如果你想要涉足机器学习.人工智能领域,或者对这一领域有浓厚的兴趣想要深入了解,那么你会发现很多机器学习入门课程推荐的资料中,都有吴恩达老师的这一系列课程.甚至在大多数资料中,都把这门课放在了首选的位置上. 因此,我把吴恩达老师的课程整理成了Ma

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

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

斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning

我们将学习如何系统地提升机器学习算法,告诉你学习算法何时做得不好,并描述如何'调试'你的学习算法和提高其性能的"最佳实践".要优化机器学习算法,需要先了解可以在哪里做最大的改进. 我们将讨论如何理解具有多个部分的机器学习系统的性能,以及如何处理偏斜数据. Evaluating a Hypothesis 设想当你训练的模型对预测数据有很大偏差的时候,接下来你会选择怎么做? 这个需要花时间去实现,但是对你的帮助也会很大,使你不盲目的做一些决定来提升算法,而是直观地看出哪些是对提升算法是有效

cs229 斯坦福机器学习笔记(二)

LR回顾 LR是机器学习入门的第一道坎,总结一下,Linear Regression 和logistic Regression都是属于GLM,套了logistic之后,输出结果就变成一个概率了,loss function和 likelihood function取反是类似的东西,都可以作为优化的目标.但我感觉 likelihood function从概率统计上来说,更有理论支持吧.loss function 直接对残差求平方和,直觉上也是挺合理的:当然,对于logistic Regression

斯坦福机器学习课程笔记

模型(如何模拟)---策略(风险函数)--算法(最优化方法) 第一节: 机器学习的基本概念和分类 第二节: 线性回归,最小二乘 批梯度下降(bgd)和随机梯度下降(sgd) 第三节: 过拟合,欠拟合 非参数学习算法:局部加权回归 概率角度解释线性回归.极大似然估计(mlp) 分类:逻辑回归

斯坦福机器学习实现与分析之一(前言)

自去年底开始学习Andrew Ng的机器学习公开课,欲依其课件试着实现部分算法以加深理解,然在此过程中遇到部分问题,或为程序实现,或为算法理解.故而准备将此课程整理,并记录自己的理解,或对或错可共同讨论. 此课程主要包括三部分:监督学习算法.无监督学习算法以及学习理论.监督学习部分讲了回归.生成学习算法与SVM:无监督学习则讲了K-means,MOG,EM,PCA,ICA以及增强学习等算法:学习理论则是讲解算法的评估,模型与特征的选择等方法.此处课程整理的顺序将与原讲义相同. 另外,考虑此处主要