我们假设任何规律都是一个函数,机器学习要做的就是设计模型来拟合这个函数,如何使自己的模型更能贴近这个函数就是我今天要讲的优化问题。
首先假设我们的模型为函数f(x),给定一个输入x,得到预测结果f(x),而真实的结果为y,我们优化的目的就是使f(x)和y贴近。一般我们会定义一个损失函数,来衡量这个差距。此时我们优化的目标就是使损失函数最小。当然优化损失函数的方法有很多,我今天就列举两个使用迭代的优化方法。
本文参考文章

梯度下降法

先列出泰勒公式的一阶展开式(一维变量)

f(x)=f(x0)+f′(x0)(x−x0)

f(x)=f(x_0)+f'(x_0) (x-x_0)
或者

f(x+Δx)=f(x)+f′(x)Δx

f(x+\Delta x)=f(x)+f'(x) \Delta x
首先我们每次迭代,修改weight的目的是使损失一次比一次低,用数学式表达就是

min(f(W+ΔW)

min(f(W+\Delta W)
(W是权重weight向量(N*1的向量)
利用上述的泰勒公式一阶展开(向量形式)

f(W+ΔW)=f(W)+∇f(W)TΔW

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最小
由柯西不等式得

|∇f(W)TΔW|≤||∇f(W||∗||Δ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(x0)+f′(x0)(x−x0)+12f′′(x0)(x−x0)2

f(x)=f(x_0)+f'(x_0) (x-x_0)+\frac {1}{2}f''(x_0) (x-x_0)^2
或者

f(x+Δx)=f(x)+f′(x)Δx+12f′′(x)Δx2

f(x+\Delta x)=f(x)+f'(x) \Delta x+\frac {1}{2}f''(x)\Delta x^2
首先我们每次迭代,修改weight的目的是使损失一次比一次低,用数学式表达就是

min(f(W+ΔW)

min(f(W+\Delta W)
(W是权重weight向量(N*1的向量)
利用上述的泰勒公式一阶展开

f(W+ΔW)=f(W)+∇f(W)TΔW+12ΔWT∇2f(W)TΔW

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(ΔW)=∇f(W)TΔW+12ΔWT∇2f(W)TΔW

g(\Delta W) =\nabla f(W)^T \Delta W+\frac {1}{2}\Delta W^T\nabla ^2f(W)^T\Delta W

∇g(ΔW)=∇f(W)+∇2f(W)Δ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)取得极值点,

ΔW=−∇2f(W)−1∇f(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)

总结

由上面可知,梯度下降法只需要损失函数满足一阶可导就行,而牛顿法需要二阶导数,无论条件还是计算难度都提高了,但是由于牛顿法是泰勒展开式的二阶形式,所以是二阶收敛的,而梯度下降法是一阶收敛的,相对于牛顿法收敛速度较慢些。

梯度下降法和牛顿法优化原理相关推荐

  1. 机器学习中梯度下降法和牛顿法的比较

    在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法.由于两种方法有些相似 ...

  2. GBDT与xgb区别,以及梯度下降法和牛顿法的数学推导

    为什么要介绍梯度下降法和牛顿法那? 这里提及两个算法模型GBDT和XGBoost,两个都是boosting模型. GBDT和xgb的目标函数是不同的,同时针对其目标函数中的误差函数 L(θ) 的拟合方 ...

  3. 梯度下降法和牛顿法计算开根号

    梯度下降法和牛顿法计算开根号 本文将介绍如何不调包,只能使用加减乘除法实现对根号x的求解.主要介绍梯度下降和牛顿法者两种方法,并给出 C++ 实现. 梯度下降法 思路/步骤 转化问题,将 x \sqr ...

  4. 关于梯度下降法和牛顿法的数学推导

    作者:LogM 本文原载于 https://blog.csdn.net/qq_28739605/article/details/80862810,不允许转载~ 文章难免有错误之处,请在原文评论处指出~ ...

  5. 最优化方法之梯度下降法和牛顿法

    大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型.最常见的最优化方法有梯度下降法.牛顿法. 最优化方法: 最优化方法,即寻找函数极值点的 ...

  6. python牛顿法寻找极值_python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例...

    Rosenbrock函数的定义如下: 其函数图像如下: 我分别使用梯度下降法和牛顿法做了寻找Rosenbrock函数的实验. 梯度下降 梯度下降的更新公式: 图中蓝色的点为起点,橙色的曲线(实际上是折 ...

  7. 梯度下降、牛顿法凸优化、L1、L2正则化、softmax、Batchnorm、droupout、Targeted Dropout详解

    一.梯度下降 问题提出:虽然给定一个假设函数,我们能够根据cost function知道这个假设函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost ...

  8. 梯度下降背后的数学原理几何?

    来自 | 深度学习这件小事   编辑 | Datawhale 对于诸位"机器学习儿"而言,梯度下降这个概念一定不陌生,然而从直观上来看,梯度下降的复杂性无疑也会让人"敬而 ...

  9. 八、梯度下降法和拟牛顿法

    1.梯度 2.梯度上升和梯度下降 3.梯度下降算法详解 3.1 直观解释 3.2 梯度下降相关概念 3.3 梯度下降的矩阵描述 3.4 梯度下降的算法调优 4.梯度下降法大家族 5.梯度下降法和其他无 ...

最新文章

  1. 藏经阁计划发布一年,阿里知识引擎有哪些技术突破?
  2. JMX 与系统管理--转
  3. Jlink-V9详细制作材料(带串口+SW)----小白的福音
  4. 百度大数据可视化产品矩阵
  5. 【PAT甲级 TreeMap的使用】1002 A+B for Polynomials (25 分) Java版 6/6通过
  6. jboss将war放在那?_将策略插入JBoss Apiman
  7. Eclipse系列的隐藏宝藏-2019年版
  8. mysql自增id用完了_MySQL表自增id用完了该怎么办?
  9. java 怎么获取形参名_获得方法形参名称列表 -- 哦也,搞定!!
  10. mybatis oracle 大写,解决mybatis用Map返回的字段全变大写的问题
  11. Java学习笔记2.3.3 运算符与表达式 - 关系运算符
  12. Exchange Server 2010全新部署
  13. 计算机职业规划作文1000字左右,职业生涯规划_1000字
  14. php 中文手册下载
  15. 网络安全和CTF相关内容
  16. 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
  17. Clion笔记- 菜单栏不见了...
  18. 解决Substrate节点模板编译失败ailed to run custom build command for `tikv-jemalloc-sys v0.4.3+5.2.1-patched.2`
  19. 构筑“数据连接器”,腾讯云大数据推出“开源开放”战略
  20. Javascript面试题 把AaaBbbcccc 变成AaaBbbCcc

热门文章

  1. 2019中国(北京)国际智慧建筑装备展览会
  2. 【discuz】discuz论坛系统中自定义广告位
  3. arcgis字段计算器赋值_关于Arcgis这62个常用技巧,你造吗
  4. HTTPS下强制重定向认证
  5. hive表字段里有换行符,导致一行变多行或者字段错乱
  6. 如何删除iphone中的文稿与数据
  7. 现代密码学上机程序c语言,现代密码学与加解密技术实验报告
  8. 智能电能表故障预警系统设计
  9. 我写给自己的你们不要看
  10. 30个顶级Python库:用于深度学习、自然语言处理和计算机视觉