sift高斯差分函数泰勒展开的理解(矩阵求导)

函数泰勒展开:f(x)=f(x0)+f‘(x0)*(x-x0)+1/2*f‘’(x0)*(x-x0)^2

求导后,令f'(x)=f'(x0)+1/2*f''(x0)*2*x=0

所以x=一f‘(x0)/f''(x0);

以上是一元的,当x是三元的,sift高斯差分函数就是三元的,

怎么理解1/2*X的转置*H(X)*X对X求导后=H(X)*X

令△x=x-x0,△y=y-y0,△z=z-z0;H(X)=f''xx   f''xy  f''xz;    X  =x-x0;X的转置=(x-x0   y-y0   z-z0)

                                                       f''yx   f''yy  f''yz           y-y0

                                                       f''zx    f''zy  f''zz           z-z0

X的转置*H(X)*X=△x(△x*f''xx +△y* f''xy +△z* f''xz)+

                                     △y(△x* f''yx +△y* f''yy +△z*f''yz )+

                                     △z(△x*f''zx  +△y*  f''zy  +△z*f''zz ).

那么D(x,y,z)=D(x0,y0,z0)+△x*f'x+△y*f'y+△z*f'z+1/2*X的转置*H(X)*X,

以上就是高斯差分函数泰勒展开,f‘x,f'y,f‘z;f''xx   f''xy  f''xz是一阶和二阶偏导,

然后D'x=0+f'x+△x*f''xx +△y* f''xy +△z* f''xz=0;同理

       D'y=0+f'y+△x* f''yx +△y* f''yy +△z*f''yz=0;

       D’z=0+f’z+△x*f''zx  +△y*  f''zy  +△z*f''zz=0;整理后

H(X)*X+f'x=0,所以1/2*X的转置*H(X)*X对X求导后=H(X)*X

            +f'y=0

            +f'z=0

故有D"XX*X+D'X=0列向量,X=一D'X/D"XX,对比一元,得解。

我的邮箱liuganggang_1978@163.com;734523623@qq.com

更正和补充(20200712):

一元泰勒级数展开取二阶,即f(x)在x0处的近似

f(x)=f(x0)+f'(x0)*(x-x0)+1/2*f''(x0)*(x-x0)^{2}

二元泰勒级数展开取二阶,即f(x,y)在(x0,y0)处的近似(假定有:f''xy=f''yx)

f(x,y)=f(x0,y0)+f'x(x0,y0)*(x-x0)+f'y(x0,y0)*(y-y0)

+1/2*f''xx(x0,y0)*(x-x0)^{2}+1/2*f''yy(x0,y0)*(y-y0)^{2}

+1/2*f''xy(x0,y0)*(x-x0)*(y-y0)+1/2*f''yx(x0,y0)*(x-x0)*(y-y0)

我们简写为:f(x,y)=f+f'x*(x-x0)+f'y*(y-y0)+1/2*f''xx*(x-x0)^{2}+1/2*f''yy*(y-y0)^{2}+1/2*f''xy*(x-x0)*(y-y0)

再简化,令△x=x-x0,△y=y-y0

f(x,y)=f+f'x*△x+f'y*△y+1/2*f''xx*(\Delta x)^{2}+1/2*f''yy*(\Delta y)^{2}+f''xy*△x*△y

我们对等式两边△y求导,即对y-y0求导,也即y求导

令f'△y(x,y)=0=f'y+△y*f''yy+f''xy*△x

同理,我们对等式两边△x求导,即对x-x0求导,也即x求导

令f'△x(x,y)=0=f'x+△x*f''xx+f''xy*△y

令H(X)=f''xx   f''xy  ;    X  =△x;  D'X =f'x; X^{T}=(△x   △y)

             f''yx   f''yy              △y             f'y

   那么有     H(X)*X+D'X=0,即X=-D'X/ H(X) .   

f(x,y)=f+f'x*△x+f'y*△y+1/2*f''xx*(\Delta x)^{2}+1/2*f''yy*(\Delta y)^{2}+f''xy*△x*△y

就等于=f+△x*f'x+△y*f'y+1/2*X^{T}*H(X)*X

=f+X^{T}*D'X+1/2*X^{T}*H(X)*X

这其实就是泰勒二元二阶展开矩阵形式,

而最初的推导是泰勒三元二阶展开矩阵形式

f(x,y)对X求导,则

(0,0)^{T}=0列向量=D'X+H(X)*X

X=-D'X/H(X)

///顺便对比一下协方差矩阵

协方差矩阵定义:C=c11  c12                 =σ1^2          ρ*σ1*σ2

                                  c21  c22                  ρ*σ1*σ2         σ2^2 

矩阵A=  σ2^2           -ρ*σ1*σ2       ,

              -ρ*σ1*σ2      σ1^2

C逆=A*1/[σ1^2*σ2^2(1-ρ*ρ)];C逆=协方差矩阵的逆

令X-U= x1-u1;

            x2-u2

令r=马氏距离,则r*r=(X-U)^{T}*C逆*(X-U)

(X-U)^{T}*C逆*(X-U)*(-1/2)=-[(x1-u1)^2/σ1^2-2*ρ*(x1-u1)(x2-u2)/(σ1*σ2)+(x2-u2)^2/σ2^2]*1/[2*(1-ρ*ρ)]

这是什么?他是二元正态分布密度函数的指数

φ(x1,x2)=1/[2*PI*σ1*σ2*sqrt(1-ρ*ρ)]*exp(-1/2.0*r*r)

那么X-U针对1/2*(X-U)^{T}*C逆*(X-U)求导是什么

关键点:

矩阵的求导,矩阵的运算,用的多了就好了,熟能生巧

  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值