CNN(卷积神经网络)概述

article/2025/9/16 9:17:01

       过去几年,深度学习(Deep learning)在解决诸如视觉识别(visual recognition)、语音识别(speech recognition)和自然语言处理(natural language processing)等很多问题方面都表现出非常好的性能。在不同类型的深度神经网络当中,卷积神经网络是得到最深入研究的。早期由于缺乏训练数据和计算能力,要在不产生过拟合(overfitting)的情况下训练高性能卷积神经网络是很困难的。标记数据和近来GPU的发展,使得卷积神经网络研究涌现并取得一流结果。本文中,我们将纵览卷积神经网络近来发展,同时介绍卷积神经网络在视觉识别方面的一些应用。

CNN快速发展,得益于LeNet-5、Alexnet、ZFNet、VGGNet、GoogleNet、ResNet等不同结构的设计出现。

1.CNN的基本结构

卷积神经网络的结构有很多种,但是其基本架构是相似的,拿LeNet-5为例来介绍,如下图,它包含三个主要的层——卷积层( convolutional layer)、池化层( pooling layer)、全连接层( fully-connected layer)

   图中的卷积网络工作流程如下,输入层由32×32个感知节点组成,接收原始图像。然后,计算流程在卷积和子抽样之间交替进行,如下所述:

    第一隐藏层进行卷积,它由6个特征映射组成,每个特征映射由28×28个神经元组成,每个神经元指定一个 5×5 的接受域;

    第二隐藏层实现子抽样和局部平均,它同样由 6 个特征映射组成,但其每个特征映射由14×14 个神经元组成。每个神经元具有一个 2×2 的接受域,一个可训练系数,一个可训练偏置和一个 sigmoid 激活函数。可训练系数和偏置控制神经元的操作点。

    第三隐藏层进行第二次卷积,它由 16个特征映射组 成,每个特征映射由 10×10 个神经元组成。该隐藏层中的每个神经元可能具有和下一个隐藏层几个特征映射相连的突触连接,它以与第一个卷积 层相似的方式操作。

    第四个隐藏层进行第二次子抽样和局部平均计算。它由 16 个特征映射组成,但每个特征映射由 5×5 个神经元组成,它以 与第一次抽样相似的方式操作。

    第五个隐藏层实现卷积的最后阶段,它由 120 个神经元组成,每个神经元指定一个 5×5 的接受域。

    最后是个全连接层,得到输出向量。

    相继的计算层在卷积和抽样之间的连续交替,我们得到一个“双尖塔”的效果,也就是在每个卷积或抽样层,随着空 间分辨率下降,与相应的前一层相比特征映射的数量增加。卷积之后进行子抽样的思想是受到动物视觉系统中的“简单的”细胞后面跟着“复杂的”细胞的想法的启发而产生的。

其中,卷积层,用来学习输入数据的特征表征。卷积层由很多的卷积核(convolutional kernel)组成,卷积核用来计算不同的feature map;

激励函数(activation function)给CNN卷积神经网络引入了非线性,常用的有sigmoid 、tanh、 ReLU函数;

池化层降低卷积层输出的特征向量,同时改善结果(使结构不容易出现过拟合),典型应用有average pooling 和 max pooling;

全连接层将卷积层和Pooling 层堆叠起来以后,就能够形成一层或多层全连接层,这样就能够实现高阶的推力能力


2.CNN卷积神经网络的改进策略

  自从2012年AlexNet 取得成功以后,科研工作者提出了很多改进CNN的方法,基本都是从以下六个方面入手:convolutional layer、pooling layer、activation function、loss function、regularization 、optimization

2.1convolutional layer

1). Network in network

It replaces the linear filter of the convolutional layer by a micro network



2). Inception module : 是继承了NIN的扩展. 使用不同size的filter来捕获不同size的visual patterns.

2.2 pooling layer

池化层是CNN的重要组成部分,它通过减少卷积层之间的连接数量来降低计算的复杂度。

1).Lp pooling:Lp 池化是建立在复杂细胞运行机制的基础上,受生物启发而来


2). Mixed pooling:combination of max pooling and average pooling


3).Stochastic pooling:Stochastic pooling 是受 droptout 启发而来的方法


4).Spectral pooling


