2.1-梯度下降

2023-11-01

在上一章回归那节,我们讨论了如何找到一个最好模型的过程,也就是去找一组参数θ,让这个loss函数越小越好:
θ ∗ = a r g m i n θ L ( θ ) θ^{*}=arg\underset{θ}{min}L(θ) θ=argθminL(θ)
当θ有两个参数 { θ 1 , θ 2 } \{\theta _{1},\theta _{2}\} {θ1θ2}时,随机选择一组起始的点 θ 0 = [ θ 1 0 θ 2 0 ] \theta ^{0}=\begin{bmatrix} \theta _{1}^{0}\\ \theta _{2}^{0} \end{bmatrix} θ0=[θ10θ20],上标0代表为初始的那一组参数,下标1,2代表是这一组参数中的第一个参数和第二个参数。

接下来计算 { θ 1 , θ 2 } \{\theta _{1},\theta _{2}\} {θ1θ2}各自的偏微分:

  • [ θ 1 1 θ 2 1 ] = [ θ 1 0 θ 2 0 ] − η [ ∂ L ( θ 1 0 ) ∂ θ 1 ∂ L ( θ 2 0 ) ∂ θ 2 ] \begin{bmatrix} \theta _{1}^{1}\\ \theta _{2}^{1} \end{bmatrix}=\begin{bmatrix} \theta _{1}^{0}\\ \theta _{2}^{0} \end{bmatrix}-\eta \begin{bmatrix} \frac{\partial L(\theta _{1}^{0})}{\partial \theta _{1}}\\ \frac{\partial L(\theta _{2}^{0})}{\partial \theta _{2}} \end{bmatrix} [θ11θ21]=[θ10θ20]η[θ1L(θ10)θ2L(θ20)]

  • [ θ 1 2 θ 2 2 ] = [ θ 1 1 θ 2 1 ] − η [ ∂ L ( θ 1 1 ) ∂ θ 1 ∂ L ( θ 2 1 ) ∂ θ 2 ] \begin{bmatrix} \theta _{1}^{2}\\ \theta _{2}^{2} \end{bmatrix}=\begin{bmatrix} \theta _{1}^{1}\\ \theta _{2}^{1} \end{bmatrix}-\eta \begin{bmatrix} \frac{\partial L(\theta _{1}^{1})}{\partial \theta _{1}}\\ \frac{\partial L(\theta _{2}^{1})}{\partial \theta _{2}} \end{bmatrix} [θ12θ22]=[θ11θ21]η[θ1L(θ11)θ2L(θ21)]

对于 { θ 1 , θ 2 } \{\theta _{1},\theta _{2}\} {θ1θ2}的偏微分还有另外一种写法: ▽ L ( θ ) \bigtriangledown L(\theta) L(θ)也被叫做梯度(Gradient),代表一组向量(vector)
▽ L ( θ ) = [ ∂ L ( θ 1 ) ∂ θ 1 ∂ L ( θ 2 ) ∂ θ 2 ] \bigtriangledown L(\theta)=\begin{bmatrix} \frac{\partial L(\theta _{1})}{\partial \theta _{1}}\\ \frac{\partial L(\theta _{2})}{\partial \theta _{2}} \end{bmatrix} L(θ)=[θ1L(θ1)θ2L(θ2)]

  • θ 1 = θ 0 − η ▽ L ( θ 0 ) \theta ^1=\theta ^0-\eta\bigtriangledown L(\theta ^0) θ1=θ0ηL(θ0)
  • θ 2 = θ 1 − η ▽ L ( θ 1 ) \theta ^2=\theta ^1-\eta\bigtriangledown L(\theta ^1) θ2=θ1ηL(θ1)

下图是梯度下降(Gradient Descent)的可视化过程:红色的箭头代表梯度的方向,蓝色的箭头代表参数更新的方向,两者是相反的。

image-20220807091852217

一、调整学习率

  • 当你有3个及以上的参数时,是无法可视化梯度下降(Gradient Descent)的过程的。但是却可以可视化学习率(learning rate)η和Loss值之间的曲线。
image-20220807092506865

1.1 自适应学习率(Adaptive Learning Rates)

  • 在开始时,由于我们距离最优解有较远的距离,因此可以采用较大的学习率,加大梯度下降的步伐。
  • 在经过几轮的训练后,我们此时比较靠近最优解,所以要减小学习率,降低梯度下降的步伐,防止在最优解附近一直震荡。
  • 最简单的策略是让学习率随着时间的变化而变化,如: η t = η t + 1 \eta^t=\frac{\eta}{\sqrt{t+1}} ηt=t+1 η
  • 但并不是所有的参数都适用这样一套调整策略

1.2 Adagrad

  • Adagrad是将每个参数的学习率除以其先前微分值的均方根(root mean square )

让我们来看一看普通的梯度下降(Vanilla Gradient descent)和Adagrad之间的区别:

  • Vanilla Gradient descent:
    • Font metrics not found for font: .
  • Adagrad: σ t \sigma ^t σt代表参数w先前所有微分值的均方根(root mean square )
    • Font metrics not found for font: .
  • 下面是Adagrad的具体推导过程和最终的简化写法:

