[算法] 优化算法 梯度下降

导数

  • 导数是一个数,函数y(x)在x0点的导数y‘(x0)反应了在x0处y随x的变化快慢

微分

  • 微分指函数值的微小变化
  • 在x0可微:在x0点y和x的微分成线性关系(只与该点函数值有关)
  • 导数可看做函数的微分与自变量的微分之商,故导数又称微商

偏导数

  • 函数在一点处沿坐标轴的变化率

方向导数

  • 函数在一点处沿射线方向的变化率
  • 偏导数是双侧的,方向导数是单侧的。函数f(x,y)在一点处对x偏导数等于沿x轴正向的方向导数

梯度

  • 梯度是一个向量
  • 方向导数沿梯度方向取最大值,最大值为梯度的模,即沿梯度方向函数值变化最快
  • 方向导数沿与梯度垂直的方向值为0,即函数值无变化
  • 在极值点时梯度为零向量,方向导数亦为0

无条件极值问题

  • 函数f(x)在x*有一阶、二阶连续偏导且无约束,则函数在x*取得局部极值的充分必要条件为:梯度为零,且Hesse矩阵正定

Lagrange乘子法

  • 引入乘子,将条件极值为题转换为无条件极值问题

K-T局部最优条件(必要条件)

  • 若x*为局优点,则不仅Lagrange函数的一阶偏导为零,且Lagrange乘子非负

凸规划问题

  • 可用域为凸集,目标函数在可用域上为凸函数
  • 凸规划问题的局部极小值点为总体最小点
  • K-T条件是总体最小点的充要条件
  • 线性规划、二次规划(目标函数是半正定二次型且具有线性约束)都是凸规划
  • 对于一般的非线性规划,较难判断其是否为凸规划

动态规划(DP)

  • 把多变量优化问题表示成为多个阶段串联体系的优化问题,其中每个阶段都是单变量优化问题,利用递推关系逐段求解从而达到整体最优
  • 最初用于与时间有关的动态过程

梯度算法

  • 在连续变量优化设计方法中, 有一类利用函数导数的优化方法
  • 由于函数的导数反映了函数的发展、变化趋势, 根据函数的导数, 可以确定搜索最优解的最佳方向, 设计一定的算法沿该方向搜索, 往往可以得到较高的效率
  • 这类算法包括最速下降法、共轭梯度法、可行方向法、最佳矢量法、梯度投影法等

批量梯度下降

  • 过对训练集上的所有可能样本的损失值求和得到的损失函数进行梯度下降

存在问题

  • 局部极小值
  • 鞍点

随机梯度下降

  • 通过计算仅仅一个随机抽样(不替换)例子的损失梯度来采取步骤
  • 所有单个损失函数的梯度可以并行计算,而使用随机梯度下降的时候,梯度的计算必须一个一个的顺序进行

批梯度下降

  • 使用固定数量(例如 16、32 或者 128 个)的样本形成一个 mini-batch 来构建损失函数

参考

https://www.jianshu.com/p/c7e642877b0e

https://blog.csdn.net/weixin_39445556/article/details/83661219

https://blog.csdn.net/kwame211/article/details/80364079

https://tech.sina.com.cn/roll/2018-07-15/doc-ihfhfwmv8903127.shtml

原文地址:https://www.cnblogs.com/cxc1357/p/11792501.html

时间: 2024-10-25 15:02:51

[算法] 优化算法 梯度下降的相关文章

机器学习最常用优化之一——梯度下降优化算法综述

转自:http://www.dataguru.cn/article-10174-1.html 梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法.几乎当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包括梯度下降算法的不同变种实现.但是,它们就像一个黑盒优化器,很难得到它们优缺点的实际解释.这篇文章旨在提供梯度下降算法中的不同变种的介绍,帮助使用者根据具体需要进行使用. 这篇文章首先介绍梯度下降算法的三种框架,然后介绍它们所存在的

Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)

