CNN卷积神经网络(图解CNN)

article/2025/9/26 3:10:46

文章目录

    • 什么是卷积神经网络:
      • 1)网络结构
      • 2)局部感受野与权值共享
      • 3)卷积层、下采样层、全连接层
      • 卷积神经网络相比一般神经网络在图像理解中的优点:
      • 边缘检测
      • 卷积运算
        • 卷积层
        • 卷积后维度公式及运算示例
      • Padding填充
      • Valid卷积和Same卷积
      • 卷积步长
      • 三维卷积
      • 简单卷积网络图解示例
      • 一个卷积核
      • 两个卷积核(多个)
    • 池化层
      • 最大池化
      • 平均池化
    • 为什么使用卷积?
      • 使用卷积网络的两个原因

2022-07-29修改:
突然发现这篇文章阅读量既然这么高,这里有更详细的关于CNN的讲解:
https://mp.weixin.qq.com/s?__biz=Mzk0MzIzODM5MA==&mid=2247484654&idx=1&sn=0eefbc4c58ec17b6e657d67f0821d4e7&chksm=c337b977f4403061ae59d52eb3100f7cb94810be275aaf10ebdcf69ab911a8956b428338534c#rd

什么是卷积神经网络:

卷积神经网络默认输入是图像,可以让我们把特定的性质编码入网络结构,使是我们的前馈函数更加有效率,并减少了大量参数

卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量,其三个关键的操作,其一是局部感受野,其二是权值共享,其三是pooling层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。

1)网络结构

卷积神经网络整体架构: 卷积神经网络是一种多层的监督学习神经网络,隐含层的卷积层和池采样层是实现卷积神经网络特征提取功能的核心模块。该网络模型通过采用梯度下降法最小化损失函数对网络中的权重参数逐层反向调节,通过频繁的迭代训练提高网络的精度。卷积神经网络的低隐层是由卷积层和最大池采样层交替组成,高层是全连接层对应传统多层感知器的隐含层和逻辑回归分类器。第一个全连接层的输入是由卷积层和子采样层进行特征提取得到的特征图像。最后一层输出层是一个分类器,可以采用逻辑回归,Softmax回归甚至是支持向量机对输入图像进行分类。

卷积神经网络结构包括:卷积层,降采样层,全链接层。每一层有多个特征图,每个特征图通过一种卷积滤波器提取输入的一种特征,每个特征图有多个神经元。

输入图像统计和滤波器进行卷积之后,提取该局部特征,一旦该局部特征被提取出来之后,它与其他特征的位置关系也随之确定下来了,每个神经元的输入和前一层的局部感受野相连,每个特征提取层都紧跟一个用来求局部平均与二次提取的计算层,也叫特征映射层,网络的每个计算层由多个特征映射平面组成,平面上所有的神经元的权重相等。

通常将输入层到隐藏层的映射称为一个特征映射,也就是通过卷积层得到特征提取层,经过pooling之后得到特征映射层。

2)局部感受野与权值共享

卷积神经网络的核心思想就是局部感受野、是权值共享和pooling层,以此来达到简化网络参数并使得网络具有一定程度的位移、尺度、缩放、非线性形变稳定性。

  • 局部感受野:由于图像的空间联系是局部的,每个神经元不需要对全部的图像做感受,只需要感受局部特征即可,然后在更高层将这些感受得到的不同的局部神经元综合起来就可以得到全局的信息了,这样可以减少连接的数目
  • 权值共享:不同神经元之间的参数共享可以减少需要求解的参数,使用多种滤波器去卷积图像就会得到多种特征映射。权值共享其实就是对图像用同样的卷积核进行卷积操作,也就意味着第一个隐藏层的所有神经元所能检测到处于图像不同位置的完全相同的特征。其主要的能力就能检测到不同位置的同一类型特征,也就是卷积网络能很好的适应图像的小范围的平移性,即有较好的平移不变性(比如将输入图像的猫的位置移动之后,同样能够检测到猫的图像)

3)卷积层、下采样层、全连接层

卷积层:因为通过卷积运算我们可以提取出图像的特征,通过卷积运算可以使得原始信号的某些特征增强,并且降低噪声。

  • 用一个可训练的滤波器fx去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是卷积特征map了),然后加一个偏置bx,得到卷积层Cx。

