● 摘要
随着计算机技术和人工智能的高速发展,人工神经网络已经成为目前在语音识别、 图像分类领域识别效果最好的机器学习模型。卷积神经网络作为表达能力最强的神经网 络之一,其网络深度在不断增加,计算量不断增大,使用 CPU 或 CPU 集群对神经元权 重进行训练的传统计算方式已经不能够满足复杂卷积神经网络的需求。而 GPU 编程模 型复杂,编写高效的 GPU 程序要求编程人员有丰富的 GPU 编程经验。同时,庞大的神 经网络结构也给编写人工神经网络程序带来了极大的挑战。如何快速有效的完成人工神 经网络的搭建与训练工作成为目前机器学习领域的研究瓶颈之一。
针对卷积神经网络的训练缓慢的问题,本文提出了一个基于卷积展开的卷积神经网 络并行优化算法。通过改进卷积展开算法,将多个训练图片卷积展开到同一个待运算的 矩阵中,增加单次卷积层运算过程中处理的图片数量,大幅增加了计算过程中的并行度。 在没有带来额外计算量与空间消耗的同时充分提高了并行计算设备的硬件资源利用率, 缩短了整个卷积神经网络的运算时间。
针对卷积神经网络搭建复杂、并行程序编写困难的问题,本文设计并实现了一个 GPU 平台的卷积神经网络的框架——OCLNNF。OCLNNF 使用 OpenCL 语言实现,可 以高效的在 GPU 等多种并行设备上进行人工神经网络的计算。框架可以根据用户的需 求,自由的配置卷积神经网络的结构,通过简单的操作便可以完成网络的搭建,并开始 训练网络的权重。最后通过将 OCLNNF 与其他开源框架对比,验证了整个框架性能及 OCLNNF 计算结果的正确性。