zoukankan      html  css  js  c++  java
  • 机器学习——梯度下降算法

    梯度下降法是一个最优化算法,通常也称为最速下降法
    最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。
    最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。
    可以用于求解非线性方程组。
    举一个非常简单的例子,如求函数
     f(x) = x^2 的最小值。
     
    利用梯度下降的方法解题步骤如下:
     
    1、求梯度
    ▽ = 2x
     
    2向梯度相反的方向移动
    ,如下x = x - v·▽,其中,
    v
    为步长。
    如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
     
    当x=1的时候,斜率是2,x = 1-0.001×2 = 1-0.002 = 0.998,逐渐接近0
    当x=1的时候,斜率是-2,x = -1+0.001×2 = -1+0.002 = -0.998,逐渐接近0
     
    3循环迭代步骤2,直到x的值变化到使得
     f(x) 在两次迭代之间的差值足够小,比如0.00000001,也就是说,直到两次迭代计算出来的
     f(x)基本没有变化,则说明此时
     f(x)已经达到局部最小值了。
     
    4、此时,输出x,这个
    就是使得函数
     f(x)
    最小时的x的取值 。
  • 相关阅读:
    微信公众平台开发者中心安全模式消息体加解密实现
    AES对称加密算法原理
    Token验证失败
    PaySignKey
    UVA 11732
    lua中的pairs和ipairs差别
    【shell学习笔记】curl命令总结
    视频监控系统:C/S & B/S
    Android app开发中用户协议(使用条款)文字自己主动换行
    uva 10154
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/6067379.html
Copyright © 2011-2022 走看看