Kronecker-factored Approximate
1. 约定
默认所有向量都是列向量
2. 目标
求F−1v
Fisher 信息阵F=E[∂θ∂L(∂θ∂L)T]
2.1. 证明
把神经网络的每个权重矩阵逐列向量化,然后按一个确定的顺序排列这些向量,得到一个长向量θ
对于y=Wx+b, 令g=∂y∂L
∂W∂L=∂y∂L⋅xT
∂b∂L=∂y∂L⋅I
把 x 和 I 在后文中用a表示
F=E[∂θ∂L⋅∂θ∂LT]=E[∂θ1∂L⋅∂θ1∂LT]E[∂θ1∂L⋅∂θ2∂LT]⋯E[∂θ2∂L⋅∂θ1∂LT]E[∂θ2∂L⋅∂θ2∂LT]⋯⋮E[∂θn∂L⋅∂θ1∂LT]E[∂θn∂L⋅∂θ2∂LT]⋯E[∂θ1∂L⋅∂θn∂LT]E[∂θ2∂L⋅∂θn∂LT]⋮E[∂θn∂L⋅∂θn∂LT]
θi 表示按前述顺序排列的第 i 个权重矩阵的向量化表示。
取F的对角线上的矩阵作为F的近似。
E[∂θi∂L⋅∂θi∂LT]=E[vec(gi⋅aiT)vec(gi⋅aiT)T]=E[(ai⊗gi)(aiT⊗giT)]=E[(aiaiT)⊗(gigiT)]≈E[aiaiT]⊗E[gigiT]=:Ai⊗Gi(未证明)
F≈diag(A1⊗G1,A2⊗G2,…,An⊗Gn)=A1⊗G1,0,0,⋮,0,0,A2⊗G2,0,⋮,0,0,0,A3⊗G3,⋮,0,⋯,⋯,⋯,⋱,⋯,000⋮An⊗Gn(未证明)
把Ai⊗Gi记作Fi
Ai 和 Gi 都是对称矩阵,对称矩阵的逆矩阵为对称矩阵。
Fi−1⋅vi≈(Ai−1⊗Gi−1)vec(Vi)=vec(Gi−1Vi(Ai−1)T)=vec(Gi−1ViAi−1)=vec(E[gi⋅giT]−1ViE[ai⋅aiT]−1)
3. Kronecker
3.1. Definition
A⊗B=a11Ba21B⋮am1Ba12Ba22B⋮am2B⋯⋯⋱⋯a1nBa2nB⋮amnB
3.2. Properties
vec(uvT)=v⊗u
(A⊗B)T=(AT⊗BT)
(A⊗B)(AT⊗BT)=AAT⊗BBT
(A⊗B)−1=A−1⊗B−1
(A⊗B)vec(X)=vec(BXAT)
(A+bcT)−1=A−1+1−cTA−1bA−1bcTA−1
(A+bcT)−1d=A−1d+1−cTA−1bA−1bcTA−1d
(F−∂θ∂L∂θ∂LT)−1d=F−1d+1−∂θ∂LTF−1∂θ∂LF−1∂θ∂L∂θ∂LTF−1d=F−1d+(1−∂θ∂LTF−1∂θ∂L∂θ∂LTF−1d)F−1∂θ∂L=F−1d+(1−∂θ∂LT(F−1∂θ∂L)∂θ∂LT(F−1d))(F−1∂θ∂L)