“深度学习”一词大家已经不陌生了,随着在不同领域取得了超越其他方法的成功,深度学习在学术界和工业界掀起了一次神经网络发展史上的新浪潮。运用深度学习解决实际问题,不仅是学术界高素质人才所需的技能,而且是工业界商业巨头进行竞争的核心武器。为适应这一发展的需要,作者以长期的相关研究和教学工作为基础,经过2~3年的调研和努力,终于编写完本书。这是一本关于深度学习的入门教材和导论性参考书,受众对象包括计算机、自动化、信号处理、机电工程、应用数学等相关专业的研究生、教师和科研工作者,本书有助于他们在具备神经网络的基础知识后进一步了解深度学习的理论和方法。自2006年诞生以来,深度学习很快成长壮大,并有一些相关的英文书籍陆续出版。虽然国内也开始出现译著,但对深度学习的内容概括得并不全面,远不能够满足市场需求。本书的内容几乎涵盖了深度学习的所有重要方面,结构上分为基础理论和案例分析两个部分。在基础理论部分,本书不仅介绍了深度学习的起源和发展、特点和优势,而且描述了深度学习的9种重要模型,包括受限玻耳兹曼机、自编码器、深层信念网络、深层玻耳兹曼机、和积网络、卷积神经网络、深层堆叠网络、循环神经网络和长短时记忆网络。此外,还讨论了这些模型的学习算法、变种模型和混合模型,以及它们在图像视频处理、音频处理和自然语言处理等领域中的广泛应用,并总结了有关的开发工具、问题和挑战。在案例分析部分,本书主要挑选了一些深度学习的程序案例进行细致的说明和分析,指导读者学习有关的程序代码和开发工具,以便在解决实际问题时加以灵活利用。其中,每个程序案例都包括模块简介、运行过程、代码分析和使用技巧这4个部分,层次结构清晰,以利于读者选择和学习,并在应用中拓展思路。本书的一个不足之处是:案例分析部分没有涉及“和积网络”和“深层堆叠网络”,这是因为和积网络的运行需要大规模集群的硬件条件,另外也很难找到便于构造深层堆叠网络案例的程序代码。本书的一大特色是从初学者的角度出发,在知识结构的布局上注重深入浅出,对深度学习的模型涵盖得较全面,文献引用非常丰富,既适合读者入门学习,又有助于他们深入钻研。同时,本书也试图纠正许多读者对深度学习的一些错误理解,比如认为多层感知器不是深度学习模型,认为自编码器能够直接用来识别手写字符,认为受限玻耳兹曼机也是严格意义上的深度学习模型,等等。本书的另一个特色是通过程序案例介绍深度学习模型。这对缺乏相关背景知识的读者可能非常有帮助,使他们在知其然不知其所以然的情况下运行深度学习程序并获得计算结果,从而在积累实践经验和感性认识的过程中逐步了解深度学习的有关内容。本书的案例涉及三种常见的编程语言:Matlab、Python和C++。其中,很多深度学习程序是用Matlab编写的,可以直接运行。如果使用Python语言编写深度学习程序,则可以调用Theano开源库;若使用C++语言,则可以调用Caffe开源库。不同的语言分析案例有助于读者全面了解深度学习模型和算法的实现途径,并根据自己的熟练程度灵活选择。本书是集体智慧的结晶。北京工业大学计算机学院的刘波、胡海鹤和刘兆英等老师,以及张亚红、曾少锋、沈成恺、杨红丽和丁勇等同学,在文献和软件资料的收集整理方面提供了很大帮助。此外,华章公司的温莉芳副总经理对本书的出版给予了大力支持,张梦玲编辑对本书内容的编排提出了许多宝贵意见。在这里向他们表示衷心的感谢。最后,还要感谢父母、爱人和儿女在本书写作期间给予的理解,感谢他们的真情鼓励、默默付出以及对非规律生活的宽容。同时,作者在此也因减少了对他们的关爱而深表愧疚和歉意。限于作者水平,本书在内容取材和结构编排上可能存在不妥之处,希望使用本书的教师、学生、专家以及其他读者提出宝贵的批评和建议。
第一部分基础理论第1章概述1.1深度学习的起源和发展1.2深层网络的特点和优势1.3深度学习的模型和算法第2章预备知识2.1矩阵运算2.2概率论的基本概念2.2.1概率的定义和性质2.2.2随机变量和概率密度函数2.2.3期望和方差2.3信息论的基本概念2.4概率图模型的基本概念2.5概率有向图模型2.6概率无向图模型2.7部分有向无圈图模型2.8条件随机场2.9马尔可夫链2.10概率图模型的学习2.11概率图模型的推理2.12马尔可夫链蒙特卡罗方法2.13玻耳兹曼机的学习2.14通用反向传播算法2.15通用逼近定理第3章受限玻耳兹曼机3.1受限玻耳兹曼机的标准模型3.2受限玻耳兹曼机的学习算法3.3受限玻耳兹曼机的变种模型第4章自编码器4.1自编码器的标准模型4.2自编码器的学习算法4.3自编码器的变种模型第5章深层信念网络5.1深层信念网络的标准模型5.2深层信念网络的生成学习算法5.3深层信念网络的判别学习算法5.4深层信念网络的变种模型第6章深层玻耳兹曼机6.1深层玻耳兹曼机的标准模型6.2深层玻耳兹曼机的生成学习算法6.3深层玻耳兹曼机的判别学习算法6.4深层玻耳兹曼机的变种模型第7章和积网络7.1和积网络的标准模型7.2和积网络的学习算法7.3和积网络的变种模型第8章卷积神经网络8.1卷积神经网络的标准模型8.2卷积神经网络的学习算法8.3卷积神经网络的变种模型第9章深层堆叠网络9.1深层堆叠网络的标准模型9.2深层堆叠网络的学习算法9.3深层堆叠网络的变种模型第10章循环神经网络10.1循环神经网络的标准模型10.2循环神经网络的学习算法10.3循环神经网络的变种模型第11章长短时记忆网络11.1长短时记忆网络的标准模型11.2长短时记忆网络的学习算法11.3长短时记忆网络的变种模型第12章深度学习的混合模型、广泛应用和开发工具12.1深度学习的混合模型12.2深度学习的广泛应用12.2.1图像和视频处理12.2.2语音和音频处理12.2.3自然语言处理12.2.4其他应用12.3深度学习的开发工具第13章深度学习的总结、批评和展望第二部分案例分析第14章实验背景14.1运行环境14.2实验数据14.3代码工具第15章自编码器降维案例15.1自编码器降维程序的模块简介15.2自编码器降维程序的运行过程15.3自编码器降维程序的代码分析15.3.1关键模块或函数的主要功能15.3.2主要代码分析及注释15.4自编码器降维程序的使用技巧第16章深层感知器识别案例16.1深层感知器识别程序的模块简介16.2深层感知器识别程序的运行过程16.3深层感知器识别程序的代码分析16.3.1关键模块或函数的主要功能16.3.2主要代码分析及注释16.4深层感知器识别程序的使用技巧第17章深层信念网络生成案例17.1深层信念网络生成程序的模块简介17.2深层信念网络生成程序的运行过程17.3深层信念网络生成程序的代码分析17.3.1关键模块或函数的主要功能17.3.2主要代码分析及注释17.4深层信念网络生成程序的使用技巧第18章深层信念网络分类案例18.1深层信念网络分类程序的模块简介18.2深层信念网络分类程序的运行过程18.3深层信念网络分类程序的代码分析18.3.1关键模块或函数的主要功能18.3.2主要代码分析及注释18.4深层信念网络分类程序的使用技巧第19章深层玻耳兹曼机识别案例19.1深层玻耳兹曼机识别程序的模块简介19.2深层玻耳兹曼机识别程序的运行过程19.3深层玻耳兹曼机识别程序的代码分析19.3.1关键模块或函数的主要功能19.3.2主要代码分析及注释19.4深层玻耳兹曼机识别程序的使用技巧第20章卷积神经网络识别案例20.1DeepLearnToolbox程序的模块简介20.2DeepLearnToolbox程序的运行过程20.3DeepLearnToolbox程序的代码分析20.3.1关键函数的主要功能20.3.2主要代码分析及注释20.4DeepLearnToolbox程序的使用技巧20.5Caffe程序的模块简介20.6Caffe程序的运行过程20.7Caffe程序的代码分析20.7.1关键函数的主要功能20.7.2主要代码分析及注释20.8Caffe程序的使用技巧第21章循环神经网络填充案例21.1槽值填充的含义21.2循环神经网络填充程序的模块简介21.3循环神经网络填充程序的运行过程21.4循环神经网络填充程序的代码分析21.4.1关键函数的主要功能21.4.2主要代码分析及注释21.5循环神经网络填充程序的使用技巧第22章长短时记忆网络分类案例22.1长短时记忆网络分类程序的模块简介22.2长短时记忆网络分类程序的运行过程22.3长短时记忆网络分类程序的代码分析22.3.1关键模块或函数的主要功能22.3.2主要代码分析及注释22.4长短时记忆网络分类程序的使用技巧附录1 Caffe在Windows上的安装过程附录2 Theano的安装过程参考文献
相关资源:深度学习导论及案例分析