CNN概述

article/2025/9/16 9:16:41

CNN

卷积神经网络简介

  • 特点
    • 将大数据量的图片降维成小数据量
    • 有效保留图片特征
  • 应用领域
    • 人脸识别、自动驾驶、无人安防
  • CNN解决的问题
    • 图像的数据量太大,导致成本很高,效率很低
    • 图像在数字化的过程中容易丢失特征
    • (其实就对应了两个特点)

下面具体看一下这两个问题

数据量大

图像是由很多像素构成的,每个像素又是由颜色构成的。一张彩色图,每一个像素都有RGB(即光学三原色)三个通道,用于表示颜色信息。所以,对于一张常见的1000*1000清晰度的图片,就会含有1000*1000*3个数值需要计算,这显然是一个庞大的数据。

为了解决此问题,CNN将大量参数降维成少量参数。

需要说明的是,降维并不会影响结果。就比如将一张图像在一定范围内缩小,图像的特征仍然不会改变。

保留图像特征

图像简单数字化无法保留图像特征

如果简单地将图像的特征01化,即有圆形的地方为1,其余地方为0。则对于特征相近的图像(比如平移),则数字化的矩阵会有很大区别。

为解决此问题,CNN用视觉的方式保留图像特征,即模仿人的肉眼去提取、存留特征。

人的视觉原理

深度学习的理论研究,很大程度上是对人视觉的模仿。

人类视觉如何运作?

人类视觉原理1

首先摄入原始信号(即各种颜色的像素点),然后提取不同物体间的分界,接着识别图像的抽象(如几何形状),最后判断物体。

对应成图像处理的步骤:读取图像并数值化、提取图像边缘、提取图像特征、图像分类。

所以一个图像处理的思路是:构造多层的神经网络,较低层提取初级的图像特征,较高层进一步细化,最终在顶层实现图像的分类。

CNN基本原理

  • CNN三个基本组成部分
    • 卷积层:提取图像局部特征
    • 池化层:数据降维
    • 全连接层:输出结果

卷积层

核心部分是一个卷积核,滑窗处理。大致思路是用一个卷积核来过滤图像的各个区域,得到这些小区域的特征值

卷积层运算过程

具体计算过程为对应项相乘然后相加。

img

(32*32*3->28*28*1)

在具体应用中,往往有多个卷积核,可以认为,每个卷积核代表了一种图像模式,**如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。**如果我们设计了6个卷积核,可以理解:我们认为这个图像上有6种底层纹理模式,也就是我们用6中基础模式就能描绘出一副图像。比如说垂直边缘、水平边缘等。

img

如果使用6个卷积核提取,最终得到6个特征图,叠加在一起就得到了卷积层。

img

同时可以对卷积层继续进行卷积操作。注意每一个卷积核的深度和上一层的输入相等。经过连续的卷积不断提炼出高层次的特征,一步步将特征浓缩,得到高层次特征,最终达到分类效果。

可以发现,其实卷积层已经将图像缩小了一圈(如果不加边框),但是效果并不明显。

在了解卷积的大致过程后,还有一些细节部分需要思考。

  • 卷积核每次滑动的步长stride
    • 步长如果太大,比如大于卷积核的长度,则会遗漏一些像素点,导致特征损失。
    • 步长如果太小,比如为1,则效率太低。
  • 卷积对每个像素点是否平权
    • 由于滑窗的交集部分是计算了多次的,所以边缘的像素点计算次数少于中间的像素点。所以可能会丢失一部分边缘信息。
    • 解决方法是在图像外围加一圈0(或多圈),使得在不影响特征的情况下,增加边缘像素点的计算次数。

img

  • 由于卷积的过程是多次叠加的,所以需要计算卷积过程中每一次的输入图尺寸,来设计卷积核。

    h o u t = h i n − F i l t e r + 2 P a d S t r i d e + 1 h_{out}=\frac{h_{in}-Filter+2Pad}{Stride}+1 hout=StridehinFilter+2Pad+1

    w o u t = w i n − F i l t e r + 2 P a d S t r i d e + 1 w_{out}=\frac{w_{in}-Filter+2Pad}{Stride}+1 wout=StridewinFilter+2Pad+1

  • 权值共享

    • 同一卷积过程中,filter内的值不变,即对于每一时刻滑窗对应的矩阵,各个位置的参数对于结果的权重保持一致。

