jindongwang / transferlearning

Transfer learning / domain adaptation / domain generalization / multi-task learning etc. Papers, codes, datasets, applications, tutorials.-迁移学习
http://transferlearning.xyz/
MIT License
13.28k stars 3.8k forks source link

关于TCA中特征向量求解的问题 #80

Closed Shoesy closed 5 years ago

Shoesy commented 5 years ago

王老师,您好!有个问题想向您请教一下。在您TCA的代码中,写到 a = np.linalg.multi_dot([K, L, K.T]) + self.lamb np.eye(n_eye) b = np.linalg.multi_dot([K, H, K.T]) w, V = scipy.linalg.eig(a, b) 看TCA论文, 这应该是在求解矩阵(a^-1)b的特征值所对应的特征向量,考虑到a不一定可逆,把它转换成广义特征值问题,变成 bV = aVw 查阅资料,在MATLAB中,eig(a, b)用于解决 aV = bVw (原文是[V,D] = EIG(A,B) produces a diagonal matrix D of generalized eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that AV = BV*D.)python中scipy.linalg.eig的功能和matlab一样。 如果这样的话,代码不是应该写成 scipy.linalg.eig(b, a)吗?为什么是 scipy.linalg.eig(a, b)呢?

jindongwang commented 5 years ago

这个式子解决的就是av=bvw的问题,你对应TCA和JDA的公式再看一下吧