2.1  模型表示

  之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示:

  

    

    我们将要用来描述这个回归问题的标记如下:

     m                代表训练集中实例的数量

      x                 代表特征/输入变量

     y                 代表目标变量/输出变量

     (x,y)            代表训练集中的实例

    (x(i),y(i)  )    代表第 i 个观察实例

    h                代表学习算法的解决方案或函数也称为假设(hypothesis)

    

  

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

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

  一种可能的表达方式为:

  2.2  代价函数

  如图:

  

  

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

   我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)。

  

  

    我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数  

    我们绘制一个等高线图,三个坐标分别为 θ0 和 θ1 和 J(θ0,θ1):

  

    则可以看出在三维空间中存在一个使得 J(θ0,θ1)最小的点

  

  2.3  代价函数的直观理解 I

  

  

  2.4  代价函数的直观理解 II

  

  代价函数的样子

  

  

  2.5  梯度下降

    梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ0,θ1) 的最小值。 梯度下降背后的思想是:开始时我们随机选择一个参数的组合(θ0,θ1,...,θn),计算代价函数,

  然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定 我们得到的局部最小值是否便是

  全局最小值(global  minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

  

  批量梯度下降(batch gradient descent)算法的公式为:

  

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

  

  

  注意:要同时更新θ0,θ1才可以,千万不要忘记

  2.6  梯度下降的直观理解

    梯度下降算法如下图:

  

  

    描述:对θ赋值,使得 J(θ)按梯度下降最快方向进行,一直迭代下去,最终得到局部最小值。

    其中 α 是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。

    

  

  

  2.7  梯度下降的线性回归

    梯度下降算法和线性回归算法比较如图:

  

    对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:

  

    j=0  时:

  

    j=1 时:

   

    则算法改写成:

  

  

  2.8  接下来的内容

    在接下来的一组视频中,我会对线性代数进行一个快速的复习回顾。如果你从来没有接 触过向量和矩阵,那么这课件上所有的一切对你来说都是新知识,或者你之前对线性代数有所了解,但由于隔得久了,

  对其有所遗忘,那就请学习接下来的一组视频,我会快速地回顾 你将用到的线性代数知识。

    通过它们,你可以实现和使用更强大的线性回归模型。事实上,线性代数不仅仅在线性 回归中应用广泛,它其中的矩阵和向量将有助于帮助我们实现之后更多的机器学习模型,并在计算上更有效率。

  正是因为这些矩阵和向量提供了一种有效的方式来组织大量的数据,特别是当我们处理巨大的训练集时,如果你不熟悉线性代数,如果你觉得线性代数看上去是一 个复杂、可怕的概念,特别是对于之前从未接触过它的人,

    不必担心,事实上,为了实现机 器学习算法,我们只需要一些非常非常基础的线性代数知识。通过接下来几个视频,你可以 很快地学会所有你需要了解的线性代数知识。具体来说,为了帮助你判断是否有需要学习接

   下来的一组视频,我会讨论什么是矩阵和向量,谈谈如何加 、减 、乘矩阵和向量,讨论逆 矩阵和转置矩阵的概念

    如果你十分熟悉这些概念,那么你完全可以跳过这组关于线性代数的选修视频,但是如果你对这些概念仍有些许的不确定,不确定这些数字或这些矩阵的意思,那么请看一看下一组的视频,

  它会很快地教你一些你需要知道的线性代数的知识,便于之后编写机器学习算法 和处理大量数据。

机器学习第2课:单变量线性回归(Linear Regression with One Variable)的更多相关文章

  1. 机器学习(二)--------单变量线性回归(Linear Regression with One Variable)

    面积与房价 训练集 (Training Set) Size       Price 2104       460 852         178 ...... m代表训练集中实例的数量x代表输入变量 ...

  2. Ng第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下 ...

  3. 斯坦福第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 I 2.4  代价函数的直观理解 I ...

  4. 机器学习 (一) 单变量线性回归 Linear Regression with One Variable

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang的个人笔 ...

  5. [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率

    单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...

  6. 吴恩达机器学习(二) 单变量线性回归(Linear Regression with one variable)

    一.模型表示 1.一些术语 如下图,房价预测.训练集给出了房屋面积和价格,下面介绍一些术语: x:输入变量或输入特征(input variable/features). y:输出变量或目标变量(out ...

  7. Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)

    本笔记为Coursera在线课程<Machine Learning>中的单变量线性回归章节的笔记. 2.1 模型表示 参考视频: 2 - 1 - Model Representation ...

  8. 单变量线性回归(Linear Regression with One Variable)与代价函数

    所谓的单变量线性回归问题就是监督学习的一部分. 通过构建数学模型给出一个相对准确的数值,也就是预测模型,通过将数据通过数学模型,衍生至回归问题 通过以下的几个例子,我们来研究单变量线性回归. 1.王阿 ...

  9. 机器学习-线性回归算法(单变量)Linear Regression with One Variable

    1 线性回归算法 http://www.cnblogs.com/wangxin37/p/8297988.html 回归一词指的是,我们根据之前的数据预测出一个准确的输出值,对于这个例子就是价格,回归= ...

随机推荐

  1. 【POJ3294】 Life Forms(SA)

    ...又是TLE,对于单组数据肯定TLE不了,问题是多组的时候就呵呵了... 按height分组去搞,然后判一下是否不属于同一个串... ; var x,y,rank,sa,c,col,h,rec:. ...

  2. 洛谷 P3302 [SDOI2013]森林 解题报告

    P3302 [SDOI2013]森林 题目描述 小\(Z\)有一片森林,含有\(N\)个节点,每个节点上都有一个非负整数作为权值.初始的时候,森林中有\(M\)条边. 小Z希望执行\(T\)个操作,操 ...

  3. pm2使用记录

    linux 查找命令 (1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找 (2)find /etc -name 'srm' #使用通配符 ...

  4. ubuntu上安装ffmpeg

      安装包和主要步骤: 1. 首先安装系统基础环境 RHEL & CentOS 系列:yum install -y automake autoconf libtool gcc gcc-c++ ...

  5. (原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)

    « CloudStack+XenServer详细部署方案(10):高级网络功能应用 (总结)CentOS Linux 5.x在GPT分区不能引导的解决方法 » 2013-1 11 (原创)Linux下 ...

  6. linux之expr命令

    expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能.它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. 先看expr命令的info文档in ...

  7. sql 取一张表的全部外键

    select a.name as 约束名, object_name(b.parent_object_id) as 外键表, d.name as 外键列, object_name(b.reference ...

  8. 日志组件Log4Net

    <?xml version="1.0" encoding="utf-8"?> <configuration> <configSec ...

  9. 简单粗暴!解决锐捷强制关闭VMware NAT Service的问题(图文教程)

    众所周知毒瘤的锐捷会定时强制关闭NAT服务,导致虚拟机连不上网,进而你的虚拟机就成了孤儿,只能玩单机. 在一番百度后,得到了一种神仙破解办法.原理是把锐捷关闭服务时所用的搜索关键字改掉,这样锐捷就搜不 ...

  10. iOS crash 崩溃问题的追踪方法

    http://www.cnblogs.com/easonoutlook/archive/2012/12/27/2835884.html iOS crash 崩溃问题的追踪方法 在调试程序的时候,总是碰 ...