5). Spatial pyramid pooling

空间金字塔池化可以把任何尺度的图像的卷积特征转化成相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免 cropping和warping操作,导致一些信息的丢失,具有非常重要的意义。


一般的CNN都需要输入图像的大小是固定的,这是因为全连接层的输入需要固定输入维度,但在卷积操作是没有对图像尺度有限制,所有作者提出了空间金字塔池化,先让图像进行卷积操作,然后转化成维度的特征输入到全连接层,这个可以把CNN扩展到任意大小的图像。

2.3activation function

一个合适的激励函数可以有效地提高CNN的运算性能。常用的非线性激活函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全链接层,后者relu常见于卷积层。

sigmoid函数图像曾在神经网络和深度学习(一)中介绍过,这里再介绍ReLU、LReLU、PReLU、RReLU、ELU几种激励函数的特性曲线



2.4 Loss function

1). Softmax loss :

2). Hinge loss : to train large margin classifiers such as SVM


3). Contrastive loss : to train Siamese network

2.5 Regularization 正则化

通过正则化可以有效的减小CNN的过拟合问题。这里介绍两种正则化技术——Dropout 、 DropConnect

Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来(只是暂时不更新而已) ; 而DropConnect 是DropOut的进一步发展,不再和DropOut一样随意设置输出神经元的值为0,而是随机设置权重矩阵W 为0。

2.6 Optimization

这里介绍几种优化CNN的关键技术:

1). Weights initialization

2). Stochastic gradient descent

3). Batch Normalization

4). Shortcut connections

3. 加速CNN计算速度

3.1 FFT : 使用快速傅里叶变换,可以重复利用一些单元,比如输出梯度的傅里叶变换

3.2 Matrix Factorization : 矩阵因子分解,可以减小计算量,来加速CNN 的训练

3.3 Vector quantization : 矢量量化(VQ)是用来压缩密集的连接层,使得CNN模型变得更小

4. CNN 的主要应用

使用CNN,可以使得以下几个应用达到最佳的(state-of-the-art)性能:
1). Image Classification
2). Object Tracking
3). Pose Estimation
4). Text Detection
5). Visual Saliency detection
6). Action Recognition
7). Scene Labeling

总结: 通过本篇论文可以对CNN卷积神经网络的基本框架有了一定的了解,知道了提高CNN性能的方法,从哪些方面来入手来完善CNN网络结构,还有CNN主要的应用,如果想要做这个几个方面的研究,那么CNN是必须要深入了解的。接下来的工作就是将文章中提到的几种CNN结构(LeNet-5、Alexnet、ZFNet、VGGNet、GoogleNet、ResNet)熟悉,并且尽快应用起来,在此基础上从第二部分的六个方面提出自己的优化方法。

Reference:
1. Recent Advances in Convolutional Neural Networks. Jiuxiang Gu, Zhenhua Wang, et al.
2. 新智元、CSDN博客等网上资源


http://chatgpt.dhexx.cn/article/302VkqQc.shtml

相关文章

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

计算机网络十六进制h,计算机进制中,6BH中的H是什么意思?

满意答案 dmcyo 推荐于 2018.11.06 采纳率:49% 等级:9 已帮助:917人 H是十六进制英文hexadecimal的第一个字母,表示是十六进制的数。 十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。它由0-9&#…

如何利用计算机换算16进制,16进制怎么转换10进制?计算机进制转换方法汇总

从小我们就开始学数学,数学就有涉及到进制知识,相信大家对于进制都不陌生吧!进制也就是进位制,是一种进位方法。现在大家都有电脑,利用电脑自带的计算机进行进制转换是最简便的方法,下面是小编给大家总结的计算机进制转换方法。 进制介绍: 计算机中常用的进制主要有:二…

计算机进制、位运算

一、进制转换 1、什么是进制 进制是数学中的一个概念,就是数据“逢几进位”。进制就是进位制,是人们规定的一种进位方法。对于任何一种进制X,就表示某一位置上的数运算时逢X进一位。二进制就是逢二进一,八进制就是逢八进一&#…

计算机一级二进制转十六进制,计算机进制之二进制、十进制、十六进制之间的转换...

释放双眼,带上耳机,听听看~! 1、计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种进位计数制中,数位所代表的大小,…