猫工智能:卷积神经网络层的实现

简介: 卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks-简称CNN)。

d8a45815ffe3474895cec176c159a824_jpeg

卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks-简称CNN)。

卷积神经网络在 20 世纪 90 年代就已经被广泛应用,但深度学习卷土重来的第一功臣非卷积神经网络莫属,原因之一就是卷积神经网络是非常适合计算机视觉应用的模型。

卷积在工程和数学上都有很多应用——在统计学中,加权的滑动平均是一种卷积;在概率论中,两个统计独立的变量 x 和 y 求和的概率密度函数是 x 和 y 的概率密度函数的卷积;在声学中,回声可以用原声与一个反映各种反射效应的函数相卷积来表示;在电子工程与信号处理中,任意一个线性系统的输出都可以通过将输入信号与系统函数(系统的应激响应)做卷积获得;在物理学中,任何一个线性系统(符合叠加原理)都存在卷积。

卷积提供了能够提升机器学习效果的三个重要方法:稀疏交互(Sparse Interaction)或稀疏连接(Sparse Connectivity)、参数共享(Parameter Sharing)以及等价表达(Equivariant Representation)。此外,卷积也提供了一种使得输入尺寸可变的工作方式。

一个简单的卷积网络由一系列层构成,每层都将上一层的一组隐层输出通过一个可微函数产生一组新的隐层输出。一个典型的卷积网络可以由三种类型的层构成:卷积层(Con-volutional Layer,CONV)配套 ReLU(Rectified Linear Unit,ReLU(x) = max(0,x))、池化层(Pooling Layer,POOL)和全连接层(Fully-Connected Layer,FC,和普通神经网络一致)。

卷积层是卷积网络的核心组成部分,包含了大部分繁重的计算工作。

卷积层实现

卷积层的参数由一组可学习的卷积核(Filter)构成。每个卷积核在空间中都是小尺寸的(沿宽和高),但会穿过输入集的整个深度。例如,卷积网络第一层的卷积核尺寸通常为5×5×3(宽、高各 5 像素,深度为彩色图像的 3 个通道)或 3×3×3(宽、高各 3 像素,深度为彩色图像的 3 个通道)。

在前向传播过程中,我们在输入图像上沿宽和高的方向滑动各个卷积核(准确地讲,卷积),并在所有位置上分别计算卷积核和输入之间的点乘。当沿整个输入的宽和高方向滑动卷积核时,我们就会得到一个二维的激活映射(Activation Map),通常也称为特征图或特征映射(Feature Map),表示在每个空间位置上输入对于卷积核的响应。

直观地讲,网络将学习卷积核参数,使得在遇到某种视觉特征(如第一层某些方向上的边缘或某种颜色的斑点,或网络高层中的整个蜂窝状或轮状图案)时被激活。卷积层上的每个卷积核(如:例子 CIFAR-10 中 12 个卷积核)都会产生一个二维的激活映射,我们沿深度方向将这些激活映射排列起来,并将它们作为卷积层的输出。如图 1 所示为一个 5×5×3 的卷积核在 32×32×3 的图像上沿空间维度(宽、高)滑动,遍历空间中的所有点后便生成一个新的尺寸为 28×28×1 的特征图。如图 2 所示为另一个 5×5×3 的卷积核在 32×32×3 的图像上沿空间维度(宽、高)滑动,遍历空间中的所有点后生成另一个新的尺寸为 28×28×1的特征图。如图 3 所示则是 6 个这样的卷积核在输入图像上沿空间维度(宽、高)滑动,遍历空间中的所有点后生成 6 个尺寸为 28×28×1 的特征图,所以最终输出的特征图维度为28 × 28 × 6。
1

图 1 卷积层中的一个卷积核示例

2

图 2 卷积层中的两个卷积核示例
3

图 3 卷积层中的多个卷积核示例

在网络中堆叠 CONV-ReLU 结构。需要注意的是,卷积核的深度需要与输入的特征图的深度一致。如图 4 所示,第一个卷积层的卷积核尺寸为 5 × 5 × 3,其深度与输入图像(32 × 32 × 3)的深度一致;第二个卷积层的卷积核尺寸为 5 × 5 × 6,其深度就需要与第一个CONV-ReLU 输出的特征图(28 × 28 × 6)的深度一致。
4

图 4 后一个卷积层的卷积核大小需要与前一个卷积层输出的维度一致

如图 5 所示,通过可视化各个卷积层输出的特征图,我们看到随着卷积网络的不断加深,特征图上的响应表现出的语义层次也在不断加深。最初的卷积层通常对图像中的边缘或色斑产生较强的响应,我们认为这个部分抽取的主要是低层特征(Low-Level Feature)。此后的卷积层在低层特征基础上产生的特征图开始出现一些具有一部分语义的图形或纹理。最后的卷积层倾向于对有明确语义的目标产生强响应,认为此时具有了抽取高层特征(High-Level Feature)的能力。
5

图 5 卷积层可视化

相关文章
|
1天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
4天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
6 2
|
4天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
10 1
|
7天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
20 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
8天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
15天前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
49 1
|
3天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
5天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。
|
11天前
|
机器学习/深度学习 人工智能 自动驾驶
深入理解深度学习中的卷积神经网络(CNN)
【10月更文挑战第18天】深入理解深度学习中的卷积神经网络(CNN)
23 0
|
14天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。