吴恩达机器学习 章节2:单变量线性回归

前文


本文是对吴恩达老师的 机器学习 章节2 教学视频 进行学习时,所记录的学习笔记。

以下是本章主要讲的内容:

1.模型、代价函数、假设函数是什么、干什么、怎么工作的。

2.监督学习算法、梯度下降算法的工作过程。

3.批量梯度下降算法的细节以及如何使用。


本章总结

学习了机器学习的基础概念还有第一个算法并且了解了其工作的整体过程。


正文



2.0 目录


2.1 模型描述

        2.1.1 模型概述

        2.1.2 监督学习算法的工作过程

2.2 代价函数

        2.2.1 代价函数概述

        2.2.2 详细阐述

2.3 梯度下降

        2.3.1 梯度下降概述

        2.3.2 详细阐述

        2.3.3 梯度下降算法的同步更新问题

        2.3.4 梯度下降算法中对学习率α乘导数项的理解

2.4 线性回归的梯度下降


2.1 模型描述


首先我们通过一个线性回归算法的例子来了解模型是什么,监督学习的过程是什么样子的。

然后我们会不断用小例子深入了解相关知识。


2.1.1模型概述

模型:我们假设输入与输出存在某个函数关系式,这个关系式这就是模型。

我们先看一个小例子:

预测房价问题 (回归问题)

首先我们把数据做成图像,其中:

        横轴是不同房屋平方英尺数。

        纵轴是不同房子的价格。

这是一个监督学习算法例子,也是一个回归过程的例子。


模型拟合图像

我们先了解两个概念:

假设:指通过学习后得到的一个预测结果的规律,即预测模型。

真相或真实:我们通过机器学习所得到的是一个假设的规律,真相或真实指的是真正的规律。

在上一个图像中,假设就是那条直线,直线所代表的函数就是假设函数。

训练集列表

在监督学习里还有这几个概念:

学习或训练:从数据中学得模型的过程。

训练数据:训练过程中使用的数据。

训练样本:训练数据中的每一个样本。

训练集:训练样本所组成的集合。

属性或特征:反应样本某一个性质或表现的事项。

属性值:落实到每一个样本的某一个属性的具体值。


以预测房价问题为例:

        房价就是训练集

        m表示训练样本的数量

        x代表输入标量或者特征

        y代表输出变量或者说是要预测的值

        (x,y)代表一个训练样本

        (x^(i),y^(i))表示第i个训练样本 i指样本索引


2.1.2监督学习算法的工作过程

监督学习算法的工作过程

1.向学习算法提供训练集

2.学习算法会输出一个函数通常以h表示,h代表假设函数

3.把输入变量x输入假设函数里来然后对输出变量进行预测

如何表示假设函数h?

假设函数:hθ(x)=θ0+θ1*x

此函数被称为:一元线性回归或者单变量线性回归,它是一个预测y是一个关于x的线性函数。

θ0与θ1被称为:模型参数。



2.2 代价函数


2.1.1  代价函数概述

代价函数:又叫损失函数或成本函数,它是将一个或多个变量的事件阈值映射到直观地表示与该事件。 在统计中,通常使用代价函数来进行参数估计,并且所讨论的事件是数据实例的估计值和真值之间的差异的一些函数。

训练集列表和假设函数h

现在有图片中的训练集和假设函数,接下来我们讨论如何选择这些模型参数θ0、θ1。

参数θ0、θ1的值不同时  

由上图我们可以看出:不同的模型参数得到不同的假设和假设函数。

在线性回归中我们有以下的一个训练集:

我们需要从训练集中得出模型参数θ0、θ1的值 ,好让直线更好的与数据点拟合。

在上图中,图中的假设函数所选择的模型参数θ0、θ1的值就很合适,这会使代价函数的值很小并且其模型所做出的预测会更贴合真实。


解决最小化的问题

由以上可知,在线性回归中,其实我们需要解决一个最小化的问题!

我们要写出关于模型参数θ0、θ1值的最小化,并且需要想办法让h(x)和y之间的差异尽量的小。

对于上文h(x)这个假设函数来讲,我们需要做的就是尽量减少假设输出与样本结果之间差的平方(即求均方差代价函数得最小值)。

注意:因为数学输入板无法输入代表代价函数的大写J所以有时候我会拿大写T来代替J。


2.2.2 详细阐述


均方差代价函数

尽量减少上图所示的求均方差代价函数的值,这个表达式因θ0和θ1的变化而变化,其中m为训练集的样本容量。

假设函数

换句话来讲也就是找到上图所示的假设函数中模型参数θ0和θ1的最小值。


