二次型x^TAx梯度(求导)推导过程
y=xTAxy=x^TAxy=xTAx,其中x是n维向量,A是n阶方阵,求dy/dxdy/dxdy/dx
记A=[aij]A=\left[a_{i j}\right]A=[aij].x∈Rn,x=(x1,…,xn)Tx \in \mathbb{R}^{n}, x=\left(x_{1}, \ldots, x_{n}\right)^{T}x∈Rn,x=(x1,…,xn)T, 则 y=∑i=1n∑j=1naijxixjy=\sum_{i=1}^{n} \sum_{j=1}^{n} a_{i j} x_{i} x_{j}y=∑i=1n∑j=1naijxixj
故
∂y∂xk=∑i≠k∂∂xk(∑j=1naijxixj)+∂∂xk(∑j=1nakjxkxj)=∑i≠k(∂∂xk(∑j≠kaijxixj)+∂∂xk(aikxixk))+∑j≠k∂∂xk(akjxkxj)+∂∂xk(akkxk2)=∑i≠k(0+aikxi)+∑j≠kakjxj+2akkxk=∑i=1naikxi+∑j=1nakjxj=(xTA)k+(Ax)k \begin{aligned} \frac{\partial y}{\partial x_{k}} &=\sum_{i \neq k} \frac{\partial}{\partial x_{k}}\left(\sum_{j=1}^{n} a_{i j} x_{i} x_{j}\right)+\frac{\partial}{\partial x_{k}}\left(\sum_{j=1}^{n} a_{k j} x_{k} x_{j}\right) \\ &=\sum_{i \neq k}\left(\frac{\partial}{\partial x_{k}}\left(\sum_{j \neq k} a_{i j} x_{i} x_{j}\right)+\frac{\partial}{\partial x_{k}}\left(a_{i k} x_{i} x_{k}\right)\right)+\sum_{j \neq k} \frac{\partial}{\partial x_{k}}\left(a_{k j} x_{k} x_{j}\right)+\frac{\partial}{\partial x_{k}}\left(a_{k k} x_{k}^{2}\right) \\ &=\sum_{i \neq k}( 0+a_{i k} x_{i})+\sum_{j \neq k} a_{k j} x_{j}+2 a_{k k} x_{k} \\ &=\sum_{i=1}^{n} a_{i k} x_{i}+\sum_{j=1}^{n} a_{k j} x_{j} \\ &=\left(x^{T} A\right)_{k}+(A x)_{k} \end{aligned} ∂xk∂y=i=k∑∂xk∂(j=1∑naijxixj)+∂xk∂(j=1∑nakjxkxj)=i=k∑⎝⎛∂xk∂⎝⎛j=k∑aijxixj⎠⎞+∂xk∂(aikxixk)⎠⎞+j=k∑∂xk∂(akjxkxj)+∂xk∂(akkxk2)=i=k∑(0+aikxi)+j=k∑akjxj+2akkxk=i=1∑naikxi+j=1∑nakjxj=(xTA)k+(Ax)k
其中 (xTA)k\left(x^{T} A\right)_{k}(xTA)k 是行向量xTAx^{T} AxTA的第k个分量,(Ax)k(A x)_{k}(Ax)k是列向量AxAxAx的第k个分量。因此∂y∂xk=(xTA)k+(xTAT)k\frac{\partial y}{\partial x_{k}}=\left(x^{T} A\right)_{k}+\left(x^{T} A^{T}\right)_{k}∂xk∂y=(xTA)k+(xTAT)k.
所以
∇y=xTA+xTAT=xT(A+AT) \nabla y=x^{T} A+x^{T} A^{T}=x^{T}\left(A+A^{T}\right) ∇y=xTA+xTAT=xT(A+AT)
特别地,如果A是实对称矩阵,则
∇y=xTA+xTAT=2xTA \nabla y=x^{T} A+x^{T} A^{T}=2x^{T}A ∇y=xTA+xTAT=2xTA
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)