卷积神经网络 CNN

news2025/1/12 3:04:47

目录

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

参数共享

卷积神经网络整体架构

卷积操作的作用

卷积核的定义

卷积特征值计算方法

卷积层涉及的参数

边缘填充

​编辑

卷积结果计算

 池化层

整体网格架构

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)。每个残差块由两个卷积层和一个跳跃连接组成。跳跃连接将输入直接添加到残差块的输出中,从而形成了一个残差路径。这样,即使在网络的深层,信息也可以通过跳跃连接直接传递,避免了信息的丢失和退化。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

fly-barrage 前端弹幕库(2):弹幕内容支持混入渲染图片的设计与实现

如果弹幕内容只支持文字的话,只需要借助 canvas 绘图上下文的 fillText 方法就可以实现功能了。 但如果想同时支持渲染图片和文字的话,需要以下几个步骤: 设计一个面向用户的数据结构,用于描述弹幕应该渲染哪些文字和图片&#x…

C++ //练习 9.14 编写程序,将一个list中的char*指针(指向C风格字符串)元素赋值给一个vector中的string。

C Primer(第5版) 练习 9.14 练习 9.14 编写程序,将一个list中的char*指针(指向C风格字符串)元素赋值给一个vector中的string。 环境:Linux Ubuntu(云服务器) 工具:vim…

基于ZYNQ的PCIE高速数据采集卡的设计(三)硬件设计

采集卡硬件设计 3.1 引言 采集卡的硬件设计是实现采集功能的基础,良好的硬件设计可以使采集功能更容 易实现,方便软件开发。本章基于第二章的硬件设计方案来详细介绍采集卡硬件设计。 包括载卡和子卡的芯片的选型、配置和具体电路的设计。载卡和子卡…

【计算机网络】应用层自定义协议

自定义协议 一、为什么需要自定义协议?二、网络版计算器1. 基本要求2. 序列化和反序列化3. 代码实现(1)封装 socket(2)定制协议和序列化反序列化(3)客户端(4)计算器服务端…

通过IP地址确定地理位置

在互联网世界中,每个设备或用户在进行网络通信时,都会使用到一个独特的标识,即IP地址。IP地址不仅用于标识网络中的设备,还可以在一定程度上揭示出这些设备或用户的地理位置信息。本文将详细探讨如何通过IP地址确定地理位置&#…

2-23 switch、JVM内存模型、垃圾回收机制、this、static、变量的分类

文章目录 switch 实现成绩评级JVM内存模型概念栈的特点堆的特点 垃圾回收机制通用的分代垃圾回收机制三种清理算法垃圾回收过程垃圾回收常见的两种检测引用算法内存泄露常见原因 this的用法创建对象的四步 static 静态特点 变量的分类和作用域import switch 实现成绩评级 switc…

Linux基础命令—系统服务

基础知识 centos系统的开机流程 1)通电 2)BIOS硬件检查 3)MBR引导记录 mbr的引导程序 加载引导程序 让硬件加载操作系统内核 MBR在第一个磁盘第一个扇区 总大小512字节 mbr: 1.引导程序: 占用446字节用于引导硬件,加载引导程序 2.分区表: 总共占…

Seata分布式事务实战XATCC模式

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

Mysql学习之数据库事务

事务 数据库事务概述 事务是数据库区别于文件系统的重要特性之一,当有了事务就可以让数据库始终保持一致性。同时还可以通过事务的机制,恢复到某个时间点,这样就可以保证以提交到数据库的修改不会因为系统崩溃而丢失 只有Innodb支持事务的 …

camunda7流程平台技术架构概述

Camunda Platform 是一个基于 Java 的BPMN(流程引擎)、DMN(规则引擎)、CMMN(案例管理)的开源框架。主要组件是用 Java 编写的,主要专注于为 Java 开发人员提供在 JVM 上设计、实现和运行业务流程和工作流所需的工具&am…

【TCP/IP】内核网络堆栈

在Linux内核中,网络堆栈(network stack)是一套实现网络通信功能的软件包,负责处理数据包的发送和接收。网络堆栈按照OSI模型(开放式系统互联通信参考模型)或TCP/IP模型的层次结构来组织,实现了从…

Linux-部署各类软件(黑马学习笔记)

MYSQL MYSQL5.7版本在CentOS系统安装 注意:安装操作需要root权限 MySQL的安装我们可以通过前面学习的yum命令进行。 安装 1.配置yum仓库 # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql yum库 rpm -Uvh http://repo.mysql.…

端口映射的软件有哪些?

端口映射软件是一种实用工具,能够帮助用户在网络中实现远程通信,解决不同地区电脑与电脑、设备与设备、电脑与设备之间的信息传输问题。其中,【天联】组网天联是一款功能强大的端口映射软件,它通过在全国各主要节点部署加速服务器…

介绍 Gradio 与 Hugging Face

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 我们可以使用 Gradio 库为我们的模型构建演示。Gradio 允许您完全使用 Python 为任何机器学习模型构建、自定义和共享基于 Web 的演示。使机器学习模型变得可交互和易于使用。 为什么首先要为您的机器…

贪心算法(算法竞赛、蓝桥杯)--奶牛耍杂技

1、B站视频链接&#xff1a;A24 贪心算法 P1842 [USACO05NOV] 奶牛玩杂技_哔哩哔哩_bilibili 题目链接&#xff1a;[USACO05NOV] 奶牛玩杂技 - 洛谷 #include <bits/stdc.h> using namespace std; const int N50005; struct node{int w,s;bool operator<(node &…

外贸精英催单秘籍:突破观望犹豫,抓住订单黄金时机!

年底将至&#xff0c;对于外贸人来说&#xff0c;这是一个重要的订单冲刺时机。在这个关键时刻&#xff0c;如何向国外客户催单成为一项关键任务。本文将分享催单的技巧&#xff0c;并附带销冠年底工作安排计划。同时&#xff0c;我们将引入Focussend&#xff0c;一款具有邮件自…

Linux软件高级编程-进程基本概念--day6

1.进程&#xff1a; 程序&#xff1a; 存放在外存的一段数据组成的文件 进程&#xff1a; 是一个程序动态执行的过程&#xff0c;包括进程的创建、进程的调度、进程的消亡 2.进程相关命令&#xff1a; 1&#xff09;top&#xff1a; 动态查看当前系统中所有进程信息&#xff08…

Jmeter系列(1)Mac下载安装启动

目录 Jmeter下载安装启动下载启动 Jmeter下载安装启动 注意⚠️&#xff1a;使用jmeter需要有java环境 下载 官网下载地址&#xff1a;https://jmeter.apache.org/ 会看到这里有两个版本&#xff0c;那么有什么区别么&#xff1f; Binaries是可执行版&#xff0c;直接下载解…

Redis哨兵模式和Redis Cluster模式

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容Redis Cluster 模式支持自动故障转移功能吗&#xff1f;Redis Cluster 模式支持自动故障转移功能和哨兵有什么区别&#xff1f;Redis Cluster 模式和哨兵模式&#xff08;Sentinel&#xff09;在自动故障转移方面有一些关键…

Niginx介绍和安装使用

Nginx是什么&#xff1f; Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;第一…