首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

卷积神经网原理简介

1

人工智能的发端:图灵测试

图灵测试(英语:Turing test,又译图灵试验)是图灵于1950年提出的一个关于判断机器是否能够思考的著名试验,测试某机器是否能表现出与人等价或无法区分的智能。测试的谈话仅限于使用唯一的文本管道,例如计算机键盘和屏幕,这样的结果是不依赖于计算机把单词转换为音频的能力。测试内容是:如果一个人(代号C)使用测试对象皆理解的语言去询问两个他不能看见的对象任意一串问题。对象为:一个是正常思维的人(代号B)、一个是机器(代号A)。如果经过若干询问以后,C不能得出实质的区别来分辨A与B的不同,则此机器A通过图灵测试。

可见,图灵测试关注机器和人的交流和互动,而不是人对机器单方面的影响。

2

机器学习、深度学习的兴起

相比较人工智能而言,机器学习和深度学习似乎不是那么的知名。实际上,人工智能是一个很大的类,机器学习和深度学习是其中的组成部分。

人工智能-机器学习-神经网络的关系

历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。随着科学研究的进步,人能够思考的原因在于人脑的神经网络。既然思考的基础是神经元,如果能够"人造神经元"(artificial neuron),就能组成人工神经网络,模拟思考。上个世纪六十年代,提出了最早的"人造神经元"模型,叫做感知器(perceptron)。

图中的圆圈就代表感知器

以途中的感知器模型为例子,每个感知器将有3+3个参数需要训练,包括3个输入各自的权重,以及各自的偏置参数。

感知器与神经元十分相似,将多个感知器首尾相连,就可以形成类似动物的神经网络。

多个感知器首尾相连形成神经网络

但是,这样的神经网络参数过多,训练难度很大。同时受到当时计算机硬件水平的限制,层数较高的神经网络难以实现,应用范围比较局限,因而神经网络的研究跌入低谷。

二十世纪六十年代,科学家对猫的视觉研究发现,猫是通过局部视觉来形成整体视觉的,即通过事物不同位置的小范围视觉来形成对事物整体的视觉感受。模仿这种视觉的局部感受,1980 年,Fukushima第一次提出了基于感受野的理论模型,并于1986年完成了对应的计算机模型。

1986年,Rumelhart、Hinton和Williams提出了一般Delta法则,即反向传播(Backpropagation algorithm,BP)算法。反向传播算法使神经网络可以根据匹配结果来改变网络中的参数,使神经网络可以训练。

硬件方面,二十世纪末与二十一世纪初,计算机硬件飞速发展,尤其是显卡(GPU)的性能提高了数倍。神经网络通过GPU进行训练的技术也日益成熟。(神经网络的训练需要大量的计算,同时多个参数同时进行训练,这正是GPU的长处;相较之下,CPU更关注通用性和多任务跳转中断,不适合用来训练神经网络。)

此时,神经网络发展条件已经十分充足,迎来了神经网络发展的高峰。

Q3

卷积神经网络-局部连接&权值共享

局部感知在图片上的应用方式

局部视野在神经网络中的应用,就是局部连接。如图,卷积神经网络中的局部连接使用多个神经元来对图像不同的区域进行计算。

以1000*1000的图像为例:

假设神经元数目为10^6个,神经网络全连接中需要1000*1000*10^6=10^12个参数。假设每个神经元与图像中10*10的区域连接,需要10*10*10^6=10^8个参数。

可见,局部连接大大降低了神经网络中的参数数量,使神经网络更好训练。

多个神经元的权值共享

在卷积神经网络中,与局部连接一同使用的还有权值共享,即局部连接中同一层神经元的参数共享。

在局部连接中隐藏层的每一个神经元连接的是一个10 × 10的局部图像,因此有10 × 10个权值参数,将这10 × 10个权值参数共享给其他的神经元,也就是说隐藏层中10^6个神经元的权值参数相同,那么此时不管隐藏层神经元的数目是多少,需要训练的参数就是这 10 × 10个权值参数。

简单来说:

卷积神经网络通过局部连接和权值共享,大大降低了网络的训练要求和难度,提高了实用性。

用一张图来了解卷积过程中卷积核的工作方式。

左侧的是输入图像,右侧的是卷积后形成的卷积层,橙色部分表示当前的局部连接

4

经典卷积神经网络模型-LeNet-5

LeNet-5网络结构,最初是用于识别手写体并达到很高的正确率

上图为LeNet-5的模型结构。输入图像为32×32的手写字母图像,C表示卷积层,S表示池化层。

输入图像使用5×5大小的卷积核,每次移动步长为1进行卷积操作,形成28×28大小的卷积层C1。卷积核的数量有6个,因此卷积层C1有6张特征图。每张特征图中的每个神经元与输入中的5×5的区域相连,步长为1,特征图大小为28×28,每个卷积神经元的参数数目为:5×5=25个权值(unit)参数和一个偏置(bias);由于参数共享,每个特征图内共享参数,因此共有(5×5+1)×6=156个参数。

随后经过池化操作,形成S2层——池化层/下采样层。池化操作是利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息。具体操作方式为:将图像划分为许多相邻不重叠的2×2局部区域,在每个2×2的区域内,经过计算狗,作为新图像对应位置的值。S2层有6个14×14的特征图,每个图中的每个单元,与C1层中的一个2×2邻域相连接,不重叠。此时特征图缩小为C1层中特征图大小的1/4。S2层的形成方式为:来自C1层的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置参数。此处共有(2×2+1)×1×14×14×6个连接。由于采用每个特征图内参数共享,因此有2×6=12个可训练参数。池化操作减小了特征图的尺寸,降低了数据处理的数量和压力。

相同地,C3层、S4层、C5层分别为卷积层、池化层/下采样层、卷积层。

F6层为全连接层,连接数与可训练参数相同,为(120+1)×84=10164个。可见,不采用权值共享和卷积操作,参数的数量会急剧增加。卷积层C5与F6采用全连接的方式连接,随后与输出层全连接。全连接层和输出层的作用为,将卷积层和池化层所输出的包含图像特征的数据变换为一维数据,用以输入之后的函数中进行判断,最终输出该被识别的手写体为某一个数字的概率。

至此我们简单了解了卷积神经网络的相关原理。接下来我们来了解一下卷积神经网络如何训练,将会包括机器学习工具包的选择、介绍,模型实现,参数设置,验证结果等。这些将在下一期为大家讲解。各位观众大佬欢迎催更。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180226G0BKSP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券