AI算法工程师手册-三、二阶导数与海森矩阵

三、二阶导数与海森矩阵

3.1 海森矩阵

  1. 二阶导数 ![三、二阶导数与海森矩阵 - 图1] 刻画了曲率。假设有一个二次函数(实际任务中,很多函数不是二次的,但是在局部可以近似为二次函数):

  2. 如果函数的二阶导数为零,则它是一条直线。如果梯度为 1,则当沿着负梯度的步长为 三、二阶导数与海森矩阵 - 图2

  3. 如果函数的二阶导数为负,则函数向下弯曲。如果梯度为1,则当沿着负梯度的步长为 三、二阶导数与海森矩阵 - 图4

  4. 如果函数的二阶导数为正,则函数向上弯曲。如果梯度为1,则当沿着负梯度的步长为 三、二阶导数与海森矩阵 - 图6

  5. 当函数输入为多维时,定义海森矩阵:

三、二阶导数与海森矩阵 - 图9 即海森矩阵的第 ![三、二阶导数与海森矩阵 - 图10] 。

  1. 当二阶偏导是连续时,海森矩阵是对称阵,即有: ![三、二阶导数与海森矩阵 - 图13] 。 在深度学习中大多数海森矩阵都是对称阵。

  2. 对于特定方向 ![三、二阶导数与海森矩阵 - 图14] 。

  3. 如果 三、二阶导数与海森矩阵 - 图1

  4. 如果 三、二阶导数与海森矩阵 - 图1 最大特征值确定了最大二阶导数,最小特征值确定最小二阶导数。 3.2 海森矩阵与学习率

  5. 将 ![三、二阶导数与海森矩阵 - 图19] 处的海森矩阵。 根据梯度下降法:![三、二阶导数与海森矩阵 - 图26] 。 应用在点 ![三、二阶导数与海森矩阵 - 图27] 。

  6. 第一项代表函数在点 三、二阶导数与海森矩阵 - 图2 第二项代表由于斜率的存在,导致函数值的变化。 第三项代表由于曲率的存在,对于函数值变化的矫正。

  7. 注意:如果 ![三、二阶导数与海森矩阵 - 图30] 较大,则很有可能导致:沿着负梯度的方向,函数值反而增加!

  8. 如果 三、二阶导数与海森矩阵 - 图3

  9. 如果 三、二阶导数与海森矩阵 - 图3

  10. 根据 三、二阶导数与海森矩阵 - 图3

  11. 考虑最速下降法,选择使得 三、二阶导数与海森矩阵 - 图3 根据 ![三、二阶导数与海森矩阵 - 图44] 。

  12. 由于海森矩阵为实对称阵,因此它可以进行特征值分解。假设其特征值从大到小排列为:![三、二阶导数与海森矩阵 - 图46] 。 海森矩阵的瑞利商为: ![三、二阶导数与海森矩阵 - 图47] 。可以证明:

三、二阶导数与海森矩阵 - 图4 根据 ![三、二阶导数与海森矩阵 - 图49] 。 3.3 驻点与全局极小点

  1. 满足导数为零的点(即 ![三、二阶导数与海森矩阵 - 图53] )称作驻点。驻点可能为下面三种类型之一:

  2. 局部极小点:在 三、二阶导数与海森矩阵 - 图5

  3. 局部极大点:在 三、二阶导数与海森矩阵 - 图5 鞍点:既不是局部极小,也不是局部极大。

critical_point.PNG

  1. 全局极小点:![三、二阶导数与海森矩阵 - 图57]。 全局极小点可能有一个或者多个。 在深度学习中,目标函数很可能具有非常多的局部极小点,以及许多位于平坦区域的鞍点。这使得优化非常不利。

因此通常选取一个非常低的目标函数值,而不一定要是全局最小值。 deeplearning_optimization.PNG

  1. 二阶导数可以配合一阶导数来决定驻点的类型:

  2. 局部极小点:三、二阶导数与海森矩阵 - 图5

  3. 局部极大点:三、二阶导数与海森矩阵 - 图6

  4. 三、二阶导数与海森矩阵 - 图6

  5. 对于多维的情况类似有:

  6. 局部极小点:三、二阶导数与海森矩阵 - 图6 当海森矩阵为正定时,任意方向的二阶偏导数都是正的。

  7. 局部极大点:三、二阶导数与海森矩阵 - 图6 当海森矩阵为负定时,任意方向的二阶偏导数都是负的。

  8. 三、二阶导数与海森矩阵 - 图6 当海森矩阵非上述情况时,驻点类型无法判断。 下图为 ![三、二阶导数与海森矩阵 - 图65] 在原点附近的等值线。其海森矩阵为一正一负。

  9. 沿着 三、二阶导数与海森矩阵 - 图6 鞍点就是在一个横截面内的局部极小值,另一个横截面内的局部极大值。

saddle.PNG

文章列表

更多推荐

更多
  • Pharo敏捷人工智能-第一部分:神经网络
    Apache CN

  • Pharo敏捷人工智能-第二部分:遗传算法
    Apache CN

  • Pharo敏捷人工智能-# 第三部分:神经进化 第三部分:神经进化
    Apache CN

  • Azure数据工程指南-二十四、数据治理的权限 创建 azure 预览帐户,探索 azure 预览,探索词汇表,浏览资产,以编程方式使用预览,摘要,管理凭证和访问,创建扫描, 许多组织需要建立数据治理流程、标准和方法,并且已经能够使用内部 SQL Server 工具(如 Master
    Apache CN

  • Azure数据工程指南-二十二、Synapse 分析工作区 创建 Synapse 分析工作区,使用 Spark 探索样本数据,用 SQL 查询数据,用 SQL 创建外部表,摘要, 微软 Azure 数据平台的众多新增功能已经围绕许多类似的产品及其在现代 Azure 数据平台中的用途产生了兴奋和困
    Apache CN

  • Azure数据工程指南-二十三、数据块中的机器学习 创建 MLflow 实验,安装 MLflow 库,创建笔记本,选择性测井,自动记录,摘要, 寻求利用机器学习(ML)和人工智能能力的组织和开发人员花费大量时间构建 ML 模型,并寻求一种方法来简化他们的机器学习开发生命周期,以跟踪实验,
    Apache CN

  • Azure数据工程指南-二十一、将 Apache Spark 的 GraphFrame API 用于图形分析 安装 JAR 库,加载新数据表,将数据加载到数据块笔记本中,用顶点和边构建一个图,查询图表,寻找有图案的图案,用 PageRank 发现重要性,探索入度和出度度量,摘要,进行广度优先搜索,查找连接的组件, 图形技术使用户能够以图形的形式
    Apache CN

  • Azure数据工程指南-20 二十、部署 SQL 数据库先决条件,创建 Visual Studio SQL 数据库项目,安装 Visual Studio GitHub 扩展,导入 AdventureWorks 数据库,连接到 GitHub Repo 源代码控制,将
    Apache CN

  • Azure数据工程指南-十九、部署数据工厂更改 先决条件,创建 DevOps 持续集成构建管道,创建 DevOps 持续部署发布渠道,验证部署的数据工厂资源,摘要,Azure PowerShell 任务停止触发器,ARM 模板部署任务,Azure PowerShell 任务启动触发器
    Apache CN

  • Azure数据工程指南-十八、用于 Cosmos DB 的 Azure Synapse 链接 创建一个 Azure Cosmos DB 帐户,启用 Azure Synapse 链接,创建一个 Cosmos DB 容器和数据库,将数据导入 Azure Cosmos DB,在 Azure Synapse Analytics 中创建
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多