首页 > 其他分享 >深度学习——卷积神经网络

深度学习——卷积神经网络

时间:2024-11-01 13:17:49浏览次数:3  
标签:卷积 VGG 网络 特征 神经网络 深度 输入

一、卷积神经网络

        卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,它在图像和视频识别、分类和分割等任务中表现出色。CNN的设计灵感来源于生物的视觉皮层机制,特别是它如何响应图像边缘和纹理等局部特征。

1.卷积神经网络的应用领域

        卷积神经网络(CNN)主要应用在以下几个领域:

  1. 图像识别:识别照片中的物体,比如猫、狗等。
  2. 面部识别:用于手机解锁或安全系统。
  3. 医学图像:帮助医生分析X光片或MRI图像。
  4. 自动驾驶:帮助汽车识别道路和行人。
  5. 视频分析:在监控视频中识别特定行为或事件。

2.卷积神经网络和传统神经网络的区别

        传统神经网络主要区别就是从二维到三维的转变,传统神经网络输入层输入的是一列特征,卷积神经网络输入层输入的是三维数据。

3.卷积神经网络的整体架构

卷积神经网络(CNN)的整体架构通常包含以下几个主要的层级结构:

  1. 输入层(Input Layer)

    • 接收原始输入数据,通常是图像数据。

  2. 卷积层(Convolutional Layer)

    • 包含多个卷积核(或滤波器),用于提取输入数据的特征。

    • 卷积操作在输入数据上滑动,生成特征图(Feature Maps)。

  3. 激活层(Activation Layer)

    • 通常使用非线性激活函数,如ReLU(Rectified Linear Unit),增加网络的非线性表达能力。

  4. 池化层(Pooling Layer)

    • 用于降低特征图的空间维度,减少计算量,增强特征的不变性。

    • 常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。

  5. 归一化层(Normalization Layer)(可选):

    • 用于归一化特征图,减少内部协变量偏移。

  6. 全连接层(Fully Connected Layer)

    • 也称为密集层,将特征图展平并连接到全连接的神经网络层。

    • 通常在网络的末端,用于分类或回归任务。

  7. 输出层(Output Layer)

    • 最后一层,输出网络的最终结果,如分类标签或回归值。

  8. 连接和正则化(Connections and Regularization)

    • 可能包括Dropout层以减少过拟合,以及Batch Normalization层以加速训练。

  9. 损失函数和优化器(Loss Function and Optimizer)

    • 损失函数用于评估模型的预测与真实值之间的差异,如交叉熵损失。

    • 优化器用于更新网络权重,如SGD(随机梯度下降)或Adam。

一个典型的CNN架构可能包含多个卷积层、激活层、池化层和全连接层的组合,具体层数和配置取决于任务的复杂性和数据的特性。

4.卷积        

        卷积是一种数学运算,它在信号处理、图像处理、机器学习等领域中非常重要,尤其是在卷积神经网络(CNN)中。卷积操作涉及两个函数:一个输入信号(或图像)和一个卷积核(或滤波器),通过这种运算可以提取输入信号的特征。

1)卷积的作用

        卷积的主要作用就是特征提取,将一个区域的特征值通过权重参数(即卷积核)进行计算,提取特征。

2)图像颜色通道

        常见的图像颜色通道是一个三维的,即RGB颜色,其他的也有二维的颜色通道,例如灰度通道等。

        前面说过,卷积是一个多维的过程,在进行卷积时,是三个颜色通道单独进行卷积,最后将特征值进行相加,得到最后的特征图。

3)卷积特征值计算

        如图,卷积核Filter分别单独对三个通道进行卷积(点积计算),每次卷积后都会提取一个特征值,三个特征值相加再加上偏置即得到最终的特征值。

        以第一个为例,第一个卷积核和第一个通道进行卷积,得到特征值0第二个卷积核和第二个通道进行卷积,得到特征值2第三个卷积核和第三个通道进行卷积,得到第三个特征值0,三个特征值相加,加上偏置1,得到最后的结果特征值3。

        卷积时选择多种特征值,得到多个特征图,使得特征得到丰富、捕获不同特征增加深度和复杂性。

4) 卷积层涉及的参数

5)步长和卷积核

  1. 特征图尺寸(Output Dimension)

    • 步长直接影响特征图的尺寸。较大的步长会导致输出特征图的尺寸减小,而较小的步长则会使输出特征图的尺寸增大。
    • 卷积核大小也会影响输出特征图的尺寸。较大的卷积核可能会覆盖更多的输入区域,从而影响特征图的细节和尺寸。
  2. 特征提取(Feature Extraction)

    • 步长较大的卷积操作可能会丢失一些细节信息,但可以提取更全局的特征;步长较小的卷积操作可以提取更多的细节特征,但计算量增加。
    • 卷积核大小决定了感受野的大小,即神经元可以“看到”的输入图像区域。小卷积核可以捕捉局部细节,而大卷积核可以捕捉更广泛的特征。

