机器学习-统计与数学

【公式】二次型函数-求导公式与推导

作者 : 老饼 发表日期 : 2023-01-27 01:13:52 更新日期 : 2024-12-21 09:33:48
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



二次型是指xAx^T的形式的函数,当A为对称矩阵时,则是一种特殊形式

本文展示二次型的求导公式,包括A为对称矩阵时的求导公式,并讲解求导公式的推导过程

通过本文,可以快速了解二次型函数的求导公式,以及求导公式是怎么推导出来的





   01. 二次型的求导公式与推导   





本节讲解二次型函数的求导公式,以及求导公式的推导过程





      二次型的求导公式      


什么是二次型函数
二次型函数是指如下形式的函数:
 f(x)=xAxT=i=1nj=1naijxixjf(x) = xAx^T= \displaystyle \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}a_{ij}x_ix_j
其中,x 是行向量,A是对称矩阵
     二次型函数的求导公式    
 当A不是对称矩阵时,它的求导公式如下:

 f(x)x=(xAxT)x=x(A+AT)\dfrac{\partial f(x)}{\partial x} =\dfrac{\partial \left ( xAx^T \right )}{\partial x} = x*(A+A^T)

如果ff是二次型函数(即A是对称矩阵),则可根据上式进行简化
 得到二次型的求导公式为:
 

f(x)x=(xAxT)x=2xA\dfrac{\partial f(x)}{\partial x} =\dfrac{\partial \left ( xAx^T \right )}{\partial x} =2xA






     二次型求导公式-推导过程   


为方便理解,下面先对x的单个元素求偏导,再按形式推广到x整体元素
对单个元素求偏导

假设对xkx_k求偏导,不妨将连加形式抽成 axk2+bxk+cax_k^2+bx_k+c的形式
 f(x)=i=1nj=1naijxixj=i=1n(j=1(jk)naijxixj+aikxixk)=i=1nj=1(jk)naijxixj+i=1naikxixk(第一项里的j已经与k无关)=(i=1(ik)nj=1(jk)naijxixj+j=1(jk)nakjxkxj)+(i=1(ik)naikxixk+akkxkxk)=akkxk2+(i=1(ik)naikxi+j=1(jk)nakjxj)xk+i=1(ik)nj=1(jk)naijxixj=akkxk2+(i=1(ik)naikxi+i=1(ik)nakixi)xk+i=1(ik)nj=1(jk)naijxixj=akkxk2+(i=1(ik)n(aik+aki)xi)xk+i=1(ik)nj=1(jk)naijxixj\displaystyle \begin{aligned} f(x) &= \displaystyle \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}a_{ij}x_ix_j \\&= \sum\limits_{i=1}^{n}\left ( \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j + a_{ik}x_ix_k \right ) \\&= \sum\limits_{i=1}^{n} \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j + \sum\limits_{i=1}^{n}a_{ik}x_ix_k(第一项里的j已经与k无关) \\&= \left ( \sum\limits_{i=1(i\ne k)}^{n} \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j+\sum\limits_{j=1(j\ne k)}^{n}a_{kj}x_kx_j \right ) + \left ( \sum\limits_{i=1(i\ne k)}^{n}a_{ik}x_ix_k+a_{kk}x_kx_k \right ) \\&= a_{kk}x_k^2+\left ( \sum\limits_{i=1(i\ne k)}^{n}a_{ik}x_i+\sum\limits_{j=1(j\ne k)}^{n}a_{kj}x_j \right )x_k + \sum\limits_{i=1(i\ne k)}^{n} \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j \\&= a_{kk}x_k^2+\left ( \sum\limits_{i=1(i\ne k)}^{n}a_{ik}x_i+\sum\limits_{i=1(i\ne k)}^{n}a_{ki}x_i \right )x_k + \sum\limits_{i=1(i\ne k)}^{n} \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j \\&= a_{kk}x_k^2+\left ( \sum\limits_{i=1(i\ne k)}^{n}(a_{ik}+a_{ki})x_i\right )x_k + \sum\limits_{i=1(i\ne k)}^{n} \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j \end{aligned}

xkx_k求偏导则有
f(x)xk=[akkxk2+(i=1(ik)naikxi+j=1(jk)nakjxj)xk+i=1(ik)nj=1(jk)naijxixj]xk=2akkxk+i=1(ik)n(aik+aki)xi=i=1n(aik+aki)xi=x(Ak+AkT)\displaystyle \begin{aligned} \dfrac{\partial f(x)}{\partial x_k}=& \dfrac{\partial \left [ a_{kk}x_k^2+\left ( \sum\limits_{i=1(i\ne k)}^{n}a_{ik}x_i+\sum\limits_{j=1(j\ne k)}^{n}a_{kj}x_j \right )x_k + \sum\limits_{i=1(i\ne k)}^{n} \sum\limits_{j=1(j\ne k)}^{n}a_{ij}x_ix_j \right ] }{\partial x_k} \\= & 2a_{kk}x_k+\sum\limits_{i=1(i\ne k)}^{n}(a_{ik}+a_{ki})x_i \\= & \sum\limits_{i=1}^{n}(a_{ik}+a_{ki})x_i \\= & x*(A_{k列}+A_{k行}^T) \end{aligned}
 对x的偏导
根据单个元素偏导的结果,则所有xix_i的偏导写成矩阵形式为:
 f(x)x=x(A+AT)\dfrac{\partial f(x)}{\partial x} = x*(A+A^T)
 
进一步地,如果是二次型或者对称矩阵,则可简化为:
f(x)x=2xA\dfrac{\partial f(x)}{\partial x} =2xA







好了,以上就是二次型函数的求导公式以及它的推导过程了~








 End 




图标 评论
添加评论