机器学习的基本概念
机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法。目前机器学习广泛应用于广告投放、趋势预测、图像识别、语音识别、自动驾驶和产品推荐等众多领域。
在确定了问题模型之后,根据已知数据寻找模型参数的过程就是训练,训练过程就是不断依据训练数据来调整参数的迭代,从而使依据模型作出的预测结果更加准确。
HPC的基本概念
HPC就是高性能计算或高性能计算集群的简写。为了追求高性能,HPC的工作负载一般直接运行在Linux系统上,有些甚至直接在裸机上运行。HPC应用一般将问题分解为可在集群节点上运行的较小的、并行的分布式问题。HPC应用通常大量使用进程间通信,通信通过共享存储或网络实现。HPC系统中同时运行着大量的应用,这些应用可通过集群调度系统进行管理。
以前HPC的主要应用是科学计算,近年来随着深度学习技术的发展,HPC上运行的深度学习应用也在增加。HPC的典型应用包括:
- 高能物理模拟
- 天气建模预测
- 流体、结构、材料分析
- 电磁与热力学模拟
- 沉积与储层模拟
- 3D渲染与可视化
- 深度学习的训练与预测
完整部署一套HPC系统是相当复杂的过程,要综合考虑到安全、能源、散热、网络等诸多方面问题。
为什么需要分布式机器学习
大数据时代的机器学习有如下趋势:
Big Model 随着深度学习的进展,许多问题需要一个大的模型,这个模型必须有能力去尽量接近你所要解决问题的具体功能。例如,将图片内容用文字描述出来这个功能是非常复杂的,要表达这个功能需要非常多的参数,这个问题的模型必须要足够大才能实现这样复杂的功能。
Big Data 在训练的数据集较小时,深度学习的效果并不理想,这也是前些年深度学习没有引起大家重视的一个原因。在小数据集上训练的深度学习模型效果还不如一些相对简单的机器学习方法,不过当数据集增大之后,深度学习的效果开始超过其它机器学习方法。在语音识别上的研究表明,如果训练数据集的规模增加10倍,语音识别的误差率会相对降低约40%。HPC有能力使用更大的数据集来训练模型,因而也成为人工智能发展的一个重要部分。
从下图可以看出当前机器学习系统的规模已经很大。