zoukankan      html  css  js  c++  java
  • 梯度下降算法在线性回归中的运用

    梯度下降算法

    重复直到收敛{

    [{ heta _j}: = { heta _j} - alpha frac{partial }{{partial { heta _j}}}Jleft( {{ heta _0},{ heta _1}} ight)left( {for{ m{ j  =  0 and j  =  1}}} ight)]

    }

    线性回归模型{

    [{h_ heta }left( x ight) = { heta _0} + heta_1 {x_1}]

     [Jleft( {{ heta _0},{ heta _1}} ight) = frac{1}{{2m}}sumlimits_{i = 1}^m {{{left( {{h_ heta }left( {{x^{(i)}}} ight) - {y^i}} ight)}^2}} ]

    }

    我们的目的是将梯度下降算法应用到线性回归中,最小化J(θ0, θ1)。


    关键在于确定 [frac{partial }{{partial { heta _{ m{j}}}}}Jleft( {{ heta _0},{ heta _1}} ight)]

    下面是推导过程

    [egin{array}{l}
    frac{partial }{{partial { heta _{ m{j}}}}}Jleft( {{ heta _0},{ heta _1}} ight) = frac{partial }{{partial { heta _{ m{j}}}}}frac{1}{{2m}}sumlimits_1^m {{{left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)}^2}} \
    = frac{partial }{{partial { heta _{ m{j}}}}}frac{1}{{2m}}sumlimits_{i = 1}^m {{{left( {{ heta _0} + { heta _1}{x^{left( i ight)}} - {y^{left( i ight)}}} ight)}^2}}
    end{array}]

    当j=0时 [frac{partial }{{partial { heta _0}}}Jleft( {{ heta _0},{ heta _1}} ight) = frac{1}{m}sumlimits_{i = 1}^m {left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)} ]

    当j=1时 [frac{partial }{{partial { heta _1}}}Jleft( {{ heta _0},{ heta _1}} ight) = frac{1}{m}sumlimits_{i = 1}^m {left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)} {x^{left( i ight)}}]

    现在梯度下降算法就可以表示为

    重复直到收敛{

    [egin{array}{l}
    { heta _0}: = { heta _0} - alpha frac{1}{m}sumlimits_{i = 1}^m {left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)} \
    { heta _1}: = { heta _1} - alpha frac{1}{m}sumlimits_{i = 1}^m {left( {{h_ heta }left( {{x^{left( i ight)}}} ight) - {y^{left( i ight)}}} ight)} {x^{left( i ight)}}
    end{array}]

    }

    下面时梯度下降的示意图

    梯度下降算法会根据不同初始点的选取陷入不同的局部最小。

    但是就线性回归问题而言,它的代价函数的图形总是凸面函数(convex function)

    为方便起见,我们依然使用“等高线”图表示

    假设初始点红叉所在位置,对应的h(θ)可能是右边的图

       

    慢慢收敛到最佳的(θ0, θ1

    这里的梯度下降又称为批处理梯度下降("Batch" Gradient Descent)

    "Batch": Each step of gradient descent uses all the training examples.

    梯度下降的每个步骤都使用所有训练示例。

  • 相关阅读:
    尘埃里的路人甲
    尘埃里的路人辛
    尘埃里的路人庚
    尘埃里的路人己
    尘埃里的路人戊
    尘埃里的路人丁
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/qkloveslife/p/9829606.html
Copyright © 2011-2022 走看看