算法理论笔记

本文详细探讨了算法理论,包括最优化方法(梯度下降及其变种)、正则化、EM算法、偏差方差、马尔科夫链蒙特卡罗法等。介绍了各种经典算法如决策树、支持向量机和神经网络,并深入讨论了正则化、神经网络的梯度消失问题及解决方案,以及卷积神经网络和循环神经网络的结构与应用。此外,还涉及推荐系统的基本算法和应用场景。
摘要由CSDN通过智能技术生成

最优化方法

  1. 微分方法
    根据极值必要条件,求 f ′ ( x ) = 0 {f}'(x)=0 f(x)=0的根

  2. 梯度下降法
    设 参 数 为 w , 当 前 点 的 梯 度 为 ∂ L ∂ w , 学 习 率 为 η , 则 设参数为w,当前点的梯度为\frac{\partial L}{\partial w},学习率为\eta,则 wwLη
    w = w − η ∂ L ∂ w w = w - \eta \frac{\partial L}{\partial w} w=wηwL
    往梯度的负方向走来迭代求根,即极小值点(正方向即为极大值点)

    1. 批量梯度下降法 BGD

      每次迭代利用所有的样本计算梯度

    2. 随机梯度下降法 SGD

      每次迭代利用一个样本计算梯度

    3. 小批量梯度下降法 MBGB

    每次迭代利用部分样本计算梯度

    缺点:如果梯度没有指向极值点,那么搜索效率就会很低(在等高线上呈“之”字形移动)

  3. 梯度下降法的改造

    1. Momentum
      设 冲 量 ( 速 度 ) 为 ν , 冲 量 系 数 为 α ( 相 当 于 摩 擦 力 或 阻 力 ) , 则 设冲量(速度)为\nu ,冲量系数为\alpha (相当于摩擦力或阻力),则 ()να
      v = α v − η ∂ L ∂ w v = \alpha v - \eta \frac{\partial L}{\partial w} v=αvηwL
      w = w + v
      每个参数都有一个对应的v值,v初始值可以赋0

    越是一直往梯度的某个方向上前进,则在该方向上的速度越快(前进距离越多),比如在梯度的某个方向上一直是正数,则迭代时在该方向上前进的距离越多。相反则正反方向抵消,前进的距离越小。

    1. AdaGrad
      h = h + ∂ L ∂ w ∗ ∂ L ∂ w 矩 阵 对 应 位 置 相 乘 h = h + \frac{\partial L}{\partial w} * \frac{\partial L}{\partial w} 矩阵对应位置相乘 h=h+wLwL
      w = w − 1 h η ∂ L ∂ w w = w - \frac{1}{\sqrt{h}} \eta \frac{\partial L}{\partial w} w=wh 1ηwL
      h记录了随着迭代,每个参数对应偏导数的平方和,即梯度的每个数值的平方和。
      每个参数都有一个对应的h值,h初始值可以赋0

    与梯度下降相比,多了一个系数来调整学习率的值。随着迭代,某一个参数对应的偏导数(即梯度中对应的分量)越大,则该参数的学习率越小。一般来说,随着迭代,h的值越大越大,所以参数的学习率也就会越来越小

    1. RMSProp
      h = a h + ( 1 − a ) ∂ L ∂ w ∗ ∂ L ∂ w 矩 阵 对 应 位 置 相 乘 h = ah +(1-a) \frac{\partial L}{\partial w} * \frac{\partial L}{\partial w} 矩阵对应位置相乘 h=ah+(1a)wLwL
      w = w − 1 h η ∂ L ∂ w w = w - \frac{1}{\sqrt{h}} \eta \frac{\partial L}{\partial w} w=wh 1ηwL

    AdaGrad的改良版,越接近当前期的梯度平方和权重越大,越之前的则越小。实际上就是指数平滑,让梯度平方和的权重呈指数衰减

    1. Adam

      结合了Momentum和RMSProp算法,通常会有比较好的效果

  4. 牛顿法
    求f(x)导数的一阶泰勒展开(切线)=0的根,以迭代的方法近似求f(x)导数=0的根

    • 前提

      1. 任何一点二阶可微(任何一点的二阶偏导数连续)
      2. 一元函数二阶导数 > 0,函数为凹函数
        多元函数海森矩阵正定(正定即对角线元素>0,即各维度的二阶偏导数>0,各维度为凹函数)
        凹函数保证极值点只有一点,且为极小值点,且为最小值点,即局部最优点就是全局最优点
    • 优点

      1. 考虑了二阶导数的信息(一阶导数的变化率),二次收敛,收敛速度快(二次函数只需要一步)
    • 缺点

      1. 需要计算海森矩阵和其逆矩阵,计算量大
      2. 海森矩阵规模为N方,当N很大时,海森矩阵变得很大
      3. 受初始点影响大
        • 驻点, f ′ ′ ( x ) {f}''(x) f(x)=0,分母不能为0
        • f ′ ( x ) = x 1 3 {f}'(x)=x^{\frac{1}{3}} f(x)=x31,迭代的x点越来越远离0
        • f ′ ( x ) = ∣ x ∣ 1 2 {f}'(x)=|x|^{\frac{1}{2}} f(x)=x21,迭代的点不断地循环震荡
      • 有多个极值的函数f(x),即 f ′ ( x ) {f}'(x) f(x)有多个零点,根据初始值不同,会收敛到不同的极值点
  5. 拟牛顿法
    满足拟牛顿条件下,求一个正定矩阵作为海森矩阵的近似,避免直接求海森矩阵

    1. DFP算法

      通过迭代的方式构造D矩阵作为海森矩阵的逆矩阵的近似矩阵

      D k + 1 = D k + Δ D K = D k + α u u T + β v v T D_{k+1}=D_{k}+\Delta D_{K}=D_{k}+\alpha uu^{T}+\beta vv^{T} D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值