最优化问题——梯度下降/上升法
来源:互联网 发布:特价机票全额退款 知乎 编辑:程序博客网 时间:2024/05/17 07:36
前言
在各种应用场景下我们经常会遇到一些求最优解的问题,在计算机中我们可以利用梯度下降法/上升法来求解局部最优解。
梯度下降:向函数上当前点对应梯度(或近似梯度)的反方向,按照规定步长进行迭代搜索,接近函数的局部极小值。
梯度上升:向函数上当前点对应梯度(或近似梯度)正方向,按照规定步长进行迭代搜索,接近函数的局部极大值。
在机器学习中梯度下降法被广泛用来最小化目标函数(求目标函数取最小值时所对应自变量的值)
正文
梯度
以三元函数f(x,y,z)为例,设其上某点P(x,y,z)可微,则其所对应的梯度为:
梯度的意义:在该点处函数值增加最快的方向(反方向为函数值减少最快的方向)
算法描述
梯度下降法是基于上述梯度的意义对局部极小值进行迭代查找的方法。假设我们从
基于这样的
当迭代到前后差值小于某个阈值之后,停止迭代,此时就得到了目标函数
值得注意的是,递推式中步长
其中:
优点
下降快(也被称为最速下降法)
缺点
1、得到的解可能不是全局最优解(根据初始点选取不同,得到的解也不尽相同)*
2、接近局部最优解时下降速度变慢(步长γ逐渐减小)
*对于缺点1:当函数是凹函数(国外教材叫凸函数/convex)时,得到的最优解便是全局最优解。为了尽量保证得到的解是全局最优解,可以多次选取不同的初始值来执行算法,选其最小值为最优解。
分类
批量梯度下降法(Batch Gradient Descent, BGD)
该方法使用整个数据集去计算代价函数的梯度,收敛所需时间长(慢……),并且对于不能载入内存的数据集很难处理。但是得到的数据是最准确的
随机梯度下降法(Stochastic Gradient Descent, SGD)
该方法第一步先随机化整个数据集。在每次迭代仅选择一个训练样本去计算代价函数的梯度,然更新参数,收敛快。
虽然它的精度不是特别好,但是它的速度非常快,即使对于大数据集也可以收敛的十分快。
小批量梯度下降法(Mini-Batch Gradient Descent, MBGD)
该方法对于批量梯度下降和随机梯度下降进行了折中,每次使用一批(m,50~256个之间)样本进行训练,能够较快的得到比较准确的答案
- 最优化问题——梯度下降/上升法
- 最优化-梯度下降法
- 迭代求解最优化问题——梯度下降、牛顿法
- 最优化 梯度下降
- 优化算法——梯度下降法
- 优化算法——梯度下降法
- 优化算法——梯度下降法
- 优化算法——梯度下降法
- 优化算法—梯度下降法
- 最优化方法:梯度下降法
- 梯度上升法,梯度下降法
- 最优化学习笔记(三)——梯度下降法
- 通过迭代方法理解最优化问题-梯度下降法
- 机器学习最常用优化之一——梯度下降优化算法综述
- 深度模型的优化(一)——梯度下降法
- 感知机最优化方法:梯度下降法
- 梯度下降与梯度上升
- 梯度上升与梯度下降
- 【Person Re-ID】常用评测指标
- MyBatis:SQL语句中的foreach的详细介绍
- Java面试学习总结(1)
- Python 小技巧:for 循环后面接 else 语句
- 刮刮卡
- 最优化问题——梯度下降/上升法
- Sublime Text3 3143 注册码,亲测可用!
- HDU4812 D tree 【点分治 + 乘法逆元】
- 商业模式是决定项目成败的关键
- Block 概要
- Android手机卡顿原因
- vue 通过下拉框组件了解Vue中父子组件通讯
- 自定义View圆角ImageView
- webstorm 2017 激活破解