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

学习者:阳光罗诺

来源:吴恩达 机器学习课程

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

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

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

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

训练集用来估计模型;

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

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

代价函数(Cost function)

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

代价函数的定义:

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

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

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

代价函数的常见形式:

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

m:训练样本的个数;

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

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

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

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

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

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

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

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

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

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

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

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

等高线图

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

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

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

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

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

梯度下降法

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

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

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

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

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

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

梯度下降法的定义:

:= 表示赋值

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Batch梯度下降算法

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

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SimpleAI

【DL笔记1】Logistic Regression:最基础的神经网络

从【DL笔记1】到【DL笔记N】,是我学习深度学习一路上的点点滴滴的记录,是从Coursera网课、各大博客、论文的学习以及自己的实践中总结而来。从基本的概念、...

762
来自专栏木东居士的专栏

漫谈机器学习之过拟合

1614
来自专栏机器之心

最全的DNN概述论文:详解前馈、卷积和循环神经网络技术

选自arXiv 机器之心编译 本论文技术性地介绍了三种最常见的神经网络:前馈神经网络、卷积神经网络和循环神经网络。且该文详细介绍了每一种网络的基本构建块,其包括...

3906
来自专栏Spark学习技巧

【深度学习】笔记第一弹--神经网络

1. 神经网络前言 1.1 背景 在进入神经网络之前,先讲述两个略带血腥的实验。 第一个实验是科学家将耳朵到大脑听觉区的神经给切断了,然后将眼睛到大脑听觉区的...

3198
来自专栏Gaussic

Machine Learning笔记(二) 单变量线性回归

对于给定的训练集(Training Set),我们希望利用学习算法(Learning Algorithm)找到一条直线,以最大地近似所有的数据,然后通过这条直线...

863
来自专栏量化投资与机器学习

【深度学习研究系列】之漫谈RNN(二)

? 推送第二日,量化投资与机器学习公众号将为大家带来一个系列的 Deep Learning 原创研究。本次深度学习系列的撰稿人为 张泽旺 ,DM-Master...

2417
来自专栏Duncan's Blog

记录几个经典模型

2.1 gbdt 的算法的流程? gbdt通过多轮迭代,每轮迭代生成一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练.(弱分类器一般会选择CART T...

1592
来自专栏李智的专栏

斯坦福CS231n - CNN for Visual Recognition(3)-lecture3(下)最优化

  上节我们已经介绍了图像分类的两个关键部分:评分函数与损失函数,接下来就是最优化的问题了,即如何寻找使得损失函数值最小的WW。 对于SVM 得分函数:...

881
来自专栏SIGAI学习与实践平台

基于内容的图像检索技术综述-CNN方法

传统方法在图像检索技术上一直表现平平。比如传统方法常用的SIFT特征,它对一定程度内的缩放、平移、旋转、视角改变、亮度调整等畸变,都具有不变性,是当时最重要的图...

2425
来自专栏小小挖掘机

查收一份附带答案的面经!

1.1.1 全量梯度下降(Batch gradient descent) 每次使用全量的训练集样本来更新模型参数,即θ=θ−η⋅∇θJ(θ)。 优点:每次更新都...

2213

扫码关注云+社区

领取腾讯云代金券