线性回归其实就是寻找一条直线拟合数据点,使得损失函数最小。直线的表达式为:
[y_{j}=omega_{1}x_{i,1}+omega_{2}x_{i,2}+dots+omega_{j}x_{i,j}+dots+b]
损失函数的表达式为:
[J=frac{1}{2}sum_{k=0}^{m}(y_{k}-y_{predict\_i})^{2}]
如上图所示,只要自变量$x$沿着负梯度的方向变化,就可以到达函数的最小值了,反之,如果沿着正梯度方向变化,就可以到达函数的最大值。
我们要求解$J$函数的最小值,那么就要求出每个$omega$的梯度和$b$的梯度,由于梯度太大,可能会导致自变量沿着负梯度方向变化时,$J$的值出现震荡,而不是一直变小,所以在梯度的前面乘上一个很小的系数$alpha$。
由以上可以总结出$omega$和$b$的更新公式:
egin{align*}
omega_{j}^{prime}& =omega_{j}-alpha
abla J(omega_{j}) \
b^{prime} & =b-alpha
abla J(b)
end{align*}
求梯度:
egin{equation}label{gongshi:1}
abla J(omega_{j})=frac{partial J}{partial omega_{j}}=sum_{i=0}{m}(y_{i}-y_{predict\_{i}})x_{i}
end{equation}
同理,$b$也很容易求得,根据公式
ef{gongshi:1}。为了防止以后震荡的发生
[displaystyle{alpha=frac{1}{i+1}+0.001}]