最近阅读了一篇无觅网上的文章,题目叫"Neural network ,manifolds ,topology",作者尝试从流形的角度解释deep neural network。Blog的链接为:http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/
在里面作者针对每一层的feedforward projection W,进行了讨论。其中一点就是W的行列式。作者认为W的行列式如果为0,将会dataset gets collapsed on some axis。我一直不是十分理解这句话,于是就做了一个最简单的实验:
假设有3个两维的数据点data=[5 6 1 ;2 3 1],然后线性变化矩阵分别是A=[ 1 2; 2 4];B= [1 7 ; 0 2],|A|=0,|B|=2.
我们有C1=A*data ; C2 = B*data;
得到的效果如下所示,菱形点表示的是data中的三个数,星形点表示的C1中的数据点,十字星点表示的是C2中的数据点:
为了更加清楚的表示他们的关系,我将各个点各自连接起来:
我们发现,由于矩阵A是低秩的,其行列式为0,那么它将输入数据(红色的菱形块)之间的三角形关系全部映射到了本身的坐标轴y=2x上去了(蓝色星形上的直线)(实现了降维).而B矩阵由于其行列式不为0,相当于对三角形进行了一定的拉伸和旋转,得到了绿色十字星所示的效果(仍然是三角形),仍然保证了拓扑关系的不变性。
很有意思的运算,因为PCA就是属于其中的一个情况。