梯度下降算法介绍

本文介绍了梯度下降算法及其在机器学习中的应用,包括全批梯度下降和随机梯度下降。讨论了使用梯度下降的挑战,如数据非凸优化、梯度消失和爆炸等问题,并介绍了Vanilla Gradient Descent、Momentum、ADAGRAD和ADAM等变体,提供了实践技巧和Python实现示例。
摘要由CSDN通过智能技术生成

最优化(Optimization)在我们的日常生活中扮演着重要角色,最优化意味着找到问题的最优解。在机器学习中,通过训练集数据找到最优解,并在验证集上进行检测。

许多机器学习算法都需要用到最优化,例如线性回归(linear regression)、k最近邻(k-nearest neighbors)、神经网络(neural networks)等。本文着重介绍最优化的一种技术——梯度下降(Gradient Descent)。

1. 什么是梯度下降

首先,利用一个登山的例子来说明梯度下降。假定你正在山顶上,你需要走到这座山的最低点,当然,这里假定你是不知道山的全貌的,并且你也不知道你要前往的确定的位置。那么,你该如何到达最低点呢?

在这里插入图片描述
最好的办法是观察你所在地点周围的地势,并确定哪个方向的地势是下降的,这将决定你前进的方向。如果沿着地势下降的路径走,你将很有可能达到最低点。用数学图形表示如下

在这里插入图片描述

找最低点的问题则转化为找到特定的参数 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1,使得成本函数 J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1)的值最小,而这样一座“山”就是是搜索空间,图中红色部分的山顶表示成本很大,而蓝色部分的山谷则表示成本很小。

根据方法的不同,可将梯度下降分为以下两种类型:

  1. 基于数据获取(data ingestion)
  • 全批梯度下降算法(Full Batch Gradient Descent Algorithm):使用全部数据计算梯度。
  • 随机梯度下降算法(Stochastic Gradient Descent Algorithm):使用一个样本数据计算梯度。
  1. 基于微分技术(differentiation techniques )
  • 一阶微分(First order Differentiation)
  • 二阶微分(Second order Differentiation)

计算梯度时需要计算成本函数的微分,我们既可以使用一阶微分,又可以使用二阶微分。

2. 使用梯度下降的挑战

梯度下降在大多数情况下都能很好地使用,但是在一些情况下却不能很好地表现,主要原因有以下几点:

  1. 数据挑战
  2. 梯度挑战
  3. 实现挑战

2.1 数据挑战

  • 数据表现出一种非凸优化问题(non-convex optimization problem)。梯度下降只能用于定义好的凸优化问题(convex optimization problem)。
  • 即使是一个凸优化问题,那也可能存在许多个极小值点。最小值点被称为全局最优(global minimum),而其他的极小值点被称为局部最优(local minima),我们的任务是要找到全局最优而非局部最优。
  • 图形中也有可能存在鞍点(saddle point),鞍点处的梯度为0,但不是最优点,目前我们还没有特定的方法来避免这种点。

2.2 梯度挑战

  • 如果梯度下降不能很好地执行,那可能出现了梯度消失(vanishing gradient)或梯度爆炸(exploding gradient),这两个问题分别在梯度过小和过大时出现,往往是由算法不收敛造成。

2.3 实现挑战

  • 许多神经网络实践者不关心实现,但是关注资源利用非常重要。
  • 同样需要关注的还有浮点数和软硬件的前提条件。

3. 梯度下降算法的变体

3.1 Vanilla Gradient Descent

这是梯度下降最简单的形式。它的主要特征是朝着成本函数的梯度方向小步走。

为了描述上的方便,这里认为参数只有一个 θ \theta θ。当前所在的点为 θ l \theta^l θl,需要前往的目标点 θ l + 1 \theta^{l+1} θl+1
θ l + 1 = θ l − η ∇ J ( θ l ) \theta^{l+1}=\theta^l-\eta \nabla J(\theta^l) θl

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值