image-20220807095328126image-20220807095521548

  • 在最终的简化写法中存在着一些矛盾(Contradiction)之处:当梯度g越大时,我们期望得到更大的下降步伐,然而式子的分母却在阻止我们这样做。
image-20220807100151573
  • 对于这个问题,有这样两种解释:

    • 直观的解释(Intuitive Reason):为了强调某一次梯度的反差效果(特别大或者特别小),我们加上了分母这一项
    image-20220807100739605
    • 更正式的解释:

      • 对于一个参数:当我们踏出去的步伐和微分的大小成正比时,那么有可能就是最好的步伐。
      image-20220807101229496
      • 比较不同的参数(Comparison between different parameters):为了真实反映所在位置和最低点之间的距离,我们不仅要正比于梯度g的一次微分,还要反比于梯度g的二次微分。
      image-20220807101926045
  • 下图是对式子中分母这一项来估计二次微分的解释:当采样足够多的点,梯度g的平方和再开根号就可以近似等于梯度g的二次微分

image-20220807103358464

二、随机梯度下降(Stochastic Gradient Descent)

  • 随机梯度下降相比普通的梯度下降要快很多:
    • 这是因为对于随机梯度下降而言,它会看每一个example的loss值,相当于走了20步
image-20220807112632108 image-20220807112706879

三、特征缩放(Feature Scaling)

  • 将x1和x2两个不同的特征分布缩放到同一比例:
    • 如右图,这样做的意义是让我们在做梯度下降这一过程时变得更加容易,更加有效率。因为经过特征缩放后的起始点无论从哪里开始,做梯度下降的方向都是指向最低点的。

image-20220807113504447image-20220807113552892

  • Z分数归一化(Z-Score Normalization)
    • Z分数归一化是实现特征缩放的一种常见方法。其工作原理为算出每一维(行)特征的均值mi和标准差σi,然后将特征矩阵的每一个值 x i r x_i^r xir都减去均值mi并除以标准差σi,这样更新后的 x i r x_i^r xir就都处于0~1之间了。
image-20220807125039116

四、数学推导

  • 泰勒级数(Taylor Series):
    • 设h(x)是任意函数在x=x0附近可微,那么h(x)可以写成下面这样
image-20220807131952494
  • 多变量泰勒级数(Multivariable Taylor Series):
    • 根据泰勒级数的定义,如果右图中的红圈足够小,那么在红圈内就可以把loss函数用泰勒级数做简化
    • 简化之后,就变成了在红圈范围内找 θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2使得loss值最小的问题
    • 当推导到最后一步时,就变成了我们之前做梯度下降的式子,但式子成立的前提是红圈的半径r要足够小,由于学习率 η \eta η是和r成正比的,所以学习率不能太大,理论上要无穷小时式子才会成立,但在实际操作的过程中只要足够小就可以了。
    • 上面的推导过程我们采用的是泰勒级数的一次式,当考虑到二次,三次,甚至是多次时,我们对红圈的要求就没有那么大了,理论上学习率也可以调的高一点。但在深度学习的过程中却很少这么做,这是因为由此带来的庞大计算量是无法承受的。

image-20220807161216384image-20220807161455677image-20220807162646693image-20220807162952736

image-20220807163059557

五、梯度下降的限制(More Limitation of Gradient Descent)

  • 在做梯度下降的过程,实际上就是在找loss函数微分为0的地方,然而微分为0的地方却不一定是局部最优解,它还可能是图中的鞍点。
  • 另外在实际求解的过程中,我们并不是找微分真正为0的点,而是当微分小于某一个数(如10的-6次方)的点,实际上这个点可能还在一个比较高的地方,离要找的局部最优解仍然很远。
  • 在下一章我们会继续讨论这个问题
image-20220807164553863
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2.1-梯度下降 的相关文章

