卷积神经网络 CNN

目录

卷积网络与传统网络的区别

参数共享

卷积神经网络整体架构

卷积操作的作用

卷积核的定义

卷积特征值计算方法

卷积层涉及的参数

边缘填充

​编辑

卷积结果计算

 池化层

整体网格架构

VGG网络架构

 残差网络Resnet

卷积网络与传统网络的区别

卷积神经网络(CNN)和传统神经网络在输入和参数共享方面有所不同。

传统神经网络的输入是一个向量,即一维数据。而卷积神经网络的输入是一个三维长方体矩阵,即高度 * 宽度 * 3通道,或者行数 * 列数 * 3通道。这种不同的输入形式导致了神经网络的权重参数和输出结果也不同。

在传统神经网络中,每个神经元都有自己的权重参数,这意味着参数的数量非常庞大。而卷积神经网络通过参数共享的方式来解决这个问题。具体来说,卷积神经网络使用相同的卷积核对输入的每个小区域进行特征提取,即核里的每个值都是相同的。这样一来,参数的数量大大减少,同时也提高了训练效率和防止过拟合的能力。

因此,卷积神经网络通过输入的三维结构和参数共享的方式,与传统神经网络在处理图像等二维数据方面具有更好的效果。

参数共享

卷积神经网络中的参数共享是指在一个模型的多个函数中使用相同的参数。在传统的神经网络中,每个权重矩阵的元素只使用一次。而在卷积神经网络中,卷积核的每个元素都作用在输入的每一个位置上,即一个核扫遍整个输入,而不是动一下一个核。这种参数共享的方式保证了我们只需要学习一个参数集合,而不是对于每一个位置都需要学习一个单独的参数集合。这样可以大大减少需要学习的参数数量,提高模型的效率和泛化能力。

例如,在卷积层中,我们可以使用一个卷积核来提取图像的特征。这个卷积核在整个图像上滑动,对每个位置的图像块进行卷积操作。由于参数共享,这个卷积核的参数在整个图像上都是相同的,因此可以提取出图像的局部特征。这种参数共享的方式使得卷积神经网络能够具有平移不变性,即对于图像的平移操作不会改变提取到的特征。

通过参数共享,卷积神经网络能够在处理图像时具有不变性,能够识别偏移图案、识别倾斜或轻微扭曲的图像。这种特点使得卷积神经网络在图像处理和计算机视觉任务中表现出色。

卷积神经网络整体架构

卷积神经网络(Convolutional Neural Network,CNN)是一种主要应用于图像领域的神经网络结构,用于解决传统神经网络在处理图像时出现的过拟合和权重过多等问题。

卷积神经网络的整体架构包括以下几个主要组件:
1. 卷积层(Convolutional Layer):卷积层是卷积神经网络的核心组件,用于提取输入图像的特征。它通过使用一组可学习的滤波器(也称为卷积核)对输入图像进行卷积操作,生成一系列的特征图。每个滤波器可以检测输入图像中的不同特征,例如边缘、纹理等。
2. 池化层(Pooling Layer):池化层用于减小特征图的尺寸,并保留最重要的特征。常用的池化操作包括最大池化和平均池化。最大池化选择每个区域中的最大值作为输出,而平均池化计算每个区域的平均值作为输出。池化操作有助于减少特征图的维度,提高计算效率,并增强模型对平移和缩放的不变性。
3. 激活函数(Activation Function):激活函数引入非线性变换,增加模型的表达能力。常用的激活函数包括ReLU(Rectified Linear Unit)、Sigmoid和Tanh等。ReLU函数在正区间上输出输入值,而在负区间上输出0,能够有效地缓解梯度消失问题。
4. 全连接层(Fully Connected Layer):全连接层将前面的卷积层和池化层的输出连接起来,并通过一系列的全连接操作进行分类或回归任务。全连接层的每个神经元都与前一层的所有神经元相连,可以学习到更高级别的特征表示。
5. Softmax层:Softmax层通常用于多分类任务,将全连接层的输出转化为概率分布。Softmax函数将每个类别的得分转化为概率值,使得所有类别的概率之和为1。

通过这些组件的堆叠和组合,卷积神经网络能够自动学习到输入图像的特征表示,并在分类、目标检测、图像生成等任务中取得优秀的性能。

