2.应用于线性回归中的梯度下降方法

本文将详细的叙述①线性回归,②梯度下降方法以及③在线性回归中应用梯度下降方法。

(1)线性回归

①hypothesis:  θi:模型参数

②线性回归(单变量)所构函数:

                                                           

m:训练集样本容量;

h(x(i)): 预测值; 

y(i): 真实值。

该目标函数所求 预测值与实际值之差的平方和最小值,也即为关于θ0和θ1的最小化过程,找寻到合适的θ值使得目标函数最小,从而使预测值更加接近于实际值,趋近关系更加准确。

③代价函数(cost function)

                                    

J(θ0,θ1)为代价函数,也称平方误差代价函数,进一步求解也为相对于求得:min J(θ0,θ1).

                                          

上图为当θ1=0.5时,关于h(x)的函数图,红标点为实际值,在直线上的蓝色点为预测值,之间所构成的差便为差异值,进行计算得到代价函数J的值如下:

                                       

注:m为3,指样本数;

④代价函数图

由上得知,当θ1=0.5所得到的J值,在代价函数图中为一具体点,关于θ1构成的函数J(θ1)如下,每一点为假设函数h(x)随着θ1改变计算所得的值,我们目标便是当在函数J(θ1)最低点时,即为最小值,所求得的预测值最接近于实际值,下图的粉色点便为J值=0.58.

                                             

当θ1在变化时,上图当θ1=1时,最好拟合预测值与真实值的直线,达到回归的良好效果。

⑤两个参数构成的J(θ0,θ1)

由上可知,代价函数为θ0=0的情况,考虑了一个参数,当有两个参数时,所构成的代价函数图为三维曲面,相似于在三维空间中找到最低值的过程。

                                             

两个参数所构成的代价函数如一个“碗形”,所以我们的目标在于找到“碗底”,即为J的最小值。

相应的是,为了便于在平面描述该曲面图,引入了一种描述方法,contour plots(等高线图),在同一个环上,J的值时相等的,个人认为相当于是该“碗形”的从上至下的俯视图,形成了意义相似的等高线图,如下所示。

                                                 

(2)梯度下降(gradient descent)

 function   J(θ0,θ1) →  求得min  J(θ0,θ1)

<1>初始将 θ0 =0,θ1=0;

<2>不断改变θ0,θ1 ,使得  J(θ0,θ1)变小,直至找到J最小值。如图所示:

                                    

可构成为: 

α:learning rate (学习速率,也可称为步长)

在此过程中需要同时更新θ0和θ1,不可单独更新一个量。

                                    

其中,步长α的选择至关重要,如果学习速率过低,将导致迭代计算多次才能到达最小值;如步长过大,容易越过最小值,使最终结果发散。

所以最合理的步长选择方法是:在某一点起始点,选择一个最初的步长,从该点开始,导数值(即斜率)逐渐变小,同时使得步长也变短,梯度下降自动采取较小的幅度,从而能使得步长趋近于最合适的值选择,使得到达最小值。


(3)线性回归应用梯度下降

确定更新θ0和θ1的值,通过偏微分分别同时更新其值,可定义如下:

                               


总结:回归多用于在连续性的值,整个过程中,首先有假设函数h(x),而后根据此求得代价函数的最小值,所以目标在于对代价函数的分析,而θ值决定了代价函数的变化情况,通过代价函数的函数图,如是二维的有最低点,即为最小值,从起始点开始,求得每个点的斜率情况,进行对θ值的不断更新,使其到达最小点,而在此过程中,α的选择尤为重要,存在过大或过小的情况,所以我们通过随着导数斜率值逐渐变小,我们使得步长也随之减小,从而使得趋近于最小值,不导致产生发散或计算效率过低的情况,最后达到最好的拟合预测值与实际值的差异的变化情况,达到精准的预测判断。


Matlab代码随后将会上传到个人Github中,如有需要,欢迎共同学习。star~~~thanks~~~

links:https://github.com/RevereGit


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值