前向传播和反向传播

  • 前向传播即是卷积的操作。(输入->输出)

本质是用输入层和卷积核去求解卷积结果。 w [ i ] w[i] w[i]表示第i个卷积核。

img

  • 反向传播

本质是已知卷积结果,去更新 w w w的过程。

img

具体过程以后再补充。

提取边缘特征

  • 为什么中间的卷积核可以提取垂直边缘?

在颜色相近的区域,矩阵内的值相近,卷积计算的结果小,表现为暗色;在颜色区别明显的区域(可以认为是边缘),卷积计算结果大,表现为白色。

  • 垂直边界和水平边界

一个物体的边界可以看成由许多小的垂直边缘和水平边缘组成。

这里写图片描述

偏差值和激活函数

  • 卷积计算后还需加入偏差 b b b,计算出新矩阵放入激活函数(Relu、Softmax、logistic等),作为卷积层的输出结果。

池化层(下采样)

池化层可以大大降低数据的维度,也可以有效避免过拟合。如下图(20*20->2*2)

池化层过程

池化的大致过程:选取输入图中某个区域的最大值或均值来代替整个区域。在一幅图像中提取最大值可能意味着提取了某些特定特征,如垂直边缘、一只眼睛等。

img

全连接层

经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

全连接层

典型的 CNN 并非只是上面提到的3层结构,而是多层结构,例如 LeNet-5 的结构就如下图所示:

卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层

LeNet-5网络结构

img

也就是说卷积和池化重复出现,避免一次池化降维太快,导致特征损失。

参考博客、参考博客


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

相关文章

常见CNN网络结构的详解和代码实现

1. AlexNet 论文地址:ImageNet Classification with Deep Convolutional Neural Networks 2012年提出的AlexNet的网络结构为: 结构说明如下: 1.1 ReLu(Rectified Linear Units)激活函数: Relu函数为 r e l u ( x ) m a x { 0 , x } { …

图像分类网络-经典CNN网络简介

在CNN网络结构的演化上,出现过许多优秀的CNN网络,CNN的经典结构始于1998年的LeNet,成于2012年历史性的AlexNet,从此大盛于图像相关领域,主要包括: 发展历史:Lenet --> Alexnet --> ZFnet …

使用PyTorch搭建CNN神经网络

使用pytorch搭建CNN神经网络 卷积运算的基本原理单层卷积运算valid convolutionsame convolution CNN的基本结构数据输入层卷积层池化层全连接层 数据导入的实现构建基础的CNN网络网络的设计损失函数和优化器训练函数和测试函数实现CNN网络的训练和测试 Googlenet的实现网络框架…

CNN(卷积神经网络)概述

过去几年,深度学习(Deep learning)在解决诸如视觉识别(visual recognition)、语音识别(speech recognition)和自然语言处理(natural language processing)等很多问题方面都表现出非常好的性能。在不同类型的深度神经网络当中,卷积…

CNN卷积网络

CNN卷积神经网络 1.与全连接神经网络的区别 1).总有至少一个卷积层 2).卷积层级之间的神经元是局部连接和权值共享(整张图片在使用同一个卷积核内的参数,卷积核里的值叫做权重,不会因为图像内位置的不同而改变卷积核内的权系数)&#xff0…

CNN(卷积神经网络)

一、卷积神经网络 1、CNN的基本知识 1、卷积神经网络(Convolutional Neural Networks,CNN)的作用:1.cnn跟全连接的区别:原来一个输出神经元的计算是跟所有输入层的神经元相连,现在只是局部输入层的神经元相连;同一所…

CNN卷积神经网络

目录 一、BP神经网络回顾 二、CNN卷积神经网络 1、CNN的主要概述 2、CNN的一般结构 三、CNN卷积神经网络的应用 四、常见的CNN卷积神经网络 一、BP神经网络回顾 人工全连接神经网络 (1)每相邻两层之间的每个神经元之间都是有边相连的 &#xff0…

