第二讲 线性回归 梯度下降

本文详细介绍了机器学习中梯度下降算法的基本原理及其应用。从线性模型的构建出发,阐述了损失函数的设计思路,并深入分析了梯度下降算法的工作机制。通过一维和二维情况的对比,解释了梯度下降算法在不同场景下的应用。
摘要由CSDN通过智能技术生成

机器学习的一般过程:

构建线性模型:

线性模型:试图学得一个通过属性的线性组合来进行预测的函数

梯度下降算法

构建一个线性模型拟合数据:

image-20210916164947136

根据机器学习三要素(绪论部分见第一讲)

1.定义模型

image-20210916170809167

2.策略(也即损失函数)

在线性模型中,损失函数可以用所有训练数据实际值和预测值差的平方和来描述,此函数值越小,模型对训练数据集的拟合能力越强。

image-20210916170855610

补充:在机器学习中

image-20210916170959713

表示的是第i个样本的y值,损失函数的系数只是为了后续的计算量

3.算法

当损失函数定义好了之后,算法的主要任务就是找到一种合理数学方案使得机器在学习的过程中有方向的调整模型的参数实现逐步降低损失函数的值,也就是本讲重点部分梯度下降算法

梯度下降算法的分析:

在我们的损失函数E中,具有θ01两个参数,为了简化问题我们可以假设只有一个参数情况下这个损失函数的求解方法

梯度下降算法在做分析的时候,一定要弄清楚,损失函数E的参数是关于θ的,因为x,y都是给定的实验数据,也正因为此,无论定义的线性模型多复杂,模型中未知参数θ都可以是一次(θ是我们自己设的,我总不能设一个n次方给自己找麻烦吧?),就是说最终的损失函数E无论多么复杂的情形下都是二次函数,模型的复杂程度顶多影响损失函数是几元的

为了方便理解,先假设E只有一个参数θ,这时候E其实就变成了一个开口向上的凸函数(机器学习对于凹凸函数的概念和数学有冲突),如下图:

image-20210916174008047

对于这样一个函数, 一定会存在着最小值,当损失函数最小值的时候,对应参数的值就是我们模型的最佳值。这题对于人来说,很简单只需要求导后令导函数为0解出θ,就可以了。但是机器并不可以直接解方程,机器只能沿着一个方向进行调整参数的值不断尝试,最终找到最优。

那么机器按照什么方向改变参数θ一定能找到最优呢?

在当前假设下,E是关于θ开口向上的函数,他的导函数是一个斜率为正的一次函数。试想,机器在寻找最优值是要找到E的倒数接近0的点,对于某一个θ,如果E的倒数大于0,就需要减小E倒数的值,由于E关于θ单调递增,也就是说下一次选θ,需要找一个小一点的。

也就是说,我们增大θ还是减少θ,取决于θ时,E的倒数的正负,E倒数为正,减小θ,E倒数为负,增大θ。因此可以归纳这个关系如下:

image-20210916182503005

这里的η将决定着寻找最优值的速度,被称之为学习速率。

理清思路后回到两个参数的情况,现在可以好好研究一下出现θ0和θ0两个参数的时候了。

image-20210917121249667

代入损失函数:

image-20210917121228352

化简,方程是类似于E=aθ2+bθ2+c,也就是损失函数就是二元二次方程,a和b都是大于0的,这个形式实际上就是高等数学下册的椭圆抛物面

image-20210917121509924

图像如下:

image-20210917120314644

按照这个图像损失函数E一定是存在最小值的,我们的任务就是取寻找最小值时θ0和θ1的值,这不就是高等数学多元函数求极值吗,甚至还是最简单的类型,求出E关于θ0和θ1的偏导数,另两个方程为0然后联立解出的驻点,就是符合条件的答案。这是作为人的思路来解题,但是机器并不可以这么做,机器只能期盼着按照一个方向试探参数来逐渐降低损失

那这个如何描述这个方向呢?

这里就需要引入梯度的概念。梯度是方向导数最大的时候的方向,也就是函数变化最快的方向,沿着这个方向向下寻找最低点,速度将会最快,梯度实际上就是image-20210917221530656

函数在某一点的偏导数的组合,按照这个方向,也就是x按照x偏导的大小,而y按照y偏导的大小(x,y变化值保持时刻保持相同的倍数)来调整位置参数的值,将会达到最大效率。这里给出结果:

image-20210917222123990

具体的推导过程:

那变化方向就是:

代码部分见第二讲 代码部分

梯度下降算法多项式回归

对于本题来说实际上这一题到这就已经差不多结束了,但是梯度下降算法的强大之处到这才刚刚开始,下面推广多项式的模型:

image-20210917224950368

梯度下降算法多个特征的回归,代码部分

第二讲 代码部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值