详解卷积神经网络(CNN)

卷积神经网络CNN各层基本知识 卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层以及全连接层构成。INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)简单来说:卷积用来提取特征,池化压缩特征,全连接层用来加权重。 阅读详情

CNN概述

卷积神经网络(Convolutional Neural Networks,简称CNN)是一类包含卷积计算且有深度结构的前馈神经网络,是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按照其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络(shift-Invariant Artificial Neural Networks,简称SIANN)”。

CNN结构

卷积神经网络主要包含以下几种层:输入层(Input Layer)、卷积层(Convolutional Layer)、池化层(Pooling Layer)、全连接层(Fully-Connected Layer)、输出层(Output Layer)。如下图所示:
卷积神经网络

卷积层(Convolutional Layer)

感受野(receptive field)

卷积层是构建卷积神经网络的核心层,它会产生非常大的计算量。若普通神经网络把输入层和隐含层进行“全链接”的设计。在计算量方面,相对较小的图片在计算特征时,是可行的。但是,对于更大的图片,若要进行全联通网络学习整张图片的特征,其计算量将会非常大,从而也非常耗费时间。假设设计的输入单元为 1 0 4 10^4 104个,需要学习的特征为100个,那么就有 1 0 6 10^6 106个参数需要学习。与25*25的小图片相比较,其计算过程慢了 4 2 4^2 42倍。
因此在处理图像的高纬度输入时,让每个神经元都与前一层中的所有神经元进行全链接是不现实的,也是不允许的。但是,我们可以让每个神经元只与输入数据的局部区域进行链接。而该链接的空间大小是神经网络的感受野(receptive field),它的尺寸是一个超参数(即滤波器的空间深度)。而且该超参数和输出数据的深度相一致
在这里插入图片描述
上图中展现的卷积神经网络的一部分,其中的红色为输入数据,假设输入数据体尺寸为[32x32x3](比如CIFAR-10的RGB图像),如果感受野(或滤波器尺寸)是5x5,那么卷积层中的每个神经元会有输入数据体中[5x5x3]区域的权重,共5x5x3=75个权重(还要加一个偏差参数)。注意这个连接在深度维度上的大小必须为3,和输入数据体的深度一致。其中还有一点需要注意,对应一个感受野有75个权重,这75个权重是通过学习进行更新的,所以很大程度上这些权值之间是不相等(也就对于同一个卷积核,它对于与它连接的输入的每一层的权重都是独特的,不是同样的权重重复输入层层数那么多次就可以的)。在这里相当于前面的每一个层对应一个传统意义上的卷积模板,每一层与自己卷积模板做完卷积之后,再将各个层的结果加起来,再加上偏置,注意是一个偏置,无论输入输入数据是多少层,一个卷积核就对应一个偏置

空间排列(Spatial arrangement)

输出单元的尺寸大小是由下面三个超参数进行控制的:深度(depth)、步长(stride)和零填充(zero-poolin)。

  • 深度(depth):和输出单元、滤波器的深度一致;
  • 步长(stride):是指滤波器在感受野区域内,每次移动的像素值大小;当步长为1时,滤波器每次移动1个像素;若步长为2,滤波器每次移动2个像素;
  • 零填充(zero-poolin):通过在输入单元周围补零来改变输入单元的空间大小,从而改变输出单元的空间大小。最常用的是利用零填充的方法来确保输入单元和输出单元的宽度和高度相等;
    若输入单元的尺寸为 W 1 ∗ H 1 ∗ D 1 W_1 * H_1 * D_1 W1​∗H1​∗D1​,输出单元的尺寸为 W 2 ∗ H 2 ∗ D 2 W_2 * H_2 * D_2 W2​∗H2​∗D2​,卷积层中的神经元感受野为(F),步长(S),滤波器数量为(K)和零填充的数量为§,那么输出尺寸和输入尺寸之间的关系如下:
    W 2 = ( W 1 − F + 2 P ) / S + 1 W_2 = (W_1 - F + 2P)/S + 1 W2​=(W1​−F+2P)/S+1
    H 2 = ( H 1 − F + 2 P ) / S + 1 H_2 = (H_1 - F + 2P)/S + 1 H2​=(H1​−F+2P)/S+1
    D 2 = K D_2 = K D2​=K
    步长的限制:假如,当输入尺寸w=10,不使用零填充P=0,滤波器尺寸F=3,此时步长为S=2是不行的,因为$ (W-F+2P)/S+1=(10-3+0)/2+1=4.5$,其输出单元的尺寸不为整数,也就是说神经元不能整齐对称划过所有数据体,因此该超参数设置是无效的。

