首页 > 技术文章 > 机器学习笔记(2):梯度下降

lxb0478 2018-01-03 11:36 原文

 梯度下降算法的定义

对于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),

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

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

 

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

 

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

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

 


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

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

 

线性回归模型:

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

 

推荐阅读