卷积神经网络CNN(Convolutional Neural Network)

这篇具有很好参考价值的文章主要介绍了卷积神经网络CNN(Convolutional Neural Network)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

卷积神经网络CNN(Convolutional Neural Network)

一、CNN与NN的区别

卷积神经网络与传统神经网络的区别:
卷积神经网络CNN(Convolutional Neural Network)

二、CNN的整体架构

1.输入层;2.卷积层;3.池化层;4.全连接层
卷积神经网络CNN(Convolutional Neural Network)

三、卷积层做了什么

首先将图形分割成一个个小区域,对于每一个区域特征不同;接下来选择一种特征计算的方法,为每一个区域计算特征值,得到特征图。
在图中表现为,深蓝色区域3×3的方格中下标为权重,依次计算每一个3×3的方格的特征值得到最终的绿色特征图。
卷积神经网络CNN(Convolutional Neural Network)
在上图中,输入特征维度是32×32×3,最后一维表示图像颜色通道,在大多数情况下,采用RGB形式。在实际计算过程中,是每一个通道单独计算,将最后的计算结果相加
卷积神经网络CNN(Convolutional Neural Network)
卷积神经网络CNN(Convolutional Neural Network)
输入为7×7×3,最后一维3表示图像颜色通道,需要注意的是输入的最后一维要和Filter的最后一维保持一致。Filter为3×3×3,那么这里的卷积核大小为3×3,对应输入矩阵中每3×3的大小进行一个区域选择。
计算方式为: 每一个对应位置相乘,最终结果相加,最后不要忘记加上偏置项。
卷积神经网络CNN(Convolutional Neural Network)
那么并不是卷积一次就完事了,而是可以进行多次卷积,得到若干张特征图,最后进行堆叠。
卷积神经网络CNN(Convolutional Neural Network)
图中首先左侧输入特征维度是32×32×3,经过6个不同的Filter,得到6个特征图进行堆叠;在经过10个不同的Filter,得到10个特征图进行堆叠,依次类推……
卷积神经网络CNN(Convolutional Neural Network)

(一)卷积层涉及的参数:

1. 滑动窗口步长
卷积神经网络CNN(Convolutional Neural Network)
从图中可以看出,不同的步长得到的特征图大小也不同。当步长较小时,相当于慢慢的提取特征,细粒度的提取特征,特征提取的较为丰富;当步长较大时,相当于大刀阔斧的提取特征,特征数目较少。

2. 卷积核尺寸
其实和滑动窗口的尺寸一样,当卷积核尺寸较小时,相当于慢慢的提取特征,细粒度的提取特征,特征提取的较为丰富;当卷积核尺寸较大时,相当于大刀阔斧的提取特征,特征数目较少。
在一般情况下, 滑动窗口选择1,卷积核尺寸为3×3.

3.边缘填充方法
在滑动窗口移动过程中,我们会发现,有些位置的值被多次计算,那么这些值会对最终的结果影响较大,这样会造成不公平的效果。
解决方法:zero-padding 经过观察发现,越靠近边缘位置的值计算重复越少,越靠近中心位置的值计算次数越多,因此可以在输入特征矩阵外再添加一圈0,使得原本边界的特征被利用的次数增多,在一定程度上弥补了边界信息缺失,边界特征提取不充分的问题。

那么为啥添加的是0 ,而不是其他值呢? 如果添加其他值则会再计算过程中对最终的结果产生影响。
卷积神经网络CNN(Convolutional Neural Network)
4.卷积核个数
卷积核个数取决于最终在计算过程中得到多少个特征图,10个特征图也就对应10个卷积核。

(二)卷积层的计算公式:

卷积神经网络CNN(Convolutional Neural Network)
这里需要注意的是边界填充为啥要乘2,原因是我们再输入的特征矩阵周围添加了一圈0,是上下左右都填充了,所以长度和宽度都扩大为原来的两倍

举个栗子:
如果输入数据是32×32×3的图像,用10个5×5×3的filter来进行卷积操作,指定步长为1,边界填充为2,最终输入的规模是?
利用公式:(32-5+2×2)/ 1 + 1 = 32 ,因此最终的输出规模为:32×32×10
此时我们可以发现:经过卷积操作后,特征并不一定缩小,可以保持特征图长度和宽度不变

(三)卷积参数共享:

用同样一个卷积核,对图中的每一个小区域进行特征提取。也就是说,对每一个区域进行特征提取时,卷积核中的参数不会发生改变。

