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文件,比 ...
随机推荐
- 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)
在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套 ...
- Linux tar包相关命令
tar [-j|-z][cv][-f 新建的文件名] filename... <==打包与压缩 tar [-j|-z][tv][-f 新建的文件名] <==查看文件名 tar [-j| ...
- ibatis.net:第二天,Hello,World ?
背景 本文的内容全部来自于官方的文档,此处仅仅为了强化记忆. 项目结构 Properties.config <?xml version="1.0" encoding=&quo ...
- Material Designer的低版本兼容实现(四)—— ToolBar
Toolbar其实是一个ActionBar的变体,大大扩展了Actionbar.我们可以像对待一个独立控件一样去使用ToolBar,可以将它放到屏幕的任何位置,不必拘泥于顶部,还可以将它改变高度 ...
- Material Designer的低版本兼容实现(一)—— 简介 & 目录
很长一段时间没写东西了,其实是因为最近在研究Material Designer这个东西,熬夜熬的身体也不是很好了.所以就偷懒没写东西,这回开的这个系列文章是讲如何将Material Designer在 ...
- Universal-Image-Loader解析(二)——DisplayImageOptions的详细配置与简单的图片加载
在使用这个框架的时候,我们必须要配置一个DisplayImageOptions对象来作为ImageLoader.getInstance().displayImage()中的参数,所以很有必要讲解这个对 ...
- Easyui 页面设置加载完成之后,满屏
js文件: if(top.location!=self.location){ top.location.href=self.location; }
- Matlab中使用LaTeX
Matlab作为数据计算和处理的数学语言(软件),而LaTex作为出版界的重要排版语言(软件),尤其是对数学公式的排版功能特别强.在Matlab中有两种方法使用LaTeX:1)对Matlab生成的图形 ...
- Forward secrecy
In cryptography, forward secrecy (FS), also known as perfect forward secrecy (PFS), is a property of ...
- .Net-using-Class:String 类
ylbtech-.Net-using-Class:String类 1. 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b ...