用截断奇异值分解(Truncated SVD)降维

1、SVD的定义

 

2、SVD计算举例

 

3、SVD的一些性质 

4、截断SVD

截断的SVD将参数计数从u*v减少到t(u+v),如果t比min(u,v)小得多,则这一点很重要。

TSVD与一般SVD不同的是它可以产生一个指定维度的分解矩阵,可以实现降维。为了压缩网络,将W对应的单个全连接层替换为两个全连接层,它们之间没有非线性。这些层中的第一层使用权矩阵,第二层使用U。这种简单的压缩方法在ROI数目较大的情况下可以很好地加速全连接层的计算。

5、python中的使用

  1.  from sklearn.decomposition import TruncatedSVD
  2.  svd = TruncatedSVD(2)
  3.  iris_transformed = svd.fit_transform(iris_data)
  4.  iris_data[:5]

原文地址:https://www.cnblogs.com/wszme/p/14957753.html