牛顿法与梯度下降法数学公式推导过程

迭代更新数学公式推导过程

1、牛顿法

首先对于有n个变量的函数的一阶导数为

         

其次对于其二阶导数为:

         

之后关于目标函数的包含二阶导数的泰勒展开式为:

         

这时将看成的函数,则根据函数的最小值性质,当偏导数等于0时出取得,从而得到,所以根据等式的特点得到,只有两者都取0时才能使等式等于0,所以得:  

    (最小值)

      

    

    

故牛顿法的迭代公式为:

      

2、梯度下降法

在开始推导之前,来介绍一下一个概念:梯度(当前函数位置的导数),同时它也表示某一函数在该点处的方向导数沿着该方向取得较大值。

   梯度:

  之后这里给出一阶泰勒展开式

     

由于都是矢量,则也是矢量,则根据矢量与向量的关系,这时我们可以用一个单位向量V(下一步将要变化的方向)与标量的乘积来表示:,而

 便是我们所说的步进长度。这时表达式为:

又由我们的目的出发,所以可以我们希望通过这个迭代变化使小,以此达到最小值。所以由公式,当梯度方向成反方向时,能最大程度的朝着局部下降的方向变化,使取得最大值。根据的数学关系,这时可以得出的计算关系:(一般情况,单位向量都是正向的)

    

    (由于是标量,可以把它与步进长度合到一起)

     

故梯度下降法的迭代公式为:

    

原文地址:https://www.cnblogs.com/Justina/p/11624672.html

时间: 2024-11-16 10:41:45

牛顿法与梯度下降法数学公式推导过程的相关文章

常见的几种最优化方法(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等)

我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题"在一定成本下,如何使利润最大化"等.最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称.随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优

牛顿法、拟牛顿法以及与梯度下降法的对比

牛顿法.拟牛顿法相关资料: http://www.cnblogs.com/richqian/p/4535550.html https://www.codelast.com/%E5%8E%9F%E5%88%9B%E6%8B%9F%E7%89%9B%E9%A1%BF%E6%B3%95quasi-newton%EF%BC%8Cdfp%E7%AE%97%E6%B3%95davidon-fletcher-powell%EF%BC%8C%E5%8F%8Abfgs%E7%AE%97%E6%B3%95broyd

机器学习:梯度下降法(调试、其它思考)

一.梯度下降法的调试 1)疑问 / 难点 如何确定梯度下降法的准确性? 损失函数的变量 theta 在某一点上对应的梯度是什么? 在更负责的模型中,求解梯度更加不易: 有时候,推导出公式后,并将其运用到程序中,但当程序运行时,有时对梯度的计算可能会出现错误,怎么才能发现这种错误? 2)梯度下降法的调试思路 关于导数的理解,参考:高数:关于导数: 调试思路: 如果机器学习的算法涉及到求解梯度,先使调试方式求出梯度,提前得到此机器学习算法的正确结果: 用数学推导方式(根据算法模型推导出的求解梯度的公

机器学习中常见问题_几种梯度下降法

一.梯度下降法 在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数,接下来便是通过优化算法对损失函数进行优化,以便寻找到最优的参数.在求解机器学习参数的优化算法中,使用较多的是基于梯度下降的优化算法(Gradient Descent, GD). 梯度下降法有很多优点,其中,在梯度下降法的求解过程中,只需求解损失函数的一阶导数,计算的代价比较小,这使得梯度下降法能在很多大规模数据集上得到应用.梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点. 基本思想可以这样理解:我们从山

梯度下降法的向量化推导

$第二周的向量化一节中,关于梯度下降法的向量化过程,开始不是很明白,后来自己推导了一下,记录到这里. 如下是梯度下降法的参数递归公式(假设n=2): 公式1: $\theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_0$ $\theta_1 := \theta_1 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)

最优化问题(牛顿法和梯度下降法)

---恢复内容开始--- http://www.zhihu.com/question/19723347 引自知乎 牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快.如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大.所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部. 根据wiki上的解释,从几何上说,牛顿法就是用一个

Python实现简单的梯度下降法

Python 实现简单的梯度下降法 机器学习算法常常可以归结为求解一个最优化问题,而梯度下降法就是求解最优化问题的一个方法. 梯度下降法(gradient descent)或最速下降法(steepest decent),是求解无约束最优化问题的一种最常用的方法. 梯度下降法实现简单,是一种迭代算法,每一步会求解目标函数的梯度向量. 本文分为理论和 Python 代码实践,希望实现简单的梯度下降法,相关代码已放在 GitHub 中. 理论 问题定义 那么什么是目标函数,在机器学习中这常常是一个损失

梯度下降法求解多元线性回归

线性回归形如y=w*x+b的形式,变量为连续型(离散为分类).一般求解这样的式子可采用最小二乘法原理,即方差最小化, loss=min(y_pred-y_true)^2.若为一元回归,就可以求w与b的偏导,并令其为0,可求得w与b值:若为多元线性回归, 将用到梯度下降法求解,这里的梯度值w的偏导数,利用目标公式,loss如下: 对其求偏导,公式如下: 其中x表示为(n+1)行m列,有n个属性,m个样本,最后一行值为1给偏差的:y表示m行1列为m个样本的值: w表示(n+1)行1列为n个w对应属性

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

梯度下降法 梯度下降法用来求解目标函数的极值.这个极值是给定模型给定数据之后在参数空间中搜索找到的.迭代过程为: 可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha.梯度下降法通常用一个三维图来展示,迭代过程就好像在不断地下坡,最终到达坡底.为了更形象地理解,也为了和牛顿法比较,这里我用一个二维图来表示: 懒得画图了直接用这个展示一下.在二维图中,梯度就相当于凸函数切线的斜率,横坐标就是每次迭代的参数,纵坐标是目标函数的取值.每次迭代的过程