卷积操作的作用

卷积操作会将卷积核与输入数据的对应位置进行元素相乘,然后将所有相乘结果相加得到输出的一个元素。这个过程可以通过下面的公式表示:输出 = 输入 * 卷积核

卷积操作的主要作用是提取输入数据中的特征。通过不同的卷积核,可以提取出不同的特征,例如边缘、纹理等。卷积神经网络通过堆叠多个卷积层,可以逐渐提取出更加抽象和高级的特征,从而实现对输入数据的有效表示和分类。

总结来说,卷积操作在深度学习中扮演了特征提取的重要角色,它通过滑动卷积核在输入数据上进行局部区域的计算,从而提取出输入数据的特征信息。

卷积核的定义

卷积核是卷积神经网络中的一个重要概念,用于提取输入图像的特征。卷积核的定义包括两个方面:大小和形状。

1. 大小:卷积核的大小决定了卷积操作的范围,也就是感受野的大小。在二维卷积中,最常见的卷积核大小是3x3。一般来说,较大的卷积核可以捕捉更多的图像信息,获得更好的全局特征。但是,大的卷积核会增加计算量,降低计算性能。

2. 形状:卷积核的形状可以是任意的,但通常是正方形或矩形。卷积核的形状决定了卷积操作的方式和特征提取的方式。例如,边缘检测可以使用边缘检测卷积核,而模糊操作可以使用模糊卷积核。

为什么卷积核的大小通常是奇数呢?有两个原因:

1. 更容易进行填充:在卷积操作中,有时我们希望卷积前后的尺寸保持不变,这时就需要使用填充。当图像大小为n×n,卷积核大小为k,填充设置为(k-1)/2时,根据计算公式可知,卷积后的输出尺寸为o=n。这样可以保证卷积前后的尺寸不变。但是,如果k是偶数,(k-1)/2就不是整数,无法实现尺寸不变的填充。

2. 更容易找到卷积锚点:在卷积操作中,通常以卷积核模块的一个位置为基准进行滑动,这个基准通常是卷积核模块的中心。如果卷积核大小是奇数,卷积锚点很容易确定,就是卷积模块的中心。但是,如果卷积核大小是偶数,就无法确定卷积锚点,无法很好地进行卷积操作。

卷积特征值计算方法

卷积层涉及的参数

卷积层涉及的参数包括滑动窗口步长、卷积核尺寸、填充边缘和卷积核个数。

1. 滑动窗口步长:滑动窗口步长决定了卷积核在输入图像上移动的步长。较小的步长可以提取更细腻的特征,但会导致输出特征图尺寸减小。
2. 卷积核尺寸:卷积核尺寸指的是卷积核的大小,通常用一个二维矩阵表示。较小的卷积核可以捕捉到更局部的特征,而较大的卷积核可以捕捉到更全局的特征。
3. 填充边缘:填充边缘是在输入图像周围添加额外的像素,以便在卷积过程中保持输出特征图的尺寸与输入特征图相同。常见的填充方式是在边缘周围添加0值像素(zero padding)。
4. 卷积核个数:卷积核个数决定了最终要得到多少个特征图。每个卷积核都是不同的,通过对输入图像的不同区域进行特征提取,从而得到不同的特征图。

这些参数的选择会影响卷积层的输出特征图的尺寸和特征提取能力。通过调整这些参数,可以根据具体任务和需求来优化卷积层的性能。

边缘填充
卷积结果计算

 池化层

池化层在卷积神经网络中起到了两个主作用:

1. 缩小参数矩阵的尺寸:池化层可以通过对输入数据进行下采样,将输入数据的尺寸缩小,从而减少了后续连接层中的参数数量。这样可以降低计算复杂度,加快计算速度。

2. 防止过拟合:池化层通过对输入数据进行压缩,减少了数据的维度,从而降低了模型的复杂度。这有助于防止模型过拟合训练数据,提高模型的泛化能力。

总结来说,池化层的作用是通过缩小参数矩阵的尺寸和降低模型复杂度,加快计算速度和防止过拟合。

整体网格架构

VGG网络架构

VGG网络架构是一种经典的卷积神经网络架构,它在AlexNet的基础上加深了网络的层数,并持续使用3x3的卷积核。VGG网络有多个不同的配置,其中最常用的是VGG16和VGG19。

