【深度学习进阶】CNN-VGG

介绍

VGG网络是由牛津大学计算机视觉组(Visual Geometry Group, VGG)的研究人员设计的一系列深度卷积神经网络。这些网络在2014年的ImageNet大规模视觉识别挑战赛(ILSVRC-2014)中表现出色,虽然不是当年的冠军,但其简洁而有效的结构引起了学术界和工业界的广泛关注。

主要特点

  • 统一的小型滤波器:VGG网络使用了3x3的小型卷积核,并且在网络的不同层之间保持了这种一致性。这样的小型滤波器可以堆叠在一起以增加感受野,同时保留图像的空间分辨率。
  • 简单的架构:整个网络由一系列的卷积层和最大池化层构成,最后是几个全连接层。每经过一定数量的卷积层后就会有一个最大池化层用于降采样。
  • 深层结构:VGG网络有多个版本,其中最著名的是VGG16和VGG19,它们分别包含16层和19层可训练的权重层(包括卷积层和全连接层)。这使得它们能够学习到更复杂的特征表示。
  • 预训练模型:VGG网络的预训练模型被广泛应用于各种迁移学习任务中,因为它们能够在大型数据集如ImageNet上取得良好的泛化性能。

应用

VGG网络不仅因其优异的性能而在学术研究中得到应用,也因其简单易懂的架构成为教育和实践中的首选模型之一。此外,由于其强大的表征能力,VGG也被用来作为其他复杂网络的基准或组成部分。

VGG网络尽管不是最新的模型,但在多个领域和应用中仍然扮演着重要的角色。其简单而有效的架构,以及强大的特征提取能力,使得它在以下几种应用场景中依然具有重要价值:

图像分类

VGG网络最初就是为了解决大规模图像分类问题而设计的。由于其良好的性能和易于理解的结构,它仍然是图像分类任务中的一个可靠选择,特别是在资源有限或需要快速实现的情况下。

目标检测

在一些目标检测框架中,如R-CNN系列(Fast R-CNN, Faster R-CNN),VGG网络作为骨干网络来提取图像特征。虽然现在有更先进的主干网(如ResNet),但VGG仍然被用作教学示例或是在特定情况下使用。

迁移学习

VGG预训练模型广泛应用于迁移学习任务。对于小规模数据集或是计算资源受限的环境,利用预训练好的VGG模型进行微调可以显著提高模型的表现力,同时减少训练时间和计算成本。

风格迁移

VGG网络是风格迁移任务中最常用的特征提取器之一。通过比较内容图片与风格图片在不同层上的特征表示,可以生成既保留原图内容又融合新风格的艺术图像。这是因为它能够捕捉到不同层次的视觉信息,从低级边缘到高级语义概念。

人脸识别

尽管有更多专门针对人脸特征设计的深度学习模型,但VGG网络也被用于人脸识别系统中,尤其是那些基于传统方法构建的人脸识别解决方案,或者是需要快速原型开发的场景。

医学影像分析

医学图像通常具有较高的分辨率和复杂的结构,这使得VGG这样的深层卷积神经网络非常适合于处理这类数据。例如,在病理切片、X光片等医疗图像上进行病变区域的分类或分割。

视频动作识别

在视频处理任务中,VGG可以用来抽取每一帧的特征,然后结合时间维度的信息来进行动作分类或其他相关任务。

艺术创作和娱乐

除了风格迁移外,VGG还被应用于其他创意项目中,如将照片转换成绘画风格的作品,或是创建独特的视觉效果。

农业和自然科学研究

如案例所示,VGG被用于中草药识别、鸟类识别等任务,帮助科学家们更好地理解和保护自然资源。

缺点

尽管VGG网络有许多优点,但它也有一些缺点:

  • 计算资源消耗大:由于网络较深,参数量较大,导致VGG网络在训练时需要大量的计算资源和时间。
  • 内存占用高:特别是对于较大的输入图片尺寸,VGG网络可能会占用较多的GPU内存。

VGG详解

网络中的亮点

  • 通过堆叠多个3x3的卷积核来替代大尺度卷积核(减少所需参数)

论文中提到,可以通过堆叠两个3x3的卷 积核替代5x5的卷积核,堆叠三个3x3的 卷积核替代7x7的卷积核

拥有相同的感受野

使用7x7卷积核所需参数,与堆叠三个3x3卷积核所需参数(假设输入输出channel为C)

  • 7 x 7 x C x C = 49C²
  • 3 x 3 x C x C + 3 x 3 x C x C + 3 x 3 x C x C = 27C²

CNN感受野

在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大 小,被称作感受野(receptivefield) 。通俗的解释是,输出featuremap上的一个单元对应输入层上的区域大小。


outsize = (insize - Fsize+ 2P ) / S + 1

感受野计算公式:

F (i) = (F (i + 1) - 1) ´ Stride + Ksize

F(i)为第i层感受野, Stride为第i层的步距,Ksize为卷积核或池化核尺寸

VGG

  • conv的stride为1,padding为1
  • maxpool的size为2,stride为2
相关推荐
赵钰老师31 分钟前
【Deepseek、ChatGPT】智能气候前沿:AI Agent结合机器学习与深度学习在全球气候变化驱动因素预测中的应用
人工智能·python·深度学习·机器学习·数据分析
AIGC-Lison31 分钟前
【CSDN首发】Stable Diffusion从零到精通学习路线分享
人工智能·ai·stable diffusion·aigc·sd
AI绘画咪酱32 分钟前
Stable Diffusion|Ai赋能电商 Inpaint Anything
人工智能·ai·ai作画·stable diffusion·sd·ai教程·sd教程
ruokkk33 分钟前
Spring AI MCP 客户端实战:轻松连接高德地图等工具
人工智能
_一条咸鱼_34 分钟前
AI Agent 工作原理深入剖析
人工智能
飞哥数智坊36 分钟前
AI编程实战:数据大屏生成初探
人工智能
蚝油菜花37 分钟前
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
人工智能·开源
蚝油菜花37 分钟前
AutoAgent:无需编程!接入DeepSeek用自然语言创建和部署AI智能体!港大开源框架让AI智能体开发变成填空题
人工智能·开源
nuise_39 分钟前
李宏毅机器学习笔记06 | 鱼和熊掌可以兼得的机器学习 - 内容接宝可梦
人工智能·笔记·机器学习
声网1 小时前
MiniMax 发布新 TTS 模型 Speech-02,轻松制作长篇有声内容;Meta 高端眼镜年底推出:售价上千美元丨日报
人工智能