深度学习----CNN几种常见网络结构及区别

一、 CNN结构演化历史的图二、 AlexNet网络 2.1 ReLU 非线性激活函数 多GPU训练(Training on Multiple GPUs)局部响应归一化(Local Response Normalization)重叠池化(Overlapping Pooling) 2.2 降低过拟合( Reducing Overfitting) 数据增强(Data Augmentation)Dropout 三、VG…

神经网络--从0开始搭建全连接网络和CNN网络

前言: Hello大家好,我是Dream。 今天来学习一下如何从0开始搭建全连接网络和CNN网络,并通过实验简单对比一下两种神经网络的不同之处,本文目录较长,可以根据需要自动选取要看的内容~ 本文目录: 一、搭建4层…

经典CNN网络:Resnet18网络结构输入和输出

前言 Q1:每当看到一个新的网络,总会思考,这个网络提出来有什么意义,解决了什么问题? Resnet18中的resnet就时网络结构呗,18应该是权重层的数量(参照VGG16的命名方法,应该时这样理解)。 Q2:为什么会出现Resn…

深度学习——CNN卷积神经网络

基本概念 概述 卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习中常用于处理具有网格结构数据的神经网络模型。它在计算机视觉领域广泛应用于图像分类、目标检测、图像生成等任务。 核心思想 CNN 的核心思想是通过利用局部…

通俗易懂:图解10大CNN网络架构

作者 | Raimi Karim 译者 | Major 编辑 | 赵雪 出品 | AI科技大本营(ID: rgznai100) 导语:近年来,许多卷积神经网络( CNN )跃入眼帘,而随着其越来越深的深度,我们难以对某个 CNN 的结…

详解CNN卷积神经网络

详解卷积神经网络(CNN) 详解卷积神经网络CNN概揽Layers used to build ConvNets 卷积层Convolutional layer池化层Pooling Layer全连接层Fully-connected layer 卷积神经网络架构 Layer PatternsLayer Sizing PatternsCase Studies 参考 卷积神经网络(Convolutional…

CNN 卷积神经网络

文章目录 9、CNN 卷积神经网络9.1 Revision9.2 Introduction9.3 Convolution9.3.1 Channel9.3.2 Layer9.3.3 Padding9.3.4 Stride 9.4 Max Pooling9.5 A Simple CNN9.5.1 GPU9.5.2 Code 19.5.3 Exercise9.5.4 Code 2 9.6 GoogLeNet9.6.1 Inception Module9.6.2 1 x 1 convoluti…

简要笔记-CNN网络

以下是CNN网络的简要介绍。 1 CNN的发展简述 CNN可以有效降低传统神经网络(全连接)的复杂性,常见的网络结构有LeNet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。 1.1 CNN常见的网络结构 (1)LeNet(1998年 ): 首个…

CNN神经网络

一、基础概念 1.1 卷积(filter) 、CNN使用卷积的思想和意义 改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享,大范围的减少参数值。可以通过使用多个filter来提取图像的不同特征(…

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

文章目录 前言一、什么是卷积神经网络二、输入层三、卷积层四、池化层五、全连接层六、输出层七、回顾整个过程总结 前言 本文总结了关于卷积神经网络(CNN)的一些基础的概念,并且对于其中的细节进行了详细的原理讲解,通过此文可以…

CNN卷积神经网络详解

1、cnn卷积神经网络的概念 卷积神经网络(CNN),这是深度学习算法应用最成功的领域之一,卷积神经网络包括一维卷积神经网络,二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络主要用于序列类的数据处理&#xff…

4、计算机中的进制数转换(十进制、二进制、八进制、十六进制)

目录 课前先导 一、计算机中的进制数 十进制(简写:D) 二进制(简写:B) 八进制(简写:Q) 十六进制(简写:H) 二、计算机进制数之间…

计算机二进制怎么转化成十六进制数是,6、计算机进制之二进制、十进制、十六进制之间的转换...

1、计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种进…