下采样层:因为对图像进行下采样,可以减少数据处理量同时保留有用信息,采样可以混淆特征的具体位置,因为某个特征找出来之后,它的位置已经不重要了,我们只需要这个特征和其他特征的相对位置,可以应对形变和扭曲带来的同类物体的变化。

  • 每邻域四个像素求和变为一个像素,然后通过标量Wx+1加权,再增加偏置bx+1,然后通过一个sigmoid激活函数,产生一个大概缩小四倍的特征映射图Sx+1。

全连接层:采用softmax全连接,得到的激活值即卷积神经网络提取到的图片特征。

卷积神经网络相比一般神经网络在图像理解中的优点:

  • 网络结构能够较好的适应图像的结构
  • 同时进行特征提取和分类,使得特征提取有助于特征分类
  • 权值共享可以减少网络的训练参数,使得神经网络结构变得简单,适应性更强

边缘检测

  • 垂直检测
  • 水平检测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96ihIz88-1598152191225)(1CA2762A4E9347A5A6468B34ABF1AE77)]

卷积运算

卷积层

卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。

相当于特征提取

池化相当于降维 压缩数据

垂直边缘检测为例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • OpenCV学过的边缘检测滤波器 Sobel,Scharr

在这里插入图片描述

卷积后维度公式及运算示例

在这里插入图片描述

Padding填充

在这里插入图片描述
在这里插入图片描述

Valid卷积和Same卷积

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9cbMxaI-1598152191257)(A930E67C9DD844AAA6B4B3055D71EB7E)]

卷积步长

在这里插入图片描述
在这里插入图片描述

三维卷积

在这里插入图片描述

简单卷积网络图解示例

一个卷积核

在这里插入图片描述

两个卷积核(多个)

在这里插入图片描述

池化层

通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。目的是为了减少特征图

池化层通常接在卷积层后面,引入它的目的就是为了简化卷积层的输出。通俗地理解,池化层也在卷积层上架了一个窗口,但这个窗口比卷积层的窗口简单许多,不需要w,b这些参数,它只是对窗口范围内的神经元做简单的操作,如求和,求最大值,把求得的值作为池化层神经元的输入值

最大池化

在这里插入图片描述

平均池化

在这里插入图片描述

为什么使用卷积?

  • 图像像素全连接的参数巨大

在这里插入图片描述

使用卷积网络的两个原因

在这里插入图片描述


http://chatgpt.dhexx.cn/article/fMFEkiRB.shtml

相关文章

CNN-卷积神经网络

一、基本的神经网络结构 神经网络其实就是按照一定规则连接起来的多个神经元,输入向量的维度和输入层(Input Layer)神经元个数相同,分类问题的类别个数决定输入层(Output Lazyer)的神经元个数。第N层的神经…

CNN是个啥?

阅读须知 本文主要意义是为了方便对CNN有个最直观的理解,知道这个玩意到底是干嘛的。文章本体是UP自己自学深度学习这块的时候做的笔记,内容均为网上收录。发在这里的原因是因为,也许有很多像UP一样不理解了就完全学不了的人存在&#xff0c…

(太长太全面了)CNN超详细介绍

原文链接:https://blog.csdn.net/jiaoyangwm/article/details/80011656 文章目录 1、卷积神经网络的概念2、 发展过程3、如何利用CNN实现图像识别的任务4、CNN的特征5、CNN的求解6、卷积神经网络注意事项7、CNN发展综合介绍8、LeNet-5结构分析9、AlexNet10、ZFNet10…

深度学习——卷积神经网络(CNN)简介

卷积神经网络简介 文章目录 卷积神经网络简介前言一.如何理解卷积1.1什么是卷积1.2 为什么要卷积 二.神经网络的结构三.卷积层四.池化层五.全连接层六.数据训练七.常见的卷积神经网络1. LeNet2 AlexNet3. VGG net4. ResNet 前言 卷积神经网络(Convolutional Neural…

CNN卷积神经网络 的学习记录一

1. 概述 卷积神经网络的特点:一方面它的神经元间的连接是非全连接的, 另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的)。 上图左:图像有1000*1000个像素,有10^6个隐层神经元,进行…

