线性模型_梯度下降与直接求解

线性模型

用一条线拟合实际数据:h(θ)=θ0x0+θ1x1+...+θnxnh(\theta)=\theta_{0}x_{0}+\theta_{1}x_{1}+...+\theta_{n}x_{n}
这里,将h(θ)h(\theta) 称为假设函数,是对实际值的一种估计,是估计就会有偏差,我们的目标是尽量的找到估计值与实际值之间的误差最小的拟合线,这样可以使用拟合线预测未知数据。

利用最小二乘法构建损失函数

损失函数:J(θ)=12Ni=1N(hθ(x(i))y(i))2J(\theta)=\frac{1}{2N}\sum_{i=1}^{N}(h_{\theta}(x^{(i)})-y^{(i)})^2

以单变量线性模型为例,下图表示θ0=0\theta_{0}=0时,不同的θ1\theta_{1}值的拟合线与真实值之间的关系, 最好的拟合线是橘色线,即斜率为2.
线性模型_梯度下降与直接求解

  • θ1=0<2\theta_{1}=0< 2(最佳拟合)时,估计值与真实值差距大,损失函数值大
  • θ1=3>2\theta_{1}=3>2(最佳拟合)时,估计值与真实值差距大,损失函数值大
  • 即,损失函数在最佳取值左右两侧都会比较大

损失函数随θ\theta的变化情况:

线性模型_梯度下降与直接求解

梯度下降法优化损失函数

梯度下降的方式是在不知道最优参数时,初始化一个参数值,然后不断优化,在找最小值的过程中沿着负梯度(一阶导)的方向下降最快,因此沿着这个方向走。方向确定好,确定向前走的步长(学习率)。

  • 梯度对优化的影响:

    • 初始值在最优点右侧时,负梯度<0,步长α\alpha>0,更新参数时,参数向减小的方向移动。

线性模型_梯度下降与直接求解
- 初始值在最优点左侧时,负梯度>0,步长α\alpha>0,更新参数时,参数向增加的方向移动。线性模型_梯度下降与直接求解

  • 步长对优化的影响
    • 步长α\alpha过大,可能造成不收敛,左图
    • 步长α\alpha过小,优化速度会比较慢

线性模型_梯度下降与直接求解
推广到多变量线性模型,梯度下降对参数的更新:

  • θj:=θjαJ(θ)θj\theta j := \theta j - \alpha \frac{\partial J(\theta)}{\partial \theta j}
  • 线性模型:θj:=θjα1Ni=1N(hθ(x(i)y(i))xj(i))\theta j := \theta j - \alpha \frac{1}{N} \sum_{i=1}^{N}(h_{\theta}(x^{(i)}-y^{(i)})x_{j}^{(i)})
  • 梯度下降对参数的更新要所有参数一起更新。即每轮更新成新的hθ(X)h_{\theta}(X),假设函数中,每个参数都更新,再进行下一轮。

当然不仅仅是线性模型可以用梯度下降的方式进行优化,很多其他的数学模型也都可以用梯度下降的方法进行优化。梯度下降是一类优化的方法。

【小结】想要求得最能拟合真实数据的线性模型,可以先设置一个初始值,用最小二乘法构造损失函数,通过梯度下降的优化方法不断更新参数,使其达到最优。

直接计算最优解

梯度下降的方式,需要通过不断迭代找到最优解,那能否通过直接找到最优解的位置呢?对凸函数来说,一阶导为0处,就是一个可直接计算出的最优解。

h(θ)=θ0x0+θ1x1+...+θnxnh(\theta)=\theta_{0}x_{0}+\theta_{1}x_{1}+...+\theta_{n}x_{n}

  • 模型共有n个特征,N个样本数据,y(i)y^(i)是预测值。线性模型_梯度下降与直接求解
  • 用矩阵可以表示为
    线性模型_梯度下降与直接求解
    用X是(n+1)xN维特征矩阵,θ\theta是(n+1)维参数列向量,XθX\theta是N维列向量(估计值)。Y是N维列向量(真实值)。
最小二乘法 构造损失函数

minXθY22min ||X\theta -Y||_{2}^{2} L-2距离的平方:即各项平方和
Sθ=0\frac{\partial S}{\partial \theta}=0 ,得θ=(XTX)1XTY\theta=(X^{T}X)^{-1}X^{T}Y

  • 推导过程线性模型_梯度下降与直接求解
    线性模型_梯度下降与直接求解
    线性模型_梯度下降与直接求解