回归问题之线性回归

1、线性回归(linear regression)

a、单变量线性回归univariate linear regression:

形式:
关键是怎么选择模型的参数应该是使得尽可能/无限 接近训练样本(x,y)中的y值,也就是最小化问题:
<——线性回归的整体目标函数

其中,i 表示第i个样本;m 表示训练样本数量。
,那么,我们要做的便是使得最小化:graphic。这便是代价函数,又称平方误差函数(square error function)

现在,我们的目标是graphic,假设有一组训练集数据(1,1),(2,2),(3,3)那么,假设graphic,则有graphicgraphic,此时,不难算出graphic而,不断改变的graphic值则会得到不同的 J 值,当取到最小值或局部最小值 J  时的参数则是我们要的。

梯度下降算法(gradient descent algorithm)可以实现代价函数最小化:
这里讲述使用梯度下降算法解决graphic最小化(当然,梯度下降算法也可以解决graphic):
主要步骤:
  1. star with somegraphic ,即对graphic进行一些初步猜测,一般会将其分别初始化为 0和1
  2. 不停的,一点点改变的graphic值,试图通过改变使得graphic变小,直到找到 J 的最小值(或局部最小值,即局部最优解)。
repeat until convergence {
     graphic (for  j = 0 and j = 1)
}                   
###即反复更新graphic直到收敛。
###注意:此 :=为赋值运算符;graphic为learning rate,学习速率(在梯度算法中,其控制了更新值/更改值的每次变化的大小,即以多大的幅度更新参数);graphic为微分项,也就是曲线上点的斜率
由上可知,梯度算法其实主要是不断更新 :=- 某某;:=- 某某~:
令temp0  := -graphicgraphic
temp1 := graphicgraphic
 := temp0
 := temp1
接下来以graphic=0为例了解学习速率 ∝ 和微分项(导数项,此处为偏导)J(graphic)
graphic=0时,J(graphic) 即为graphic,那么,只要不断更新  temp1 :=∝ J(graphic), := temp1
(x , y)
(graphic)
 
(1 , 1)
0
2.33
(2 , 2)
0.5
0.583
(3 , 3)
1
0
2
2.33
(n , n)
此时,J()的曲线应该是一条曲线,如下:

当 = 4时,由图可以看出 J()>0,因此要使得temp1 :=  -  J()变小,应该往斜率更加趋向平缓的方向移动,也就是向左移动;
 = -4时,由图可以看出 J()<0,因此要使得temp1 :=  -  J()变小,应该向右移动。
∝ 则是控制移动的幅度大小:幅度过大可能会导致找不到最优解,而幅度过小则会加长计算的时间。
由上图可知,当导数项为0, :=  -∝ * 0 得到最优解,此时的则应该是我们要找的参数了。
下面,简要讲一下微积分项也就是偏导计算:
repeat until convergence {
    (for  j = 0 and j = 1)
}  
——>微分项计算过程为:
graphic

graphic
因此,梯度下降算法代码具体应为:

repeat until convergence {
     graphic
   
     graphic} 注意:要同时更新两个参数!


小结:线性回归主要是找到拟合的函数,其关键在于参数计算,此时利用cost function,例如平方误差代价函数,可以很好地刻画出如何找到理想的参数(即代价函数图像的最低点或是局部最低点处的参数值),而使用梯度下降算法则是可以很好地,有效率地实现cost function的计算过程(通过偏导,即斜率大小确定寻找方向和更新参数值直到收敛),进而找到想要的参数的值。
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiu_star/article/details/52232346
个人分类: 算法和机器学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