Lanczos Algorithm and it's Parallelization Stragegy
由于写了降维的一个系列算法分析,本来以为对这个Lanczos算法会理解一点,但是还是不知道讲了什么,最多的就是会如何调用,然后出结果,所以就翻译官网的相关内容。本篇翻译来自Dimensional Reduction 中的Lanczos Algorithm和Parallel Stragegy部分。
Lanczos Algorithm:
Lanczos算法就是被设计用来做特征分解的,和其他类似的算法一样,获得的奇异向量都是很接近的(这里的翻译可能不对,immediate翻译为很快?和其他类似算法一样,获得奇异向量很快?这样翻译?)。矩阵A的奇异向量就是A^t * A 或者 A * A^t的特征向量。(这里A^t应该是矩阵A的转置么?特征向量应该是只有N*N的矩阵才有的,只有A的转置乘以A才能达到矩阵A是一个N*N的正方矩阵,这里A^t没搞懂是什么意思)。Lanczos算法使用一个种子向量v(其实这个V应该按照前面分析的理解应该就是那个初始化的13个根号13了,即列数个列数开根号),然后不断的乘以A得到v'=A.times(v)。(然后减去前一个v''的值,得到一个辅助的投影矩阵)。一般情况下矩阵A不是一个N*N的正方矩阵(更一般的情况,是非对称的),那么就要不断使用v乘以A * A^t,在mahout中对等的方法是A.timeSquared(v),(timesSquared方法只是一个近似值:改变A*A^t.times(v)的求和顺序,就可以只把A矩阵的行传一次而不是两次?啥意思?不懂);
k次循环后,v_i=A.timesSquared(v_(i-1)),一个k*k的对角矩阵(前面提到的辅助投影矩阵)就会被生成了,(首先应该是由对角矩阵和basis矩阵相乘得到奇异矩阵,然后使用奇异矩阵和A矩阵相乘得到A的近似矩阵,但是basis 矩阵是从哪里来的?)然后一个和A矩阵很近似但低维度的矩阵就可以生成了。k表示什么?k是矩阵A频谱的延伸(这个啥意思?):前面几个向量代表了很大成分的奇异向量,后面的几个向量则表示的成分比较小。一个比较好的方法是首先生成3*k个奇异向量,然后只取前面成分比较大的三分之一来做计算(成分的含义:在前面的计算中可以看到singularVector都是有一个singular vlaue的,应该是由这个singularvalue来判断哪个靠前,然后成分就大);
Parallel Stragegy:
Lanczos算法是一个并行的很尴尬的算法:一个矩阵乘以一个向量只能是按照一行来计算,然后在最后获得总的结果。当真正的执行A.times(v)的时候,最后是不会有冲突或者同步问题的(针对每一个向量,输出都是分开的);而且多核的方法会变得很快,在hadoop上面有一些可以加速算法的优化方案。在矩阵A是不对称的情况下,A.timesSquare(v)确实需要同步,所以要延迟写入硬盘的时间知道mapper关闭。如果在设置了Combiner的话,那么加速的瓶颈就只是单个的节点加速了。(意思应该是说,如果设置了combiner的话,那么集群的加速效果应该很好了,所以能优化的地方就剩下单个节点的优化了)。
汗,感觉翻译的还是不太懂,应该是很不懂!!!
Lanczos Algorithm and it's Parallelization Stragegy的更多相关文章
- 机器学习中的矩阵方法04:SVD 分解
前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...
- TOP 10开源的推荐系统简介
最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重量级的适用于工业系统的 Mahout.Oryx.Eas ...
- Samples for Parallel Programming with the .NET Framework
The .NET Framework 4 includes significant advancements for developers writing parallel and concurren ...
- 多流向算法GPU并行化
和导师在Computers & Geosciences上发表的关于多流向算法GPU并行化的文章(SCI, IF=1.834). 论文:http://sourcedb.igsnrr.cas.cn ...
- 机器学习-特征选择 Feature Selection 研究报告
原文:http://www.cnblogs.com/xbinworld/archive/2012/11/27/2791504.html 机器学习-特征选择 Feature Selection 研究报告 ...
- C++开源库集合
| Main | Site Index | Download | mimetic A free/GPL C++ MIME Library mimetic is a free/GPL Email lib ...
- TOP 10 开源的推荐系统简介
最 近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重 量级的适用于工业系统的 Mahout.Oryx ...
- 挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法
转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...
- PE Checksum Algorithm的较简实现
这篇BLOG是我很早以前写的,因为现在搬移到CNBLOGS了,经过整理后重新发出来. 工作之前的几年一直都在搞计算机安全/病毒相关的东西(纯学习,不作恶),其中PE文件格式是必须知识.有些PE文件,比 ...
随机推荐
- Spring Boot 2.0 + zipkin 分布式跟踪系统快速入门
原文:https://www.jianshu.com/p/9bfe103418e2 注意 Spring Boot 2.0之后,使用EnableZipkinServer创建自定义的zipkin服务器已经 ...
- C#编程(四十八)----------列表
C#中的List C#中deList怎么样?List<T>类是ArrayList类的泛型等效类,该类使用大小可按需动态增长的数组实现List<T>泛型接口. 泛型的好处:它为使 ...
- UnityEngine.Time类属性解析
UnityEngine.Time类包含的属性: public static int captureFramerate { get; set; } public static float deltaTi ...
- java解压缩zip和rar的工具类
package decompress; import java.io.File; import java.io.FileOutputStream; import org.apache.tools.an ...
- 解决VS2010连接VSS时,Access to file"\\***\rights.dat" denied
1.通过VS2010打开项目链接VSS后,提示 Access to file"\\***\rights.dat" denied. 该提示是指没有网络访问的权限,用户要在共享文件夹有 ...
- sql语句 update 字段=字段+字符串
update aa set name=concat('x',name) SELECT OWNER,phone ,COUNT(fc_hc) as c from tb_p GROUP BY fc_hc H ...
- WinForm 自动完成控件实例代码简析
在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了. TextBox控件本身是提供了一个自动提示功能,只要用上这三个属性: AutoComple ...
- Kubernetes中Pod的健康检查
本文介绍 Pod 中容器健康检查相关的内容.配置方法以及实验测试,实验环境为 Kubernetes 1.11,搭建方法参考kubeadm安装kubernetes V1.11.1 集群 0. 什么是 C ...
- Spearman Rank(斯皮尔曼等级)相关系数
转自:http://blog.csdn.net/wsywl/article/details/5859751 1.简介 在统计学中,斯皮尔曼等级相关系数以Charles Spearman命名,并经常用希 ...
- 【转】搜狗开源内部项目管理平台Cynthia意欲何为
FROM : http://blog.csdn.net/dj0379/article/details/38356825 目前,在项目管理与缺陷管理系统上,中国的中小开发团队基本都在使用国外产品,在理念 ...