如果输入数据依旧是32×32×3的图像,继续用10个5×5×3的filter来进行卷积操作,所需的权重参数个数有多少?
5×5×3 = 75 ,表示一个卷积核需要75个参数,10个卷积核共计750个参数,但每一个卷积核还有一个偏置参数 b ,因此最终只需要 750 + 10 = 760 个参数即可。

四、池化层的作用

在卷积层我们的想法是特征图中的特征越多越好,越多表示特征提取越细腻,能够得到的特征信息越多;但是并不是每一个特征都是有用的,因此池化层的作用就是将得到的特征图进行压缩。
卷积神经网络CNN(Convolutional Neural Network)
这里需要注意的是:压缩的是每一个特征矩阵的长和宽,并不会压缩特征个数。

压缩方法:最大池化
卷积神经网络CNN(Convolutional Neural Network)
过程是一步一步的移动滑动窗口,找到并取出每一个滑动窗口中的最大值。在池化层中,并没有涉及到任何的矩阵计算,只是进行矩阵筛选、压缩和过滤。

五、卷积神经网络的整体架构

通过观察图,我们发现了几个特点:

  1. 首先每一个卷积过后都连接一个Relu激活函数;
  2. 每两次卷积后进行一次池化操作;
  3. 所有的卷积和池化操作完成后进行全连接FC,
  4. 全连接层得到最终的分类结果。
    卷积神经网络CNN(Convolutional Neural Network)
    那么我们必须要思考了,卷积和池化操作完成后得到的是一个立体的三维特征图,那么如何进行分类操作呢?
    由于全连接层无法连接三维的特征图,因此需要将特征图拉成一维的特征向量。
    例如:图中最终进行的是5分类任务,假设卷积和池化操作完成后得到的是一个32×32×10的特征图,将其转换成长度为 10240(32×32×10)的特征向量,连接维度为[10240,5]的全连接层,最终将10240的特征转换为预测的5个类别的概率值。

小Tips: 在计算神经网络层数时,只有带参数计算的才能称为层,因此conv卷积层、FC全连接层带参数计算,上图中为7层卷积神经网络。
卷积神经网络CNN(Convolutional Neural Network)

六、经典的卷积神经网络

(一)ALEXNet

2012年ImageNet竞赛冠军
卷积神经网络CNN(Convolutional Neural Network)

(二)VGGNet(Visual Geometry Group Network)

2014年ILSVRC竞赛的第二名
卷积神经网络CNN(Convolutional Neural Network)
VGG的特点是:为了弥补池化层丢失的特征信息,每经过一次池化,将特征图的个数翻倍
同时VGG发现,卷积神经网络的层数并不是越深越好,当层数达到16层时比30层效果还要好。随着卷积层数的增加,并不是所有的层都能提取较好的特征,它是基于之前提取的特征之上进行卷积的,不能保证后面提取的一定比之前的效果好。

七、残差网络Resnet

卷积神经网络CNN(Convolutional Neural Network)
这是一张描述残差网络的经典图。x作为输入,经过两层网络weight layer,我们将这两层网络看成一个F(x),那么如果没有残差网络,我们可以直接输出F(x)。但是有了残差网络,就相当于将输入的x原封不动的拿到输出位置与F(x)进行相加操作,因此输出为F(x)+x。
其实残差网络的作用是可以让深度神经网络做的更深,并且效果至少不会比原来的差。为啥?
假设在上图中我们经过了两次卷积(weight layer),卷积的结果不一定是好的,那么如果最终输出是F(x),就会导致卷积效果变差。但是我们现在可以将卷积之前的x原封不动的拿过来和F(x)进行堆叠(相加操作),神经网络即使发现这两层卷积使得loss值变大,那么它会将这两层的权重参数学习为0,但我们还有x保底,也就是卷积之前的值,这样就保证了最终的效果不会变差。如果卷积效果好,那么毋庸置疑,皆大欢喜,直接相加。
卷积神经网络CNN(Convolutional Neural Network)
经过实验验证,加上残差网络后,堆叠的层数增多,错误率会下降。

八、感受野

什么是感受野:最后输出的值,能够感受到它是由前面的多少个数据参与计算得到的。
卷积神经网络CNN(Convolutional Neural Network)

