IEEE Trans Neural Netw Learn Syst. 2018 Jun;29(6):2337-2351. doi: 10.1109/TNNLS.2017.2654357. Epub 2017 Apr 20.
As data sets become larger and more complicated, an extreme learning machine (ELM) that runs in a traditional serial environment cannot realize its ability to be fast and effective. Although a parallel ELM (PELM) based on MapReduce to process large-scale data shows more efficient learning speed than identical ELM algorithms in a serial environment, some operations, such as intermediate results stored on disks and multiple copies for each task, are indispensable, and these operations create a large amount of extra overhead and degrade the learning speed and efficiency of the PELMs. In this paper, an efficient ELM based on the Spark framework (SELM), which includes three parallel subalgorithms, is proposed for big data classification. By partitioning the corresponding data sets reasonably, the hidden layer output matrix calculation algorithm, matrix decomposition algorithm, and matrix decomposition algorithm perform most of the computations locally. At the same time, they retain the intermediate results in distributed memory and cache the diagonal matrix as broadcast variables instead of several copies for each task to reduce a large amount of the costs, and these actions strengthen the learning ability of the SELM. Finally, we implement our SELM algorithm to classify large data sets. Extensive experiments have been conducted to validate the effectiveness of the proposed algorithms. As shown, our SELM achieves an speedup on a cluster with ten nodes, and reaches a speedup with 15 nodes, an speedup with 20 nodes, a speedup with 25 nodes, a speedup with 30 nodes, and a speedup with 35 nodes.
随着数据集变得越来越大且越来越复杂,在传统串行环境中运行的极限学习机(ELM)无法实现其快速有效的能力。虽然基于 MapReduce 的并行 ELM(PELM)可用于处理大规模数据,其学习速度比在串行环境中相同的 ELM 算法更快,但一些操作(如存储在磁盘上的中间结果和每个任务的多个副本)是必不可少的,这些操作会产生大量额外开销,并降低 PELM 的学习速度和效率。在本文中,我们提出了一种基于 Spark 框架的高效 ELM(SELM),它包括三个并行子算法,用于大数据分类。通过合理划分相应的数据集,隐藏层输出矩阵计算算法、矩阵分解算法和矩阵分解算法在本地执行大部分计算。同时,它们保留分布式内存中的中间结果,并将对角矩阵作为广播变量缓存,而不是为每个任务复制多个副本,以减少大量开销,这些操作增强了 SELM 的学习能力。最后,我们实现了我们的 SELM 算法来对大数据集进行分类。通过大量实验验证了所提出算法的有效性。结果表明,我们的 SELM 在具有十个节点的集群上实现了加速,在具有十五个节点、二十个节点、二十五个节点、三十个节点和三十五个节点的集群上也实现了加速。