接下来我们进行详细说明,首先我们定义一个代价函数如下:

代价函数

这是一个关于θ0和θ1对J(θ0,θ1)求最小值的代价函数,也被称为平方误差函数或者平方误差代价函数 。

我们选择此种函数是因为,它对于大多数问题特别是回归问题很合适。他是最常用的手段,在后续我们会讨论其他的代价函数。


因为使用简化的代价函数可以更好地让我们理解代价函数的概念,所以接下来我们用例子来理解上面的知识。


例一:假设θ0=0


所有我们需要的式子

假设θ0=0,训练集如下:

训练集


代价函数

如果θ1=1时的代价函数 J(θ1)=0

假设函数
代价函数

如果θ1=0.5时的代价函数 J(θ1)=3.5/6≈0.58

假设函数


代价函数

如果θ1=0时的代价函数 J(θ1)=14/6≈2.3

如果继续不断的设定θ1的值来求代价函数,我们会得到代价函数J(θ1)的图像如下。


代价函数

总结:

对于每一个θ1来说都有一个与其他值不同的假设函数,其假设函数就是hθ(x)。

对于每一个θ1来说都有其对应代价函数J(θ1)的值,并且代价函数T(θ1)的值越小,预测也就越准确。

学习算法的优化目标是通过选择θ1的值来使T(θ1)的值更小

对于上一个例子我们可以看到,当θ1=1时T(θ1)的值达到了最小为0,  我们看θ1=1时的假设函数hθ(x)的图像是完全吻合训练数据的,并且已经完美的拟合了它。

所以说我们就是要最小化代价函数J(θ1)的值,来找到一条最符合数据的直线。


例二:假设θ0,θ1都存在


所有我们需要的式子

以下是房价数据集

房价数据集


θ0=50 θ1=0.06时假设函数如下

假设函数

其用等高线图表达代价函数的三维图如下

代价函数
假设函数和代数函数等高线图

说明:简单来说每一个椭圆都对应了一系列J(θ0,θ1)相同值的点。 

如果θ0取800、θ1取-1.5、情况如下:

假设函数和代数函数等高线图

我们可以发现在代价函数J(θ0,θ1)的图像里,(θ0,θ1)这一点离椭圆中心即代价函数J(θ0,θ1)值最小的那个点比较远。并且,从假设函数也可以看出其拟合效果并不好。

如果θ0取360、θ1取0、情况如下:

假设函数和代数函数等高线图

此时函数的拟合效果跟上一次比好了些,但是仍然没有接近我们的理想状态,依然需要一定的代价。

让我们再举一个例子如下:

假设函数和代数函数等高线图

最后一个例子如下:

假设函数和代数函数等高线图

由上图所见,此点相当接近最小值了。这表明函数对数据的拟合已经挺不错了。

小节总结:

根据以上两个例子,我们就可以更好的理解假设函数和代价函数的意义了。

可以说为了使假设函数所做出的预测更接近真实,我们可以利用代价函数帮助假设函数找到使J(θ0,θ1)的值最小的模型参数θ0和θ1的值。

接下来我们将讨论找到这个最小值的一种算法,即梯度下降算法。


2.3 梯度下降



2.3.1 梯度下降概述

梯度下降:是一种求代价函数最小值的算法。

梯度下降是常用算法,它应用于机器学习的众多领域。

利用梯度下降求最小化不只有代价函数J(θ0,θ1)。

接下来我们举例利用梯度下降算法来求得代价函数J的最小值。


梯度下降算法思路 

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


2.3.2 详细阐述

接下来我们举例说明梯度下降算法如何工作的


代价函数

上图是一个用等高线图表达某个代价函数的三维图,假如说我们首先找到了图中的一个点,A点。(如下图)

A到B

然后我们以A点环绕360度找到更低的那个方向,再先前走一步。然后如此类推,直到走到不能再向下的B点时,此时B点就是局部最低点。

当我们把出发点换成点C时(如下图),按阶梯下降算法会达到局部最低点点D。

C到D


批量梯度下降算法的公式:

梯度下降算法

梯度下降算法会j减去被减数项并且更新参数θj,然后反复执行此过程,直到收敛到三维图的底部位置。

被减数项

现在我们详细说一下此公式的细节:

:=     代表一个赋值运算符。

α      被称为学习率的数字,用来控制我们向下的步子大小。

(for j=0 and j=1)    当此种情况出现时,我们将更新θ0和θ1,因为已经找到代价函数的最小值或者最大值了。


对于表达式和更新方程,我们需要同时更新θ0和θ1。

实现过程是首先进行计算学习速率乘以代价函数的导数(如下图中的这一项)这一部分,然后更新θ0和θ1在开始接着计算。

