-5
您好我只是想知道要寫說明如何實現詹森 - 佈雷格曼LogDet divegence一個MATLAB代碼的方式,我只是有問題,來實現它也是,如果有一個文件解釋他的數學,伊利諾伊州如此感謝詹森 - 佈雷格曼LogDet發散
您好我只是想知道要寫說明如何實現詹森 - 佈雷格曼LogDet divegence一個MATLAB代碼的方式,我只是有問題,來實現它也是,如果有一個文件解釋他的數學,伊利諾伊州如此感謝詹森 - 佈雷格曼LogDet發散
據我所知(兩個對稱正定矩陣)的功能是
JL(X,Y) = log(det((X+Y)/2)) - log(det(X*Y))/2
= log(det((X+Y)/2)) - (log(det(X)) + log(det(Y)))/2
我想這樣做的方式是計算X,Y的喬列斯基factorisations和(X + Y)/ 2,即找到下三角矩陣L,M,N,以便
X = L*L'
Y = M*M'
(X+Y)/2 = N*N'
(我很遺憾地說我不知道matlab,但必然會有一個計算cholesky因式分解的函數)。
,然後使用決定因素和日誌的特性,我們有
JL(X,Y) = 2*log(det(N)) - log(det(L)) - log(det(M)))
對於下三角矩陣K,我們有
log(det(K)) = log (Prod(K[i,i], i=1..n))
= Sum (log(K[i,i]), i=1..n))
我想這可能是最好使用第二種形式,即使它是速度較慢,因爲有可能是下溢的風險的產品,如果矩陣很大,也許做的最好的事情是計算
JL(X,Y) = Sum (2*log(N[i,i]) - log(L[i,i]) - log(M[i,i]), i=1..n)
= Sum(log(N[i,i]*N[i,i]/(L[i,i]*M[i,i])), i=1..n)
注意,所有這一切都假定喬列斯基factorisations可以計算,即該矩陣X和Y是嚴格正定的,但隨後的功能JL在這種情況下,只有限定。
您對Jensen-Bregman LogDet潛水[原文如此]零參考?你怎麼知道它是什麼? – John
您是否理解足夠好的算法來編寫僞代碼? – Cecilia