zoukankan      html  css  js  c++  java
  • 梯度下降

    理论基础

    梯度下降法是机器学习中常用的优化方法,其理论基础是当θs-θ→0时会有:

    J(θs) ≈ J(θ)+▽(θ)(θs-θ)

    因此当我们这样更新θs,并保证α>0且足够小时:

    θs+1 = θs - α▽(θs)

    则会有:

    J(θs+1)
    ≈ J(θs)+▽(θs)(θs+1s)
    ≈ J(θs)+▽(θs)(-α▽(θs))≈ J(θs) - α▽(θs)2

    这里我们可以发现迭代后的目标函数J(θ)变小了,因此经过多次迭代后,我们能够找到一个极小值(当▽(θs)=0时,θs+1 = θs,迭代结束)。

    迭代结束条件

    由于要达到▽(θs)=0必须迭代十分长的时间,因此实际操作中迭代条件并非▽(θs)=0,而是一下三个常用的条件:

    1. 迭代次数 < n
    2. J(θs+1)-J(θs) < ε
    3. |▽(θ1)|+|▽(θ2)|+...+|▽(θs)| < ε

    优化方法

    1. 由于每一维度的值的范围可能差别很大(如有一些维度为0-1,另一些为100-200),这样当我们都统一从0开始迭代时,会使得范围小的维度很快得到拟合,而范围大的维度却需要长时间的拟合,因此我们常常会先将数据进行归一化。
    2. 当迭代次数较小的时候,我们希望一个较大的α来提高迭代速度;但是当迭代次数大的时候,我们则希望一个较小的α来更好的到达最优解(避免在极小值附近左右晃动)。因此我们可以避免使用固定的步长,而是当迭代次数到达一定的大小时,让α逐渐变小。
  • 相关阅读:
    02方法 课后作业1
    HDU 1518
    POJ 2406
    HDU 1953
    HDU 1272
    POJ -- 3842
    POJ -- 3233 求“等比矩阵”前n(n <=10^9)项和
    POJ ---3070 (矩阵乘法求Fibonacci 数列)
    POJ --- 3613 (K步最短路+矩阵快速幂+floyd)
    POJ --- 2918 求解数独
  • 原文地址:https://www.cnblogs.com/bgmind/p/4364229.html
Copyright © 2011-2022 走看看