关于梯度下降的公式可能大家耳熟能详,沿着梯度的反方向一步一步的移动,总能到达我们想要的最优点;可是为什么可以这样做呢?开始我的答案无非就是“梯度的反方向就是损失值下降最快的方向”,最近看了李宏毅老师的梯度下降算法发现别有洞天,接下来我将以通俗的语言来详细解释梯度下降算法公式的数学推导过程。

推导梯度下降之前开始引入一个Feature scaling(特征缩放):

假设我们要优化的目标函数为:,当的变化以1,2,.....这样比较小幅度的变化,而以100,200,.....比较大幅度的变化,因此对目标函数的影响程度差别很大;于是在优化的过程中,这就要求有较大的变化,较小的变化。正如上图左侧所示的椭圆等高线图:梯度下降的方向曲曲折折,但也可以到达最优点但所花费的时间比较久;按照个人的理解如下图所示,在一点移动的方向应是两个维度移动方向的总方向(黑色的箭头方向),但我们通常希望的方向应是红色的方向,因为这个方向损失值下降的最快。而在上述右侧的圆形等高线图中,不会存在这样的情况,两个维度移动的跨度是一致的,故两个维度移动方向的总方向正是我们希望看到的(用下述同样的方法)。

这么做完Feature scaling之后,再做参数的梯度下降是比较有效率的,那么要如何做Feature scaling呢?其实方法是很多的,下面就是常用的一种,对数据集的每一维度做标准化,使得每一维度数据的均值都是0,方差都是1。

在推导梯度下降算法之前,提出一个问题?在做梯度下降算法时,每一次迭代得到参数都比上一次迭代得到参数最优嘛?答案显然不是的,当我们的学习率设定的比较大,这就造成一步跨的幅度很大,从而越过最优点,使得损失值不减反而增。

形式推导:

假设我们的损失函数有两个参数,它们分别是,损失函数面用上图一圈一圈的等高线表示;初始值,在附近画一个圆,圆中找到一个最优的方向并移动到圆边,这样一步一步下去,最终可以移动到最优点;现在问题是如何咋找到这个最优的方向呢?

下面开始引入泰勒展开式:

任何函数都可以展开上述形式,我们知道当x接近于的时候,这一项是比较小的,从2次项开始后面都可以省略。

在红色圈圈中,如果他足够的小,根据泰勒展开式损失函数就可以写成上述那样,进一步写成,这里可以把看成两个向量,它们的点乘当垂直的时候为0,当它们反方向的时候最小,负的最多。

此刻中心点(a,b),沿着(u,v)的方向移动,总可以到达圆圈的边缘;这时便是我们当前的最优值。从上面的形式来看,是不是有点熟悉,没错,就是我们梯度下降算法中参数的更新公式。

我们知道上述公式成立的条件,它要求我们的某点的圆的范围尽量小(红色圆圈半径趋向于0),即()与()越接近越准确,于是我们的学习率不能太大才能保证这点。当然我们可以考虑2项式,这样就能稍微降低些要求关于我们()与()的接近程度,这种方法比如牛顿法就是其中之一,但是不常用。

