梯度下降法和牛顿法优化原理
我们假设任何规律都是一个函数,机器学习要做的就是设计模型来拟合这个函数,如何使自己的模型更能贴近这个函数就是我今天要讲的优化问题。
首先假设我们的模型为函数f(x),给定一个输入x,得到预测结果f(x),而真实的结果为y,我们优化的目的就是使f(x)和y贴近。一般我们会定义一个损失函数,来衡量这个差距。此时我们优化的目标就是使损失函数最小。当然优化损失函数的方法有很多,我今天就列举两个使用迭代的优化方法。
本文参考文章
梯度下降法
先列出泰勒公式的一阶展开式(一维变量)
f(x)=f(x_0)+f'(x_0) (x-x_0)
或者
f(x+\Delta x)=f(x)+f'(x) \Delta x
首先我们每次迭代,修改weight的目的是使损失一次比一次低,用数学式表达就是
min(f(W+\Delta W)
(W是权重weight向量(N*1的向量)
利用上述的泰勒公式一阶展开(向量形式)
f(W+\Delta W)=f(W)+\nabla f(W)^T \Delta W
若要使 f(W+ΔW)f(W+\Delta W )最小,则要使 ∇f(W)TΔW\nabla f(W)^T \Delta W最小
由柯西不等式得
|\nabla f(W)^T \Delta W| \le ||\nabla f(W||*|| \Delta W||
当且仅当 f′(W)=ΔWf'(W) = \Delta W
所以当 ∇f(W)=ΔW\nabla f(W) = \Delta W 时, ∇f(W)TΔW\nabla f(W)^T \Delta W最小
也即下一次迭代 W′=W+ΔW=W−∇f(W)W' = W+\Delta W = W -\nabla f(W)
牛顿法
先列出泰勒公式的二阶展开式
f(x)=f(x_0)+f'(x_0) (x-x_0)+\frac {1}{2}f''(x_0) (x-x_0)^2
或者
f(x+\Delta x)=f(x)+f'(x) \Delta x+\frac {1}{2}f''(x)\Delta x^2
首先我们每次迭代,修改weight的目的是使损失一次比一次低,用数学式表达就是
min(f(W+\Delta W)
(W是权重weight向量(N*1的向量)
利用上述的泰勒公式一阶展开
f(W+\Delta W)=f(W)+\nabla f(W)^T \Delta W+\frac {1}{2}\Delta W^T\nabla ^2f(W)^T\Delta W
若要使 f(W+ΔW)f(W+\Delta W )最小,则要使 ∇f(W)TΔW+12ΔWT∇2f(W)TΔW\nabla f(W)^T \Delta W+\frac {1}{2}\Delta W^T\nabla ^2f(W)^T\Delta W最小
令:
g(\Delta W) =\nabla f(W)^T \Delta W+\frac {1}{2}\Delta W^T\nabla ^2f(W)^T\Delta W
\nabla g(\Delta W) =\nabla f(W)+\nabla ^2f(W)\Delta W
∇g(ΔW)=0\nabla g(\Delta W)=0时, ∇g(ΔW)\nabla g(\Delta W)取得极值点,
\Delta W=-\nabla^2 {f(W)^-}^1\nabla f(W)
也即下一次迭代W′=W+ΔW=W−∇2f(W)−1∇f(W)W' = W+\Delta W = W -\nabla^2 {f(W)^-}^1\nabla f(W)
总结
由上面可知,梯度下降法只需要损失函数满足一阶可导就行,而牛顿法需要二阶导数,无论条件还是计算难度都提高了,但是由于牛顿法是泰勒展开式的二阶形式,所以是二阶收敛的,而梯度下降法是一阶收敛的,相对于牛顿法收敛速度较慢些。
梯度下降法和牛顿法优化原理相关推荐
- 机器学习中梯度下降法和牛顿法的比较
在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法.由于两种方法有些相似 ...
- GBDT与xgb区别,以及梯度下降法和牛顿法的数学推导
为什么要介绍梯度下降法和牛顿法那? 这里提及两个算法模型GBDT和XGBoost,两个都是boosting模型. GBDT和xgb的目标函数是不同的,同时针对其目标函数中的误差函数 L(θ) 的拟合方 ...
- 梯度下降法和牛顿法计算开根号
梯度下降法和牛顿法计算开根号 本文将介绍如何不调包,只能使用加减乘除法实现对根号x的求解.主要介绍梯度下降和牛顿法者两种方法,并给出 C++ 实现. 梯度下降法 思路/步骤 转化问题,将 x \sqr ...
- 关于梯度下降法和牛顿法的数学推导
作者:LogM 本文原载于 https://blog.csdn.net/qq_28739605/article/details/80862810,不允许转载~ 文章难免有错误之处,请在原文评论处指出~ ...
- 最优化方法之梯度下降法和牛顿法
大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型.最常见的最优化方法有梯度下降法.牛顿法. 最优化方法: 最优化方法,即寻找函数极值点的 ...
- python牛顿法寻找极值_python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例...
Rosenbrock函数的定义如下: 其函数图像如下: 我分别使用梯度下降法和牛顿法做了寻找Rosenbrock函数的实验. 梯度下降 梯度下降的更新公式: 图中蓝色的点为起点,橙色的曲线(实际上是折 ...
- 梯度下降、牛顿法凸优化、L1、L2正则化、softmax、Batchnorm、droupout、Targeted Dropout详解
一.梯度下降 问题提出:虽然给定一个假设函数,我们能够根据cost function知道这个假设函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost ...
- 梯度下降背后的数学原理几何?
来自 | 深度学习这件小事 编辑 | Datawhale 对于诸位"机器学习儿"而言,梯度下降这个概念一定不陌生,然而从直观上来看,梯度下降的复杂性无疑也会让人"敬而 ...
- 八、梯度下降法和拟牛顿法
1.梯度 2.梯度上升和梯度下降 3.梯度下降算法详解 3.1 直观解释 3.2 梯度下降相关概念 3.3 梯度下降的矩阵描述 3.4 梯度下降的算法调优 4.梯度下降法大家族 5.梯度下降法和其他无 ...
最新文章
- 藏经阁计划发布一年,阿里知识引擎有哪些技术突破?
- JMX 与系统管理--转
- Jlink-V9详细制作材料(带串口+SW)----小白的福音
- 百度大数据可视化产品矩阵
- 【PAT甲级 TreeMap的使用】1002 A+B for Polynomials (25 分) Java版 6/6通过
- jboss将war放在那?_将策略插入JBoss Apiman
- Eclipse系列的隐藏宝藏-2019年版
- mysql自增id用完了_MySQL表自增id用完了该怎么办?
- java 怎么获取形参名_获得方法形参名称列表 -- 哦也,搞定!!
- mybatis oracle 大写,解决mybatis用Map返回的字段全变大写的问题
- Java学习笔记2.3.3 运算符与表达式 - 关系运算符
- Exchange Server 2010全新部署
- 计算机职业规划作文1000字左右,职业生涯规划_1000字
- php 中文手册下载
- 网络安全和CTF相关内容
- 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
- Clion笔记- 菜单栏不见了...
- 解决Substrate节点模板编译失败ailed to run custom build command for `tikv-jemalloc-sys v0.4.3+5.2.1-patched.2`
- 构筑“数据连接器”,腾讯云大数据推出“开源开放”战略
- Javascript面试题 把AaaBbbcccc 变成AaaBbbCcc