搜索
写经验 领红包
 > 动物

稀疏编码算法详解(稀疏编码的优缺点)

导语:高效稀疏编码公式理解

问题描述

先上原文如下,要使用拉格朗日对偶求解字典,原文在《Efficient sparse coding algorithms》。

基础预备

关于矩阵求导的基础可以参考我的上一篇博客。

开始推导

上述(7)式后面一项,可以知道算出来就是一个实值,可以换做trace(B

T

BΛ−cΛ)

trace(BTBΛ−cΛ)(可自行验证),整个式子就是,

L(B,Λ)

=Tr((X−BS)

T

(X−BS))+Tr(B

T

BΛ−cΛ)

=Tr(X

T

X−S

T

B

T

X−X

T

BS+S

T

B

T

BS)

+Tr(B

T

BΛ−cΛ)

L(B,Λ)=Tr((X−BS)T(X−BS))+Tr(BTBΛ−cΛ)=Tr(XTX−STBTX−XTBS+STBTBS)① +Tr(BTBΛ−cΛ)②

上式被分为两部分,我们的目标要求解min

B,Λ

L(B,Λ)

minB,ΛL(B,Λ)也即是最终算出字典B,这里可以先在对偶空间中求解Λ

Λ,在反带回去求解B。

1、用Λ

Λ表示B(对B求导得到B和Λ

Λ的关系)

先对第①部分求导,

B

L(B,Λ,①)

=∇

B

Tr(X

T

X−S

T

B

T

X−X

T

BS+S

T

B

T

BS)

=∇

B

TrB

T

BSS

T

−∇

B

Tr(S

T

B

T

X)

T

−∇

B

TrBSX

T

=B(SS

T

+(SS

T

)

T

)−∇

B

TrBSX

T

−(SX

T

)

T

=2BSS

T

−(SX

T

)

T

−(SX

T

)

T

=2BSS

T

−2XS

T

∇BL(B,Λ,①)=∇BTr(XTX−STBTX−XTBS+STBTBS)=∇BTrBTBSST−∇BTr(STBTX)T−∇BTrBSXT=B(SST+(SST)T)−∇BTrBSXT−(SXT)T=2BSST−(SXT)T−(SXT)T=2BSST−2XST

再对第②部分求导,

B

L(B,Λ,②)

=∇

B

Tr(B

T

BΛ−cΛ)

=B(Λ+Λ

T

) Λ为对角阵,也是对称矩,故可合并

=2BΛ

∇BL(B,Λ,②)=∇BTr(BTBΛ−cΛ)=B(Λ+ΛT) Λ为对角阵,也是对称矩,故可合并=2BΛ

整体而言,令梯度=0即可知道他们的关系

B

L(B,Λ)=2BSS

T

−2XS

T

+2BΛ=0

B(SS

T

+Λ)=XS

T

(B(SS

T

+Λ))

T

=(XS

T

)

T

(SS

T

+Λ)B

T

=(XS

T

)

T

B

T

=(SS

T

+Λ)

−1

(XS

T

)

T

∇BL(B,Λ)=2BSST−2XST+2BΛ=0B(SST+Λ)=XST(B(SST+Λ))T=(XST)T(SST+Λ)BT=(XST)TBT=(SST+Λ)−1(XST)T

故,其间关系为

B

T

=(SS

T

+Λ)

−1

(XS

T

)

T

BT=(SST+Λ)−1(XST)T

这个式子就是原文中(11)式的来历,原文如下,

本文内容由小茜整理编辑!