梯度下降算法公式推导
梯度下降数学解释:
- 场景假设
梯度下降法的基本思想可以类比为一个下山的过程。
假设这样一个场景:一个人被困在山上,需要从山上下来(找到山的最低点)。但此时山上的浓雾很大,导致可视度很低;因此,下山的路径就无法确定,必须利用自己周围的信息一步一步地找到下山的路。这个时候,便可利用梯度下降算法来帮助自己下山。怎么做呢,首先以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着下降方向走一步,然后又继续以当前位置为基准,再找最陡峭的地方,再走直到最后到达最低处;同理上山也是如此,只是这时候就变成梯度上升算法了
- 泰勒展开式
泰勒展开式的目的是拟合,将上图的曲线拟合成直线,虽然存在误差,但只要不影响实际情况,我们就可以直接在这条直线下进行讨论(更高维度也是如此)
于是我们有直线方程
f(x)-f(x₀)≈(x-x₀)•f'(x₀)
PS:场景中说的是下山,但那是在空间坐标系下讨论,这里为了方便,只在平面坐标系下做讨论,但是不管维度是多少,原理是一样的。
- 梯度下降
梯度:函数在给定点上升最快的方向,其本质就是导数(斜率)
首先,我们有一个可微分(可微<=>可导)的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值(此时导数为0),也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走(梯度的反方向),就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向
所以,我们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向,也就是场景中测量方向的手段。
- 梯度下降公式推导
令 θ=[x] θ₀=[x0]
解释:因为这里讨论的是一维(直线需要在二维下进行讨论,不然没有意义),所以 [] 内只有一个变量;如果是三维那么 [] 里就应该有三个变量[a,b,c],以此类推,最终我们把这个集合赋值给θ,方便日后讨论。
此时我们有
f(θ)-f(θ₀)≈(θ-θ₀)•▽f(θ₀)
因为这是一个可微分方程,所以(θ-θ₀)是一个微小向量,我们知道标量*单位向量=向量,所以令:
(θ-θ₀)=ŋν(其中 ŋ是标量,ν是单位向量)
注意:(θ-θ₀)不能太大,否则线性近似就不够准确
重点,局部下降的目的是希望每次θ更新 -> f(θ)↓ ,重复这个过程,直到▽f(θ₀)=0。所以:
f(θ)-f(θ₀) ≈ (θ-θ₀)•▽f(θ₀) = ŋν•▽f(θ₀) < 0
因为ŋ是标量,且一般设定为正数,所以可以忽略,则不等式变成:
ν•▽f(θ₀) < 0 其中ν是需要我们求解的
那么,这个不等式在表达什么
我们知道▽f(θ₀)是当前位置的梯度方向,
也就是说当ν的方向是梯度的反方向时,
不等式能最大程度的小,也就保证了ν的方向是局部下降最快的方向
将这个公式跟开头的公式对比,事情到这里就结束了,我们终于获得了梯度下降的公式,有没有发现公式推导出来后,f(θ)-f(θ₀)不见了,因为只要满足梯度下降公式,f(θ)就会一直下降(前提:(θ-θ₀)不太大),而我们只需要在图像上观察f(θ)的值就好了
- 单变量示例
- 神经网络
梯度下降公式在神经网络中用于对(w,b)的更新,是的,你只需要将θ替换成 w 或 b ,▽J(θ) 替换成 损失函数对 w 或 b 的偏导数,其中 α 是 学习率(人为设置),最后你就可以获得局部最优模型了。
PS:后向传播算法的目的在于快速计算神经网络中各层参数的梯度,它与梯度下降算法是包含关系。
感谢启发:https://blog.csdn.net/weixin_42278173/article/details/81511646?utm_source=app
https://blog.csdn.net/qq_41800366/article/details/86583789?utm_source=app
梯度下降算法公式推导相关推荐
- 机器学习-梯度下降算法原理及公式推导
目录 1.梯度下降直观理解解释 2.算法上的解释 3.常用的梯度下降法 4.梯度下降算法调优 5.其他优化算法对比 在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降算法(Gradient D ...
- 梯度下降算法_梯度下降算法中的偏导公式推导
前言:最近在跟着吴恩达老师(Andrew Ng)的视频课程学习机器学习,该视频是2014年拍的,虽然有点老,但理论却并不过时,是非常经典的机器学习入门教程,也正是因为这是入门教程,所以视频中的有些数学 ...
- python多元线性回归代码_Python实现梯度下降算法求多元线性回归(一)
预备知识及相关文档博客 学习吴恩达机器学习课程笔记,并用python实现算法 python numpy基本教程: numpy相关教程 数据来自于UCI的机器学习数据库: UCI的机器学习数据库 pyt ...
- 梯度下降算法的细节补充(凸函数, 导数, 偏导数,梯度, 方向导数以及负梯度下降最快背后的泰勒身影)
1. 写在前面 这篇文章, 再来对梯度下降算法进行一个小的回顾, 梯度下降算法是求解无约束多元函数极值最常用的数值方法, 很多机器学习常用算法和神经网络都是以它作为算法框架进行优化参数. 所以这个算法 ...
- 梯度下降算法动图_一文读懂梯度下降算法
这篇博文主要讲解下梯度与方向导数的关系.等值线图中梯度的表示,以及梯度的应用.因涉及太多高数的知识点,在此就不一一详述了,只是简单梳理下知识点,有所纰漏还望纠正指出,文末附有参考文献,借图. 一.方向 ...
- 神经网络中的常用算法-梯度下降算法
目录 一.概述 二.算法思想 1.一维 2.多维 三.梯度下降算法类型 1.批量梯度下降算法 2.随机梯度下降算法 3.小批量梯度下降算法 一.概述 梯度下降法(Gradient descent )是 ...
- 机器学习之数学系列(三)逻辑回归反向传播梯度计算公式推导
一.简介 在深度学习领域,我们往往采用梯度下降(或上升)法来优化训练函数模型,梯度下降法尤其是在解决凸优化问题上表现极佳.模型优化涉及到反向传播过程,反向传播过程需要先推导出梯度计算公式然后利用机 ...
- 一文读懂梯度下降算法
这篇博文主要讲解下梯度与方向导数的关系.等值线图中梯度的表示,以及梯度的应用.因涉及太多高数的知识点,在此就不一一详述了,只是简单梳理下知识点,有所纰漏还望纠正指出,文末附有参考文献,借图. 一.方向 ...
- 视频教程-小白学习课程:梯度下降算法与公式详细推导-深度学习
小白学习课程:梯度下降算法与公式详细推导 国内"双一流"大学博士研究生,计算机专业,研究方向和兴趣包括人工智能,深度学习,计算机视觉,群体智能算法,元胞自动机等,愿意分享自己的技术 ...
最新文章
- OpenCV图像旋转的原理与技巧
- 如何在桌面上安装运行Rancher 2.0
- python课程费用-深圳python课程费用
- hdu 5418(状态压缩dp+Floyd)
- AC日记——字符串P型编码 openjudge 1.7 31
- 贪心算法设计作业调度c语言,贪心算法 - 数据结构与算法教程 - C语言网
- BABOK - 企业分析(Enterprise Analysis)概要
- 手撕IP核系列——Xilinx FIFO IP核-异步FIFO
- gae java,适用于GAE的Java PDF库?
- 03虚幻4 场景中的基础光源和视觉效果
- h5拨打电话 写法IOS无效
- qt开发linux界面软件,利用Qt Designer开发Qt界面
- JCL,JES运作流程
- python编程语言介绍-编程语言及python介绍
- javascript 的 日期对象
- Unix道德经(英文版)
- DSP主机 与 STM32从机 的SPI通信(待续)
- PlantUML绘制类图
- c语言 字符串dup,C语言中dup和dup2函数的不同和使用
- 终于有人把大数据开发讲明白了!