学习速率乘以代价函数的导数


总结:可以说,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。


2.3.3 梯度下降算法的同步更新问题

梯度下降算法最重要的一点是同步更新,同步更新时需要注意同步更新是否“同步”的问题。

正确的同步更新

上图是正确的同步更新。

错误的同步更新

上图是错误的同步,错误在于提前更新了另一个值,这使得模式参数θ0和θ1不是同一对。所以,我们在计算的过程中要注意是否做到同步更新。


2.3.4 梯度下降算法中对学习率α乘导数项的理解

批量梯度下降公式:

批量梯度下降

公式中的减项:

减数项

公式中的减项其实是由学习率α乘导数项所组成。接下来我们通过几个例子来理解这部分的含义。

理解导数项

例三:假设θ0为零,θ1为图像中的值。

斜率为正数

取这个红点的切线的斜率,这条直线的斜率正好是这个三角形的高度除以这个水平长度。根据斜率的定义我们在上面的图像中可以判断出它是一个正斜率,所以导数也是正数。

因此,当我们进行对θ1的更新后,等于θ1减去一个正数乘以学习率α。θ1在更新后,我们可以发现θ1一定会向左侧图像最低点移动。然后此过程不断反复,最后会固定在我需要的最低点,它也是我们要求的值。

例四:假设θ0为零,θ1为图像中的值。

斜率为负数

此例子与上例正好相反。在斜率为负时θ1更新后,我们可以发现θ1一定会向右侧图像最低点移动。然后此过程不断反复,最后会固定在我需要的最低点,它也是我们要求的值。

理解学习率α

学习率α用来控制我们向下的步子大小。

第一种情况:学习率α太小

我们可以想象到,如果学习率α太小那么在图像上θ1的移动就会很慢。我们可能需要很长时间才能接近最低点,学习率α越小浪费的时间也就越多。

学习率α太小和太大

第二种情况:学习率α太大

当学习率α太大时,θ1迈的步子也会很大。所以θ1会反复迈过最低点,出现无法收敛到最低点的情况。


例五:假设θ0为零,θ1为图像中的局部最低点。

θ1为图像中的局部最低点

我们可以看到如果θ1在最低点,那么此处斜率一定为0,因此减项也为零。那么批量梯度下降公式的结果即使在更新下去,值也永远是θ1在最低点的值即θ1保持不变,这也代表着已经在局部最低点了。


例六: 假设θ0为零时, 理解导数的变化。

导数的变化

我们从右向左看θ1从右侧高点向最低点的变化可以发现,θ1的迈步幅度是由大到小的。在上例中迈步的幅度并不是因为我们不断改变学习率的值,而是因为导数本身会因为θ1在图像中的位置而变化。当θ1越接近最低点时,其导数也会越小,所以θ1更新的幅度就会更小。

总结一下,随着梯度下降法的运行,你移动的幅度会自动变得越来越小,直到最终移动幅度非常小,你会发现,已经收敛到局部极小值。这是因为当我们接近局部最低点时,很显然在局部最低时导数等于零,所以当我们接近局部最低时,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度,这就是梯度下降的做法。所以实际上没有必要再另外减小。


2.4 线性回归的梯度下降


以下是之前学习的模型和公式:

模型和公式

接下来我们将梯度下降算法应用到最小化平方差代价函数,首先我们将导数项领出来处理一下。

导数项

当我们通过上面的过程得出导数项结果的时候,就可以把导数项结果代入到下面的梯度下降算法中来了。在此过程中注意同步更新的问题

代入梯度下降算法


例七:实际应用的例子


假设θ0,θ1都存在,横坐标是建筑面积,纵坐标是房价,我们有其假设函数和代价函数的图像如下。

下图为θ0为900,θ1为-0.1时的图像,h(x) = -900 - 0.1x。

第一个点

然后我们使用梯度下降算法找最低点。

在下图中我们到达第二个点,左侧是第二个点的假设函数图像。

第二个点
第三个点
第六个点
第八个点
最后一个点

在这个过程中我们可以发现,随着梯度下降算法对模型参数的更新,假设函数也随之不断变化越来越符合数据,直到梯度下降算法使模型参数在代价函数图像中达到最低点即全局最小值时,假设函数很好的拟合了数据。


小总结:

批量梯度下降”指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有个训练样本求和。因此,批量梯度下降法这个名字说明了我们需要考虑所有这一"批"训练样本,而事实上,有时也有其他类型的梯度下降法,不是这种"批量"型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集。在后面的课程中,我们也将介绍这些方法。



结束

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容