In[]:=
deploy
Wed 25 Sep 2019 22:42:53
Isserlis formula for KFAC
Isserlis formula for KFAC
Util
Util
Experiment
Experiment
In[]:=
XY=generateX[4,1/2,10000000];ArrayPlot[cov@XY]
Out[]=
Split into x, y vectors, do z = xy
In[]:=
{X,Y}=splitWidth[XY,{2,2}];Z=khatriRao[X,Y];covZ=cov[Z];covZ//MatrixFormcovZ//ArrayPlot
Out[]//MatrixForm=
1.50023 | 1.00067 | 1.00056 | 0.750697 |
1.00067 | 1.50113 | 0.750697 | 1.00098 |
1.00056 | 0.750697 | 1.49965 | 0.999951 |
0.750697 | 1.00098 | 0.999951 | 1.50013 |
Out[]=
Verify Isserlis formula
In[]:=
covZ0=cov[X]cov[Y]+2*cov[X,Y]cov[Y,X];covZ0//MatrixFormcovZ0//ArrayPlotPrint["Isserlis expansion error=",Norm[covZ0-covZ]]
Out[]//MatrixForm=
1.49963 | 0.999944 | 1.00049 | 0.750399 |
1.00031 | 1.49967 | 0.75076 | 1.0004 |
1.00013 | 0.750038 | 1.4999 | 0.999963 |
0.750399 | 1.00004 | 1.00032 | 1.49994 |
Out[]=
Isserlis expansion error=0.00224311
Explicit solution
Explicit solution
In[]:=
G={{1,1},{1,1}};Print["G=",G//MatrixForm];sol0=Inverse[cov[Z]].vec[G]//unvec;Print["preconditioned G=",sol0//MatrixForm]
G=
1 | 1 |
1 | 1 |
preconditioned G=
0.235213 | 0.235495 |
0.234672 | 0.235342 |
Compact solution
Compact solution
LetAbecovarianceofX,BcovarianceofYandCthecrosscovariance.TakeXbethesolutionofofthefollowingequation:BX+2XC=
-1
C
-1
A
-1
C
-1
GA
In[]:=
A=cov[X,X];B=cov[Y,Y];C=cov[Y,X];sol1=LyapunovSolve[.B,2C.,.G.];sol1//MatrixForm
-1
C
-1
A
-1
C
-1
A
Out[]//MatrixForm=
0.235299 | 0.235435 |
0.235088 | 0.235224 |
In[]:=
Norm[sol0-sol1]
Out[]=
0.000444065