CNN是什么意思?它与传统神经网络有什么不同?

CNN代表卷积神经网络(Convolutional Neural Network)。它是一种专门用于处理具有网格结构数据的神经网络模型,尤其在图像识别和计算机视觉任务中表现出色。CNN的设计灵感来自于生物视觉系统对视觉信息的处理方式。 与传统神经网络相比&#x…

Person

设计一个学校在册人员类(Person)。数据成员包括:身份证号(IdPerson),姓名(Name), 性别(Sex),生日(Birthday)和…

Using an in-memory repository. Keys will not be persisted to storage.问题

记录一个问题: 2020-04-13 15:26:18.3489|Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository|WARN|Using an in-memory repository. Keys will not be persisted to storage. 2020-04-13 15:26:18.3577|Microsoft.AspNetCore.DataProtectio…

Persistence

str.strip()#删除多余空格 通过指定第二个参数来决定BIF open()用哪种模式打开文件 默认r参数读取 可以用w参数写入 默认输入方式为标准输出,若要改为输出到文件,用file指定 用w模式打开时,若文件不存在,则创建一个新文件 注意…

persevere的用法_词汇精选:persist的用法和辨析 - 英语讨论网

一、详细释义: v. 坚持;固执 [I] 例句: We must persist in taking the road of self reliance. 我们必须坚持自力更生的道路。 例句: If you persist in disregarding my advice, I shall wash my hands of the whole business. …

tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案

错误代码如下:严重: IOException while loading persisted sessions: java.io.EOFException java.io.EOFExceptionat java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectI…

@Deprecated

Deprecated是java内置注解,此注解可以用在方法,属性,类上,表示不推荐程序员使用,但是还可以使用

detached entity passed to persist:***

detached entity passed to persist 翻译:翻译传递到持久化的分离实体。 错误提示: detached entity passed to persist: com.lzh.blog.po.Tag; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: co…

Spring Boot进阶(26):Mybatis 中 resultType、resultMap详解及实战教学 | 超级详细,建议收藏

1. 前言🔥 今天,我要给大家讲一个我因前几天遇到的一个bug,由此为灵感而想跟大家分享这个东西,既专写一篇关于[ 如何正确使用resultType/resultMap ]的文章,具有很好的入门教学,希望能帮助更多小伙伴💯,不会因它们而犯低级错💥。 这将又会是干货满满的一期,全程无…

resultType(输出类型)

可输出的类型有四种:返回一般数据类型(单条)、JavaBean 类型(单条)、List类型(多条)、Map类型 ① 一般数据类型(单条) 比如要根据Id属性获得数据库中的某个字段值,示例: ② JavaBean 类型(单条) 比如根据某个字段获得数据库中的信息&#xff…

mysql resulttype map_Mybatis中的resultType和resultMap查询操作实例详解

resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题。比如:列名和对象属性名不一致时可以使用resultMap来配置;还有查询的…

java中resulttype_ResultMap和ResultType在使用中的区别、MyBatis中Mapper的返回值类型

在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段…

resulttype和resultMap区别详解

目录 一、对象不同 1. resultMap 2. resultType 3. 分析 二、描述不同 1、resultMap 2、resulTtype 三、类型适用不同 一、对象不同 1. resultMap 如果查询出来的结果的列名和实体属性不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系&…

MyBatis查询结果resultType返回值类型详细介绍

一、返回一般数据类型 比如要根据 id 属性获得数据库中的某个字段值。 mapper 接口&#xff1a; // 根据 id 获得数据库中的 username 字段的值String getEmpNameById(Integer id); SQL 映射文件&#xff1a; <!-- 指定 resultType 返回值类型时 String 类型的&#xff0c…

Mybatis ResultType处理返回类型

目录 1. 使用resultType返回List 2. 使用resultType返回单个对象 3. 使用resultType返回List&#xff0c;适用于多表查询返回结果集 4. 使用resultType返回Map&#xff0c;适用于多表查询返回单个结果集,object> 1. 使用resultType返回List<T> Mapper.xml <se…