「CS229」Lecture2: 线性回归和梯度下降


线性回归

  • 线性回归是最简单的监督学习回归问题。监督学习的基本流程:

    1. 测试数据集,包含一系列(x,y)
    2. 数据输入到学习算法
    3. 输出一个函数h,使得该函数可以很好地为输入的 x 生成对应的 y
    4. 使用函数h对其他数据进行预测

  • 函数的表示
    h=θ1x1+θ2x2+...+θnxn+b=j=0nθixi
    其中,x0始终为1。如果写成矩阵形式,即 θ=[θ0θ2], x=[x0x1] , 则上述公式可以写成:
    hθ(x)=θTx

  • 常用符号

    符号 含义
    θ 参数
    m 训练集的大小
    x 输入 / 特征
    y 输出 / 目标变量
    (x(i),y(i)) 训练集中第 i 个训练样本
    (x,y) 训练集中某一个训练样本
    xj(i) 第 i 个训练样例的第 j 个特征
    n 特征数量
  • 参数的选择
    choose θst.h(x)y   for every training example
    对于线性回归问题,目标参数可以形式化的表示为
    J(θ)=12i=1m(hθ(x(i))y(i))2θ=argminθ J(θ)
    J(x) 通常被称为成本函数,即 cost function.

批量梯度下降和随机梯度下降

批量梯度下降

  • 批量梯度下降形式化表示:
    θj:=θjα J(θ) θj (repeat until convergence)

​ 其中,α表示学习率。对于线性回归来说, J(θ) θj的计算如下所示:
 J(θ) θj=i=1m(hθ(x(i))y(i)) xj(i)
​因此,线性回归的梯度下降公式就可以表示为:
θj:=θjαi=1m(hθ(x(i))y(i)) xj(i)(repeat until convergence)

  • 这里的“批“的意思是:每一次进行梯度下降更新参数时,都用到了一批数据参与运算。在上面的例子中,我们将训练集中所有的数据作为“一批”。每一次参数更新时,计算该批中每一条数据对应的“损失”,最终将所有的损失求和,其实也就是J(θ)。然后根据J(θ) 和公式$_j := _j -  \ $ 对每个参数进行“一次“更新。

随机梯度下降

对于每一条数据,即(x(i),y(i)),都进行一次梯度下降。此时梯度下降的过程就变为
repeat until convergence {for  i = 0  to  m {θj:=θjα(hθ(x(i))y(i))2θj}}
批量梯度下降法在进行一次迭代之前必须扫描整个训练集,如果m很大的话,计算开销非常高。而随机梯度下降法每次只针对一条数据进行梯度下降,因此能够更快地使 θ “接近”最小值。但是需要注意的是,随机梯度下降可能永远不会“收敛”到最小值,并且参数 θ 将在 θ 的最小值周围振荡;但在实践中,大多数“接近最小值的值”就是对真实最小值的合理近似。

因此,通常更推荐使用随机梯度下降,尤其是数据集合规模较大的时候。

正规方程

基本形式

正规方程其实就是对上述的J(θ) 求偏导、并令偏导数等于0得到的。因此他只适用于线性回归。
θ=(XTX)1XTYX=[ (x(1))T  (x(2))T  (x(m))T],   Y=[ y(1)y(2)y(m)]

推导

在推导之前我们需要用到以下公式:
AtrAB=BTATf(A)=(Af(A))TAtrABATC=CAB+CTABTA|A|=|A|(A1)T
下面就可以开始推导啦
θJ(θ)=θ12(XθY)T(XθY)=12θ(θTXTYT)(XθY)=12θ(θTXTXθθTXTYYTXθ+YTY)=12θtr(θTXTXθθTXTYYTXθ+YTY)=12θ(trθTXTXθ2trYTXθ)=12(θtrθTXTXθ2θtrYTXθ)=12((θTtrθT(XTX)θI)T2θtrYTXθ)=12(XTXθ+XTXθ2θtrYTXθ)=XTXθXTY
θJ(θ)=0 即可得到正规方程:
θ=(XTX)1XTY


文章作者: Hyggge
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Hyggge !