• 机器学习笔记(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),

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

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

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

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

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


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

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

    线性回归模型:

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

  • 相关阅读:
    JNI编程基础
    C语言指针学习
    C语言字符串以及二维数组指针
    CPP数据类型本质以及变量本质分析
    junit在idea中的使用(2)--实践篇
    idea创建maven项目
    SourceTree的基本使用---团队开发/参与开源
    SourceTree的基本使用---基本介绍/本地开发
    流量分析系统---启动流程
    流量分析系统---redis
  • 原文地址:https://www.cnblogs.com/lxb0478/p/8183007.html
Copyright © 2020-2023  润新知