权值共享

在卷积层中权值共享是用来控制参数的数量。假如在一个卷积核中,每一个感受野采用的都是不同的权重值(卷积核的值不同),那么这样的网络中参数数量将是十分巨大的。

应用参数共享可以大量减少参数数量,参数共享基于一个假设:如果图像中的一点(x1, y1)包含的特征很重要,那么它应该和图像中的另一点(x2, y2)一样重要。换种说法,我们把同一深度的平面叫做深度切片(depth slice)((e.g. a volume of size [55x55x96] has 96 depth slices, each of size [55x55])),那么同一个切片应该共享同一组权重和偏置。我们仍然可以使用梯度下降的方法来学习这些权值,只需要对原始算法做一些小的改动, 这里共享权值的梯度是所有共享参数的梯度的总和。

我们不禁会问为什么要权重共享呢?一方面,重复单元能够对特征进行识别,而不考虑它在可视域中的位置。另一方面,权值共享使得我们能更有效的进行特征抽取,因为它极大的减少了需要学习的自由变量的个数。通过控制模型的规模,卷积网络对视觉问题可以具有很好的泛化能力。

卷积

每一个卷积层的计算都是输入单元和权重(即滤波器)的卷积;卷积的运算如下图所示:
在这里插入图片描述

卷积层参数

  • 输入单元尺寸: W 1 ∗ H 1 ∗ D 1 W_1 * H_1 * D_1 W1​∗H1​∗D1​
  • 输出单元尺寸: W 2 ∗ H 2 ∗ D 2 W_2 * H_2 * D_2 W2​∗H2​∗D2​,其中
    • W 2 = ( W 1 − F + 2 P ) / S + 1 W_2 = (W_1 - F + 2P)/S + 1 W2​=(W1​−F+2P)/S+1
    • H 2 = ( H 1 − F + 2 P ) / S + 1 H_2 = (H_1 - F + 2P)/S + 1 H2​=(H1​−F+2P)/S+1
    • D 2 = K D_2 = K D2​=K
      注:
      • 在权值共享中,每个filter有 ( F × F × D 1 ) × K (F×F×D_1)×K (F×F×D1​)×K个权重和K个偏值;
      • 在输出单元中,第d个深度切片的结果是第d个filter和输入单元做的卷积运算,然后再加上偏值。

池化层(Pooling Layer)

通常在连续的卷积层之间会插入一个池化层。它的作用是逐渐降低数据单元的尺寸,来有效的减少网络中的参数数量,降低计算资源的消耗;同时,也能有效的控制过拟合。池化层的运算方式有最大池化层(Max Pooling)、平均池化层(Average Pooling)、中值池化层(Mid-value Pooling)等方式。
输入数据体尺寸 W 1 ∗ H 1 ∗ D 1 W_1 * H_1 * D_1 W1​∗H1​∗D1​,有两个超参数:空间大小FF和步长SS;输出数据体的尺寸 W 2 ∗ H 2 ∗ D 2 W_2 * H_2 * D_2 W2​∗H2​∗D2​ ,其中
- W 2 = ( W 1 − F ) / S + 1 W_2 = (W_1 - F)/S + 1 W2​=(W1​−F)/S+1
- H 2 = ( H 1 − F ) / S + 1 H_2 = (H_1 - F)/S + 1 H2​=(H1​−F)/S+1
- D 2 = K D_2 = K D2​=K

全连接层(Fully-Connected Layer)