6)边缘填充

  1. 控制输出尺寸

    • 通过在输入数据的边缘添加额外的像素,可以控制卷积层输出的特征图(Feature Map)的尺寸。例如,如果使用padding=1与一个3x3的卷积核,输出的特征图尺寸将与输入图像的尺寸相同。
  2. 减少边界效应

    • 边缘填充有助于减少边界效应,即在图像边缘的像素由于卷积核无法完全覆盖而丢失信息的问题。适当的填充可以确保边缘像素也能被充分考虑。

7)特征图尺寸计算

        例如输入数据时32*32*3的图像,用10个5*5*3的filter来进行卷积操作,指定步长s为1,边界填充p为2,最终输出规模计算为:

        长度:H=(32 - 5 - 2*2)/1  + 1 = 32,宽度也一样,故选择这样的卷积核进行卷积后,尺寸不变。

8)感受野

        在卷积神经网络(CNN)中,感受野(Receptive Field)是指网络中某一层的神经元对输入图像的哪些区域是敏感的。换句话说,它描述了网络中一个神经元或卷积核能够“看到”或影响输入图像的区域大小和位置。

9)参数共享

        卷积参数共享是卷积神经网络(CNN)中的一个核心概念,它指的是在卷积层中,同一个卷积核(或滤波器)的参数在整个输入数据上是共享的。这意味着无论输入图像有多大,每个卷积核的权重都保持不变,并且在整个图像上滑动时使用相同的参数。

  1. 减少参数数量

    • 由于参数在整个输入上共享,这大大减少了模型需要学习的参数总数。例如,一个具有100万个参数的全连接层可能需要一个具有相同数量参数的卷积层,但后者的参数数量会显著减少,因为每个卷积核的参数在整个图像上重复使用。
  2. 提高计算效率

    • 参数共享减少了模型的参数数量,从而降低了模型的计算复杂度,使得卷积操作可以更快地进行。
  3. 实现平移不变性

    • 参数共享使得CNN对输入图像的小平移不敏感。如果一个特征在图像的一个区域被检测到,那么在另一个区域也能被相同的卷积核检测到,因为它们共享相同的参数。
  4. 增强泛化能力

    • 由于卷积核学习到的特征是在整个输入空间上共享的,这有助于模型学习到更加泛化的特征表示,而不是过度依赖于特定位置的特征。

5.池化

        池化(Pooling)是卷积神经网络(CNN)中的一种结构,它跟在卷积层之后,用于降低特征图(Feature Maps)的空间维度,同时保留重要的特征信息。池化操作通常包括以下几种类型:

  1. 最大池化(Max Pooling)

    • 最大池化会在给定的池化窗口内选择最大值作为输出。这种方法能够捕捉局部区域中最显著的特征,并且对小的位置变化具有不变性。
  2. 平均池化(Average Pooling)

    • 平均池化会计算池化窗口内所有值的平均数作为输出。这种方法能够提供局部区域的统计信息,但不如最大池化对极端值敏感。

二、经典卷积神经网络架构

1.VGG

        VGG(Visual Geometry Group)网络是由牛津大学的视觉几何小组提出的,它在2014年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比赛中取得了分类任务第二名的成绩。VGG网络的主要特点是其简单而深的架构,它证明了增加网络深度能够在一定程度上提升网络的性能。

1)VGG网络的主要结构:

  1. 卷积层:VGG网络中的所有卷积层都使用3x3的卷积核,这与AlexNet中使用的较大卷积核(11x11,7x7,5x5)不同。VGG通过连续几个3x3的卷积核代替大卷积核,这样做的好处是在保持相同感受野的前提下,增加了网络深度,并且减少了参数数量。

  2. 池化层:VGG网络中的池化层都使用2x2的池化核,步长为2,用于降低特征图的空间维度。

  3. 全连接层:VGG网络在卷积层之后有3个全连接层,用于分类任务。

2)VGG网络的两种常见配置:

  • VGG16:包含16个隐藏层(13个卷积层和3个全连接层)。
  • VGG19:包含19个隐藏层(16个卷积层和3个全连接层)。

3)VGG网络的特点:

  • 小卷积核:VGG网络全部使用3x3的小卷积核,这有助于减少参数数量并保持特征图的空间维度。
  • 深网络:VGG网络通过增加网络深度来提升性能,VGG16和VGG19分别有16层和19层。
  • 参数共享:由于卷积核在整个输入数据上共享,这减少了模型的参数数量。
  • 数据增强:VGG在训练时使用多尺度数据增强,提高了模型的泛化能力。

4)VGG网络的优缺点:

  • 优点:结构简单,性能强大,被广泛用于图像识别和分类任务,尤其在迁移学习中表现突出。
  • 缺点:参数量较大,需要更多的存储空间和计算资源

