Machine Learning笔记——单变量线性回归

举报
Soler索莱尔HO 发表于 2018/11/27 23:33:05 2018/11/27
【摘要】 单变量线性回归的学习笔记

在监督学习的问题中,预测房价属于一个例子

16.png                      

对于一个监督学习,就需要有相对应的训练数据集,

17.png

训练集(Training Set):主要用于建立模型

在机器学习中,样本一般分成独立的三部分训练集(train set),验证集(validation set)和测试集(test set)。其中,训练集用于建立模型。

训练集用来估计模型;

验证集用来确定网络结构或者控制模型复杂程度的参数;

测试集则检验最终选择最优的模型的性能如何。

 18.png

代价函数(Cost function

19.png



对于θ_1和θ_2取不同的值时,对应得到的线性回归函数也随之变化。

20.png


代价函数的定义:

代价函数有叫做平方误差函数或损失函数或者是成本函数。将一个或多个变量的事件阈值映射到直观地表示与该事件。 一个优化问题试图最小化损失函数。 

目标函数是损失函数或其负值,在这种情况下它将被最大化。


代价函数是解决回归问题最常用的处理手段。


代价函数的常见形式:

在线性回归中,最常用的是均方误差(Mean squared error),具体形式为:

21.png


m:训练样本的个数;

hθ(x):用参数θ和x预测出来的y值;

y:原训练样本中的y值,也就是标准答案

上角标(i):第i个样本


完整的假设函数h和成本函数J,保留假设函数的所有参数θ_0,θ_1

22.png

随着参数的不同,得到和数据相符的直线大致如下:

23.png

为了简化这个假设函数,然后得到一个经过原点(0,0)的函数:

24.png


当θ_1=1的时候,得到如下的情况:

25.png

但是当θ_1=0.5的时候,得到的情况是:

26.png


当θ_1=0时,相对应的情况:

27.png

当θ_1的值开始是负数的时候,此时的误差就显得非常的大。但是经过不断进行数据的计算,我们可以得到地大致函数图像如下:

28.png

对θ_1的值,每一个θ_1的值都对应着一个不同的假设函数。得到的数据对应的代价函数也是随之而变化。

对于学习优化算法,我们最终的目标,就是找到最优的处理算法。也是线性回归的目标函数。


等高线图

针对于假设函数和代价函数问题,我们会继续进行优化问题,此时我们需要对两个参数θ_0和θ_1同时进行赋值,然后进行优化问题的处理:

29.png

当θ_1进行赋值的时候,我们得到的代价函数图形类似一个抛物线:

30.png

但是当同时对θ_1和θ_0都进行了赋值,如上图θ_0=50和θ_1=0.05时,我们得到的函数图形如图所示:

31.png

但是为了很多问题,在此处不适用三维图形,我们此时就使用等高线图

32.png


总的来说。等高线图,类似于地里中的那些图形,一座大山,地面测量大山各点的海拔高度,映射到平面上。高度相同的用线连接起来,就会形成图中的等高线图。也有一点类似于树的年轮。当然了,在等高线图中,越靠近中心,海拔自然是越高。


梯度下降法

除了以上的方法之外,我们依然可以使用梯度下降法将代价函数J最小化。

梯度下降是比较常用的最小化代价函数J的算法.


梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法。对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的。梯度下降算法背后的原理:目标函数T(θ)关于参数θ的梯度将是目标函数上升最快的方向。


要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。


在梯度下降法中,我们要做的就是不停地改变θ_1和θ_0的值,通过改变使得J变小,直到找到J的最小值或者是局部最小值。

33.png

就像一座大山,我们走向山底,有很多方式,但是往往会选择最优的路线方式。

 

梯度下降法的定义:

34.png

        := 表示赋值

        α 是一个数字,被称为学习速率,在梯度下降中,它控制下降的步子的大小。也是下降速率。

        (∂/∂Θj)J(Θ0,Θ1) 是一个微分项


对于该定义式,我们需要同时更新θ_1和θ_0的值。


用一个简单的例子,例如最小化的函数只有一个参数的情形,所以假如有一个代价函数J,只有一个参数θ_1,θ_1是一个实数,所以可以画出一维的曲线(类似抛物线)

35.png

小红点处的切线的斜率就是导数值,随着小红点逐渐收敛至最低点,切线斜率逐渐降低,移动的步子大小也会越来越小。


α的大小也是会有一定的影响,下面两个图分别大致分析了α的值造成的影响。

36.png

如果α的值过大,他会导致无法收敛甚至发散。


假设将θ_1初始化在局部最低点,如图所示:

37.png

局部最优点的导数等于0,因为导数是切线的斜率,此时的直线的斜率为0,所以导数项d T(θ_1)/(dθ_1 )等于0。


梯度下降和代价函数的结合,以及推导,可以得出以下式子:

38.png


计算推导梯度下降算法的过程:

39.png

最后不断简化得到线性回归算法:

40.png


对于线性回归的代价函数,总是会出现一个弓状函数(凸函数)

41.png

图中的函数不存在什么局部最优,而是存在只有一个全局最优。

当我们计算这种类型的代价函数的梯度下降时,只要使用线性回归,它总是会收敛到全局最优,因为它自己本身没用其他的局部最优解。

 

Batch梯度下降算法

意味着每一步的梯度下降,都遍历了整个训练集的样本,所以在梯度下降中,当计算偏导数的时候,总是计算总和。

每次使用全量的训练集样本来更新模型参数,即给定一个步长,然后对所有的样本的梯度的和进行迭代:

 

 

梯度下降算法最终得到的是局部极小值。而线性回归的损失函数为凸函数,有且只有一个局部最小,则这个局部最小一定是全局最小。所以线性回归中使用批量梯度下降算法,一定可以找到一个全局最优解。


Reference:

    吴恩达 机器学习课程


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。