卷积神经网络CNN各层基本知识

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

卷积神经网络

卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层以及全连接层构成。

INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)

卷积神经网络CNN各层基本知识

简单来说:卷积用来提取特征,池化压缩特征,全连接层用来加权重

卷积层

卷积层的作用是用来提取特征,卷积层主要涉及的参数包括:滑动窗口步长,卷积核尺寸,填充边缘,卷积核个数。卷积核的工作原理如下图所示:

卷积神经网络CNN各层基本知识

如下图所示:输入图像是32 * 32 * 3,3是它的深度也就是R、G、B三通道,通过卷积核,在图中卷积核是5 * 5 * 3的filter,其中filter的深度必须和输入图像的深度相同,也就是对应的3,filter可以有很多个。通过一个filter与输入图像的卷积的话,会得到一个28 * 28 * 1的特征图。
卷积神经网络CNN各层基本知识

卷积神经网络CNN各层基本知识

特得到的具体的特征图尺寸的计算公式如下:
卷积神经网络CNN各层基本知识

如上上图中所示:输入的是32 * 32 * 3大小的图像,用10个5 * 5 *3 的fliter进行卷积操作,并指定步长为1,边缘填充为2:

( 32 − 5 + 2 ∗ 2 ) / 1 + 1 = 32 (32-5 + 2*2) / 1 +1 = 32 (325+22)/1+1=32

输出的规模为32 * 32 * 10,经过卷积操作后也可以保持特征图的长度和宽度不变

关于卷积的过程图解析如下:
卷积神经网络CNN各层基本知识

输入图像和filter的对应位置元素相乘再求和,最后再加上 b0(偏置),得到特征图。

如图所示:filter w0的第一层深度和输入图像的蓝色方框中对应元素相乘再求和得到0,其他两个深度得到2,0,则有0+2+0+1=3即图中右边特征图的第一个元素3,卷积过后输入图像的蓝色方框再滑动,stride(步长)=2。完成卷积,得到一个3 * 3 * 1的特征图;

边缘填充:在这里还要注意一点,即zero pad项,即为图像加上一个边界,边界元素均为0,这就叫做边缘填充,是为了更好的提取边界的每个部分的特征,让边界点也可以多次的提取特征,这就是padding的作用。

通常,我们会通过多次的卷积,来提取特征。

卷积参数共享:

通过卷积操作,我们实现了输入图像的局部连接,从而大大减少了网络模型中的参数量。但这还不够,利用图像的另一特性,参数量可以进一步降低。

卷积神经网络CNN各层基本知识

如图所示:10个shape(5,5)的卷积核,每个卷积核在原图中对应一个参数矩阵,大小为5*5。

  1. 如果不共享权值的话,将得到 5 ∗ 5 ∗ 3 ∗ 32 ∗ 32 ∗ 10 + 10 5 * 5 * 3 * 32 * 32* 10 +10 553323210+10 个参数

  2. 如果共享参数的话将有 5 ∗ 5 ∗ 3 ∗ 10 + 10 5 * 5 * 3 *10 + 10 55310+10 个参数

总结如下:

卷积层涉及参数

  1. 滑动窗口步长:能移动越多得到的特征图越大,提取的特征越细腻,常见步长为1
  2. 卷积核尺寸:选择区域的大小—最后得到结果个数的大小,一般3×3
  3. 边缘填充:由于步长选择,有些元素重复加权贡献的,越往里的点贡献多,越往外的点贡献少,是边界点贡献多些,在外面加上一圈0,可以弥补一些边界特征缺失)zero padding 以0为值进行边缘填充
  4. 卷积核个数:最后要得到多少个特征图,注意的是每个卷积核都是不一样的
  5. 卷积参数共享:用同样一组卷积和对图像中每一个区域进行特征提取

池化层

池化层是当前卷积神经网络中常用组件之一,它最早见于LeNet一文,称之为Subsampleor’downsample’即降采样。

池化层是模仿人的视觉系统对数据进行降维,用更高层次的特征表示图像。
卷积神经网络CNN各层基本知识

池化层的常见操作包含以下几种:最大值池化,均值池化,随机池化,中值池化,组合池化等。

池化层压缩过程:在通过卷积层后对特征图进行筛选,滑动窗口(例如:max pooling将该区域最大值提取出来),max pooling过程如下:

卷积神经网络CNN各层基本知识

激活函数

激活函数的作用在于提供网络的非线性建模能力。如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机。
  如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

常见的激活函数有:

  • Sigmoid激活函数

    也称为S型生长曲线,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间 。公式如下:

    f ( x ) = 1 1 + e − x f(x)=\frac 1{1+e^{-x}} f(x)=1+ex1

    卷积神经网络CNN各层基本知识

  • Tanh激活函数

    Tanh 激活函数又叫作双曲正切激活函数,在数学中,双曲正切"Tanh"是由基本双曲函数双曲正弦和双曲余弦推导而来。公式如下:

  f ( x ) = e z − e − z e z + e − z  f(x)=\frac {e^ {z} - e^ {-z} }{e^ {z} + e^ {-z} } f(x)=ez+ezezez

