斯坦福大学机器学习第二课“单变量线性回归(Linear regression with one variable)”

发表于 2012年05月6号 由 52nlp

斯坦福大学机器学习第二课”单变量线性回归“学习笔记,本次课程主要包括7部分:

1) Model representation(模型表示)

2) Cost function(代价函数,成本函数)

3) Cost function intuition I(代价函数直观解释1)

4) Cost function intuition II(代价函数直观解释2)

5) Gradient descent(梯度下降)

6) Gradient descent intuition(梯度下降直观解释)

7) Gradient descent for linear regression(应用于线性回归的的梯度下降算法)

以下是第二课“单变量线性回归”的课件资料下载链接,视频可以在Coursera机器学习课程上观看或下载:
PPT   PDF

1) Model representation(模型表示)

回到第一课中的房屋价格预测问题, 首先它是一个有监督学习的问题(对于每个样本的输入,都有正确的输出或者答案),同时它也是一个回归问题(预测一个实值输出)。

训练集表示如下:

其中:

m = 训练样本的数目

x = “输入”变量,也称之为特征

y = “输出”变量,也称之为“目标”变量

对于房价预测问题,学习过程可用下图表示:

其中x代表房屋的大小,y代表预测的价格,h(hypothesis)将输入变量 x 映射到输出变量 y,如何表示h?

事实上Hypothesis可以表示成如下形式:

hθ(x)=θ0+θ1x

简写为 h(x),也就是带一个变量的线性回归或者单变量线性回归问题。

2) Cost function(代价函数,成本函数)

对于Hypothesis:  hθ(x)=θ0+θ1x

θi 为参数

如何求θi?

构想: 对于训练集(x, y),选取参数θ0, θ1使得hθ(x)尽可能的接近y。

如何做呢?一种做法就是求训练集的平方误差函数(squared error function),Cost Function可表示为:

J(θ0,θ1)=12m∑i=1m(hθ(x(i))–y(i))2

并且选取合适的参数使其最小化,数学表示如下:

minimizeθ0,θ1J(θ0,θ1)

3) Cost function intuition I(直观解释1)

直观来看,线性回归主要包括如下四大部分,分别是Hypothesis, Parameters, Cost Function, Goal:

这里作者给出了一个简化版的Cost function解释,也就是令θ0为0:

然后令θ1分别取1、0.5、-0.5等值,同步对比hθ(x)和J(θ0,θ1)在二维坐标系中的变化情况,具体可参考原PPT中的对比图,很直观。

4) Cost function intuition II(直观解释2)

回顾线性回归的四个部分,这一次不在对Cost Function做简化处理,这个时候J(θ0,θ1)的图形是一个三维图或者一个等高线图,具体可参考原课件。

可以发现,当hθ(x)的直线越来越接近样本点时,J(θ0,θ1)在等高线的图中的点越来越接近最小值的位置。

5) Gradient descent(梯度下降)

应用的场景之一-最小值问题:

对于一些函数,例如J(θ0,θ1)

目标:  minθ0,θ1J(θ0,θ1)

方法的框架:

1、给θ0, θ1一个初始值,例如都等于0

2、每次改变θ0, θ1的时候都保持J(θ0,θ1)递减,直到达到一个我们满意的最小值;

对于任一J(θ0,θ1) , 初始位置不同,最终达到的极小值点也不同,例如以下两个例子:

梯度下降算法:

重复下面的公式直到收敛:

举例:

参数正确的更新过程如下(同步更新):

错误的更新过程如下:

6) Gradient descent intuition(梯度下降直观解释)

举例,对于一个简化的J(θ1)来说,无论抛物线的左边还是右边,在梯度下降算法下,θ1)都是保持正确的方向(递增或递减)

对于learning rate(又称为步长)来说:

如果α过小,梯度下降可能很慢;如果过大,梯度下降有可能“迈过”(overshoot)最小点,并且有可能收敛失败,并且产生“分歧”(diverge)

梯度下降可以使函数收敛到一个局部最小值,特别对于learning rate α是固定值的时候:

当函数接近局部最小值的时候,梯度下降法将自动的采取“小步子”, 所以没有必要随着时间的推移减小learning rate.

关于梯度下降算法,可以参考维基百科的介绍:http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95

7) Gradient descent for linear regression(应用于线性回归的的梯度下降算法)

梯度下降算法:

线性回归模型:

J(θ0,θ1)对于θ0), θ1)求导,得:

在梯度下降算法中进行替换,就得到单变量线性回归梯度下降算法:

详细的图形举例请参考官方PPT,主要是在等高线图举例梯度下降的收敛过程,逐步逼近最小值点,其中一幅图说明:线性回归函数是凸函数(convex function),具有碗状(bowl shape)。

总结: 这里的梯度下降算法也称为”Batch” 梯度下降: 梯度下降的每一步都使用了所有的训练样本。

