1单变量线性回归

1定义

hθ(x)=θ0+θ1x{假设:h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2代价函数:J\left( {{\theta _0},{\theta _1}} \right) = {1 \over {2m}}{\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} ^2}
目标:调整两个参数使代价函数值最小(即在下图三维曲面中找到最低点)。
线性回归算法(机器学习笔记)

2直观理解

θ0=0θ1{假设\theta _0} = 0,只讨论{{\theta _1}}一个参数,可得下图
线性回归算法(机器学习笔记)
三维曲面找曲面最低点问题转换为,二维曲线找最小值问题。

3梯度下降

θ0,θ1{{为了找到三维曲面最低点的参数\theta _0},{\theta _1}},需要有逼近最优参数的策略,因此引入梯度下降法。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值,选择不同的初始参数组合,可能会找到不同的局部最小值。
θj:=θjαθjJ(θ0,θ1){迭代策略:\theta _j}: = {\theta _j} - \alpha {\partial \over {\partial {\theta _j}}}J\left( {{\theta _0},{\theta _1}} \right)
多个参数同时更新:
temp0:=θ0αθ0J(θ0,θ1)temp0: = {\theta _0} - \alpha {\partial \over {\partial {\theta _0}}}J\left( {{\theta _0},{\theta _1}} \right)
temp1:=θ1αθ1J(θ0,θ1)temp1: = {\theta _1} - \alpha {\partial \over {\partial {\theta _1}}}J\left( {{\theta _0},{\theta _1}} \right)
θ0:=temp0{\theta _0}: = temp0
θ1:=temp1{\theta _1}: = temp1
线性回归算法(机器学习笔记)
αα如上图所示,如果\alpha太小,需迭代很多次才能到最低点如果\alpha太大,可能会越过最低点,不会收敛。从上图可以看出,随着红点向下移动,斜率变小,说明每一次更新的位移也变小

梯度下降的线性回归

θ0:=θ0α1mi=1m(hθ(x(i))y(i)){\theta _0}: = {\theta _0} - \alpha {1 \over m}\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} θ1:=θ1α1mi=1m((hθ(x(i))y(i))x(i)){\theta _1}: = {\theta _1} - \alpha {1 \over m}\sum\limits_{i = 1}^m {(\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} {x^{(i)}})
在梯度下降的每一步中,我们都用到了所有的训练样本,如上图的m个样本,所以称为批量梯度下降。

2多变量线性回归

hθ(x)=θ0x0+θ1x1+θ2x2++θnxn假设:{h_\theta }\left( x \right) = {\theta _0}{x_0} + {\theta _1}{x_1} + {\theta _2}{x_2} + \cdots + {\theta _n}{x_n}
J(θ0,θ1,,θn)=12mi=1m(hθ(x(i))y(i))2代价函数:J\left( {{\theta _0},{\theta _1}, \cdots ,{\theta _n}} \right) = {1 \over {2m}}{\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} ^2}
θj:=θjα1m((hθ(x(i))y(i))x(i))迭代策略: {\theta _j}: = {\theta _j} - \alpha {1 \over m}\left( {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right) \cdot {x^{(i)}}} \right)

相关文章: