从今天开始正式入门【分布式机器学习】啦~~~
由于研一的科研项目中我的课题是
一、梯级水电站海量多源异构数据高效存储方法
二、提出梯级水电站时空大数据的并行处理框架
所以我就一直跟并行处理框架过不去,各种资料搜关键词也是搜“并行处理”,没有想到分布式这一层。经过一段时间的研究之后发现【分布式机器学习】这个领域的研究成果还是挺多的,所以打算正式入门。
一、书籍推荐
- 《分布式机器学习——算法、理论与实践》 作者:刘铁岩 陈薇 王太峰 高飞
本书对分布式机器学习这一领域进行了全面而深入的介绍,并且为进一步的研究和时间储备必要的知识和思路。 - 《Spark MLlib机器学习——算法、源码及实战详解》 作者:黄美灵
本书系统、全面、深入地解析Spark MLlib机器学习的相关知识,以源码为基础,兼顾算法、理论与实战,帮助读者在实际工作中进行MLlib的应用开发。(书中提到的算法都是基于Scala语言) - 《PySpark实战指南——利用Python和Spark构建数据密集型应用并规模化部署》 作者:托马兹·卓巴斯[美]
本书系统讲解如何在Spark2.0上高效运用Python来处理数据并建立机器学习模型,帮助读者开发并部署高效可拓展的实时Spark解决方案。
二、分布式机器学习(DML)基础
- DML难点
分布式机器学习涉及如何分配训练任务,调配计算资源,协调各个功能模块,以达到训练速度与精度的平衡。也就是如何划分训练数据、分配训练任务、调配计算资源、整合分布式的训练结果,以达到训练速度和训练精度的完美平衡。(这几点可以作为大论文的创新点方向) - DML系统的主要模块
(1)数据和模型划分模块
(2)单机优化模块
(3)通信模块
(4)模型和数据聚合模块
通过五花八门的组合,其优劣性需要根据机器学习任务本身(比如模型和优化算法的类别)、计算机集群的属性(比如单机运算能力和通信带宽等)以及最终的评价准则(比如精度优先还是速度优先)等来进行取舍。
分布式机器学习与其他分布式系统不同,我们需要考虑它对数据的鲁棒性,对算法精度的特别要求,以及机器学习的泛化过程等。因而,如果想把分布式机器学习做好,需要把系统和统计、优化等知识有机的结合在一起。 - 数据并行vs模型并行
数据并行的主要思想:将数据进行划分&#