摘要 | 第4-5页 |
ABSTRACT | 第5页 |
第一章 引言 | 第9-14页 |
1.1 研究原因 | 第10-12页 |
1.1.1 机器学习算法的实现与研究 | 第10-11页 |
1.1.2 大量训练数据的挑战与机遇 | 第11-12页 |
1.2 研究现状 | 第12-14页 |
1.2.1 机器学习算法的应用场景 | 第12-13页 |
1.2.2 目前GPGPU机器学习算法实现 | 第13-14页 |
第二章 CUDA与GPGPU运算 | 第14-21页 |
2.1 并行计算模型 | 第14-17页 |
2.1.1 并行硬件体系结构 | 第14-16页 |
2.1.2 并行模型和语言 | 第16-17页 |
2.2 CUDA编程 | 第17-19页 |
2.2.1 CUDA程序的结构 | 第17-18页 |
2.2.2 CUDA中的Grid, Block, Thread | 第18-19页 |
2.2.3 CUDA中的存储单元 | 第19页 |
2.3 CUDA编程的优化技巧 | 第19-21页 |
2.3.1 在CUDA实现算法的注意事项 | 第19-20页 |
2.3.2 在CUDA实现算法的存储器注意事项 | 第20-21页 |
第三章 哼唱搜索与动态时间规整算法实现与效果 | 第21-40页 |
3.1 哼唱搜索系统的架构 | 第21-22页 |
3.2 哼唱搜索的音高提取算法 | 第22-23页 |
3.3 哼唱搜索的匹配算法 | 第23-26页 |
3.3.1 动态时间规整 | 第23-25页 |
3.3.2 线性缩放 | 第25-26页 |
3.3.3 动态时间规整与线性缩放算法的效果对比 | 第26页 |
3.4 多显卡实现架构 | 第26-27页 |
3.5 算法实现细节与方法 | 第27-33页 |
3.5.1 哼唱数据库的多显卡分发 | 第27-28页 |
3.5.2 哼唱任务的多显卡分发 | 第28页 |
3.5.3 如何做哼唱音高偏移 | 第28-29页 |
3.5.4 通用任务求解流程 | 第29-30页 |
3.5.5 显卡选择方法 | 第30页 |
3.5.6 简单的多显卡动态时间规整算法实现 | 第30-31页 |
3.5.7 多显卡动态时间规整的优化实现 | 第31-33页 |
3.6 实现效果对比 | 第33-40页 |
3.6.1 实验设计 | 第33页 |
3.6.2 动态时间规整计算时间加速 | 第33-34页 |
3.6.3 动态时间规整计算显存占用对比 | 第34-35页 |
3.6.4 实现结论 | 第35-40页 |
第四章 单机多显卡神经网络GPGPU实现与效果 | 第40-57页 |
4.1 感知器 | 第40-43页 |
4.1.1 什么是感知器 | 第40-42页 |
4.1.2 感知器如何学习 | 第42-43页 |
4.1.3 感知器的局限性 | 第43页 |
4.2 多层神经网络 | 第43-49页 |
4.2.1 Logistics回归 | 第44-46页 |
4.2.2 多层神经网络的模型 | 第46-48页 |
4.2.3 多层神经网络学习 | 第48-49页 |
4.3 深度学习 | 第49-52页 |
4.3.1 为什么要深度? | 第49-50页 |
4.3.2 深度学习的学习算法 | 第50-52页 |
4.4 使用Theano实现神经网络 | 第52-53页 |
4.5 多显卡并行 | 第53页 |
4.6 多显卡并行实现流程 | 第53-55页 |
4.7 实现效果 | 第55-56页 |
4.8 实验结论 | 第56-57页 |
第五章 结论与展望 | 第57-59页 |
5.1 结论 | 第57-58页 |
5.2 展望 | 第58-59页 |
参考文献 | 第59-64页 |
发表论文和参加科研情况说明 | 第64-65页 |
致谢 | 第65-66页 |