线性回归及梯度下降法

2020-08-10  本文已影响0人  Zhou_qn

\quad总平方和(SST) : \textstyle\sum_{i=1}^{n}(y_i-\bar{y})^2y_i是真实值,\bar{y}是真实值的平均值】
\quad回归平方和(SSR) :\textstyle\sum_{i=1}^{n}(\hat{y}-\bar{y})^2\hat{y}是预测值】
\quad残差平方和(SSE):\textstyle\sum_{i=1}^{n}(y_i-\hat{y})^2
\quad它们三者的关系是:SST=SSR+SSE

\quad决定系数: R^2 = \frac{SSR}{SST} = 1-\frac{SSE}{SST}R^2的值越接近1,说明它们之间的关系越接近于线性的关系,越接近0就越不接近于线性关系】

图2

θ_0,θ_1 取不同初始值的变化结果,如图1取值,然后不断改变θ_0,θ_1,直到J(θ_0,θ_1) 到达全局最小值,如图2取值,然后不断改变θ_0,θ_1,直到J(θ_0,θ_1) 到达局部极小值

repeat until convergence {
θ_j:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)【α指的是学习率】
}

正确做法 :同步更新
temp0:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
temp1:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_0:=temp0
θ_1:=temp1

不正确做法:
temp0:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_0:=temp0
temp1:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_1:=temp1

\quad现在假设只有一个参数θ_1,公式如下,现在看图3中的曲线,当我们的取①处的θ_1值,那么我们计算出来的斜率是负数,α学习率为正数,相乘就为负数,则θ_1减去这个负值以后就变大了,赋给θ_1θ_1的取值大了,现在到了②处,计算出来的斜率还是负数,α学习率为正数,相乘就为负数,则θ_1减去这个负值以后又变大了,接下来到了③处,计算出来的斜率还是正数,α学习率为正数,相乘就为正数,则θ_1减去这个正值以后变小了,则下次取值一定在③的左侧,都会忘最小值靠近。【学习率的值不能太小(变化会太慢),也不能太大(变化会太大),可以多尝试,找到比较合适的 0.1,0.03,0.003,0.001........等等】

图3

\quad\quad\quad\quad\quad\quad\quad j=0: α\frac{∂}{∂θ_0}J(θ_0,θ_1) = \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
\frac{∂}{∂θ_j}J(θ_0,θ_1) =
\quad\quad\quad\quad\quad\quad\quad j=1: α\frac{∂}{∂θ_1}J(θ_0,θ_1) = \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
repeat until convergence {
θ_0:= θ_0- α \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
θ_1:= θ_1- α \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)·x^i
}


梯度算法可能会陷入局部最小值:



梯度下降算法的代价函数是凸函数,所以会一直往最小值走

梯度下降算法的代价函数
上一篇 下一篇

猜你喜欢

热点阅读