斯坦福大学机器学习第二课 “单变量线性回归”相关推荐

  1. Coursera公开课笔记: 斯坦福大学机器学习第二课“单变量线性回归(Linear regression with one variable)”

    Coursera公开课笔记: 斯坦福大学机器学习第二课"单变量线性回归(Linear regression with one variable)" 发表于 2012年05月6号 由 ...

  2. 第二章 单变量线性回归-机器学习老师板书-斯坦福吴恩达教授

    第二章 单变量线性回归 2.1 模型描述 2.2 代价函数 2.3 代价函数(一) 2.4 代价函数(二) 2.5 梯度下降 2.6 梯度下降知识点 2.7 线性回归的梯度下降 2.1 模型描述 2. ...

  3. Coursera公开课笔记: 斯坦福大学机器学习第一课“引言(Introduction)”

    Coursera公开课笔记: 斯坦福大学机器学习第一课"引言(Introduction)" 注:这是我在"我爱公开课"上做的学习笔记,会在52opencours ...

  4. 斯坦福大学机器学习第一课“引言(Introduction)”

    斯坦福大学机器学习第一课"引言(Introduction)" 一.机器学习概览 1)机器学习定义:机器学习是人工智能的一个分支,目标是赋予机器一种新的能力.机器学习的应用很广泛,例 ...

  5. 机器学习-代价函数(单变量线性回归)

    机器学习-代价函数(单变量线性回归) 2.1函数表示 因为只含有一个特征/输入变量,所以这样的问题叫作单变量线性回归问题. 回归问题: 构建一个模型,也许是条直线,从这个数据模型上看,如果你朋友的房子 ...

  6. 吴恩达机器学习笔记 1单变量线性回归

    机器学习 (小白通俗理解) 机器学习包括监督学习和无监督学习 监督学习 首先,监督学习,我们所给的数据集由正确答案组成,计算机根据正确数据集对未知样本进行结果预测 无监督学习 无监督学习,所给数据集并 ...

  7. 机器学习门户网站——单变量线性回归

    线性回归的概念.在高中的数学书出现了. 给你一些样本点,怎样找出一条直线,使得最逼近这些样本点. 给出一个样例:如果 x 是房子面积,y是房子价格.确定一条直线须要theta0和theta1. 给出x ...

  8. 吴恩达机器学习(第二章)——单变量线性回归

    第二章-单变量线性回归 文章目录 第二章-单变量线性回归 模型描述 代价函数 梯度下降 梯度下降的思想 梯度下降算法的公式 梯度下降的运动方式 线性回归的梯度下降 模型描述 在监督学习中我们有一个数据 ...

  9. 吴恩达机器学习(一)单变量线性回归(假设函数、代价函数、梯度下降)

    目录 0. 前言 1. 假设函数(Hypothesis) 2. 代价函数(Cost Function) 3. 梯度下降(Gradient Descent) 学习完吴恩达老师机器学习课程的单变量线性回归 ...

最新文章

  1. 登录linux后台工具,linux后台进程管理工具-supervisor
  2. python学习笔记-5.18
  3. 在IT的世界里,分享是一种快乐.
  4. PMCAFF产品经理第一课 | 深圳站 现场集锦
  5. ustc小道消息20211220
  6. 三年经验前端社招——朴朴科技
  7. Codeforces Round #732 (Div. 1Div. 2)
  8. 广元南山隧道南河互通立交图_广元城区一隧道工程竣工时间已定,今后出行更加方便了!...
  9. 莫烦python博客_《莫烦Python》笔记 -- numpy部分
  10. 误区30日谈21-24
  11. 计算机系统-记录Bochs调试器几个常用命令
  12. 机器视觉:远心光学探秘
  13. 没有计算机基础可以学python-Python的学习,都需要具备哪些计算机基础知识?
  14. 如何使用JMeter来实现更大批量的并发的解决方案(即如何设置controller和Agent)
  15. 配置多台计算机之间ssh无密码登录的一种简便方法
  16. Java 平衡二叉树和AVL
  17. html实心向右三角形,css 如何在html页面上输出一个左三角形或右三角形呢?
  18. matlab误码率理论,PSK理论误码率与实际误码率MATLAB仿真程序
  19. C++多线程std::async、std::future、std::packaged_task、std::promise
  20. nofollow标签使用方法

热门文章

  1. 用闭包实现重载的过程学习闭包
  2. 微任务与宏任务与eventloop
  3. input输入框小写字母自动转换成大写字母
  4. 解决webpack 打包出现额外的xxxx.LICENSE.js文件
  5. 手写一个二级选择框联动
  6. mysql实时监听canal+kafka
  7. 使用Slf4j查看日志输出
  8. localStorage.setItem()前后端分离情况下使用
  9. JavaScript面向对象——深入理解默认的继承方式原型链
  10. Android测试写入文本Log