zoukankan      html  css  js  c++  java
  • 机器学习笔记(2):梯度下降

     梯度下降算法的定义

    对于cost function J0, θ1, ... θn),要想获取到其最小值,我们需要这么计算:

    1. 从 θn 某个初始值开始,如 θ0 = 0, θ1 = 0,... θn = 0

    2. 不断改变 θn 的值来减小 J0, θ1, ... θn) 的值,直到我们获取到一个最小值

    在不同的点沿着最快下山的路往低处走,会得到不同的最小值

    梯度下降算法(以 2个参数为例)

    注意,其中 θ0, θ1同时发生改变

    而不是像下面这样,先改变 θ0,再根据已改变的 θ0 来计算 θ1


    梯度下降算法中的参数

     α 为 learning rate (学习速率),控制我们以多大幅度更新 (θ0, θ1, ... θn),

    如果 α 太小,只能一点点挪动,需要很多步才能达到最低点;

    如果 α 太大,一步太大,梯度下降法可能会跳过最低点,导致无法收敛甚至发散

    为导数项,在一个参数的线性回归问题中,可以理解为点的切线即斜率

     对于固定的  α 值,梯度下降可以收敛到最小值,因为随着斜率越来越平滑,导数越来越小

    导致梯度下降的每一步越来越小,所以不需要一直减小 α


    梯度下降举例 --- 线性回归中的梯度下降

    将梯度下降算法代入到线性回归模型中,可以得到

    线性回归模型:

    线性回归只有一个全局最优解,没用其他局部最优解

  • 相关阅读:
    MySQL源代码解读(二)
    MySQL源代码解读(一)
    C语言中如何对串口进行操作
    mysql 运行概图
    Yacc 与 Lex
    外键建索引
    提高SQL查询效率
    MySQL源代码分析:(1)Main函数
    Linux "could not open default font 'fixed'."
    转帖 浅析ARM汇编语言子例程设计方法
  • 原文地址:https://www.cnblogs.com/lxb0478/p/8183007.html
Copyright © 2011-2022 走看看