全连接层和卷积层可以相互转换:

  • 对于任意一个卷积层,要把它变成全连接层只需要把权重变成一个巨大的矩阵,其中大部分都是0 除了一些特定区块(因为局部感知),而且好多区块的权值还相同(由于权重共享)。
  • 相反地,对于任何一个全连接层也可以变为卷积层。比如,一个K=4096K=4096 的全连接层,输入层大小为 7∗7∗5127∗7∗512,它可以等效为一个 F=7, P=0, S=1, K=4096F=7, P=0, S=1, K=4096 的卷积层。换言之,我们把 filter size 正好设置为整个输入层大小。

参考文献

百度百科-卷积神经网络
知乎-卷积神经网络(CNN)详解
优快云-详解卷积神经网络(CNN)

CNN-卷积神经网络 我们使用卷积处理图像,如果采用经典的神经网络模型,则需要读取整幅图像作为神经网络模型的输入(即全连接的方式),当图像的尺寸越大时,其连接的参数将变得很多,从而导致计算量非常大。图像中,红色的输入层代表输入图像,所以它的宽度和高度就是图像的宽度和高度,它的深度是3(代表了RGB3种颜色通道)、接着是经过卷积运算(convolution)和池化运算(Pooling)之后的激活值(也可以看做一层神经元),再接着的下一部分的卷积池化层,最后的部分是一个深度为分类个数的输出向量。 阅读详情

相关推荐

基于Pytorch的卷积神经网络CNN实例应用及详解

基于Pytorch的卷积神经网络CNN实例应用及详解 一、卷积神经网络CNN定义 卷积神经网络(CNN,有时被称为 ConvNet)是很吸引人的。在短时间内,它们变成了一种颠覆性的技术,打破了从文本、视频到语音等多个领域所有最先进的算法,远远超出了其最初在图像处理的应用范围。CNN 由许多神经网络层组成。卷积和池化这两种不同类型的层通常是交替的。网络中每个滤波器的深度从左到右增加。最后通常由一个或多个全连接的层组成。 二、卷积神经网络的原理 ...

rothschild666的博客 5519

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

参考:https://blog.youkuaiyun.com/yjl9122/article/details/70198357卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)卷积层用它来进行特征提取,如下:输入图像是32*32*3,3是它的深度(即R、G、B),卷积层是一个5*5*3...

ZONGXP的博客 6万+

CNN卷积神经网络详解

卷积神经网络(CNN)是一种深度学习模型,广泛应用于图像处理、语音识别、自然语言处理等领域。图像分类和识别:CNN在图像分类和识别方面的应用是最为广泛的。通过训练,CNN能够学习到从图像中提取特征的能力,从而实现对图像的分类和识别。例如,在人脸识别、物体检测、车牌识别等领域,CNN都取得了显著的效果。语音识别:CNN也可以应用于语音识别领域,通过对语音信号的卷积和池化处理,提取出语音的特征表示,从而实现对语音的分类和识别。

qq_44815135的博客 3376

从卷积层、激活层、池化层到全连接层深度解析卷积神经网络的原理

https://www.toutiao.com/a6609148733269475848/ 2019-01-30 22:32:42 局部连接+权值共享 全连接神经网络需要非常多的计算资源才能支撑它来做反向传播和前向传播,所以说全连接神经网络可以存储非常多的参数,如果你给它的样本如果没有达到它的量级的时候,它可以轻轻松松把你给他的样本全部都记下来,这会出现过拟合的情况。 所以我们应该把...

喜欢打酱油的老鸟 4万+

卷积神经网络CNN基本原理详解

卷积神经网络(Convolutional Neural Network,简称CNN),是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层和池化层。

GoppViper的博客 9万+

从‘包饺子’到‘包络线’:一个生活化比喻讲透长期与短期成本决策

本文通过饺子馆经营的生活化比喻,深入浅出地解析了长期与短期成本决策的核心逻辑。从调整人力(可变成本)到扩建厨房(固定成本),揭示了包络线理论在商业决策中的实际应用,帮助企业主在规模经济与成本控制间找到平衡点。

