第1章 大规模机器学习:引言 1
1.1 机器学习基础 2
1.2 大规模机器学习的缘由 4
1.2.1 大量的数据实例 4
1.2.2 高输入维数 5
1.2.3 模型和算法的复杂性 5
1.2.4 对推断时间的约束 5
1.2.5 预测串 6
1.2.6 模型选择和参数搜索 6
1.3 在并行分布式计算中的关键概念 6
1.3.1 数据并行化 6
1.3.2 任务并行化 7
1.4 平台的选择和折中 8
1.5 性能方面的考虑 9
1.6 本书的组织结构 11
1.6.1 第一部分:大规模机器学习的框架 12
1.6.2 第二部分:监督和非监督学习算法 13
1.6.3 第三部分:可替代的学习环境 15
1.6.4 第四部分:应用 16
1.7 文献注解 18
参考文献 19
第一部分 大规模机器学习的框架 22
第2章 MapReduce及其在决策树集的大规模并行学习中的应用 22
2.1 序言 23
2.1.1 MapReduce 24
2.1.2 树模型 26
2.1.3 树模型的学习 27
2.1.4 回归树 29
2.2 PLANET的例子 30
2.2.1 组成元素 30
2.2.2 继续讨论本例子 31
2.3 技术细节 32
2.3.1 MR_Expand节点:扩展单一节 点 32
2.3.2 MR_InMemory:内存中的树归纳 36
2.3.3 控制器的设计 37
2.4 集成学习 38
2.5 工程方面的问题 40
2.5.1 提前调度 40
2.5.2 指纹法 41
2.5.3 可靠性 41
2.6 试验 42
2.6.1 设置 42
2.6.2 结果 43
2.7 相关工作 46
2.8 结论 48
致谢 48
参考文献 48
第3章 使用DryadLINQ的大规模机器学习 52
3.1 使用LINQ操作数据集 52
3.2 用LINQ实现k-均值 55
3.3 使用DryadLINQ在集群上运行LINQ 56
3.3.1 Dryad 57
3.3.2 DryadLINQ 57
3.3.3 MapReduce与DryadLINQ 60
3.3.4 k-均值聚类的DryadLIN实现 61
3.3.5 DryadLINQ实现决策树生成 63
3.3.6 应用举例:奇异值分解 66
3.4 应用经验总结 70
3.4.1 DryadLINQ的优势 70
3.4.2 DryadLINQ的缺点 70
3.4.3 应用实例 71
3.4.4 获取代码 72
参考文献 72
第4章 IBM并行机器学习工具箱 74
4.1 数据并行的结合-交换计算 75
4.2 API和控制层 76
4.3 分布状态算法的API扩展 81
4.4 控制层的实现和优化 82
4.5 并行核k-均值 83
4.6 并行决策树 86
4.7 并行频率模式挖掘 88
4.8 总结 91
参考文献 92
第5章 机器学习算法的一致性细粒度数据并行计算 95
5.1 GP-GPU概述 97
5.2 GPU上的一致性细粒度数据并行计算 99
5.2.1 数据并行计算 99
5.2.2 一致性细粒度数据并行设计 101
5.3 k-均值聚类算法 102
5.3.1 k-均值算法的一致性细粒度数据并行化 103
5.4 k-均值回归聚类算法 105
5.5 运行和性能比较 108
5.5.1 k-均值的CPU运行 108
5.5.2 GPU加速的k-均值算法 109
5.5.3 GPU加速的k-均值RC算法 110
5.5.4 处理实际数据时牵涉的问题 111
5.6 结论 111
参考文献 112
第二部分 监督和非监督学习算法 115
第6章 使用不完全Cholesky分解的并行支持向量机 115
6.1 使用不完全Cholesky分解的内点法 119
6.2 PSVM算法 121
6.2.1 并行ICF 121
6.2.2 并行IPM 127
6.2.3 b的计算与回写 128
6.3 实验 129
6.3.1 分类-预测精度 129
6.3.2 可扩展性 130
6.3.3 开销 131
6.4 结论 132
致谢 133
参考文献 133
第7章 使用硬件加速器的大规模并行支持向量机 135
7.1 问题描述 136
7.1.1 求解二次优化问题 138
7.1.2 SMO算法推导 138
7.1.3 工作集的选取 139
7.2 SMO算法实现 139
7.3 微并行(Micro Parallelization)相关文献综述 142
7.4 现有多核系统并行方案 142
7.5 微并行回顾 145
7.6 大规模并行硬件加速器 147
7.6.1 实验数据集 148
7.6.2 数值精度的影响 150
7.6.3 HOST加速器时序 151
7.6.4 其他并行方案 154
7.6.5 加速其他算法 155
7.7 实验结果 155
7.8 结论 156
参考文献 157
第8章 基于提升决策树的大规模排序学习 159
8.1 相关工作 160
8.2 LambdaMART 162
8.3 LambdaMART的分布式实现方法 164
8.3.1 基于特征分布的同步方法 165
8.3.2 基于数据分布的同步方法 167
8.3.3 加入随机化 169
8.4 实验 169
8.4.1 数据 170
8.4.2 评估措施 170
8.4.3 时间复杂度比较 171
8.4.4 准确度比较 174
8.4.5 关于数据分布式LambdaMART的附加讨论 179
8.5 结论及未来工作 180
8.6 致谢 181
参考文献 181
第9章 变换回归算法 183
9.1 分类、回归和损失函数 184
9.2 背景 185
9.3 动机和算法描述 187
9.4 TReg扩展:初始化和终止 191
9.4.1 子基函数计算细节 192
9.4.2 阶段基函数计算细节 195
9.4.3 线搜索优化细节 196
9.5 功能评估 197
9.6 并行性能结果 200
9.6.1 可扩展性分析 200
9.6.2 PML性能优化 200
9.6.3 并行可扩展性结果 201
9.7 总结 202
参考文献 203
第10章 因子图中的并行信度传递算法 204
10.1 因子图中的信度传递 205
10.1.1 信度传递 206
10.1.2 信度传递并行实现的前提条件 208
10.2 共享内存并行信度传递 209
10.2.1 同步(映射化简)信度传递 209
10.2.2 轮询调度信度传递 213
10.2.3 野火信度传递 215
10.2.4 残差信度传递 216
10.2.5 Splash信度传递 217
10.3 多核性能对比 225
10.4 聚类上的并行信度传递 226
10.4.1 因子图和消息的分割 227
10.4.2 分布式设置下算法对比 228
10.5 结论 229
致谢 230
参考文献 230
第11章 隐含变量模型的分布式吉布斯采样 233
11.1 隐含变量模型 233
11.1.1 隐含狄利克雷分布 234
11.1.2 分层狄利克雷过程 236
11.2 分布式推理算法 237
11.2.1 近似分布LDA和HDP 237
11.2.2 异步分布式学习技术 239
11.3 分布式主题模型实验分析 241
11.3.1 分布式算法的准确性 241
11.3.2 现实世界数据集的可扩展性 245
11.4 实际实现指导 246
11.4.1 分布式并行硬件 246
11.4.2 补充加速技术 247
11.5 延伸到贝叶斯网络的分布式推理 249
11.5.1 贝叶斯网络 249
11.5.2 案例:隐马尔可夫模型 252
11.5.3 贝叶斯网络的分布式推理 253
11.6 结论 255
参考文献 255
第12章 基于MapReduce和MPI的大规模谱聚类 259
12.1 谱聚类算法 261
12.2 基于稀疏相似度矩阵的谱聚类 262
12.3 基于稀疏相似度矩阵的并行谱聚类 265
12.3.1 MPI和MapReduce 265
12.3.2 相似度矩阵和最近邻 266
12.3.3 并行特征值分解 268
12.3.4 并行k-均值算法 270
12.4 实验 271
12.4.1 基于稀疏相似度矩阵的聚类质量 272
12.4.2 分布式环境下速度提升及伸缩性 274
12.5 结论 280
参考文献 281
第13章 并行化信息论聚类方法 284
13.1 信息论聚类 286
13.2 并行聚类 288
13.2.1 并行IT-CC 289
13.3 序贯联合聚类 291
13.4 DataLoom算法 292
13.5 执行与实验 297
13.5.1 与序贯联合聚类的比较 298
13.5.2 RCV1数据集 299
13.5.3 Netflix数据集 300
13.6 结论 301
参考文献 301
第三部分 其他的学习算法 305
第14章 并行在线学习 305
14.1 带宽和延迟带来的限制 307
14.2 并行策略 308
14.3 延迟更新分析 310
14.3.1 约定 311
14.4 并行学习算法 313
14.4.1 多核特征分片 313
14.4.2 多节点特征分片 314
14.4.3 实验 318
14.5 全局更新规则 320
14.5.1 延迟全局更新 321
14.5.2 纠正更新 321
14.5.3 延迟的反向传播 321
14.5.4 Minibatch梯度下降 322
14.5.5 Minibatch共轭梯度 323
14.5.6 确定更新 324
14.6 实验 325
14.7 结论 327
参考文献 327
第15章 基于图的半监督学习并行化 329
15.1 将SSL扩展到大规模数据集 331
15.2 基于图的SSL 332
15.2.1 图构造 334
15.2.2 图正则化 335
15.3 数据集:1.2 亿节点的图 340
15.3.1 大规模问题的图构造 341
15.4 大规模并行处理 342
15.4.1 共享存储器对称多处理器上的推断 342
15.4.2 SMP的图重排算法 343
15.4.3 分布式计算机环境中的推断 347
15.5 讨论 351
参考文献 351
第16章 基于协同矩阵分解的分布式迁移学习 356
16.1 分布式联合学习 358
16.1.1 协同矩阵分解 358
16.1.2 CoMF的分布式学习 360
16.1.3 CoMF实现知识迁移 366
16.1.4 总结 367
16.2 DisCo扩展到分类任务 368
16.2.1 监督协同矩阵分解 368
16.2.2 监督CoMF的分布式学习 370
16.2.3 监督CoMF实现知识迁移 374
16.2.4 总结 375
16.3 结论 375
参考文献 375
第17章 并行大规模特征选择 377
17.1 逻辑回归 378
17.2 特征选择 379
17.2.1 前向特征选择 380
17.2.2 单特征优化 380
17.2.3 移植 381
17.2.4 多类预测问题 382
17.3 并行化特征选择算法 382
17.3.1 并行完全前向特征选择 383
17.3.2 并行SFO 383
17.3.3 并行移植 386
17.3.4 其他相关算法 387
17.4 实验结果 388
17.4.1 UCI互联网广告(Internet Ads)数据集 389
17.4.2 RCV1数据集 390
17.4.3 时间测定结果 392
17.5 结论 394
参考文献 394
第四部分 应用 398
第18章 基于GPU的计算机视觉大规模学习 398
18.1 标准管线 399
18.2 GPU介绍 401
18.2.1 数据并行编程 402
18.2.2 CUDA编程模型 402
18.2.3 GPU上的卷积例子 403
18.2.4 GPU的结论 405
18.3 标准方法扩展 405
18.3.1 合成训练数据 405
18.3.2 支持GPU的特征 406
18.3.3 滑动窗口物体检测和卷积 407
18.3.4 分类 408
18.3.5 实验结果 410
18.4 使用深度信念网络进行特征学习 413
18.4.1 深度信念网络 414
18.4.2 GPU上的DBN学习 415
18.4.3 实验结果 417
18.5 结论 419
参考文献 419
第19章 基于FPGA的大规模卷积网络 423
19.1 学习内部表示 424
19.1.1 卷积网络 424
19.1.2 发展和应用 426
19.1.3 卷积网络的非监督学习 427
19.2 专用数字硬件架构 429
19.2.1 数据流方法 431
19.2.2 基于FPGA的卷积网络处理器 434
19.2.3 卷积网络处理器的卷积网络编译 437
19.2.4 性能表现 438
19.3 总结 440
参考文献 440
第20章 多核系统上的树状结构数据挖掘 444
20.1 多核的挑战 445
20.2 背景 446
20.2.1 问题定义 447
20.2.2 研究现状 448
20.2.3 Trips算法 449
20.3 内存优化 452
20.3.1 即时嵌入列表生成(NOEM) 452
20.3.2 树匹配优化 454
20.3.3 计算块(CHUNK) 455
20.4 自适应并行化 456
20.4.1 任务并行模式 458
20.4.2 数据并行模式 459
20.4.3 块并行模式 460
20.4.4 成本分析 460
20.4.5 调度服务 461
20.5 实例评估 462
20.5.1 性能结果 463
20.5.2 CMP架构的特征研究 465
20.5.3 并行性能 466
20.6 结论 468
致谢 469
参考文献 469
第21章 自动语音识别的可伸缩并行化 472
21.1 并发识别 476
21.2 软件架构和实施挑战 478
21.3 多核和众核并行平台 480
21.4 多核基础结构和映射 481
21.4.1 数据注意事项 481
21.4.2 任务注意事项 482
21.4.3 运行时注意事项 483
21.4.4 总结 484
21.5 众核实现 486
21.5.1 任务注意事项 487
21.5.2 运行时注意事项 488
21.5.3 总结 488
21.6 实现分析和灵敏度分析 488
21.6.1 语言模型和测试集 488
21.6.2 总体性能 489
21.6.3 灵敏度分析 490
21.7 应用级别优化 491
21.7.1 言语模式的选择 491
21.7.2 替代模型评估 492
21.8 结论和主要经验教训 493
21.8.1 并行化过程 493
21.8.2 使用框架实现高效的并行应用开发 493
参考文献 494