梯度下降法求解非线性方程组,梯度下降法解线性方程组
博客明星评选
个人主页:@电脑魔术师作者简介:CSDN内容合伙人,全栈领域优质创作者。
推荐一个求职神器网站:Niuke.com 笔试题库面试经验实习招聘推送
如果没有账号,点击链接跳转到牛科。com,登录注册,开始刷题库。我们快点过海关面试吧。
这篇文章包含一个专栏-机器学习-
@ toc
法方程法(最小二乘法)和梯度下降法都是求解线性回归最优参数的方法,但不同的是法方程法只需要一步就可以得到代价函数的最优点,而梯度下降法是迭代下降。看起来法方程法要好得多,但实际更多的场景使用的是梯度下降法。这里我们介绍这两种算法及其优缺点。
1.梯度下降1.1用最简单的线性方程解释一个参数,然后推广到多个参数的方程,这是典型的房价预测问题。
我们假设其数据模型是线性回归模型,方程如下
=
我们希望能得到参数,使方程更好地拟合数据。梯度下降法是通过最小化代价函数来获得最优参数或局部最优参数。
价值函数
成本是实际数据和数学模型(这里是一维方程)预测的差值的平方和的平均值,(这里是真实预测值)。
=(成本函数方程)如:
蓝线的长度就是成本函数。可以看出,代价函数越大,拟合效果越差,代价函数越小,拟合效果越好。
等式(左)之和的成本函数(右)如下:
可以看出,方程越拟合数据,代价函数越小。当成本函数值为0时,回归方程完全符合数据。这时候我们要做的就是让成本函数变小。
(后面说的正规方程解法就是直接让代价函数为0,求解参数)
1.2梯度下降核心方程的迭代解
=-
其中是学习率和成本函数的偏导数。由于只有一个参数(一阶),这里的方程也可以表示为(即求导数)。
解释原理
当代价函数区间单调递增时,如下图所示(红线标注),
此时(即的斜率)大于0,则=-减去一个正数,向左退(接近代价函数的最小值),如图(蓝线标注)代价函数的值域单调递减时。此时=-减去一个负数,向右退(接近代价函数的最小值)。
1.3学习率有时候,当我们的迭代方程下降时,可能会很慢,需要很多步(需要很长时间)才能达到局部最优或全局最优,如下图:
这时候学习率的作用就是调整步长,让它更快的下降到局部最优或者全局最优。
注意:
根据数据调整,
太大了,太大了,跳到对面去了,和想要的结果相反,如图。
设置太小,步长太小,所以设置也是一个细节1.4两个参数,两个参数,方程是
=
迭代求解方程(注意:参数同步更新,你的腿只能走一步)
=-=-此时的代价函数如下图所示(是一个碗,像参数的图像一样是一个凹函数)
为了更好的理解,我们可以画出它的等高线。
目标是求轮廓中心或碗底,即最小化代价函数。
1.5多个参数在问题案例中,往往有一个参数。
这个时候成本方程就是关于多个参数的,如图。
迭代求解方程(注意:参数同步更新,你的腿只能走一步)
=-=-=-
.
=-
也可以看出梯度下降迭代有两个最优结果(其他情况下可能有多个),
整个迭代过程可以形象地理解为你在山顶,你需要找到最快的下山路线。山脚是你的目标位置,也就是代价函数最小。
1.6数据标准化的梯度下降在量化程度上是不同的。如果数据范围分别为[0~1000,0 ~5]或[-0.00004 ~ 0.0002,10 ~ 30],那么在使用梯度下降算法时,它们的等高线是一条窄而高的等高线,如下图所示:
在梯度下降算法中,参数更新会如上图那样左右波动,收敛较慢,所以我们需要对特征-数据标准化进行缩放。
详见文章。
【机器学习】梯度下降的数据标准化
二、正规解对于正规解,一般的例子是计算代价函数的偏导数,使其为0就可以直接计算出最优参数,但多数情况下是多维向量(即有多个参数)。此时,成本函数是一个多维向量的函数,所以如果需要从到的值,则对应的偏导数(i=1,2,3,4.)被计算并使之为0。
假设有M个数据,每个数据有如下N个特征方程:
这里是矩阵,由每一行的向量转置组成(列向量,维数为特征N),即任意行的每一列都是它的特征。
矩阵与下面的矩阵A相同:
这里,表示第一个数据的第一个特征值,简化为
第一行是n维向量的转置。
原理讲解视频:
[线性回归]正规方程(最小二乘法)]
因为法方程是直接求解的,不需要巧妙迭代,“下坡”,所以不需要对特征进行尺度化(比如梯度下降需要数据标准化)。
2,1使用场景及优缺点假设我们有M个数据集,N个特征。
梯度下降的缺点:首先,你需要提前设置好学习速率,并进行调试。这无疑是一项额外的工作,你需要尝试不同的学习速度。
梯度下降的缺点:下降需要多次迭代,计算可能较慢x
正规解的缺点:梯度学习对于大数据量也能很好的运行,而且在这个解正规方程的步骤中,它的维数是x的特征维数,由于计算矩阵的逆矩阵的时间复杂度,当特征维数很大时,计算机运行时间很长。
综上所述,可以看出它们的适用场景与数据大小不同,那么我们如何定义数据是‘大’还是‘小’呢?吴恩达老师给出了一个更好的范围:
N 10000=梯度下降N 10000=正常解
但也不是绝对的判断,要看情况。
2.2法方程(不可逆性)*所选读数方阵中两维之间存在线性变换关系,导致方阵的不满足秩N(特征数)与M(样本数)相比过大,导致齐次方程Ax=0。这些不可逆矩阵称为奇异矩阵,当逆矩阵不存在时,我们求的逆矩阵就是伪逆矩阵。
事实上,我们的情况对应于以下情况
比如房价预测中的特征值多一些,这个特征值与所有特征值线性相关,也就是上面提到的第一种情况发生在特征值n=数据集个数m的时候,比如10个数据集,每个数据集有100个特征,那么我们要求的是101维向量,10个样本太少,那么得到的结果就偏离了真实值。对应以上情况2,此时可以减去一些特征或者使用正则化方法(。
电脑魔术师原创作品,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。