互联网资讯 / 人工智能 · 2023年11月2日 0

卷积神经网络基础指南

今天我们将讨论卷积神经网络,内容涵盖四个主要部分:卷积神经网络的历史、全连接层、卷积层和池化层。

CNN的英文全称为Convolutional NeuRal NetwoRk,其雏形是LeCun于1998年提出的LeNet网络结构。

卷积神经网络基础指南

LeNet网络架构

那么什么是神经网络呢?可以简单理解为只要有卷积层的网络就可以称为卷积神经网络。

神经网络的发展历程如下:

1986年:RuMelhaRt和Hinton等人提出了反向传播(Back PRopagation)算法。

1998年:基于BP神经网络,LeCun训练了LeNet网络,这标志着CNN的正式诞生。

2006年:Hinton在其Science论文中首次提出了深度学习(Deep Learning)的概念。

2012年:尽管Hinton在2006年提出深度神经网络时遭遇许多质疑,2012年他的学生Alex KRizhevsky在寝室中使用GPU开发的深度学习模型获得了计算机视觉领域ILSVRC 2012的冠军,准确率从70%提升至80%,远超传统方法。

全连接层

卷积神经网络基础指南

全连接层的结构模仿了大脑的神经元,我们可以理解为:

输出值 = 输入值经过加权w后累加的结果,再通过激活函数处理。其形式化表达为:

卷积神经网络基础指南

将神经元按列排列并进行全连接,就形成了一个BP神经网络。

卷积神经网络基础指南

BP神经网络算法包括信号的前向传播和误差的反向传播两个过程。计算误差时沿输入到输出的方向进行,而调整权值和阈值则是从输出到输入的方向。

接下来,我们通过一个实例来更好地理解BP神经网络。

实例:利用BP神经网络进行数字识别

卷积神经网络基础指南

假设我们获取了一张图片,例如上方第一张图是数字0,这张图由多个像素构成,每个像素具有RGB三个通道。经过灰度化处理后,得到第二张图片,接着对灰度化后的图片进行二值化,得到第三张图片。

卷积神经网络基础指南

之后我们对图片进行概率处理,例如第一个框内的白色块占全部块的比例为0.2,经过策略处理后得到的第一个数值为0.2。以此类推,可以得到右侧的矩阵。

然后,我们对这个矩阵进行维度变换,将其转化为1*n的行向量,以便神经网络更好地进行处理。

卷积神经网络基础指南

现在我们知道神经网络如何输入数据,那么如何输出才能更好地识别数字呢?答案是使用One-Hot编码!

卷积神经网络基础指南

也就是说,每个数字都有对应的编码,例如输入1000000000,则判定为数字0,依此类推。

有了输入和输出后,我们就能够通过神经网络进行训练。

卷积神经网络基础指南

首先,设置输入层的神经元为25个节点,输出层设置为10个节点,将上面1*n的向量输入到BP神经网络中,经过隐藏层后到达输出层,利用softMax激活函数得到每个数字的出现概率,从而实现数字识别。

卷积层

那么卷积层到底是什么呢?之前的文章中已有讲解,有兴趣的读者可以查看。

在卷积层的讨论中,我想问大家一个问题:当卷积核越界时该如何处理?例如如下情况:

卷积神经网络基础指南

假设我们使用一个3*3的滑动窗口,步长为2,那么出现越界时该如何处理呢?

卷积神经网络基础指南

可以使用Padding对其进行补零处理,效果如下:

卷积神经网络基础指南

在卷积操作过程中,矩阵的大小由以下几个因素决定:

输入图像大小W*W,滤波器大小F*F,步长S,padding的像素数P。

经过卷积后的矩阵尺寸可通过通用公式计算:N=(W-F+2P)/S+1。

池化层

池化层的存在是为了处理过大的输入数据,去除冗余信息,因此我们需要对图像矩阵进行下采样,对特征图进行稀疏处理,以减少运算量。下面通过MaxPooling下采样来说明池化层的作用。

卷积神经网络基础指南

在上图中,红色部分的值为1, 1, 5, 6,使用MaxPooling后取最大值,因此右图中的红色部分为Max(1, 1, 5, 6)=6,依此类推可得到下采样结果。

除了最大下采样外,还有平均下采样层,如下图所示:

卷积神经网络基础指南

为了帮助大家更好地理解和使用池化层,我总结了其三个特点:

没有训练参数;只会改变特征矩阵的宽度和高度,不改变通道数;一般pool size与卷积核的stride相同。

今天我们讨论了卷积神经网络的整体架构基础,包括神经网络的发展历史、全连接层、卷积层和池化层。如有任何见解或想法,欢迎大家在下方留言!