今天开始在 GitHub 上刷每日一题,但是很快就被一道题卡住了。题目如下所示:

结合自己的情况并针对这道问题,整理出了以下概念:

  • 什么是鞍点?

  • 什么是 Hessian 矩阵?

  • 如何证明一个点为鞍点?

  • 局部最小值和鞍点的区别?

什么是鞍点

在维基中的定义如下:

In mathematics, a saddle point or minimax point is a point on the surface of the graph of a function where the slopes (derivatives) in orthogonal directions are all zero (a critical point), but which is not a local extremum of the function.

在数学中,鞍点或极小值点是函数图形表面上的一个点,其正交方向上的斜率(导数)均为零(临界点),但不是函数的局部极值。一句话概括就是:

一个不是局部极值点的驻点称为鞍点

*驻点:函数在一点处的一阶导数为零。

如下图所示,是函数 z = x2 - y2 图像,其鞍点在 (0, 0) 位置。函数 z 的整个曲面看上去就像是一个马鞍,其在 x 轴方向向上曲,在 y 轴方向向下曲。所以这也是鞍点这个名字的由来。

附上一张吴恩达大大的画作,哈哈。

什么是 Hessian 矩阵

在维基中的定义如下:

In mathematics, the Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a scalar-valued function, or scalar field. It describes the local curvature of a function of many variables.

在数学中,Hessian 矩阵是标量值函数或标量场函数的二阶偏导数的方块矩阵。它描述了许多变量函数的局部曲率,可以用于判定多元函数的极值。假设有一实数函数 f: Rn→ R ,是关于输入 x (xRn) 及输出 f(x) ∈ R 之间的关系式。如果其所有的二阶偏导数都存在,并且在该函数的领域上连续,那么 Hessian 矩阵 H 是一个 n×n 的矩阵,通常如下定义:

如何证明一个点为鞍点

Hessian 矩阵是一个凸函数,并且是正半定的。通过这一属性,我们可以测试临界点 x 是局部最大值,或者是局部最小值还是鞍点。如下所示:

  • 如果 Hx 处为正定矩阵时,则函数 fx 处有一个局部极小值;

  • 如果 Hx 处为负定矩阵时,则函数 fx 处有一个局部极大值;

  • 如果 Hx 处为不定矩阵时(即同时有正特征值和负特征值),则函数 fx 处为鞍点。

所以,一个简单标准的方法验证一个静止点是否为一个实数函数的鞍点,就是计算该函数的在该点上的 Hessian 矩阵。如果该 Hessian 矩阵为不定的,则该点为该函数的鞍点。

局部极小值和鞍点

局部极小值和鞍点的相同点是,在该点处的梯度(导数)都为零。从上面可以看出,局部极小值和鞍点的区别就在于,在该点处的 Hessian 矩阵的特性。如果 Hessian 矩阵在该点处是正定的,则为局部极小值;如果为不定的,则为鞍点。

鞍点通常是神经网络训练的困难之处。如下图所示,是一个包含两个参数的神经网络,是一个低维度的图,可以发现其存在很多的局部极小值,训练神经网络的时候,通常会陷入这些极小值中。事实上,建立的神经网络包含大量的参数,造成局部最优的困惑不是这些极小值点,而是零梯度点,通常为鞍点。

为什么说鞍点是训练神经网络的困难之处呢?因为鞍点的存在,会有一个平稳段,在该平稳段,函数的导数会长时间接近于 0,这使得神经网络的训练变得缓慢。

最后,总结到这里,大家也都知道开篇这道题目的答案了吧。

参考

[1]. Saddle point - Wikipedia

[2]. Hessian matrix - Wikipedia

[3]. 鞍点 - CSDN博客

[4]. 吴恩达 - 深度学习课程

P.S:文中有错欢迎指出,互相学习。以及欢迎关注我的公众号 ?

