人工神经网络(Artificial Neural Network,ANN) 表示一类机器学习模型,其灵感来自对哺乳动物中枢神经系统的研究。单个人工神经网络由多个互联的“神经元”组成,组织形式为“层”。某一层的神经元会将消息传递到其下一层神经元(术语为“发射”),这即是神经网络的运行方式。始于20世纪50年代初的早期研究提出了一种可进行简单运算的双层网络——“感知器” [1] 。随后,20世纪60年代末期进一步扩大了研究成果,提出了“反向传播”算法 [2, 3] ,可用于更为高效的多层网络训练。
一些研究认为,这些技术的根源可以追溯到更为久远的年代 [4] 。
截至20世纪80年代,神经网络一直是学术热点之一,之后,其他一些更简单的实现方法受到了更多的重视。到了21世纪第一个十年的中期,人们重新唤起了对神经网络的兴趣,这主要得益于三个因素:G. Hinton提出了一种突破性的快速学习算法 [3, 5-6] ;2011年前后提出了将GPU用于大规模数值计算;大量可供训练的可用数据集。
这些改进措施为现代“深度学习”开辟了道路,它是一类神经元层数非常大的神经网络,并能够基于渐进式抽象层学习一些相当复杂的模型。几年前,人们起初会将一些使用了3~5层的神经元层数称为“深层”,而如今,200层以上的网络已经司空见惯!
基于渐进式抽象的学习方式与人类大脑中进化了数百万年的视觉模型很类似。事实上,人类视觉系统就是由不同的层组合而成的。比如,我们的眼睛首先连接到称为视觉皮层(V1)的大脑区域(位于大脑后下部),该区域在许多哺乳动物中很常见,主要用于区分物体的基本属性,例如视觉方向、空间频率和颜色等方面的微小变化。
据估计,V1视觉皮层由大约1.4亿个神经元组成,它们之间有数百亿个连接。进而,V1会连接到其他区域(V2、V3、V4、V5和V6),逐渐进行更复杂的图像处理及识别更复杂的概念,例如形状、面部、动物等。有人估计人类大脑皮层神经元总共约160亿个,其中的10%~25%用于视觉 [7] 。人类视觉系统的这种基于层的组织方式使深度学习获得了一些启发:前置的人工神经元层学习图像的基本属性,而更深的层则学习更复杂的概念。
本书将提供一些在TensorFlow 2.0中可工作的神经网络,其涵盖神经网络的几个主要方面。让我们从感知器开始吧!