深度学习:详解二维互相关与卷积层

1 下载量 10 浏览量 更新于2024-08-30 收藏 361KB PDF 举报
"CNN、LeNet、CNN进阶" 在深度学习领域,卷积神经网络(Convolutional Neural Networks, CNN)是一种非常重要的模型,尤其在图像处理和计算机视觉任务中发挥着关键作用。CNN的核心操作是卷积运算,这里我们将深入探讨卷积运算以及它在CNN中的应用。 卷积运算,也称为互相关运算,是CNN的基础。二维互相关运算将一个二维输入数组(如图像的像素矩阵)与一个二维核(或称卷积核、过滤器)相结合,生成一个新的二维输出数组。卷积核通常包含一组可学习的权重,用于检测输入数据中的特定特征。在提供的代码示例中,`corr2d` 函数演示了如何实现这个过程。通过遍历输入数组的每个区域并应用内积操作,我们可以计算出每个位置的输出值。 二维卷积层是CNN的构建块,它不仅执行卷积运算,还会加上一个标量偏置,以增加模型的表达能力。输出的二维数组,即特征图(feature map),代表了输入在特定位置的特征表示。特征图的每个元素对应于输入的一个感受野,感受野是影响该元素计算的所有输入区域。通过多层卷积,可以捕捉到输入图像上不同尺度的特征,因为每层卷积会减小输出的空间尺寸,但扩大单个元素的感受野。 为了保持输出尺寸与输入尺寸一致或接近,填充(padding)技术被广泛使用。在输入的边缘添加零元素可以防止信息丢失,并确保输出的大小满足预期。假设输入高度为nh,宽度为nw,卷积核高度为kh,宽度为kw,两侧填充分别为php和pwp,则输出的形状可以用以下公式计算: (nh+ph−kh+1)×(nw+pw−kw+1) 填充的作用在于控制输出大小,同时扩大感受野,使得模型能够捕获更广泛的上下文信息。 提到CNN的经典架构,LeNet是一个里程碑式的设计,由Yann LeCun等人在1998年提出,主要用于手写数字识别。LeNet结合了卷积层、池化层和全连接层,展示了深度学习在图像识别任务上的潜力。后续的AlexNet进一步推动了CNN的发展,它在2012年的ImageNet大赛中取得了显著的突破,减少了对大量手工特征的依赖。 总结来说,CNN通过卷积运算提取图像特征,利用多层结构和感受野的概念捕捉不同层次的信息。填充技术则有助于维持输出尺寸和扩展感受野。从LeNet到AlexNet,这些经典模型为现代CNN设计奠定了基础,促进了深度学习在诸多领域的广泛应用。在实际应用中,根据任务需求,我们还可以调整卷积核大小、数量、填充策略以及网络深度,以优化模型性能。