矩阵乘以向量?向量乘以向量?

这里有一个问题:v^T H v 到底是什么意思?为什么向量乘以矩阵,然后再乘以向量(的转置),就能得到方向曲率(二阶方向导数)?

好吧,我们来展开说。首先,矩阵乘以向量是什么意思?

当你进行 H·v 运算时,你实际上是对 H 的列进行线性组合,并由 v 的各个分量加权。结果是一个新向量,它告诉你 H 如何"变换"方向 v。

但我们不会就此止步,接下来我们进行 v^T · (H·v) 运算,它将变换后的向量投影回原始方向 v。

直观的理解是:H·v 告诉你"当你沿方向 v 移动时,梯度会如何变化?" 然后 v^T ·(该变化)会问"其中有多少变化是沿着方向 v 本身发生的?"


我们把 v^T 写在左边而不是 v 写在右边是有原因的。计算 H·v 时,我们得到一个向量,它是沿方向 v 移动时梯度的变化。到目前为止一切顺利。

现在,我们想知道:这个变化中有多少是沿我们移动方向的?我们要将这个"梯度变化向量"与方向 v 做点积。两个向量的点积可以写成 v^T · (某物) 或 (某物)^T · v,它们得出的数字相同。但按照惯例,我们将其写成 v^T · H · v,以显示对称性。

(H v)^T v = v^T H v

v^T 从技术上讲是一个 1×n 矩阵(行向量),当它与列向量 H·v 相乘时,我们得到一个 1×1 矩阵,它只是一个数字,一个标量。但更深层次的是,我们并非只是随机选择符号。v^T H v 这种形式揭示了一些美妙的东西,它是一个二次型。而二次型有一些特殊的性质......


H·v 告诉你当你沿方向 v 移动时,梯度是如何变化的。但这种变化可能出现在各种方向上,也许梯度一开始指向东北,最后指向西南,或者其他方向。

但我们关心的是方向 v 的曲率:梯度沿着我们行走的方向变化了多少?

如果你向东走,梯度向东越来越陡,那么你方向上的曲率就是正的,你上坡的速度越来越快。但如果梯度以垂直方向变化,比如你向东走时,梯度呈南北旋转的更多,这其实并不会影响(向东走的)你对路径陡峭程度的感觉。

点积 v^T · (H·v) 滤除了所有无关的方向变化,只保留了重要的部分:与行进方向一致的变化。

在一维空间中,只有两个方向:向前和向后,正向和负向。一切都很简单。但进入二维、三维、数百个维度时......方向突然变得如此丰富复杂。而Hessian矩阵正是捕捉曲率所有复杂性的数学对象。

相关推荐
遇到困难睡大觉哈哈1 小时前
Harmony os——ArkTS 语言笔记(四):类、对象、接口和抽象类
java·笔记·spring·harmonyos·鸿蒙
程序员东岸1 小时前
《数据结构——排序(中)》选择与交换的艺术:从直接选择到堆排序的性能跃迁
数据结构·笔记·算法·leetcode·排序算法
STLearner2 小时前
AI论文速读 | U-Cast:学习高维时间序列预测的层次结构
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘
Ccjf酷儿2 小时前
操作系统 蒋炎岩 4.数学视角的操作系统
笔记
yinchao1632 小时前
EMC设计经验-笔记
笔记
黑客思维者3 小时前
LLM底层原理学习笔记:Adam优化器为何能征服巨型模型成为深度学习的“速度与稳定之王”
笔记·深度学习·学习·llm·adam优化器
松☆3 小时前
Flutter + OpenHarmony 实战:构建离线优先的跨设备笔记应用
笔记·flutter
kk哥88993 小时前
Swift底层原理学习笔记
笔记·学习·swift
咨询QQ276998854 小时前
基于模型的增程式混合动力汽车整车策略开发与建模
神经网络