怎么理解二阶偏导与凸函数的Hessian矩阵是半正定的?

2023-10-11 06:40

本文主要是介绍怎么理解二阶偏导与凸函数的Hessian矩阵是半正定的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载出处:https://www.zhihu.com/question/40181086?sort=created


教科书上有严格的证明,这个答案试图通过类比来提供一些直观上的理解。大概的结论是,多元函数的Hessian矩阵就类似一元函数的二阶导。多元函数Hessian矩阵半正定就相当于一元函数二阶导非负,半负定就相当于一元函数二阶导非正。如果这个类比成立的话,凸函数的Hessian恒半正定就非常容易理解了——这是一元凸函数二阶导必非负的多元拓展。

至于为什么这个类是有道理的,你要这么看。对一元函数f(x)来说,就极值而言,一阶导为0是极值点的必要但不充分条件,一阶导为0切二阶导非负是极小值的充要条件。为什么呢,因为有泰勒展开f(x)=f(x_0)+f'(x_0)\cdot\text{d}x+\frac{1}{2}f''(x_0)\text{d}x^2。如果一阶导为0,二阶导非负,dx不论是多少,f(x)一定不比f(x0)小。

你把多元函数也个泰勒展开,主要区别在于:
1) 二阶导变成了Hessian。
2) 以前只要考虑x怎么变,现在还要考虑y怎么变,x和y怎么一起变,头疼了很多。
以二元为例,
f(\begin{bmatrix}x & y\end{bmatrix}) = f(\begin{bmatrix}x_0 & y_0\end{bmatrix}) + \begin{bmatrix}\text{d}x & \text{d}y\end{bmatrix} \cdot \begin{bmatrix}f_x' \\ f_y' \end{bmatrix}+ \frac{1}{2} \begin{bmatrix}\text{d}x & \text{d}y\end{bmatrix} \cdot \begin{bmatrix}f_{xx}' & f_{xy}' \\ f_{yx}' & f_{yy}' \end{bmatrix} \cdot \begin{bmatrix}\text{d}x \\ \text{d}y\end{bmatrix}
从一元的情况类比过来,如果一阶导为0,是不是极小值完全取决于不同的dx, dy下,能不能做到最后一项一直非负。只有对于任意\Delta {\bf x},\Delta {\bf x} {\bf H} \Delta {\bf x}^T一直非负的情况,我们才能说这是极小值。如果\Delta {\bf x} {\bf H} \Delta {\bf x}^T一直非正,这就是极大值。如果它一会正一会负,就是鞍点。

然后“对于任意\Delta {\bf x},\Delta {\bf x} {\bf H} \Delta {\bf x}^T一直非负”这是啥?半正定的定义嘛!它就是这么引出来的,也是我们为什么需要半正定这个概念的原因(之一)。


这篇关于怎么理解二阶偏导与凸函数的Hessian矩阵是半正定的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/186250

相关文章

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的