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的取值 。
  • 相关阅读:
    JAVA入门到精通-第42讲-坦克大战9
    JAVA入门到精通-第40讲-线程
    JAVA入门到精通-第37讲-事件总结-坦克大战5
    大数据 资源
    在线工具
    idea 添加 阿里代码规范
    idea 控制台中文乱码 解决方法
    idea 构建maven web项目
    oracle SQL 练习
    Oracle分页
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/6067379.html
Copyright © 2011-2022 走看看