向量自身转置乘积对该向量的求导推导方法咨询
你的三维分量形式推导完全正确!咱们先拆解下为什么这个推导没问题:
- 首先,$\vec{x}^T\vec{x}$本质是向量$\vec{x}$的内积,展开成各分量的平方和是线性代数里的基础操作,没毛病。
- 这里对向量$\vec{x}$求导,其实是求梯度向量(标量对向量求导的结果就是梯度),做法就是对标量函数分别对每个分量求偏导,再把结果按顺序组成列向量——你写的偏导计算完全符合梯度的定义,最终结果就是$\begin{bmatrix}2x_1 \ 2x_2 \ 2x_3\end{bmatrix}$,也就是$2\vec{x}$。
接下来给你分享两种更通用的规范求导方法,方便推广到n维甚至更复杂的矩阵微分场景:
方法一:n维分量法推广
对于任意n维向量$\vec{x} = \begin{bmatrix}x_1 \ x_2 \ \vdots \ x_n\end{bmatrix}$,$\vec{x}^T\vec{x} = \sum_{i=1}^n x_i^2$。
对$\vec{x}$求梯度时,只需对每个分量$x_j$求偏导:
$$
\frac{\partial}{\partial x_j}\left(\sum_{i=1}^n x_i^2\right) = 2x_j
$$
把所有偏导结果组合成列向量,就得到通用结论:
$$
\frac{d}{d\vec{x}}\left[\vec{x}^T\vec{x}\right] = \begin{bmatrix}2x_1 \ 2x_2 \ \vdots \ 2x_n\end{bmatrix} = 2\vec{x}
$$
方法二:矩阵微分规则直接推导
如果熟悉矩阵微分的基本规则,不用展开分量也能快速得到结果。这里用到向量内积的求导公式:
对于依赖$\vec{x}$的两个向量$\vec{a}(\vec{x})$和$\vec{b}(\vec{x})$,有:
$$
\frac{d}{d\vec{x}}\left(\vec{a}^T\vec{b}\right) = \left(\frac{d\vec{a}}{d\vec{x}}\right)^T\vec{b} + \left(\frac{d\vec{b}}{d\vec{x}}\right)^T\vec{a}
$$
这里$\vec{a} = \vec{x}$,$\vec{b} = \vec{x}$,而向量对自身求导的结果是单位矩阵$I$(每个分量对自身偏导为1,交叉分量为0)。代入公式后:
$$
\frac{d}{d\vec{x}}\left(\vec{x}^T\vec{x}\right) = I^T\vec{x} + I^T\vec{x} = \vec{x} + \vec{x} = 2\vec{x}
$$
这种方法更简洁,不用逐个展开分量,适合处理复杂的矩阵/向量函数求导。
最后补充个小细节:不同教材对向量求导的结果布局(行向量/列向量)可能有差异,但你用的列向量梯度是最常见的规范布局(也叫梯度布局),完全没问题。
内容的提问来源于stack exchange,提问作者lucidbrot