%第一列为 size of House(feet^2),第二列为 number of bedroom,第三列为 price of House 1 2104,3,399900 2 1600,3,329900 3 2400,3,369000 4 1416,2,232000 5 3000,4,539900 6 1985,4,299900 7 1534,3,314900 8 1427,3,198999 9 1380,3,212000 10 1494,3,242500 11 1940,4,239999 1

梯度下降优化算法综述

本文翻译自Sebastian Ruder的"An overview of gradient descent optimization algoritms",作者首先在其博客中发表了这篇文章,其博客地址为:An overview of gradient descent optimization algoritms,之后,作者将其整理完放在了arxiv中,其地址为:An overview of gradient descent optimization algoritms,在翻译的过程中以

梯度下降优化算法综述(翻译)

原文链接:http://sebastianruder.com/optimizing-gradient-descent 原文题目:An overview of gradient descent optimization algorithms 博文地址:http://blog.csdn.net/wangxinginnlp/article/details/50974594 梯度下降是最流行的优化算法之一并且目前为止是优化神经网络最常见的算法.与此同时,每一个先进的深度学习库都包含各种算法实现的梯度下降

(2)Deep Learning之线性单元和梯度下降

往期回顾 在上一篇文章中,我们已经学会了编写一个简单的感知器,并用它来实现一个线性分类器.你应该还记得用来训练感知器的『感知器规则』.然而,我们并没有关心这个规则是怎么得到的.本文通过介绍另外一种『感知器』,也就是『线性单元』,来说明关于机器学习一些基本的概念,比如模型.目标函数.优化算法等等.这些概念对于所有的机器学习算法来说都是通用的,掌握了这些概念,就掌握了机器学习的基本套路. 线性单元是什么? 感知器有一个问题,当面对的数据集不是线性可分的时候,『感知器规则』可能无法收敛,这意味着我们永

ng机器学习视频笔记(十五) ——大数据机器学习(随机梯度下降与map reduce)

ng机器学习视频笔记(十五) --大数据机器学习(随机梯度下降与map reduce) (转载请附上本文链接--linhxx) 一.概述 1.存在问题 当样本集非常大的时候,例如m=1亿,此时如果使用原来的梯度下降算法(也成为批量梯度下降算法(batch gradient descent),下同),则速度会非常慢,因为其每次遍历整个数据集,才完成1次的梯度下降的优化.即计算机执行1亿次的计算,仅仅完成1次的优化,因此速度非常慢. 2.数据量考虑 在使用全量数据,而不是摘取一部分数据来做机器学习,

深度学习——线性单元和梯度下降

机器学习的一些基本概念,模型.目标函数.优化算法等等,这些概念对于机器学习算法来说都是通用的套路. 线性单元 当我们面对的数据不是线性可分的时候,感知器规则就无法收敛,为了解决这个问题,我们使用一个可导的线性函数来替代感知器的阶跃函数,这种感知器就叫做线性单元.线性单元在面对线性不可分的数据集的时候,会收敛到一个最佳的近似上. 线性单元将返回一个实数值而不是0,1分类,因此线性单元用来解决回归问题而不是分类问题. 线性模型 模型:实际上就是根据输入x预测输出y的算法.$y=h(x)=w*x_i+

【ML-3】梯度下降(Gradient Descent)小结

目录 简述 梯度下降与梯度上升 梯度下降法算法详解 梯度下降法大家族(BGD,SGD,MBGD) 梯度下降法和其他无约束优化算法的比较 总结 ? ? 在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法(在[2]中已经讲解了).这里就对梯度下降法做一个完整的总结. 一.简述 在微积分里面,对多元函数的参数求?偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度. 比如函数f(x,y), 分别对x,

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

深度解读最流行的优化算法:梯度下降 By 机器之心2016年11月21日 15:08 梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法.本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法.我们首先会考察梯度下降法的各种变体,然后会简要地总结在训练(神经网络或是机器学习算法)的过程中可能遇到的挑战.(本文的中文版 PDF 下载地址) 目录: 梯度下降的各种变体 批量梯度下降(Batch gradient descent)