『科学计算_理论』优化算法:梯度下降法&牛顿法

叠加态的猫 叠加态的猫     2022-09-07     527

关键词:

梯度下降法

梯度下降法用来求解目标函数的极值。这个极值是给定模型给定数据之后在参数空间中搜索找到的。迭代过程为:

技术分享

可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha。梯度下降法通常用一个三维图来展示,迭代过程就好像在不断地下坡,最终到达坡底。为了更形象地理解,也为了和牛顿法比较,这里我用一个二维图来表示:

技术分享

懒得画图了直接用这个展示一下。在二维图中,梯度就相当于凸函数切线的斜率,横坐标就是每次迭代的参数,纵坐标是目标函数的取值。每次迭代的过程是这样:

  1. 首先计算目标函数在当前参数值的斜率(梯度),然后乘以步长因子后带入更新公式,如图点所在位置(极值点右边),此时斜率为正,那么更新参数后参数减小,更接近极小值对应的参数。
  2. 如果更新参数后,当前参数值仍然在极值点右边,那么继续上面更新,效果一样。
  3. 如果更新参数后,当前参数值到了极值点的左边,然后计算斜率会发现是负的,这样经过再一次更新后就会又向着极值点的方向更新。

根据这个过程我们发现,每一步走的距离在极值点附近非常重要,如果走的步子过大,容易在极值点附近震荡而无法收敛。解决办法:将alpha设定为随着迭代次数而不断减小的变量,但是也不能完全减为零。

牛顿法

首先得明确,牛顿法是为了求解函数值为零的时候变量的取值问题的,具体地,当要求解 f(θ)=0时,如果 f可导,那么可以通过迭代公式

技术分享

来迭代求得最小值。通过一组图来说明这个过程。

技术分享

当应用于求解最大似然估计的值时,变成?′(θ)=0的问题。这个与梯度下降不同,梯度下降的目的是直接求解目标函数极小值,而牛顿法则变相地通过求解目标函数一阶导为零的参数值,进而求得目标函数最小值。那么迭代公式写作:

技术分享

当θ是向量时,牛顿法可以使用下面式子表示:

技术分享

其中H叫做海森矩阵,其实就是目标函数对参数θ的二阶导数。

通过比较牛顿法和梯度下降法的迭代公式,可以发现两者及其相似。海森矩阵的逆就好比梯度下降法的学习率参数alpha。牛顿法收敛速度相比梯度下降法很快,而且由于海森矩阵的的逆在迭代中不断减小,起到逐渐缩小步长的效果。

牛顿法的缺点就是计算海森矩阵的逆比较困难,消耗时间和计算资源。因此有了拟牛顿法。

神经网络基础部件-优化算法详解(代码片段)

...下降法。其算法描述如下:输入和超参数:$\\eta$全局学习率计算梯度:$g_t=\\nabla_\\thetaJ(\\theta_t-1)$更新参数:$\\theta_t=\\theta_t-1-\\eta\\cdotg_t$SGD优化算法是最经典的神经网络优化方法,虽然收敛速度慢,但是收敛效果比较稳定。下图1... 查看详情

深度学习笔记:sgdmomentumrmspropadam优化算法解析

...GD二、Momentum动量梯度下降三、RMSprop优化器四、Adam优化器理论系列:    深度学习笔记(一):卷积层+激活函数+池 查看详情

深度学习笔记:sgdmomentumrmspropadam优化算法解析

...GD二、Momentum动量梯度下降三、RMSprop优化器四、Adam优化器理论系列:    深度学习笔记(一):卷积层+激活函数+池 查看详情

07_lfm--梯度下降法--实现基于模型的协同过滤(代码片段)

...向量运算import pandas as pd # 数值分析、科学计算1.数据准备#&n 查看详情

无约束优化算法-第二节:梯度类算法(代码片段)

...xff0c;此外还有BB方法,是一种梯度法的变形,虽然理论性质目前仍不完整,但由于它有优秀的数值表现,也是在实际应用中使用较多的一种算法一:梯度下降法(1)梯度下降法概述梯度下降法(Gradi... 查看详情

机器学习常见的优化算法

...度下降法梯度下降法是最早最简单的,也是最为常用的最优化算法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度未必是最快的。梯度下降... 查看详情

梯度下降法和随机梯度下降法的区别

...下降中,权值更新的每一步对多个样例求和,需要更多的计算。  3、标准梯度下降,由于使用真正的梯度,标准梯度下降对于每一次权值更新经常使用比随机梯度下降大的步长。  4、如果标准误差曲面有多个局部极小值,... 查看详情

机器学习梯度下降法(超详解)

...度下降算法(SAG)5.梯度下降法算法比较和进一步优化5.1算法比较5.2梯度下降优化算法前言在机器学习】线性回归的损失和优化中介绍了最基本的梯度下降 查看详情

优化算法总结

...d),或者说是两者的结合更准确一些.SGD的优点是,算法简单,计算量小,在函数为凸函数时可以找到全局最优解.所以是最常用的优化算法.缺点是如果函数不是凸函数的话,很容易进入到局部最优解而无法跳出来.同时SGD在选择学习率上... 查看详情

深度解读最流行的优化算法:梯度下降

梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法。本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法。我们首先会考察梯度下降法的各种变体,然... 查看详情

优化算法—梯度下降(代码片段)

...blogs.com/shixiangwan/p/7532858.html梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法。本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法。我们首先会考察... 查看详情

常见优化器

...下降法则是批量梯度下降法和随机梯度下降法的折衷,在计算梯度时选择部分样本进行计算,即样本数介于1与总数之间。    对于小批量梯度下降法,其更新公式如下: 查看详情

pytorch之梯度下降和方向传播理论介绍

...BGD随机梯度下降法SGD小批量梯度下降法MBGD反向传播算法计算图和反向传播神经网络中的反向传播梯度梯度:是一个向量,学习(参数更新)的方向,导数+变化最快的方向。梯度的本意是一个向量(矢量),表示某一... 查看详情

[人工智能-深度学习-15]:神经网络基础-常见优化器optimizer及其算法-梯度下降法系列

...blog.csdn.net/HiWangWenBing/article/details/120589554目录第1章什么是优化算法1.1机器学习模型与优化算法在机器学习模型中的位置1.2什么是优化器1.3什么是优化算法1.4优化 查看详情

梯度下降法改进过程:从sgd到adam算法

...梯度下降法是指用梯度的负数-g更新参数,从而使下一次计算的结果向函数下降方向逼近,从而得到最小值。其中更新时乘的系数称为学习率。以所有m个数据作为一个批次,每次计算损失loss值和梯度g(偏导)时为所有数据的累... 查看详情

常用优化器算法归纳介绍

...思想及其性能;核心思想:即针对每次输入的训练数据,计算输出预测与真值的Loss的梯度;从表达式来看,网络中参数的更新,是不断向着最小化Loss函数的方向移动的:优点:简单易懂,即对于相应的最优解(这里认为是Loss的... 查看详情

梯度下降法求解线性回归(代码片段)

...度下降法梯度下降法(英语:Gradientdescent)是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代... 查看详情

几种常用最优化方法

...技术A学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练... 查看详情