如果堆叠3个3×3的卷积层,并且保持滑动窗口步长为1,其感受野为7×7;这与一个使用7×7的卷积核的结果是一样的,为啥要用3个3×3的小卷积层呢?
假设输入大小都是h×w×c,并且都使用c个卷积核(得到c个特征图),计算各自所需要的参数:
一个7×7的卷积核所需要的参数 : c × ( 7 × 7 × c ) = 49c2
三个3×3小卷积核所需要的参数 : 3 × c × ( 3 × 3 × c ) = 27c2
很明显,堆叠小的卷积核所需要的参数更少,并且卷积过程越多,特征提取也会更加细致,加入的非线性变换也随之增多,还不会增大权重参数的个数,这也是VGGnet的基本出发点,用小的卷积核来完成特征提取操作。文章来源地址https://www.toymoban.com/news/detail-440820.html

到了这里,关于卷积神经网络CNN(Convolutional Neural Network)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 神经网络语言模型(Neural Network Language Model,NNLM)

    神经网络语言模型(Neural Network Language Model,NNLM)是一种用神经网络建模语言的方法。NNLM 通过学习文本序列中的词汇之间的概率关系,能够捕捉到语言的结构和语境,从而能够生成自然语言文本或进行其他与语言相关的任务。 想象一下,你正在阅读一本小说。每当你读到一

    2024年02月02日
    浏览(43)
  • 【深度学习笔记】6_2 循环神经网络RNN(recurrent neural network)

    注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 上一节介绍的 n n n 元语法中,时间步 t t t 的词 w t w_t w t ​ 基于前面所有词的条件概率只考虑了最近时间步的 n − 1 n-1 n − 1 个词。如果要考虑比 t − ( n − 1 ) t-(n-1) t −

    2024年03月12日
    浏览(69)
  • CNN卷积神经网络

    一、 什么是CNN卷积神经网络 卷积神经网络由三部分组成:输入层、由n个卷积层和池化层的组合组成、全连结的多层感知机分类器。 深度学习的迅速发展,我们会在不同的应用场景会使用不同的神经网络,没有一个神经网络他能在任何场景下,效果都好,也没有说某一个算法

    2024年02月06日
    浏览(54)
  • 聊聊卷积神经网络CNN

    卷积神经网络(Convolutional Neural Network,CNN)是一种被广泛应用于图像识别、语音识别和自然语言处理等领域的深度学习模型。与RNN、Transformer模型组成AI的三大基石。 在卷积神经网络中,相比较普通的神经网络,增加了卷积层(Convolution)和池化层(Pooling)。其结构一般将会是如下

    2024年02月05日
    浏览(40)
  • 理解卷积神经网络(CNN)

    卷积神经网络(CNN)是一种专为处理具有类似网格结构的数据(如图像)而设计的深度学习架构。自从在图像处理和计算机视觉领域取得突破性成就以来,CNN已成为这些领域的核心技术之一。 CNN的起源与发展 CNN的概念最初是受到生物视觉感知机制的启发而提出的。早期的研

    2024年03月10日
    浏览(66)
  • 关于CNN卷积神经网络

    CNN代表卷积神经网络(Convolutional Neural Network) 它是一种深度学习算法,特别适用于处理图像和视频数据。CNN由多个 卷积层、池化层和全连接层 组成,通过学习图像或视频数据的特征来进行 分类、识别或检测任务 。与传统的全连接神经网络相比,CNN的 参数数量较少 ,能够

    2023年04月09日
    浏览(46)
  • 【人工智能】— 深度神经网络、卷积神经网络(CNN)、多卷积核、全连接、池化

    Pre-training + Fine-tuning Pre-training(预训练) : 监督逐层训练是多隐层网络训练的有效手段, 每次训练一层隐层结点, 训练时将上一层隐层结点的输出作为输入, 而本层隐结点的输出作为下一层隐结点的输入, 这称为”预训练”. Fine-tuning(微调) : 在预训练全部完成后, 再对整个网络进行

    2024年02月10日
    浏览(48)
  • 十、CNN卷积神经网络实战

    输入样本通道数4、期待输出样本通道数2、卷积核大小3×3 具体卷积层的构建可参考博文:八、卷积层 设定卷积层 torch.nn.Conv2d(in_channels=in_channel,out_channels=out_channel,kernel_size=kernel_size,padding=1,stride=1) 必要参数:输入样本通道数 in_channels 、输出样本通道数 out_channels 、卷积核大小

    2023年04月09日
    浏览(51)
  • 深度学习——CNN卷积神经网络

    卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习中常用于处理具有网格结构数据的神经网络模型。它在计算机视觉领域广泛应用于图像分类、目标检测、图像生成等任务。 CNN 的核心思想是通过利用局部感知和参数共享来捕捉输入数据的空间结构信息。相比于传统

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包