Fregata:基于Spark的无参数快速大规模机器学习算法库
2020-02-27 240浏览
- 1.Fregata:轻量级大规模机器学习算法库 张夏天 Chief Data Scientist, TalkingData
- 2.
- 3.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 4.Fregata:轻量级大规模机器学习算法库 大规模机器学习两个挑战 计算瓶颈 调参困难 张夏天
- 5.Fregata:轻量级大规模机器学习算法库 张夏天 经典算法的计算瓶颈 计算复杂度随数据规模超线性增长 Cheng T. Chu, Sang K. Kim, Yi A. Lin, Yuanyuan Yu, Gary R. Bradski, Andrew Y. Ng, Kunle Olukotun, Map-Reduce for Machine Learning on Multicore, NIPS, 2006.
- 6.Fregata:轻量级大规模机器学习算法库 梯度下降法 随机梯度下降法 张夏天
- 7.Fregata:轻量级大规模机器学习算法库 三大计算瓶颈 IO开销 通信开销 模型规模 张夏天
- 8.Fregata:轻量级大规模机器学习算法库 Map Reduce IO开销: 可通过内存/SSD加速来缓解 通信开销: 无法解决 模型规模: 无法解决 张夏天
- 9.Fregata:轻量级大规模机器学习算法库 Parameter Server IO开销: 可通过内存/SSD加速来缓解 通信开销: 通过异步更新部分缓解 模型规模: 分布式管理,解除了模型规模限制 张夏天
- 10.Fregata:轻量级大规模机器学习算法库 调参困难 参数搜索空间大 对经验依赖比较大 张夏天
- 11.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 12.Fregata:轻量级大规模机器学习算法库 张夏天 Fregata项目https://github.com/TalkingData/Fregata
- 13.Fregata:轻量级大规模机器学习算法库 Fregata项目 基于Spark, 目前支持1.6 目前实现了四种算法 Logistic Regression Combine Features Logistic Regression Softmax Random Decision Trees 张夏天
- 14.Fregata:轻量级大规模机器学习算法库 Fregata项目的特点 速度快 只需要扫描一遍数据 调参容易 LR和Softmax算法不需要调参 RDT调参容易 张夏天
- 15.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 16.Fregata:轻量级大规模机器学习算法库https://arxiv.org/abs/1611.03608Greedy Step Averaging优化方法 张夏天
- 17.Fregata:轻量级大规模机器学习算法库 GSA优点 SGD方法需要调学习率 衍生方法Adadelta, ADMM, SVRG同样存在着 调参的问题,有些还需要付出更大的存储代价 GSA 方法不需要调参 张夏天
- 18.Fregata:轻量级大规模机器学习算法库 GSA算法流程图 张夏天
- 19.Fregata:轻量级大规模机器学习算法库 Greedy Step方法 张夏天
- 20.Fregata:轻量级大规模机器学习算法库 Averaging 策略 张夏天
- 21.Fregata:轻量级大规模机器学习算法库 Logistic Regression & Softmax via GSA Logistic Regression 学习率公式 Softmax学习率公式 张夏天
- 22.Fregata:轻量级大规模机器学习算法库 GSA LR & Softmax 实验 – 数据 张夏天
- 23.Fregata:轻量级大规模机器学习算法库 张夏天 GSA LR & Softmax 实验 – 对比算法和总体结果 对比算法 SGD, Adadelta, SCSG
- 24.Fregata:轻量级大规模机器学习算法库 GSA LR & Softmax 实验 – GSA vs SGD 张夏天
- 25.Fregata:轻量级大规模机器学习算法库 张夏天 GSA LR & Softmax 实验 – GSA vs Adadelta
- 26.Fregata:轻量级大规模机器学习算法库 GSA LR & Softmax 实验 – GSA vs SCSG 张夏天
- 27.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 28.Fregata:轻量级大规模机器学习算法库 大规模机器学习并行化方法 梯度平均 η 𝑤𝑡 = 𝑤𝑡−1 − 𝑛 𝑛 𝛻𝑄𝑖 (𝑤𝑡−1 ) 𝑖=0 模型平均 1 𝑤𝑡 = 𝑛 𝑛 𝑤𝑡−1,𝑖 𝑖=0 结果平均 𝑦𝑗 = 1 𝑚 𝑚 𝑦𝑗,𝑘 𝑘=0 张夏天
- 29.Fregata:轻量级大规模机器学习算法库 张夏天 模型平均的收敛性 当N个样本均匀分配给m台 机器训练出m个p维的模 型,n=N/m时,对线性模 型且当n>>p时逼近效果是 比较好的,当p很大时,误 差和m呈线性关系。对非 线性模型,误差包含二阶 项,可能会很大。 Rosenblatt J D, Nadler B. On the optimality of averaging in distributed statistical learning[J]. Information and Inference, 2016: iaw013 MLA
- 30.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 31.Fregata:轻量级大规模机器学习算法库 LR 实验结果1 张夏天
- 32.Fregata:轻量级大规模机器学习算法库 LR实验结果2 Lookalike 300million X 20 million dataset 0.01% postive class instances Epsilon 400000X 2000 dataset 张夏天
- 33.Fregata:轻量级大规模机器学习算法库 Softmax实验结果 - MNIST 张夏天
- 34.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 35.Fregata:轻量级大规模机器学习算法库 张夏天 Maven配置com.talkingdata.fregatacore0.0.1com.talkingdata.fregataspark0.0.1SBT配置 libraryDependencies += "com.talkingdata.fregata" % "core" % "0.0.1" libraryDependencies += "com.talkingdata.fregata" % "spark" % "0.0.1"
- 36.Fregata:轻量级大规模机器学习算法库 LR算法示例 import fregata.spark.data.LibSvmReader import fregata.spark.metrics.classification.{AreaUnderRoc, Accuracy} import fregata.spark.model.classification.LogisticRegression import org.apache.spark.{SparkConf, SparkContext} …… //加载数据 val (_, trainData) = LibSvmReader.read(sc, trainPath, numFeatures.toInt) val (_, testData) = LibSvmReader.read(sc, testPath, numFeatures.toInt) //训练模型 val model = LogisticRegression.run(trainData) val pd = model.classPredict(testData) //测试AUC指标 val auc = AreaUnderRoc.of( pd.map{ case ((x,l),(p,c)) => p -> l }) 张夏天
- 37.Fregata:轻量级大规模机器学习算法库 大纲 大规模机器学习的挑战 Fregata的优点 GSA算法介绍 GSA算法在Spark上的并行化 与MLLib的对比 如何使用Fregata Fregata的发展目标 张夏天
- 38.Fregata:轻量级大规模机器学习算法库 Fregata的目标 轻量级 高性能 易使用 张夏天
- 39.邮箱:xiatian.zhang@gmail.com 微博:张夏天_机器学习