weixin_32006655的博客 338

CNN(卷积神经网络)详解

CNN卷积神经网络详解Why CNN局部感受野(local receptive fields)权值共享(Shared weights and biases)池化(Pooling)总的来看 原文链接:https://blog.youkuaiyun.com/m0_37490039/article/details/79378143 Why CNN 首先回答这样一个问题,为什么我们要学CNN,或者说CNN为什么在很多...

DDB 3万+

Python-Opencv中的膨胀和腐蚀

Python-Opencv中的膨胀和腐蚀 腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。 膨胀就是图像中的高亮部分进行膨胀,“邻域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中高亮部分被腐蚀,“邻域被蚕食”,效果图拥有比原图更小的高亮区域。 1.膨胀 膨胀过程是有一个结构元素或者模板去在原图像素比对,当比对过程中,中心像素位置的值根据其八邻域取或运算,或运算为1就取自己的中心值,...

qq_44262417的博客 1万+

卷积神经网络(CNN)详解

卷积神经网络是多层感知机 (MLP)的变种,由生物学家休博尔和维瑟尔在早期关于猫视觉皮层的研究发展而来,视觉皮层的细胞存在一个复杂的构造,这些细胞对视觉输入空间的子区域非常敏感,称之为感受野。CNN由纽约大学的Yann Lecun(杨立昆)于1998年提出(LeNet-5),其本质是一个多层感知机,成功的原因在于其所采用的局部连接和权值共享的方式:一方面减少了权值的数量使得网络易于优化;另一方面降低了模型的复杂度、减小了过拟合 的风险。当网络的输入为图像时,这些优点将表现地更加明显。2006年,

zdx2585503940的博客 9199

QCC308X/518X/309X加LDAC解码

QCC308X/518X/309X加LDAC解码。

Alex_886的博客 6609

ThunderScope开源示波器

4CH,1GSa/S 开源示波器。前端很简洁,BUF802+LMH6518,ADC是HMCAD1511,用Xilinx A7 FPGA进行控制,数据通过PCIE总线传输到上位机处理。目前这个项目已经被挂到了Xilinx官网,强。设计日志:https://hackaday.io/project/180090-thunderscope开源地址:https://github.com/EEVengers/ThunderScope。

leida_wt的博客 8186

卷积神经网络(CNN)详细介绍及其原理详解

本文总结了关于卷积神经网络(CNN)的一些基础的概念,并且对于其中的细节进行了详细的原理讲解,通过此文可以十分全面的了解卷积神经网络(CNN),非常适合于作为Deep Learning的入门学习。下面就是本篇博客的全部内容!

IronmanJay 32万+

【深度解析】AURIX TC387 UCB Flash架构与避坑指南(第一篇)

摘要:UCB(用户配置块)是AURIX TC3xx芯片启动与安全的关键配置区域,位于DFLASH0存储区。每个512字节的UCB包含启动模式、安全设置等关键参数,并通过强制CRC32校验确保完整性。UCB分为启动头(UCB_BMHD)、安全配置(UCB_ORIG)及其备份(UCB_COPY)三种主要类型。不同于常规Flash,UCB具有自动擦除特性,错误配置可能导致芯片永久锁死。开发中应谨慎修改UCB,必须同时编程原始和备份版本,并确保正确的CRC校验。后续文章将详细介绍UCB编程方法和调试技巧。

2511_94612429的博客 1231

卷积神经网络(CNN)原理详解

