分布式机器学习

0 人工智能 机器学习 模式识别 数据挖掘 CV IR NLP 语音识别

人工智能可以看做一个产品词汇,或者科普词汇,核心就是机器学习

机器学习:监督学习 + 非监督学习 + 强化学习

               监督学习 = 分类 + 回归     目前最为重要

               非监督学习 = 聚类 + 降维  (数据的预处理)

               强化学习 = sarsa + Qlearn  (主要用在下棋)

模式识别 = 机器学习 + 特征工程

数据挖掘 = 机器学习 + 数据预处理 (主要针对表格数据也就是结构化数据)

cv 机器视觉 是一类与视觉相关研究的集合,图像分类 目标检测 图像分割等会用到机器学习方法

IR 信息检索 就是搜索引擎运行的原理,文本分类 和 rank 模块会用到机器学习

NLP 语音识别 不太熟悉,但也是会用到机器学习的算法

 

1 机器学习与分布式机器学习

机器学习是一个纯应用数学问题,主要用到 微分(BP) 线性代数 概率 数理统计 数值分析 等数学知识

分布式机器学习是一个工程问题,是使用并行计算大数据等技术加速机器学习的训练过程,计算机一切知识如网络 操作系统 计算机体系都可以使用

 

2 机器学习中的监督学习

监督学习的应用范围最广,所以也最重要

比如搜索引擎中的文本分类,搜索结果排序与CTR, 打车软件中的订单与司机的成交率预测, 反作弊过程中对结果的预测, 无人车中的目标检测与车道线识别等

常用方法包括 LR 逻辑回归, svm 支持向量机, EM 集成学习, 神经网络

深度学习主要就是神经网络中层数较多方法,如针对视觉较为有效的CNN

深度学习并不是万能方法,目前只是针对图像 nlp 语音 文本较为有效,而对于互联网上的绝大多数数据---结构化数据(表格数据), 集成学习的方法更加有效。

对于图像 cnn的方法已经证明比传统方法要更加有效的多。

 

3 表格VS图像

表格 ---> XGboost ---> spark ---> kaggle

image ---> cnn ---> pytorch horovod ---> imageNet

4 spark 为什么不能很好的支持深度学习呢?

参数太多,一个AlexNet有几千万个参数需要训练(AlexNet是比较初期的模型),spark将参数存储在driver上用广播的方式分发参数,通信复杂度非常高,同时driver内存有限, spark如果将参数存储成为RDD,参数要先收集会driver再分发,通信复杂度更高,所以tensorflow推出了参数集群的方式,但是有更好的方式做分布式训练就是基于ring-allreduce的方式,如horovod还有pytorch自带的MPI。但是spark还是可以很好的支持 random forest ,adaboost, GBDT, XGboost这些方法的,而且目前结构化数据用这些方法效果非常好。 

posted on 2020-03-01 19:51  钻研spark  阅读(953)  评论(0)    收藏  举报

导航