上节课除了说了softmax与HGR,还介绍了ACE算法的拓展:多变量下的ACE。
之前的ACE是从两个变量之间的信息推导出来的,而这次要拓展到d个变量。可以看到的是,这时候我们没有把哪个变量当作标签了,因此这是非监督学习。实际上我认为之前的ACE也可以说是非监督学习。分析到信息论层面非监督学习和监督学习联系到一起了,它们之间的界限变得比较模糊了。
现在,有d个离散变量:.类似于之前,我们要做的是:
$$
\max \mathbb{E}[\sum_ { i \ne j} f_i(X_i) f_j(X_j)]\\
s.t. \mathbb{E}[f_i(X_i)] = 0, \mathbb{E}[f_i^2(X_i)] = 1
$$
这时候的.这里的表示的是一个矩阵:
而定义矩阵为:
$$
\Psi = \begin{bmatrix}
\Psi_1^T,\Psi_2^T,...,\Psi_d^T
\end{bmatrix}^T\\
\Phi = \begin{bmatrix}
\Phi_1^T,\Phi_2^T,...,\Phi_d^T
\end{bmatrix}^T
$$ $[_ {i j} f_i(X_i)f_j(X_j)] = ^T B $ 由于:
所以我们可以得到:,也就是对于每个变量我们只需要学习一个函数即可。
下面是多变量ACE算法的过程: 1.
选择,这些函数为normalize后的函数
normalize.
直到最后收敛。
现在我想说明,实际上如果限定f为线性映射,那么得到的结果实际上就是PCA算法。
PCA想做的是:
而:
由于normalize, 我们可以使得:
而:
而这正是MACE在做的事情。不过PCA只能发现线性关系,因此它要求f为线性映射。
更多细节请参考:
An
Information-theoretic Approach to Unsupervised Feature Selection for
High-Dimensional Data