由于写了降维的一个系列算法分析,本来以为对这个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的更多相关文章

  1. 机器学习中的矩阵方法04:SVD 分解

    前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...

  2. TOP 10开源的推荐系统简介

    最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重量级的适用于工业系统的 Mahout.Oryx.Eas ...

  3. Samples for Parallel Programming with the .NET Framework

    The .NET Framework 4 includes significant advancements for developers writing parallel and concurren ...

  4. 多流向算法GPU并行化

    和导师在Computers & Geosciences上发表的关于多流向算法GPU并行化的文章(SCI, IF=1.834). 论文:http://sourcedb.igsnrr.cas.cn ...

  5. 机器学习-特征选择 Feature Selection 研究报告

    原文:http://www.cnblogs.com/xbinworld/archive/2012/11/27/2791504.html 机器学习-特征选择 Feature Selection 研究报告 ...

  6. C++开源库集合

    | Main | Site Index | Download | mimetic A free/GPL C++ MIME Library mimetic is a free/GPL Email lib ...

  7. TOP 10 开源的推荐系统简介

      最 近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重 量级的适用于工业系统的 Mahout.Oryx ...

  8. 挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法

    转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...

  9. PE Checksum Algorithm的较简实现

    这篇BLOG是我很早以前写的,因为现在搬移到CNBLOGS了,经过整理后重新发出来. 工作之前的几年一直都在搞计算机安全/病毒相关的东西(纯学习,不作恶),其中PE文件格式是必须知识.有些PE文件,比 ...

随机推荐

  1. 为什要使用预编译SQL?(转)

    本文转自https://www.cnblogs.com/zouqin/p/5314827.html 今天在研发部技术大牛的指点下,我终于明白了为什么要使用SQL预编译的形式执行数据库JDBC:

  2. Android控件之ImageSwticher

    Android控件之ImageSwticher 1. ImageSwticher介绍 ImageSwitcher是图片切换的控件,它能实现图片切换时的动画效果,包括图片导入效果.图片消失效果等等.An ...

  3. View Programming Guide for iOS_读书笔记

    关于Window的定义的要点 Windows do not have any visible content themselves but provide a basic container for ...

  4. C++笔记:头文件的作用和写法

    from://http://ceeji.net/blog/c%E7%AC%94%E8%AE%B0%EF%BC%9A%E5%A4%B4%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD% ...

  5. Exchange2003/2010共存模式环境迁移

    一.我司的exchange2010架构设计基于中心的模式进行.而且基于exchange2010sp3进行. 基于dag三台架构设计进行,截止到5月14日,北京局基于2台dag进行,大连局基于excha ...

  6. 【hta版】获取AppStore上架后的应用版本号

    之前写过一篇文章:获取AppStore上架后的应用版本号,那一篇文章使用node.js实现,存在的问题就是如果在没有安装node.js运行环境下是无法运行的,而且该程序依赖request模块,为了方便 ...

  7. gradle新建工程,多项目依赖,聚合工程

    感谢gradle完全的文档.开始完全没想过新建项目会弄我一天时间,都说gradle构建项目简单,我现在回复他们呵呵. gradle是个非常复杂的工具,从他的完整包80M和72章官方文档就可以看出一二. ...

  8. 轻松看懂Java字节码

    java字节码 计算机只认识0和1.这意味着任何语言编写的程序最终都需要经过编译器编译成机器码才能被计算机执行.所以,我们所编写的程序在不同的平台上运行前都要经过重新编译才能被执行. 而Java刚诞生 ...

  9. [转]Infobright是一个与MySQL集成的开源数据仓库

    [文章作者:张宴 本文版本:v1.1 最后修改:2010.05.18 转载请注明原文链接:http://blog.zyan.cc/infobright/] Infobright是一个与MySQL集成的 ...

  10. 也给我的E420拆机清清灰尘

    用了两年,天气燥热,是得拆开清理下了,E430清理非常方便,拆开后面挡板就行,E420就麻烦很多,需要全部拆下,关于E420的拆机网上已经有非常详细的教程了,我这里做一些补充,有兴趣的同学欢迎参考. ...