最近在看Yang大牛稀疏表示论文的代码,发现里面很多的操作的用到了矩阵的列归一化,这里谈一谈列归一化的实现,以及其带来的好处。
矩阵的列归一化,就是将矩阵每一列的值,除以每一列所有元素平方和开根号,这样做的结果就是,矩阵每一列元素的平方和为1了。
举个例子,矩阵[1,2,3]’,将其归一化的结果就是[0.2673,0.5345,0.8018]。其平方和就为1了。
Yang在代码中,将那些平方和为0,以及平方和很小的列向量的剔除了,不用做训练,所以最后训练样本矩阵中的每一列就是一个训练图像块,行数代表了图像块的大小。
之前一直不清楚,为什么要做这么多的归一化,直到想到了对称矩阵(请原谅数学不好的我,在理解的路上磕磕绊绊)。
假设通过上述归一化处理的样本集合为X,x的没一列的平方和都是1,假设X是25*1000的一个矩阵好了,那么X‘为一个1000*25的矩阵,Yang等人的方法里用到了
A=X’*X。那么通过上面的那些变化,X的每列元素的平方和都是1,那么A的对角线元素都是1,且A是关于对角线对称的。那么A就是一个对角线元素全为1的对称矩阵,而实对称矩阵具有如下的性质:
这就为之后的处理奠定了基础。
版权声明:本文为u010381985原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。