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 微博:张夏天_机器学习