卷积神经网络CNN各层基本知识

优点:比Sigmoid函数收敛速度更快,输出以0为中心。
缺点:由于饱和性产生的梯度消失

在实践中,Tanh 函数的使用优先性高于 Sigmoid 函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值。

为了解决梯度消失问题,我们来讨论另一个非线性激活函数-Relu函数,该函数明显优于前面两个函数,是现在使用最广泛的函数。

  • Relu激活函数

    公式如下:

    R e l u = m a x ( 0 , x ) Relu = max(0,x) Relu=max(0,x)
    卷积神经网络CNN各层基本知识

当输入 x<0 时,输出为 0,当 x> 0 时,输出为 x。该激活函数使网络更快速地收敛。它不会饱和,即它可以对抗梯度消失问题,至少在正区域(x> 0 时)可以这样,因此神经元至少在一半区域中不会把所有零进行反向传播。由于使用了简单的阈值化(thresholding),ReLU 计算效率很高。

全连接层

全连接层之前的操作:卷积层、池化层、激活函数等的作用是用来提取特征(将原始数据映射到隐藏层特征空间),而全连接层的作用就是分类(将学到的特征表示映射到样本标记空间当中)

在 CNN 结构中,经多个卷积层和池化层后,连接着1个或1个以上的全连接层.与 MLP 类似,全连接层中的每个神经元与其前一层的所有神经元进行全连接.全连接层可以整合卷积层或者池化层中具有类别区分性的局部信息.为了提升 CNN 网络性能,全连接层每个神经元的激活函数(按你的任务目的选择,分类or回归)。

参考:https://blog.csdn.net/weixin_45829462/article/details/106548749

https://www.zhihu.com/question/41037974/answer/150552142

假设你是一只小蚂蚁,你的任务是找小面包。你的视野还比较窄,只能看到很小一片区域。当你找到一片小面包之后,你不知道你找到的是不是全部的小面包,所以你们全部的蚂蚁开了个会,把所有的小面包都拿出来分享了。全连接层就是这个蚂蚁大会~

如果提前告诉你全世界就只有一块小面包,你找到之后也就掌握了全部的信息,这种情况下也就没必要引入FC层了文章来源地址https://www.toymoban.com/news/detail-441869.html

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

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

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

相关文章

  • 聊聊卷积神经网络CNN

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

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

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

    2024年02月10日
    浏览(35)
  • 深度学习|CNN卷积神经网络

    在CNN没有出现前,图像对人工智能来说非常难处理。 主要原因: 图像要处理的数据量太大了。图像由像素组成,每个像素又由不同颜色组成,一张1000×1000彩色RGB图像需要的参数是1000×1000×3,需要三百万参数左右,普通神经网络会全用全连接方法来学习整幅图像上的特征,处

    2024年02月11日
    浏览(35)
  • 十、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日
    浏览(37)
  • 深度学习——CNN卷积神经网络

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

    2024年02月15日
    浏览(35)
  • 卷积神经网络CNN的经典模型

    ILSVRC是一项基于 ImageNet 数据库的国际大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge,ILSVRC) (1)1958年,Rosenblatt发明了感知机。用于对输入的多维数据进行二分类且能够使用梯度下降法自动更新权值。 缺点:只能处理线性分类问题。 (2)1986年,Geoffrey Hi

    2024年02月07日
    浏览(28)
  • 深度学习03-卷积神经网络(CNN)

    CNN,即卷积神经网络(Convolutional Neural Network),是一种常用于图像和视频处理的深度学习模型。与传统神经网络相比,CNN 有着更好的处理图像和序列数据的能力,因为它能够自动学习图像中的特征,并提取出最有用的信息。 CNN 的一个核心特点是卷积操作,它可以在图像上进

    2024年02月05日
    浏览(57)
  • CNN卷积神经网络基础知识

    1.1 卷积核大小的选择 1. 选择奇数卷积核 ①. 保护位置信息,奇数卷积核的中心点位置在中心,有利于定位任务。 ②. padding时左右对称。 2. 在感受野相同的情况下优先选择较小的卷积核以减少计算量 ①. 两个3x3卷积核的感受野与一个5x5卷积核的感受野相同 ②. 两个3x3卷积核的

    2024年02月04日
    浏览(42)
  • 深度学习之卷积神经网络(CNN)

          大家好,我是带我去滑雪!       卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的前馈神经网络,主要用于 图像 和 视频识别 、 分类 、 分割 和 标注 等计算机视觉任务。它主要由 卷积层 、 池化层 、 全连接层 和 激活函数层 等组成。其中,卷积

    2024年02月05日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包