随机推荐

  • c++中的四种cast转换, dynamic_cast、static_cast、const_cast、reinterpret_cast

    C 11之后 C 中就有四种类型转换 分别是 dynamic cast static cast const cast reinterpret cast 一般用这四种强制转换可以替代在c代码中类似 int 这种方式的转换 下面就分别对着四种强
  • 1、测试用例通用模板

    一 针对大版本需求的测试用例模板 1 测试用例模板说明 1 1 表头说明 项目版本号V1 0 测试用例 示例标题 xxxxx有限公司测试组 ONLY FOR INTERNAL USE ONLY Confidentiality level 密
  • pandas面板(Panel)

    面板 Panel 是3D容器的数据 面板数据一词来源于计量经济学 部分源于名称 Pandas pan el da ta s 3轴 axis 这个名称旨在给出描述涉及面板数据的操作的一些语义 它们是 items axis 0 每个项目对应于内
  • 多益网络校招 -- 主观题

    1 你认为这世界中各种事物 公平吗 2 你是否希望中国人多生孩子 3 这是一个周六 你原计划周日去健身房跑步1小时 再去江边散散步 你的直属上级的直属上级主管 要你明天去他家领个包裹 亲自开车2小时送到某地点交给指定的人 你会如何做 4 你
  • 译: Code::Blocks手册 使用篇

    原手册下载 http www codeblocks org docs manual en pdf 译者 JGood http blog csdn net Jgood 译者言 工欲善其事 必先利其器 一个好的工具能事半功倍 写程序时 特别是写
  • Linux在启动Tmocat时,报权限不够

    如图 可以在命令行里输入 chmod u x sh 然后在 startup sh 如 这样就启动起来了 不过为什么这样呢 我们也要明白原因 chmod 是权限管理命令change the permissions mode of a file
  • mysql 聚合函数非重复(distinct)查询

    聚合函数非重复 distinct 查询 计算去重后的数据行数 select count distinct product type from product 计算数据行数后再去重 select distinct count product
  • mysql2003错误_mysql出现2003错误的原因及解决方法

    一 mysql数据库没有启动 启动方法 开始 gt 运行 gt services msc 在里面找到名称为MySQL的服务 双击打开属性 点启动 2 使用下面的命令启动net start mysql 二 MySQL 服务器资源紧张 导致无法
  • ftp服务器一直显示登录密码,ftp一直弹出用户名密码

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 ftp一直弹出用户名密码的原因 1 用户名密码错误 2 有防火墙拒绝连接你的ip 3 服务器架设问题 4 输入的指令错误 5 电脑端口使用的浏览器拒绝连接 建议先尝试匿名登
  • SPI&CAN通信协议简介

    目录 1 SPI SPI的四种工作模式 CPOL clock polarity 时钟极性 CPHA clock phase 时钟相位 四种工作模式 2 CAN CAN的特点 物理层特征 通讯节点 CAN通信报文 数据帧介绍 远程帧 错误帧
  • Swagger与Knife4j的学习

    Swagger与Knife4j的学习 此教程基于黑马程序员Java品达通用权限项目 哔哩哔哩链接 https www bilibili com video BV1tw411f79E p 30 1 swagger介绍 相信无论是前端还是后端开
  • 【华为OD机试真题 JAVA】连续出牌数量

    JS版 华为OD机试真题 JS 连续出牌数量 标题 连续出牌数量 时间限制 1秒 内存限制 262144K 语言限制 不限 有这么一款单人卡牌游戏 牌面由颜色和数字组成 颜色为红 黄 蓝 绿中的一种 数字为0 9中的一个 游戏开始时玩家从手
  • 第五章 神经网络

    5 1 神经元模型 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络 它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应 神经网络中最基本的成分是神经元模型 5 2感知机与多层网络 感知机由两层神经元组成 多层前馈神经网络
  • Zotero软件中复制文献进入不同文件夹和删除文献的方法

    两种方式 方式1 选中文献 拖动文献至目标文件夹 检索文献 只会出现一篇 按住ctrl 可以看到在两个文件夹中均可以访问这篇文献 经验证 在pdf中的标记 两种文件夹访问时显示是同步的 如果想从一个文件夹中去除该文件 选中 键盘点击dele
  • 微信小程序rich-text富文本 解决图片超出屏幕宽度

    问题 微信小程序rich text富文本 图片超出屏幕宽度 文本数据 更改前效果 解决办法 最终效果 文本数据 更改前效果 解决办法 使用正则将数据中的img标签定义class或者直接写样式 再js文件中将数据进行修改 data conte
  • 数论整理之欧几里得算法gcd

    辗转相除法 使用到的原理很聪明也很简单 假设用f x y 表示x y的最大公约数 取k x y b x y 则x ky b 如果一个数能够同时整除x和y 则必能同时整除b和y 而能够同时整除b和y的数也必能同时整除x和y 即x和y的公约数与
  • 软件需求说明书 概要设计说明书 项目开发计划 详细设计说明书 模版

    一 软件需求说明书 1引言2 1 1编写目的2 1 2背景2 1 3定义2 1 4参考资料2 2任务概述2 2 1目标2 2 2用户的特点3 2 3假定和约束3 3需求规定3 3 1对功能的规定3 3 2对性能的规定3 3 2 1精度3 3
  • 对 React 状态管理的理解及方案对比

    1 React 状态 通信 React 为什么需要状态管理 React 特点 专注 view 层 专注 view 层 的特点决定了它不是一个全能框架 相比 angular 这种全能框架 React 功能较简单 单一 UI render da
  • MongoDB学习笔记番外篇:JDBC方式操作MongoDB示例

    1 pom xml中依赖包设置 在项目中引入MongoDB JDBC 驱动mongo java driver X X X jar
  • 2.1-梯度下降

    文章目录 一 调整学习率 1 1 自适应学习率 Adaptive Learning Rates 1 2 Adagrad 二 随机梯度下降 Stochastic Gradient Descent 三 特征缩放 Feature Scaling