VGG16网络结构如下:
1. 输入层:接受输入图像的像素值。
2. 卷积层:由13个卷积层组成,每个卷积层都使用3x3的卷积核进行卷积操作,并使用ReLU激活函数。
3. 池化层:由5个最大池化层组成,每个池化层的窗口大小为2x2,步幅为2。
4. 全连接层:由3个全连接层组成,每个全连接层都包含4096个神经元,并使用ReLU激活函数。
5. 输出层:根据具体的任务,输出层的神经元个数会有所不同。

VGG19网络结构与VGG16类似,但是增加了4个额外的卷积层,使得网络更深。这些额外的卷积层有助于提高网络的性能,但也增加了网络的参数量和计算复杂度。

VGG网络架构的特点是简单而有效,适合用于图像分类和特征提取任务。由于VGG16和VGG19的网络结构相对较深,因此在实际应用中,VGG16更常用,因为它相对于VGG19来说具有更少的参数量和计算复杂度。

 残差网络Resnet

研究动机是为了解决深度网络的退化问题,即随着网络层数的增加,网络的性能反而下降。ResNet通过引入残差连接来解决这个问题。

在传统的神经网络中,每一层的输出都是通过学习去拟合相对于上一层输入的映射关系。而在ResNet中,每一层的输出是相对于上一层输出的残差。这意味着网络只需要学习残差部分,而不需要学习整个映射关系。这种设计使得网络更容易优化,并且可以通过增加网络的深度来提升性能。

ResNet的核心思想是残差块(residual block)。每个残差块由两个卷积层和一个跳跃连接组成。跳跃连接将输入直接添加到残差块的输出中,从而形成了一个残差路径。这样,即使在网络的深层,信息也可以通过跳跃连接直接传递,避免了信息的丢失和退化。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/409783.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面向面试的机器学习知识点(4)——分类模型

省流版: 本文介绍机器学习中的回归算法:逻辑回归、KNN、SVM、随机森林和XGBoost。作为机器学习的有监督学习方法,分类模型是最重要也是最常见的一类算法,在数据分析等岗位的笔试面试中都是常客,非常值得深入研究&…

初识Lombok

前言 最近读一些公司的业务代码,发现近几年的java项目工程中都使用了lombok,lombok是一个可以自动生成get,set、toString等模板类方法的工具框架,程序再引入lombok后,添加一个注解便可以不写get\set\toString等方法。 Lombok示例…

UDP 与 TCP 的区别是什么?

目录 区别 一、面向无连接 二、不可靠性 三、高效 四、传输方式 五、适用场景 1.直播 2.英雄联盟 六、总结 区别 首先 UDP 协议是面向无连接的,也就是说不需要在正式传递数据之前先连接起双方。然后 UDP 协议只是数据报文的搬运工,不保证有序且…

Kotlin多线程

目录 线程的使用 线程的创建 例一:创建线程并输出Hello World Thread对象的用法 start() join() interrupt() 线程安全 原子性 可见性 有序性 线程锁 ReentrantLock ReadWriteLock 线程的使用 Java虚拟机中的多线程可以1:1映射至CPU中,即…

【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)

基于Springboot的物业管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的物业管理系统,本系统有管理员、物业、业主以及维修员四种角色权限; 管理员进入主页面,主要功能包…

MCU独立按键单控LED实现

##江科大视频学习,并且对具体的一些小细节进行更详细的分析。 什么是独立按键? 轻触按键:相当于是一种电子开关,按下开头接通,松开时开头断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。 注意…

Keepalived介绍、架构和安装

Keepalived介绍、架构和安装 文章目录 Keepalived介绍、架构和安装1.Keepalived(高可用性服务)1.1 Keepalived介绍1.2 Keepalived 架构1.3 Keepalived 相关文件 2.Keepalived安装2.1 主机初始化2.1.1 设置网卡名和ip地址2.1.2 配置镜像源2.1.3 关闭防火墙…

在autodl搭建stable-diffusion-webui+sadTalker

本文介绍在autodl.com搭建gpu服务器,实现stable-diffusion-webuisadTalker功能,图片音频 可生成视频。 autodl租GPU 自己本地部署SD环境会遇到各种问题,网络问题(比如huggingface是无法访问),所以最好的方…