每日一问之鞍点(saddle point)相关推荐

  1. (一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point)

    Optimization的时候,怎么把gradient descent做的更好? 1.局部最小值(Local minima)与鞍点(saddle point) 所谓的saddle point其实就是g ...

  2. 每日一问 - 关于决策树算法

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 来源:Datawhale优秀回答者 将在留言区,Datawhale高校群 ...

  3. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  4. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:**View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的. ...

  5. 区块链每日一问 | 数字货币的场内交易和场外交易各指什么?各有哪些特点?...

    区块链每日一问 | 数字货币的场内交易和场外交易各指什么?各有哪些特点? 每日一问 • 2018-02-07 • 区块链 玩儿币最重要的是心态. 原文发布时间为:2018-02-07本文作者:每日一问 ...

  6. 鞍点Saddle Point Locator

    目录 1. 简介 2. 作业题目 2.1 要求 2.2  提示 3. 解答 3.1 建立数据来源 3.2 设计当前点梯度 3.3 寻找最小值 4. 寻找鞍点 4.1 珠子等间距连接 4.2 设置弹簧弹 ...

  7. 每日一问-ChapGPT-20221231-关于中医的各国看法

    文章目录 每日一问-ChapGPT系列起因 每日一问-ChapGPT-20221231-关于中医的各国看法 各个国家对伤寒论的看法 日本对于中医的看法 韩国对于中医的看法 欧美对于中医的看法 中国对于 ...

  8. 每日一问-ChapGPT-20230416-中医基础-经络

    文章目录 每日一问-ChapGPT系列起因 每日一问-ChapGPT-20230416-中医基础-经络 人体的经络有哪些,有什么规律,怎么记忆 经络拓展-五运六气 1# 五腧穴 与五运六气架构 2# ...

  9. 【每日一问】工作日问题

    [每日一问] 某一年的七月份如果有23个工作日,那么这一年的七月一号可能是周几 答案: 周一,周二,周三. 思路: 7月份一共有31天. 一周(7天循环)有5个工作日,2个休息日. 1-7,8-14, ...

最新文章

  1. iOS 开发 高级:使用 宏定义macros (#,##,...,__VA_ARGS_)
  2. 将 iPhone 定位设置在法国,手机速度就能迅速提升?
  3. 086_html5Input类型
  4. tableau必知必会之用 Fixed 函数实现客户回购分析
  5. 【揭秘】Slack:从0到10亿美元的产品是怎样炼成的
  6. BO QUERY BUILDER - SI_INSTANCE相关属性
  7. 【BIM入门实战】Win11平台上Revit 2018_x64简体中文版图文安装与卸载完整教程
  8. uniapp踩坑指南之坑多到写不完
  9. ECC椭圆曲线加密算法原理
  10. SoapUI 测试http接口实战
  11. 开发小计之判断输入字符串类型(正则表达式)
  12. JAVA日期查询:季度、月份、星期等时间信息
  13. ES+Redis+MySQL,这个高可用架构设计太顶了!
  14. bilibili老版本_bilibili旧版本
  15. Cadence OrCAD Capture 自底而上的设计流程
  16. 智能安防视频监控平台页面无法访问该如何排查?
  17. MISC解题思路总结(一)XCTF平台
  18. 第三次作业--原型设计
  19. Internet of Things(IOTS)and Wireless Sensor Networks Lecture1(WSNS)
  20. 计算机电脑关机后可以充电吗,电脑关机了还能充电吗

热门文章

  1. 如何在Ubuntu 18.04上安装和配置NFS服务器
  2. 天气微信小程序相关代码
  3. 新的起点开始新的征程
  4. android 高德地图周边,地点/周边搜索-Android平台-开发指南-高德地图车机版 | 高德地图API...
  5. Java(2) 虚拟机
  6. Overture小课堂之如何演绎钢琴滑音
  7. 反调试(设置主线程为隐藏调试破坏调试通道调试器的检测)
  8. html拖放数据库字段,利用HTML5拖放(Drag 和 Drop)实现Table间数据的交互
  9. java一般项目提成多少_java面试之经典提成问题
  10. 打字翻译都是一句话的事儿,轻松提升工作效率,咪鼠智能语音鼠标S7B体验