线性代数01:函数对向量、矩阵的梯度(向量、矩阵求导)

简介: 线性代数01:函数对向量、矩阵的梯度(向量、矩阵求导)

主要讨论实值函数对矩阵或向量的梯度。先给出定义,若函数 f : R m × n → R f:\mathbb{R}^{m\times n}\rightarrow \mathbb{R} f:R

m×n

→R,则 ∂ f ∂ X \frac{\partial f}{\partial X}

∂X

∂f


也是一个 m × n m\times n m×n矩阵,且满足:

( ∂ f ∂ X ) i j = ∂ f ∂ x i j \left( \frac{\partial f}{\partial X} \right) _{ij}=\frac{\partial f}{\partial x_{ij}}

(

∂X

∂f


)

ij


=

∂x

ij


∂f



则表示实值函数对矩阵的梯度,记做 ∇ X f \nabla _{\boldsymbol{X}}f ∇

X


f


同样地,若函数 f : R m → R f:\mathbb{R}^{m}\rightarrow \mathbb{R} f:R

m

→R,则 ∂ f ∂ x \frac{\partial f}{\partial x}

∂x

∂f


也是一个 m m m维列向量,且满足:

( ∂ f ∂ x ) i = ∂ f ∂ x i \left( \frac{\partial f}{\partial \boldsymbol{x}} \right) _i=\frac{\partial f}{\partial x_i}

(

∂x

∂f


)

i


=

∂x

i


∂f



则表示实值函数对向量的梯度,记做 ∇ x f \nabla _{\boldsymbol{x}}f ∇

x


f


总结:实值函数对向量或矩阵的梯度,与该向量或矩阵同型。下面从定义出发,推导机器学习中常用的向量/矩阵梯度公式。


① ∇ ( a T x ) = ∇ ( x T a ) = a \nabla \left( \boldsymbol{a}^T\boldsymbol{x} \right) =\nabla \left( \boldsymbol{x}^T\boldsymbol{a} \right) =\boldsymbol{a} ∇(a

T

x)=∇(x

T

a)=a

证明:

∇ ( a T x ) i = ∂ a T x ∂ x i = ∂ ( ∑ j a j x j ) ∂ x i = a i ⇒    ∇ ( a T x ) = a \nabla \left( \boldsymbol{a}^T\boldsymbol{x} \right) _i=\frac{\partial \boldsymbol{a}^T\boldsymbol{x}}{\partial x_i}=\frac{\partial \left( \sum_j{a_jx_j} \right)}{\partial x_i}=a_i\\\Rightarrow \,\, \nabla \left( \boldsymbol{a}^T\boldsymbol{x} \right) =\boldsymbol{a}

∇(a

T

x)

i


=

∂x

i


∂a

T

x


=

∂x

i


∂(∑

j


a

j


x

j


)


=a

i


⇒∇(a

T

x)=a


② ∇ ∥ x ∥ 2 2 = ∇ ( x T x ) = 2 x \nabla \lVert \boldsymbol{x} \rVert _{2}^{2}=\nabla \left( \boldsymbol{x}^T\boldsymbol{x} \right) =2\boldsymbol{x} ∇∥x∥

2

2


=∇(x

T

x)=2x

证明:

∇ ( x T x ) i = ∇ ( ∑ j x j 2 ) x i = 2 x i ⇒    ∇ ( x T x ) = 2 x \nabla \left( \boldsymbol{x}^T\boldsymbol{x} \right) _i=\frac{\nabla \left( \sum_j{x_{j}^{2}} \right)}{x_i}=2x_i\\\Rightarrow \,\, \nabla \left( \boldsymbol{x}^T\boldsymbol{x} \right) =2\boldsymbol{x}

∇(x

T

x)

i


=

x

i


∇(∑

j


x

j

2


)


=2x

i


⇒∇(x

T

x)=2x


③ ∇ ( x T A x ) = ( A + A T ) x \nabla \left( \boldsymbol{x}^T\boldsymbol{Ax} \right) =\left( \boldsymbol{A}+\boldsymbol{A}^T \right) \boldsymbol{x} ∇(x

T

Ax)=(A+A

T

)x

证明:

L H S = ∇ ( x C T A x ) + ∇ ( x T A x C ) = ( x C T A ) T + A x C = ( A + A T ) x = R H S LHS=\nabla \left( \boldsymbol{x}_{C}^{T}\boldsymbol{Ax} \right) +\nabla \left( \boldsymbol{x}^T\boldsymbol{Ax}_C \right) \\=\left( \boldsymbol{x}_{C}^{T}\boldsymbol{A} \right) ^T+\boldsymbol{Ax}_C\\=\left( \boldsymbol{A}+\boldsymbol{A}^T \right) \boldsymbol{x}\\=RHS

LHS=∇(x

C

T


Ax)+∇(x

T

Ax

C


)

=(x

C

T


A)

T

+Ax

C


=(A+A

T

)x

=RHS


目录
相关文章
|
搜索推荐
|
移动开发
线性代数基础--向量
线性代数基础--向量
学习笔记: 线性代数-向量的定义
线性代数个人学习笔记
189 0
《 线性代数及其应用 (原书第4版)》—— 1.3 向量方程
本节书摘来自华章出版社《 线性代数及其应用 (原书第4版)》一书中的第1章,第1.3节,作者:(美)戴维C. 雷(David C. Lay)马里兰大学帕克学院 著刘深泉 张万芹 陈玉珍 包乐娥 陆 博 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2967 0
【线性代数】正交向量与正交子空间
在前面文章《矩阵的四个基本子空间》中提到:         一个秩为r,m*n的矩阵A中,其行空间和列空间的维数为r,零空间和左零空间的维数分别为n-r,m-r,并且有行空间与零空间正交,列空间与左零空间正交。
1471 0
|
7月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
606 1
|
7月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
167 0
|
开发工具 Android开发
Mac 安卓(Android) 配置adb路径
Mac 安卓(Android) 配置adb路径
882 0
|
4月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
117 0