这几年深度学习快速发展,在图像识别、语音识别、物体识别等各种场景上取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动。在这场深度学习革命中,卷积神经网络(Convolutional Neural Networks,简称CNN)是推动这一切爆发的主力,在目前人工智能的发展中有着非常重要的地位。 【问题来了】那什么是卷积神经网络(CNN)呢? 1、什么是神经网络? 这里的神经网络,也指人工神经网络(Artificial..

qq_40716944的博客 6万+

SAP 物料账前期没有运行的解决方法

If you use the actual costing (material ledger), you must have completely closed all period-end closing operations in the actual costing for the penultimate period prior to the period shift. Use the '...

含笑饮砒霜死后更嚣张 3316

瑞芯微RK3568与RK3566芯片选型指南:从接口差异到应用场景深度解析

在嵌入式系统与边缘计算领域,芯片选型是决定产品成败的关键一步。其核心在于理解芯片的架构、接口扩展能力与系统可靠性之间的平衡。以瑞芯微(Rockchip)的RK3568和RK3566为例,这两款同为四核A55架构的芯片,在基础算力上相近,但其面向的应用赛道却因接口配置而截然不同。RK3568凭借其双千兆网口、PCIe 3.0高速接口以及全链路ECC内存支持,在技术价值上更侧重于构建高可靠、高扩展性的系统,如边缘计算网关、工业控制器和网络视频录像机(NVR)。相比之下,RK3566则以其精简的接口配置,精准服务

weixin_33314040的博客 479

CNN卷积神经网络原理详解(上)

CNN卷积神经网络原理详解(上)前言卷积神经网络的生物背景我们要让计算机做什么?卷积网络第一层全连接层训练 前言 卷积网络(convolutional network),也叫作卷积神经网络(convolutional neural network,CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。卷积网络在诸多应用领域都表现优异。‘卷积神经网络’一词表明该网络使用了卷积(convolu...

LEEANG121的博客 4万+

本地通知与健康数据的隐私保护方案

随着移动健康(mHealth)应用的普及,本地通知与健康数据的结合为用户提供了更加个性化的健康管理体验。然而,这种便利性也带来了严峻的隐私保护挑战。本文旨在探讨如何在移动应用中实现本地通知功能的同时,确保用户健康数据的隐私安全。本地通知与健康数据结合的技术架构隐私保护的核心技术方案具体算法实现与数学模型实际应用案例分析本文首先介绍背景知识和核心概念,然后深入探讨隐私保护的技术方案,包括算法原理和数学模型。接着提供实际代码实现和应用场景分析,最后讨论未来发展趋势和挑战。

移动开发前沿的博客 1309

CNN卷积神经网络(超详解析)

1、神经网络 首先了解神经网络,大家移步这俩篇博客,一篇为纯理论,一篇为实战加理论。 机器学习之神经网络学习及其模型 入门讲解:使用numpy实现简单的神经网络(BP算法) 2、卷积神经网络之层级结构 cs231n课程里给出了卷积神经网络各个层级结构,如下图 上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:...

weixin_44023658的博客 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pytorch搭建CNN卷积神经网络详解

个人觉得应该先写卷积操作的常见技术和公式操作,才能对卷积输入维度(结果),输出维度(结果)有更直观的了解吧。 简单介绍一下卷积的常用trick: Padding Striding 下方是输入输出公式(本人开始也很困惑,找到对应公式后,就十分明朗了): n:原始输入的维度 | f:卷积核的大小 | p:padding的大小| s:stride的大小 no padding: n - ...

Troublemaker丶的博客 3万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

卷积神经网络(CNN)结构详解

一、CNN的基本结构: 1.图像就是输入层 2.接着是CNN特有的卷积层(convolution),卷积层的自带激活函数使用的是ReLU 3.接着是CNN特有的池化层(pooling), 4.卷积层+池化层的组合可以在隐藏层中出现很多次。也可以灵活组合,卷积+卷积+池化、卷积+卷积等 5.在若干卷积层+池化层之后是全连接层(fully connected layer),其实就是DNN结构,只是输出层使用了Softmax激活函数来做图像识别的分类 6.一般fc就为CNN的全连接层。全连接层一般..

咖乐部 6万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

CNN卷积神经网络原理详解(中)

CNN卷积神经网络原理详解(中)卷积神经网络与全连接神经网络的比较卷积运算的数学解释卷积计算的工作模式 卷积神经网络与全连接神经网络的比较 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling...

LEEANG121的博客 3万+
上一篇: std::vector扩容解析
下一篇: C++虚函数和纯虚函数
一杯盐水
博客等级 码龄10年 62粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值