泰勒展开式推导梯度下降相关推荐

  1. 深度学习优化算法之梯度下降(泰勒展开式推导)

    有一定深度学习背景知识的伙伴们都知道,为了得到一个好的模型,都预先定义一个损失函数(优化的目标函数),然后使用合适的优化算法去试图得到一个最小值.优化的目标就是为了降低训练误差,对于深度学习的模型来说 ...

  2. 利用房价预测推导梯度下降

    参考:https://zhuanlan.zhihu.com/p/62884449 转载于:https://www.cnblogs.com/yibeimingyue/p/11485843.html

  3. ML笔记1——什么是ML;回归LossFunction(LF)推导;LF与凸函数关系;梯度下降推导;范数与正则化。

    了解什么是Machine learning 学习中心极限定理,学习正态分布,学习最大似然估计 推导回归Loss function 学习损失函数与凸函数之间的关系 了解全局最优和局部最优 学习导数,泰勒 ...

  4. 3. 机器学习中为什么需要梯度下降_【干货】机器学习 | 为什么机器能“学习”?——感知器和梯度下降...

    大家好我是梁力天,今天我来给大家整理一下感知器 (perceptron model) 和梯度下降算法 (gradient descent) 的知识. source: https://cs.stanfo ...

  5. 梯度下降算法的细节补充(凸函数, 导数, 偏导数,梯度, 方向导数以及负梯度下降最快背后的泰勒身影)

    1. 写在前面 这篇文章, 再来对梯度下降算法进行一个小的回顾, 梯度下降算法是求解无约束多元函数极值最常用的数值方法, 很多机器学习常用算法和神经网络都是以它作为算法框架进行优化参数. 所以这个算法 ...

  6. 梯度下降与随机梯度下降概念及推导过程

    接前一章:常用算法一 多元线性回归详解2(求解过程) 同这一章的梯度下降部分加起来,才是我们要讲的如何求解多元线性回归.如果写在一章中,内容过长,担心有的同学会看不完,所以拆分成两章.[坏笑] 上一章 ...

  7. 梯度下降概念及推导过程

    1.梯度 我们对一个多元函数求偏导,会得到多个偏导函数.这些导函数组成的向量,就是梯度.一元函数的梯度可以理解为就是它的导数.梯度就是对一个多元函数的未知数求偏导,得到的偏导函数构成的向量就叫梯度. ...

  8. 自学梯度下降1——传统梯度下降原理及数学推导

    PS:本文只是自学笔记 一.引子        梯度下降法是最基本.最常用的优化方法之一,为了便于理解,常规性运用烂大街的例子--下山问题. 假设我们位于黄山的某个山腰处,山势连绵不绝,不知道怎么下山 ...

  9. 梯度下降与反向传播算法的原理与推导

    梯度下降算法是机器学习中最常用的优化算法之一,它可以求得目标函数的最小值,即算法的最优解.而对于复杂的多层神经网络来说,运用梯度下降算法十分复杂,因为其包含求导过程,为此学者将多层神经网络的优化问题简 ...

  10. 【西瓜书笔记】补充1:logistic回归及其损失函数,梯度下降推导

    Logistic回归理论知识补充 建模流程 假设我们建立一个二分类模型.假设有两个人A.B在争论如何对一个新样本 x x x进行0-1二分类,他们两个分别对新样本进行打分,如果A的分数大于B的分数,则 ...

最新文章

  1. 计算机管理信息系统大作业,管理信息系统期末大作业
  2. 【浙大软件学院机试】深度优先搜索、并查集和优先级队列知识点(Python实现)
  3. 地理标志农产品数据发布 特色产业对话农民丰收节交易会
  4. HTML 5新增的元素
  5. apache.camel_Apache Camel 2.14中的更多指标
  6. python背景怎么自定义铃声_Python 上课铃声的定时播放(具有较强的自我管理能力.jpg)...
  7. 【原创】ASP.NET C# 对SQL/ACCESS 数据库的备份和还原函数
  8. 如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面(二)
  9. 别再写 main 方法测试了,太 Low,这才是专业 Java 测试方法
  10. 【bzoj2199/Usaco2011 Jan】奶牛议会——2-sat
  11. 解决java环境变量配置不生效
  12. 汇编语言--如何调用子程序
  13. matlab 混沌工具箱,matlab混沌工具箱
  14. 民生问题:房价,房贷,首付之间的暖昧关系(借首页一放,点醒一下各位兄弟)
  15. 用dep代替 go get 来获取私有库
  16. 发展心理学类毕业论文文献包含哪些?
  17. BLE协议栈 – SM
  18. python文件名和类名需要一致吗_Python:类名与文件/模块名相同会导致继承问题?...
  19. 计算机u盘中文名显示乱码,教你u盘出现乱码该怎么办
  20. 编程图记(2): 学用PHP框架Laravel

热门文章

  1. matlab 最舒适的背景配色
  2. 伴随矩阵例题_§6伴随矩阵及练习题.ppt
  3. ABAP ALV DEMO示例源码
  4. c语言int作用,C语言中的int max(int x,int y) 究竟有何作用?
  5. cad画直角命令_给CAD图形进行倒直角的方法步骤
  6. LeetCode 到最近的人的最大距离
  7. 2019 deecamp B题不完全的记录
  8. LT8618SXB-HDMI发射器,运行功率小于100mA播放24bit 1080P内容,待机功率小于2mA
  9. python找出3或者5的倍数_在 python 中,确定3或者5的倍数
  10. MAC 如何连接惠普打印机