元学习(meta-learning)的通俗解释

目录 1、什么是元学习 2、元学习还可以做什么 3、元学习是如何训练的 1、什么是元学习 meta-learning 的一个很经典的英文解释是 learn to learn,即学会学习。元学习是一个很宽泛的概念,可以有很多实现的方式,下面以目标检测的例子来解释…

macOS系统下载IDEA的操作流程

第一步 进入官网 Download IntelliJ IDEA – The Leading Java and Kotlin IDE 第二步 根据mac的芯片选择版本下载 芯片的查看位置是【设置】-【通用】-【关于本机】-第二个,我的是Apple芯片,选Apple Silicon -- 第三步 右上角下载处打开安装包&…

485隔离器4口集线器一分二四路导轨安装数字量输入模块RS485中继

品牌:泰工华控 型号:TD-7511/TD-7512/TD-7514 产地:中国大陆 省份:安徽省 地址:宿州市 颜色分类:485一进一出隔离,485缓存器一进二出(两主一从,485分路器一进二出(一主两从&…

[C++][C++11][四] -- [lambda表达式]

目录 1.为什么要有lambda表达式?2.lambda表达式3.lambda表达式语法4.函数对象与lambda表达式 1.为什么要有lambda表达式? 在C98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法 如果待排序元素为自定义类型&am…

<网络安全>《52 网络攻防专业课<第十五课 - 跳板>

1 跳板技术 当攻击者入侵被攻击者时,被攻击者可以根据IP地址追踪攻击者来自哪里。 攻击者为了隐藏自己的真正IP,通常会采用跳板,如右图, 攻击者通过2个跳板攻击被攻击者。即使被攻击者进行反向追踪,也只能追踪到攻击…

【Activiti7系列】Activi7简介和基于Spring Boot整合Activiti7(流程设计器)

本文将介绍Activiti7基础概念及基于Spring Boot整合Activiti7(流程设计器)的具体步骤。 作者:后端小肥肠 1. 前言 在企业级应用中,业务流程的管理和执行是至关重要的一环。Activiti7是一个强大的开源工作流引擎,它提供了灵活的流程定义、任务…

机器学习.线性回归

斯塔1和2是权重项,斯塔0是偏置项,在训练过程中为了使得训练结果更加精确而做的微调,不是一个大范围的因素,核心影响因素是权重项 为了完成矩阵的运算,在斯塔0后面乘x0,使得满足矩阵的转换,所以在…

HTTP---------状态码

当服务端返回 HTTP 响应时,会带有一个状态码,用于表示特定的请求结果。比如 HTTP/1.1 200 OK,里面的 HTTP/1.1 表示协议版本,200 则是状态码,OK 则是对状态码的描述。 由协议版本、状态码、描述信息组成的行被称为起始…

文献阅读:Transformers are Multi-State RNNs

文献阅读:Transformers are Multi-State RNNs 1. 内容简介2. 方法介绍 1. 基础回顾 1. RNN2. Transformer 2. Transformer解构 1. MSRNN2. Transformer 3. TOVA 1. 现有转换策略2. TOVA 3. 实验考察 & 结论 1. 实验设计2. 实验结果 1. LM2. 长文本理解3. 文本生…

win7系统安装.net 4.7.2失败的解决办法

1、提示如下错误时导入证书MicrosoftRootCertificateAuthority2011.cer,具体可以从网上搜: 2、导入证书后再次重试,提示如下错误: 这时可能是缺少系统补丁,安装补丁:Windows6.1-KB2813430-x64.msu。安装完要…

Seata分布式事务实战XATCC模式

目录 XA模式 XA 模式的使用 Spring Cloud Alibaba整合Seata XA TCC模式 TCC模式接口改造 TCC如何控制异常 Spring Cloud Alibaba整合Seata TCC XA模式 整体机制 在 Seata 定义的分布式事务框架内,利用事务资源(数据库、消息服务等)对…

力扣--哈希表/滑动窗口/双指针3.无重复字符的最长子串

思路分析: 使用双指针 i 和 j 表示子串的起始位置和结束位置。遍历字符串 s,对于每个字符: 如果字符不在 hash 中,将其加入 hash,同时更新最长子串的长度 result。如果字符已经在 hash 中,说明有重复字符出…