线性回归·最小二乘法·梯度下降【知识整理】

综述

学生党整理一些关于数据分析的知识:线性回归最小二乘法的介绍,误差评估及梯度下降等分析原理。

原理介绍

线性回归(最小二乘法)

以银行贷款为案例背景介绍:

工资 年龄 额度
4000 25 20000
8000 30 70000
5000 28 35000
7500 33 50000
12000 40 85000

目标函数

  • 目标:分析银行会贷款受工资和年龄的影响情况,预测银行贷款量
  • 考虑:工资和年龄分别影响贷款的多少
  • 思路:通过数据,找到一个合适的拟合平面

线性回归·最小二乘法·梯度下降【知识整理】
假设:θ1\theta_1是年龄参数,θ2\theta_2是工资参数

  • 拟合平面为:
    hθ(x)=θ0+θ1x1+θ2x2(θ0)h_\theta(x) = \theta_0+\theta_1x_1+\theta_2x_2\quad(\theta_0是偏置项)

  • 整合:hθ(x)=i=0nθixi=θTxh_\theta(x) = \sum^{n}_{i = 0}\theta_ix_i=\theta^Tx

误差分析

真实值合预测值之间一定会存在差异(用ε\varepsilon表述误差)

  • 对于样本:
    yi=θTxi+εi y^i=\theta^Tx^i+\varepsilon^i

误差εi\varepsilon^i是独立并且有相同的分布,并且服从μ\mu为0,σ2\sigma^2θ2\theta^2的高斯分布(正态分布)。

  • 独立:样本之间不会产生影响,每次贷款都是独立事件。
  • 同分布:不同的样本每次贷款都是分布相同的事件。
  • 高斯分布:银行给出的贷款量会有一定的浮动,大部分情况浮动小,小部分情况浮动大。
    线性回归·最小二乘法·梯度下降【知识整理】

似然函数求解

思路:误差项用实际值和预测值的差代替,得到不含误差变量的函数,函数表示预测值成为实际值的可能性。

  • 预测值与误差:yi=θTxi+εi y^i=\theta^Tx^i+\varepsilon^i
  • 由于误差服从高斯分布:p(εi)=12πσe(εi)22σ2 p(\varepsilon^i)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(\varepsilon^i)^2}{2\sigma^2}}
  • 结合上面两个式子:
    p(yixi;θ)=12πσe(yiθTxi)22σ2 p(y^i|x^i;\theta)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}}

方法:似然函数求解

  • 似然函数:L(θ)=i=1mp(yixi;θ)=i=1m12πσe(yiθTxi)22σ2 L(\theta)=\prod_{i=1}^{m}p(y^i|x^i;\theta)=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}}
  • 取对数:logL(θ)=logi=1m12πσe(yiθTxi)22σ2 logL(\theta)=log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}}
  • 展开化简:i=1mlog12πσe(yiθTxi)22σ2=mlog12πσ12σ2i=1m(yiθTxi)2 \sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}}=mlog\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2\sigma^2}\sum_{i=1}^{m}(y^i-\theta^Tx^i)^2
  • 目标:让似然函数越大越好,即目标函数越小,得出的函数拟合度越好J(θ)=12i=1m(yiθTxi)2() J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y^i-\theta^Tx^i)^2\quad(最小二乘法)

偏导求解最小值:

  • 目标函数:J(θ)=12i=1m(hθ(xi)yi)2=12(Xθy)T(Xθy)) J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^i)-y^i)^2=\frac{1}{2}(X\theta-y)^T(X\theta-y))
  • 求偏导:θJ(θ)=θ(12(Xθy)T(Xθy)))=XTXθXTy\nabla_\theta J(\theta)=\nabla_\theta(\frac{1}{2}(X\theta-y)^T(X\theta-y)))=X^TX\theta-X^Ty
  • 令偏导等于 0 即可得到拟合度最好的函数系数θ=(XTX)1XTy\theta =(X^TX)^{-1}X^Ty

评估

  • 最常用的评估项R2R^21i=1m(yi^yi)2i=1m(yiy)2()()1-\dfrac{\sum_{i = 1}^{m}(\hat{y_i}-y_i)^2}{\sum_{i = 1}^{m}(y_i- \overline{y})^2}\qquad\dfrac{(残差平方和)}{(类似方差项)}
  • R2R^2的取值越接近于 1 认为模型的拟合度越好

梯度下降

当我们得到一个目标函数后,直接求解可能并不可行(线性回归可以当做一个特例),机器学习就是将一推数据交给机器,然后指定学习方向(目标函数),让它朝着这个方向去做。
线性回归·最小二乘法·梯度下降【知识整理】

  • 目标函数:J(θ0,θ1)=12mi=1m(hθ(xi)yi) J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^i)-y^i)
  • 目标:寻找山谷的最低点,即目标函数的极值点
  • 方法:(1)找到合适方向(2)每次递增一小点(3)根据方向和递增量更新参数

三种梯度下降法

目标函数:J(θ)=12i=1m(hθ(xi)yi)2J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^i)-y^i)^2

  • 批量梯度下降(BGD):J(θ)θj=1mi=1m(yihθ(xi))xjiθj=θj+1mi=1m(yihθ(xi))xji\frac{\partial J(\theta)}{\partial{\theta_j}}=-\frac{1}{m}\sum_{i=1}^{m}(y^i-h_\theta(x^i))x^i_j\qquad\theta_j'=\theta_j+\frac{1}{m}\sum_{i=1}^{m}(y^i-h_\theta(x^i))x^i_j
    (容易得到最优解,但是由于每次考虑所有样本,速度很慢)
  • 随机梯度下降(SGD):θj=θj+(yihθ(xi))xji\theta_j'=\theta_j+(y^i-h_\theta(x^i))x^i_j(每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向)
  • 小批量梯度下降法(MBGD):θj:=θjα110k=ii+9(hθ(xk)yk)xjk\theta_j:=\theta_j-\alpha\frac{1}{10}\sum_{k=i}^{i+9}(h_\theta(x^k)-y^k)x^k_j(每次更新选择一部分数据来算,实用!

学习率

  • 学习率(步长):对结果会产生巨大的影响,一般设置较小值
  • 批量处理数据量:32,64,128都可以,很多时候还要考虑内存和效率
    线性回归·最小二乘法·梯度下降【知识整理】

小结

本章主要介绍了线性回归的最小二乘法的推到过程、误差的评估方法、三种梯度下降方法及学习率的设置。