2.Resnet

        在VGG网络架构之中,出现了一个问题,随着深度的增加,error不降反增,深度学习进入低谷,在后面的研究之中,出现了ResNet残差网络“保底思想”,,就火了深度学习。

        ResNet(残差网络)是一种深度学习中的卷积神经网络架构,由微软研究院提出,其核心创新点在于引入了残差学习(residual learning)和残差连接(skip connections)。

优点

  • 解决梯度消失问题:通过残差块的恒等映射,ResNet允许梯度直接流向前面的层,有效缓解了梯度消失问题。
  • 提高训练效率:ResNet允许使用更大的学习率和更深层次的网络,从而加快了收敛速度。
  • 强大的特征提取能力:ResNet通过深层网络学习到更复杂的特征表示,提升了图像分类、目标检测等任务的性能。
  • 良好的泛化能力:即使网络非常深,ResNet也能保持良好的泛化能力,不会发生过拟合。

标签:卷积,VGG,网络,特征,神经网络,深度,输入
From: https://blog.csdn.net/2401_84605487/article/details/143417215

相关文章

  • 深度学习
    卷积层提取数据特征,矩阵点乘求和运算importtorchfromtorchimportnnconv=nn.Conv2d(in_channels=1,out_channels=1,kernel_size=3,stride=1,padding=1,dilation=1,groups=1,bias=True)print(conv)"""output:Conv2d(1,1,kernel_size=(3,3......
  • 为什么神经网络loss值很小但实际预测结果差很大
    当我们使用神经网络进行训练时,可能会遇到loss值很小但实际预测效果很差的情况。这可能是由:1.过拟合;2.不合适的数据分割;3.评估指标选择不当;4.模型结构或参数设置不当;5.数据问题导致的标签错误等原因造成的。1.过拟合过拟合是神经网络训练中常见的问题,意味着模型在训练数据上表......
  • 【YOLOv11改进 - 注意力机制】LSKA(Large Separable Kernel Attention):大核分离卷积注
    YOLOv11目标检测创新改进与实战案例专栏点击查看文章目录:YOLOv11创新改进系列及项目实战目录包含卷积,主干注意力,检测头等创新机制以及各种目标检测分割项目实战案例点击查看专栏链接:YOLOv11目标检测创新改进与实战案例@目录YOLOv11目标检测创新改进与实战案例专栏介......
  • 【深度学习】从公式推导来深入理解误差反向传播算法2:《深度学习入门基于Python的理论
    《深度学习入门基于Python的理论与实现》中实现了2层全连接神经网络的代码对MNIST数据集的28x28像素0-9手写数字灰度图像进行分类,本文将重点对代码中的two_layer_net类的gradient函数中的误差反向传播的代码进行公式推导验证。验证小批量数据的交叉熵损失函数对第2层权重......
  • Python基于TensorFlow实现卷积神经网络-双向长短时记忆循环神经网络加注意力机制回归
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景随着大数据时代的到来,对复杂数据结构的理解和预测成为许多领域的重要课题。在这些领域中,无论是视频分析、语音识别还是自然语言处理,都面临着需......
  • 深度学习主要有哪些研究方向
    深度学习的主要研究方向包括:1、监督学习;2、无监督学习;3、强化学习;4、生成对抗网络(GANs);5、自然语言处理(NLP);6、计算机视觉。其中,计算机视觉涉及图像识别和视频分析等方面,已在许多实际应用中取得突破。一、监督学习基本概念:监督学习是深度学习的一种常用方法,通过带标签的训练数......
  • 在深度学习上使用Quadro GV100与Titan V有何区别
    ​在深度学习上使用QuadroGV100与TitanV的区别:1.技术规格差异;2.计算性能比较;3.内存配置对比;4.功耗与成本效益;5.软件与驱动支持。QuadroGV100与TitanV作为NVIDIA公司旗下的高性能计算图形处理器,它们在深度学习应用上各有优劣。1.技术规格差异QuadroGV100和TitanV基于NVID......
  • 浅谈——深度学习和马尔可夫决策过程
            深度学习是一种机器学习方法,它通过模拟大脑的神经网络来进行数据分析和预测。它由多层“神经元”组成,每一层从数据中提取出不同的特征。多层次的结构使得深度学习模型可以捕捉到数据中的复杂关系,特别适合处理图片、语音等复杂数据。        马尔可夫......
  • 【算法笔记】位运算算法原理深度剖析
    【算法笔记】位运算算法原理深度剖析......
  • Python深度学习进阶与前沿应用(注意力机制详解、生成式模型详解、自监督学习模型详解、
    近年来,伴随着以卷积神经网络(CNN)为代表的深度学习的快速发展,人工智能迈入了第三次发展浪潮,AI技术在各个领域中的应用越来越广泛。注意力机制、Transformer模型(BERT、GPT-1/2/3/3.5/4、DETR、ViT、SwinTransformer等)、生成式模型(变分自编码器VAE、生成式对抗网络GAN、扩散模型Di......