• 再论最小二乘


    标签(空格分隔): 机器学习


    前面有写过一篇关于最小二乘与最大似然估计的博客点我点我,该博客从二者的本质不同进行了分析(一个是为了最好的拟合数据,一个是通过概率分布使时间最可能发生)

    本篇博客将从目标函数求驻点及梯度下降的角度比较二者的不同。

    最小二乘

    目标函数

    目标函数实际是从拟合中残差服从高斯分布推导出来的,但实际我们可以直接使用:
    (J( heta) = frac{1}{2}(h_{ heta}(x^{(i)})-y^{(i)})^{2} = frac{1}{2}(X heta-y)^{T}(X heta-y))

    解法一:直接求导

    这是需要重点分析的,面试中有问到过。
    (frac{partial J( heta)}{partial heta} = frac{partial frac{1}{2}( heta^{T}X^{T}-y^{T})(X heta-y)}{partial heta})
    (=frac{partial frac{1}{2}( heta^{T}X^{T}X heta- heta^{T}X^{T}y-y^{T}X heta+y^{T}y)}{partial heta})
    (=frac{1}{2}(2X^{T}X heta - X^{T}y - (y^{T}X)^{T}) = X^{T}X heta - X^{T}y)

    求驻点,令偏导为0,则( heta = (X^{T}X)^{-1}X^{T}y)

    加入扰动项

    防止(X^{T}X)不可逆或过拟合,增加(lambda)扰动:

    ( heta = (X^{T}X + lambda I)^{-1}X^{T}y)

    换个角度看扰动项

    一般在求解回归的问题中,为防止过拟合我们会加入一个正则项,常用的正则项有L0-norm, L1-norm, L2-norm.(它们三者之间的区别与联系不作为本篇博客的重点,详细的解释见这篇博客:点我点我
    假设我们使用L2-norm(因为好求导~),则目标函数变为:

    $J'( heta) = frac{1}{2}(h_{ heta}(x^{(i)})-y^{(i)})^{2} + lambdasum_{j=1}^{n} heta_{j}^{2} ( )= frac{1}{2}(X heta-y)^{T}(X heta-y) + lambda heta^{T} heta$

    然后对这个新的目标函数对( heta)求偏导,求驻点,得到:

    ( heta = (X^{T}X + lambda I)^{-1}X^{T}y)

    与前面直接加入扰动项的做法是完全一致的!!怎么样,有木有很神奇!!(今年校招滴滴的笔试题最后一个简答题就是问这个知识点,后知后觉啊。。)

    解法二:梯度下降

    • 随机初始化( heta)
    • 沿着负梯度方向迭代,更新后的( heta)使得(J( heta))更小;
    • ( heta_{j} = heta_{j} - alpha frac{partial J( heta)}{partial heta})

    梯度方向

    (frac{partial J( heta)}{partial heta_{j}} = frac{partial}{partial heta_{j}}frac{1}{2}(h_{ heta}(x) - y)^{2})
    $ = (h_{ heta}(x) - y)frac{partial}{partial heta_{j}}(h_{ heta}(x) - y) ( ) = (h_{ heta}(x) - y)x_{j}$

  • 相关阅读:
    触达项目涉及到的功能点
    NodeJS编程基础
    C#Socket通讯
    HTML转义字符大全
    C# 二进制,十进制,十六进制 互转
    浏览器的分类
    Prometheus设置systemctl管理
    第十五讲:Pagerduty的联用
    第十四讲:Prometheus 企业级实际使⽤二
    第十三讲:Prometheus 企业级实际使⽤
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5885856.html
Copyright © 2020-2023  润新知