利用梯度下降法实现线性回归地算法及matlab实现_20170515

利用梯度下降法实现线性回归地算法及matlab实现_20170515

ID:47077813

大小:220.92 KB

页数:26页

时间:2019-07-17

利用梯度下降法实现线性回归地算法及matlab实现_20170515_第1页
利用梯度下降法实现线性回归地算法及matlab实现_20170515_第2页
利用梯度下降法实现线性回归地算法及matlab实现_20170515_第3页
利用梯度下降法实现线性回归地算法及matlab实现_20170515_第4页
利用梯度下降法实现线性回归地算法及matlab实现_20170515_第5页
资源描述:

《利用梯度下降法实现线性回归地算法及matlab实现_20170515》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档利用梯度下降法实现线性回归的算法及matlab实现1.线性回归算法概述线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(costfunction最小)即可;注意:(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数;(2)线性回归可分为单变量线性回归和多变量线性回归;对于单变量线性回归而言,只有一个输入变量x;(1).单变量线性回归我们能够给出单变量线性回归的模型: 我们常称x为feature,h(x)为hypothesis;

2、上述模型中的θ0和θ1在代码中分别用theta0和theta1表示。从上面“方法”中,我们肯定有一个疑问,怎么样能够看出线性函数拟合的好不好呢?我们需要使用到CostFunction(代价函数),代价函数越小,说明线性回归地越好(和训练集拟合地越好),当然最小就是0,即完全拟合。costFunction的内部构造如下面公式所述: 其中:文案大全实用文档表示向量x中的第i个元素;表示向量y中的第i个元素;表示已知的假设函数;m为训练集的数量;虽然给定一个函数,我们能够根据costfunction知道这个函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯

3、度下降:能够找出costfunction函数的最小值;梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;当然解决问题的方法有很多,梯度下降只是其中一个,还有一种方法叫NormalEquation;方法:(1)先确定向下一步的步伐大小,我们称为Learningrate(alpha);(2)任意给定一个初始值:(用theta0和theta1表示);(3)确定一个向下的方向,并向下走预先规定的步伐,并更新;(4)当下降的高度小于某个定义的值,则停止下降;算法:文案大全实用文档特点:(1)初始点不同,获得的最小值也不同,因此梯度下降求

4、得的只是局部最小值;(2)越接近最小值时,下降速度越慢;梯度下降能够求出一个函数的最小值;线性回归需要使得costfunction的最小;因此我们能够对costfunction运用梯度下降,即将梯度下降和线性回归进行整合,如下图所示:文案大全实用文档上式中右边的公式推导过程如下:∂hθ∂θ0=1∂hθ∂θ1=x(i)∂∂θ0Jθ0,θ1=12mi=1m2×(hθx(i)-y(i))×∂hθ∂θ0=1mi=1m(hθx(i)-y(i))文案大全实用文档∂∂θ1Jθ0,θ1=12mi=1m2×(hθx(i)-y(i))×∂hθ∂θ1=1mi=1m(hθx(i)-y(i))×x(i)

5、从上面的推导中可以看出,要想满足梯度下降的条件,则(hθx(i)-y(i))项后面必须乘以对应的输入信号x(i)。梯度下降是通过不停的迭代,而我们比较关注迭代的次数,因为这关系到梯度下降的执行速度,为了减少迭代次数,因此引入了FeatureScaling。(1).FeatureScaling此种方法应用于梯度下降,为了加快梯度下降的执行速度;思想:将各个feature的值标准化,使得取值范围大致都在-1<=x<=1之间;(2).常用的方法是MeanNormalization(均值归一化处理)或者:[X-mean(X)]/std(X);(3).收获汇总学习速率的大小对于系统是否收

6、敛有决定性的影响。如果学习速率太大,那么可能导致系统震荡发撒;如果学习速率太小,那么可能导致系统收敛速度变慢。(a)根据给定数据架设预测函数h(x)文案大全实用文档(a)计算代价函数J(b)计算各参数偏导(c)更新参数(d)重复2~4直到代价函数跟新的步长小于设定值或者是重复次数达到预设值。为了在相同学习速率的前提下加快相同收敛,可采用训练数据归一化的方法来对样本数据进行预处理。采用均值均值归一化处理后,缩小了原来数据的变化幅度,从而可极大地提高学习速率,从而提高了梯度下降的执行速度。在第四部分的matlab代码中,对输入值向量进行归一化处理之后,将学习速率从0.01提高到1.

7、9,从而将获得系统收敛的epoch次数由10000次减少到300次。1.Matlab实现单变量梯度下降的线性回归(1).Gradientdescendcode1clearallclc%trainingsampledata;p0=3;p1=7;x=1:3;y=p0+p1*x;文案大全实用文档num_sample=size(y,2);%gradientdescendingprocess%initialvaluesofparameterstheta0=1;theta1=3;%learningrat

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。