CNN的全称是:Convolutional Neural Networks,意思是:卷积神经网络。CNN主要应用于计算机视觉领域的研究。
早在20世纪80年代,人们就开始了对CNN的研究,而且,1998年,在当时计算机普遍算力相当低下的条件下,CNN就已经成功地对120万张图片进行分类处理,并达到了当时最高的准确率。
我们知道,神经网络是模仿人类大脑神经元的人工网络,而CNN正是模仿人类大脑对视觉的反应及处理的神经网络类型。所以,CNN包含类似人类的眼睛和大脑的两个功能模块,眼睛就是CNN的输入层,大脑就是CNN的隐藏层。
在一个机器人系统中,CNN代表的是机器人的眼睛和大脑视觉神经,而RNN(循环神经网络)代表了机器人的耳朵和大脑听觉神经,所以说,一个没有CNN和RNN的机器人将变成为僵尸或废铁一堆。
CNN由以下5个层次组成,分别是:输入层、卷积层、激励层、池化层、全连接层。这五个层次依次按顺序紧密相连,每一层都接受上一层的输出特征数据来提供给下一层。
输入层:输入层就等同于人的眼睛,接受视觉数据的输入。
卷积层:也称卷积计算层,这是特征提取的第一步,也就是把输入的图片划分成n个小块,每个小块一般是3×3或5×5个像素点阵,然后我们对每个小块中的像素点的数值进行相加的计算处理得到一个值,这就是卷积计算基本过程。在这里,n个小块就等同于n个神经元,这些神经通过卷积计算的方法来对输入图片的每个局部小块进行感知,然后再把感知到信息传递给神经网络中的下一层神经元。
激励层:激励层通常放在卷积层后面,负责将卷积层的输出结果做一次非线性的映射,也就是根据权重参数做一些数据变换处理。
池化层:池化层通常夹在卷积层之间,主要负责将上层输出的特征数据进行筛选、压缩、归一化处理,这样做是为了节约内存空间,以便增加计算深度。
全连接层:全连接层是在尾部的一层,负责对前面每一层的输出结果进行汇总计算,然后结合权重参数得到最终的结果。