第一篇 神经网络是如何实现的(一)
清华大学计算机系 马少平
前言
近些年来,人工智能发展很快,再一次掀起了高潮,逐渐渗透到各行各业、各个领域,学习人工智能相关技术的人也越来越多,市面上也出现了很多非常出色的相关书籍。但也经常听到一些朋友抱怨,说这些书太专业了,读起来比较费劲。为此,我利用各种机会写过一些科普文章,介绍人工智能相关的内容,也做过一些科普报告。但也有朋友反馈说,这些科普内容虽然听懂了,但是还是不知道如何实现的,能不能有一本既通俗易懂、又能帮助我们了解具体技术的书,让我们比较容易看懂人工智能究竟是如何实现的。
为此,我思考了很长时间,想写一本能满足这些朋友要求的书。但是几次动笔,都中途而废,写不下去了。这里的关键是如何定位问题。经过很多业内人士、包括我们组内的同学等,在这个过程中给了我很多鼓励和很好的建议,最终我想尝试着写一本有关人工智能入门的初级读物,读者对象定位在具有一定的理工科背景的朋友,用通俗易懂的语言,由浅入深,讲授人工智能的基本原理。在写的过程中,我想到了“一师一生”的具有一定交互的写作方法,书中设计了“艾博士”这样一位博学的老师(“艾”即AI),和一位聪明好学的学生小明,通过二人的对答,讲授人工智能的基本原理和方法。
《计算机是如何实现智能的》计划共由六篇内容组成,每篇内容独立成章。除了文字内容外,每篇内容还配有若干个讲解视频,每段视频在20分钟左右,以利于朋友们学习。
本书作为人工智能的入门性通俗读本,将引领您走进人工智能的世界。
这里推出的是本书的第一篇:神经网络是如何实现的。
这是我们的初步尝试,效果如何,还请朋友们多加赐教。欢迎各位朋友留下您宝贵的意见和建议,对于书中出现的任何不当之处或没有说明白的地方,还望不吝赐教,本人将不胜感激。
艾博士导读
这些年人工智能蓬勃发展,在语音识别、图像识别、自然语言处理等多个领域得到了很好的应用。推动这波人工智能浪潮的无疑是深度学习。所谓的深度学习实际上就是多层神经网络,至少到目前为止,深度学习基本上是用神经网络实现的。神经网络并不是什么新的概念,早在上个世纪40年代就开展了以感知机为代表的神经网络的研究,只是限于当时的客观条件,提出的模型比较简单,只有输入、输出两层,功能有限,连最简单的异或问题(XOR问题)都不能求解,神经网络的研究走向低潮。
到了80年代中期,随着BP算法的提出,神经网络再次引起研究热潮。当时被广泛使用的神经网络,在输入层和输出层之间引入了隐含层,不但能轻松求解异或问题,还被证明可以逼近任意连续函数。但限于计算能力和数据资源的不足,神经网络的研究再次陷入低潮。
一直对神经网络情有独钟的多伦多大学的辛顿教授,于2006年在《科学》上发表了一篇论文,提出了深度学习的概念,至此神经网络以深度学习的面貌再次出现在研究者的面前。但是深度学习并不是简单地重复以往的神经网络,而是针对以往神经网络研究中存在的问题,提出了一些解决方法,可以实现更深层次的神经网络,这也是深度学习一词的来源。
随着深度学习方法先后被应用到语音识别、图像识别中,并取得了传统方法不可比拟的性能,深度学习引起了人工智能研究的再次高潮。
那么神经网络是如何实现的呢?本篇将逐一解开这个谜团。
本篇内容按照难易程度划分为三个等级,读者可以根据自身需要有选择的读其中几节或者全部内容。
第一级:1.1节到1.2节,介绍神经元和神经网络的基本概念。通过一个简单的数字识别问题,引出神经元的概念,以及神经元与模式之间的对应关系。然后系统地介绍了神经元和全连接神经网络。
第二级:1.3节到1.4节,介绍神经网络的基本训练方法,引出BP算法以及BP算法的基本工作原理。从模式提取的角度引出卷积神经网络的概念,并进一步讲解卷积神经网络的实现方法。最后介绍了几个神经网络的应用实例,详细说明其组成结构等。在阅读这些内容之前,需要读者大体了解向量、导数、偏导数等基本概念,但并不需要太深的知识。
第三级:1.5节到1.11节,介绍什么是梯度消失问题以及常用的解决方法。介绍什么是过拟合问题以及常用的解决方法。为了用神经网络处理自然语言问题,引出词的表示方法及求解方法。对于像语句这样的序列数据处理对象,介绍了什么是循环神经网络以及求解方法,给出了一些应用实例。接下来介绍了一种特殊的循环神经网络LSTM,讲解了其组成结构和基本的求解原理。同第二级一样,需要读者大体了解向量、导数、偏导数等基本概念,但并不需要太深的知识。
小明是个聪明好学的孩子,对什么事情都充满了好奇心。最近人工智能火热,无论是电视上,还是网络媒体上,经常听到的一个词就是神经网络。小明在生物课上学习过人类的神经网络,我们的思维思考过程,都是依赖于大脑的神经网络而进行的。那么计算机上的神经网络是如何实现的呢?带着这个问题,小明找到了万能的艾博士,向艾博士请教有关神经网络的实现原理以及计算机是如何利用神经网络实现一些智能功能的。
第一节:从数字识别谈起
这天是周末,艾博士正在家中整理自己的读书笔记,为周一的讲课做准备,在得知了小明的来意之后,对小明说:小明,你来的刚好,我正在准备这方面的资料,我们一起来探讨一下这个问题。
小明你看,图1.1(a)是个数字3的图像,其中1代表有笔画的部分,0代表没有笔画的部分。假设想对0到9这十个数字图像进行识别,也就是说,如果任给一个数字图像,我们想让计算机识别出这个图像是数字几,我们应该如何做呢?