机器学习第2课:单变量线性回归(Linear Regression with One Variable)
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)的更多相关文章
- 机器学习(二)--------单变量线性回归(Linear Regression with One Variable)
		
面积与房价 训练集 (Training Set) Size Price 2104 460 852 178 ...... m代表训练集中实例的数量x代表输入变量 ...
 - Ng第二课:单变量线性回归(Linear Regression with One Variable)
		
二.单变量线性回归(Linear Regression with One Variable) 2.1 模型表示 2.2 代价函数 2.3 代价函数的直观理解 2.4 梯度下降 2.5 梯度下 ...
 - 斯坦福第二课:单变量线性回归(Linear Regression with One Variable)
		
二.单变量线性回归(Linear Regression with One Variable) 2.1 模型表示 2.2 代价函数 2.3 代价函数的直观理解 I 2.4 代价函数的直观理解 I ...
 - 机器学习 (一) 单变量线性回归 Linear Regression with One Variable
		
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang的个人笔 ...
 - [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率
		
单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...
 - 吴恩达机器学习(二)  单变量线性回归(Linear Regression with one variable)
		
一.模型表示 1.一些术语 如下图,房价预测.训练集给出了房屋面积和价格,下面介绍一些术语: x:输入变量或输入特征(input variable/features). y:输出变量或目标变量(out ...
 - Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)
		
本笔记为Coursera在线课程<Machine Learning>中的单变量线性回归章节的笔记. 2.1 模型表示 参考视频: 2 - 1 - Model Representation ...
 - 单变量线性回归(Linear Regression with One Variable)与代价函数
		
所谓的单变量线性回归问题就是监督学习的一部分. 通过构建数学模型给出一个相对准确的数值,也就是预测模型,通过将数据通过数学模型,衍生至回归问题 通过以下的几个例子,我们来研究单变量线性回归. 1.王阿 ...
 - 机器学习-线性回归算法(单变量)Linear Regression with One Variable
		
1 线性回归算法 http://www.cnblogs.com/wangxin37/p/8297988.html 回归一词指的是,我们根据之前的数据预测出一个准确的输出值,对于这个例子就是价格,回归= ...
 
随机推荐
- 【CF Round 439 A. The Artful Expedient】
			
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
 - es6+最佳入门实践(4)
			
4.函数扩展 4.1.参数默认值 默认参数就是当用户没有传值的时候函数内部默认使用的值,在es5中我们通过逻辑运算符||来实现 function Fn(a, b) { b = b || "n ...
 - http://twitter.github.com/bootstrap/
			
原文发布时间为:2012-05-22 -- 来源于本人的百度文章 [由搬家工具导入] http://twitter.github.com/bootstrap/
 - How to duplicate a UIButton in Objective C?
			
http://stackoverflow.com/questions/1092875/how-to-duplicate-a-uibutton-in-objective-c 1down vote To ...
 - linux进程地址空间--vma的基本操作【转】
			
转自:http://blog.csdn.net/vanbreaker/article/details/7855007 版权声明:本文为博主原创文章,未经博主允许不得转载. 在32位的系统上,线性地址空 ...
 - C++ 播放音频流(PCM裸流)--改善
			
直接上代码,如果有需要可以直接建一个win32控制台程序然后将代码拷过去改个文件名就可以用了(注意将声道和频率与你自己的文件对应).当然我自己也用VS2008写了个例子上传了,如果有需要下载地址如下: ...
 - HTML添加上传图片并进行预览
			
使用说明:新建文件,直接复制粘贴,保存文件为html 格式,在浏览器运行即可: 第一种: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tr ...
 - Java进阶之路,技术要点
			
宏观方面 一.JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级)工程师,您要对JAVA做比较深入的研究.您 ...
 - js-监听页面滚动
			
两种监听页面滚动的方法 一.原生js通过window.onscroll监听 window.onscroll = function() { //为了保证兼容性,这里取两个值,哪个有值取哪一个 //scr ...
 - J.U.C并发框架源码阅读(十二)ConcurrentHashMap
			
基于版本jdk1.7.0_80 java.util.concurrent.ConcurrentHashMap 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Us ...