机器学习:单变量线性回归及梯度下降

*******************************************************************************

注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的《机器学习》课程笔记。博主深感学过课程后,不进行总结很容易遗忘,根据课程加上自己对不明白问题的补充遂有此系列博客。本系列博客包括线性回归、逻辑回归、神经网络、机器学习的应用和系统设计、支持向量机、聚类、将维、异常检测、推荐系统及大规模机器学习等内容。

*******************************************************************************

单变量线性回归

模型表示

线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。

详细描述

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

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

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

x  代表特征/输入变量

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

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

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

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

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

一种可能的表达方式为:,因为只含有一个特征(输入变量),因此这样问题叫作单变量线性回归问题。

代价函数

本节将要定义什么是代价函数,这将有助于我们把最有可能的直线与给定的数据相拟合。

我们现在要做的便是为我们的模型选择合适的参数(parameters)θ0 和θ1,在房价问题这个例子中便是直线的斜率和在y轴上的截距。我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling
error)。

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

  最小。

我们绘制一个等高线图,三个坐标分别为 θ0 和θ1 和  J(θ0,θ1),则可以看出在三维空间中存在一个使得  J(θ0,θ1)最小的点。

代价函数的直观理解

1 仅有一个模型参数时

如下图所示,我们想要用一条直线来拟合我们的数据,用参数θ0 和θ1得到假设h,而通过选择不同的θ0 和θ1,可以得到不同的拟合直线;在本小节中,为了更好地讲述代价函数,我们使用一个简化的假设函数,将θ0看做等于0,从而,优化函数将只有一个参数θ1。(将假设函数看做经过原点的直线(θ0 =0)可以更好地解释代价函数。)

将θ1取值不同时所对应的不同J值所对应的数据点绘制出来,如下侧右图所示,可以看到,当J的取值不同时,对应于不同的假设函数;反之,不同的假设函数也对应于不同的代价函数取值,而学习算法的目标是最小化代价函数。

从下图中可以看到,当θ1=1时,J取得最小值0,而该J对应的假设函数正好比较好地拟合出了数据集中的样本点,这就比较直观地解释了为什么通过最小化代价函数可以得到一个最佳的拟合直线。

2 有两个模型参数时

与上一小节相同,来看一下假设函数、模型参数、代价函数、优化目标函数,所不同的是,这里不再假设θ0=0,而J是θ0和θ1的函数。当h只有一个参数时,代价函数J的图形将是如上图右侧所示的碗装函数。但现在J有两个参数:θ0和θ1,J的函数图形仍然呈现出碗装形状,但变为了二维图形,如下图所示。

对于不同的假设函数,代价函数取值不同。接下来,为了描述方面,不再使用这个三维图形,而是使用contour figure。如下右图所示,就是contour figure,同一椭圆上的点,代表J取值相同。如下侧右图所示,θ0=800这点对应于左图中的直线,可以看到,这条直线并不能很好地拟合数据集,并且注意到,θ0=800这点距离J的最小值点还很远,也就是说这个代价函数还很大。

通过不断地降低J的取值,可以找到较好的拟合直线:

梯度下降

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ0,θ1) 的最小值。下面,看一下梯度下降法的定义,如下图所示。

(1):= 表示赋值;

(2)α 是一个数字,被称为学习速率,它控制了我们下山时会迈出多大的步子,因此如果α值很大,那么相应的梯度下降过程中我们会试图用大步子下山,如果α值很小,那么我们会迈着很小的小碎步下山(关于如何设置α的值等内容,在之后的课程中会再讲解);

(3)这里的梯度下降法为批量梯度下降法,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。

