卷积神经网络(CNN)是一种受生物视觉感知机制启发的深度学习模型,自20世纪90年代中期以来得到了快速发展。1990年,研究者发表了一篇论文,介绍了一种名为LeNet-5的多层人工神经网络,该网络能够直接从低分辨率像素图像中识别视觉模式,几乎不需要预处理。
到了2010年左右,研究人员提出了一种名为AlexNet的CNN架构,它与LeNet-5相似但结构更深。AlexNet的成功之后,诸如ZFNet、VGGNet、GoogleNet和ResNet等其他架构也相继被提出。CNN架构的发展趋势表明,网络深度的增加使得模型能够更准确地学习目标变量,并得到更好的特征表示。
卷积层的目的是学习输入数据的特征表示,无论是猫狗的图像还是数字。它由多个核/矩阵组成,用于计算不同的特征图。一个(n*n)的滤波器/核取决于正在解决的问题类型,然后将其应用于输入数据(或图像)以获得卷积特征。在添加偏置并应用适当的激活函数后,该卷积特征被传递到下一层。
池化层位于卷积层之间,用于实现平移不变性,通过降低特征图的分辨率来实现。常用的池化操作包括平均池化和最大池化。减少卷积层之间的连接数量,降低了处理单元的计算负担。池化的不同类型包括Lp池化、最大池化、平均池化、混合池化等。
在多个卷积和池化层之后,可能存在多个全连接层。当前层的每个神经元都与前一层的所有神经元相连。CNN的最后一层是输出层,负责做出最终预测。对于分类任务,当目标是预测多个类别时(例如MNIST数据集),通常使用Softmax函数;对于二元分类(例如猫狗分类),则使用Sigmoid函数。
为了提高CNN的性能,研究者提出了多种优化方法,包括扩张卷积、转置卷积、平铺卷积、网络内网络和Inception模块等。激活函数的选择对CNN的性能有重大影响。对于CNN的隐藏层,ReLU因其简单的可微性和与其他激活函数(如tanh和sigmoid)相比的快速性而成为首选。ReLU通常在卷积操作后使用。其他激活函数还包括Sigmoid、Softmax、Leaky ReLU、ELU等。