梯度下降背后的思想是:开始时我们随机选择一个参数的组合(θ0,θ1,...,θn),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(localminimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

梯度下降的直观理解

对θ赋值,使得 J(θ)按梯度下降最快方向进行,一直迭代下去,最终得到局部最小值。其中 α是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方

向向下迈出的步子有多大。

但对于线性回归问题,代价函数是一个碗装的函数(凸函数),该函数只有一个全局最优解,所以,利用梯度下降法,总是会收敛到全局最优解。

梯度下降和线性回归

如下图所示,左侧是梯度下降法,右侧是线性回归。接下来要做的就是用左侧的梯度下降法来最小化平方误差代价函数。

批量梯度下降法:即在进行梯度下降法的过程中,每一次迭代都用到了所有的训练样本,就是说,每次更新都需要考虑这一"批"样本。

转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/47357751

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-03 23:03:30

机器学习:单变量线性回归及梯度下降的相关文章

Stanford机器学习课程笔记——单变量线性回归和梯度下降法

Stanford机器学习课程笔记--单变量线性回归和梯度下降法 1. 问题引入 单变量线性回归就是我们通常说的线性模型,而且其中只有一个自变量x,一个因变量y的那种最简单直接的模型.模型的数学表达式为y=ax+b那种,形式上比较简单.Stanford的机器学习课程引入这个问题也想让我们亲近一下machine learning这个领域吧~吴恩达大神通过一个房屋交易的问题背景,带领我们理解Linear regression with one variable.如下: 不要看这个问题简答,大神就是大神

机器学习入门:线性回归及梯度下降

机器学习入门:线性回归及梯度下降 本文会讲到: (1)线性回归的定义 (2)单变量线性回归 (3)cost function:评价线性回归是否拟合训练集的方法 (4)梯度下降:解决线性回归的方法之一 (5)feature scaling:加快梯度下降执行速度的方法 (6)多变量线性回归   Linear Regression 注意一句话:多变量线性回归之前必须要Feature Scaling! 方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个

Stanford机器学习Week 1—单变量线性回归

本篇讲述以下内容: 单变量线性回归 代价函数 梯度下降 单变量线性回归 回顾下上节,在回归问题中,我们给定输入变量,试图映射到连续预期结果函数上从而得到输出.单变量线性回归就是从一个输入值预测一个输出值.输入/输出的对应关系就是一个线性函数. 下面是一个根据房屋面积预测房屋价格的例子. 假设有一个数据集,我们称作训练集,数据集包括房屋面积和房屋价格数据. x:表示输入变量,也叫特征变量. y:表示输出变量,也叫目标变量. (xi,yi):表示一个识训练样本,训练集的一行.i 表示 第 i 个训练

机器学习入门之单变量线性回归(上)——梯度下降法

在统计学中,线性回归(英语:linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合.只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归(multivariate linear regression).——————维基百科 一直以来,这部分内容都是ML的敲门砖,吴恩达教授在他的课程中也以此为第一个例子,同时,本篇也参考了许多吴教授的内容. 在这里,我简单把

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

1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我们通过一个例子来开始.这个例子用来预测住房价格,我们使用一个数据集,该数据集包含俄勒冈州波特兰市的住房价格.在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集: 我们来看这个数据集,如果你有一个朋友正想出售自己的房子,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱. 那么,你可以做的一件事就是构建一个模型,也许是条直线.从这个数据模型上来看,也许你可以告诉你的朋友,他大概

机器学习入门——单变量线性回归

线性回归的概念,在高中数学书里就出现过. 给你一些样本点,如何找出一条直线,使得最逼近这些样本点. 给出一个例子:假设 x 是房子面积,y是房子价格,确定一条直线需要theta0和theta1. 给出x,我们就可以计算出房子的价格 h(x) = theta0+theta1*x 关键是如何计算出theta0和theta1,也就是如何找出这么一条直线呢? 在这里,引入一个概念,叫做cost function.m表示样本个数,也就是训练样本数目 这是一个square error,学过统计的应该经常见到

机器学习 Machine Learning(by Andrew Ng)----第二章 单变量线性回归(Linear Regression with One Variable)

第二章 单变量线性回归(Linear Regression with One Variable) <模型表示(Model Representation)>                                                             <代价函数(Cost Function)>                                                          <梯度下降(Gradient Descent)

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

文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang和 JerryLead 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样. § 1.  单变量线性回归 Linear Regression with One Variable 1. 代价函数Cost Function 在单变量线性回归中,已知有一个训练集有一些关于x.y的数据(如×所示),当我们的预测值

机器学习第2课:单变量线性回归(Linear Regression with One Variable)

2.1  模型表示 之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示: 我们将要用来描述这个回归问题的标记如下: m                代表训练集中实例的数量   x                 代表特征/输入变量 y                 代表目标变量/输出变量 (x,y)            代表训练集中的实例 (x(i),y(i)  )    代表第 i 个观察实例 h                代表学习算法的解决方案或