CNN神经网络

article/2025/9/16 10:27:45

一、基础概念

1.1 卷积(filter) 、CNN使用卷积的思想和意义

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

卷积的尺寸选择:通常尺寸多为奇数(1,3,5,7)

二、模型构建

一个CNN网络一般都是卷积、激活、池化、卷积、激活、池化....全连接的模式

一个stage的一个CNN,通常由三种映射空间组成:

输入映射空间(input maps):指输入图像,对于多通道图像输入图像实际上是由高度、宽度、深度三种信息构成,这里的深度,在RGB中就是3,在灰度图像中,就是1。

特征映射空间(feature maps):

基础CNN的卷积是一种2-D卷积,只能在x,y上滑动位移,不能进行深度(跨通道)位移。对于RGB图像,这个kernel的维度是X*Y*3。在基础CNN的不同stage中,kernel的深度都应当一致,等于输入图像的通道数。CNN的卷积是在一个2-Dkernel和输入的2-D input map之间,RGB中各图像通道分别完成。

输出尺寸的计算公式

输出尺寸 = (N - F + padding*2)/stride + 1

池化映射空间(pooled maps):是一种降采样(subsampling)操作,主要目标是降低feature maps的特征空间,或者可以认为是降低feature map的分辨率。

全连接网络:

出现在CNN中的全连接网络主要目的是为了分类,目前CNNs多数会采用多层全连接层,这样的结构可以被认为是网络。

全连接网络每一层的所有单元与上一层完全连接。

三、CNN的特点

                局部连接

                参数共享

四、常见的几个模型,最好能记住模型大致的尺寸参数。

AlexNet:(结构见下图)

采用了dropout技术;

首次使用Relu作为激活函数;

2GPU并行计算模型;

模型一共分为8层,5个卷积(3个包含最大池化)+ 3个全连接,每个卷积层中包含了激活函数Relu以及局部响应归一化处理(LRN),然后最大降采样(maxpooling);

Vggnet:更深的结构

VGG在加深网络层数的同时,为了避免参数过多,在所有层都采用3*3的小卷积核,卷积层步长被设置为1。

根据卷积层+全连接层数据不同,可以从VGG11~VGG19,最少的VGG11有8个卷积层与3个全连接层,最多的VGG19有16个卷积层+3个全连接层。

   1*1卷积核:可以增加非线性

  3*3卷积核:多个卷积核叠加,增加空间感受野的同时,减少参数量

                     2个3*3的卷积核可以看做一层5*5的卷积层;视野域2个3*3 = 1个5*5; 2层比1层多一次非线性变化,参数降低28%;

                    而3个3*3的卷积层可以看做1个7*7的卷积层;

VGG相比AlexNet的改进之处在于:

采用连续几个3*3的卷积核代替AlexNet中的较大卷积核(11*11, 5*5)

采用1*1和3*3的卷积核以及2*2的最大池化使得层数变得更深

优势:对于给定的视野域,采用堆积的小卷积核优于大的卷积核,因为多层非线性层可以增加网络深度保证学习更复杂的模式,而且参数更少。

ResNet:随着网络加深,准确率不下降

InceptionNet(又称GoogleNet):

创新点:网络的参数量很小但是层数很深,

1)采用分支网络堆叠在一起产生比较大的通道;

2)提出并采用了著名的BatchNormalization(BN)。BN是一种有效的正则化方法,可以让卷积网络的训练速度加快很多,同时收敛后的分类准确率也提高很多。BN就是在训练的时候对每个Batch数据的内部进行标准化,使输出规范化到N(0,1)的正态分布。BN在某种程度上还起到正则的作用,所以可以减小或者取消Dropout,优化网络结构。

3)InceptionNet将一个较大的卷积网络拆分成两个小的卷积网络。比如将7*7网络拆分成1*7和7*1的卷积网络,这样可以节约大量参数,加速运算,同时增加了一层非线性变换拓展了模型的表达能力。

MobileNet:??

 

六、需要做哪些预处理操作(比如归一化)

七、调参技巧,学习过程中有什么问题,如何调整(过拟合、欠拟合)

八、模型优缺点及使用场景

 

面试题:

1. Sigmoid函数的应用有哪些,为什么?

1)对于神经网络,中间的隐层输出必须有一个激活函数。否则多个隐层的作用和没有隐层一样。这个激活函数不一定是sigmoid,常见的有tanh、relu等。

2)对于二分类问题,输出层是sigmoid函数。这是因为sigmoid函数可以把实数域光滑的隐射到[0,1]区间。函数值恰好可以解释为属性正类的概率(概率的取值范围是0~1)。另外,sigmoid函数单调递增,连续可导,导数形式非常简单,是一个比较合适的函数;

3)对于多分类问题,输出层就必须是softmax函数了。它是sigmoid函数的推广。

2. 损失函数是什么

损失函数采用交叉熵损失函数,因为有sigmoid的激活函数,对其进行求导时,如果采用MSE的损失函数,导数不是一个凸函数,将不是一个凸优化问题。

3. 初始化参数如何选择?

4. 如何实现卷积层权值共享

权值共享这个词说全了就是整张图片在使用同一个卷积核内的参数,比如一个3*3*1的卷积核,这个卷积核内9个参数被整张图共享,而不会因为图像内位置的不同而改变卷积核内的权系数。说白了,就是用一个卷积核不改变其内部权系数的情况下,卷积处理整张图片。

权值共享解决了参数量过大的问题,无论图像的尺寸是多大,都可以选择固定尺寸的卷积核,卷积操作保证了每一个像素都有一个权系数,只是这些系数是被整个图片共享的。此外,卷积操作利用了图片空间上的局部相关性,这也就是CNN与传统神经网络或机器学习的一个最大的不同点,特征的自动提取。

5. 为什么使用batch normalization?

机器学习有个很重要的假设:训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。

BN的基本思想:因为深层神经网络在做非线性变换前的激活输入值随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所有收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近,所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因。

而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是:这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

其实就是一句话:对于每个隐层神经元,把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0,方差为1的标准正态分布,使得非线性变换函数的输入值落入对输入比较敏感的区域,以此避免梯度消失问题。

6. CNN的三个优点:

sparse interaction(稀疏的交互),

parameter sharing(参数共享),

局部连接

equivalent respresentation(等价表示)

 

AlexNet结构:


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

相关文章

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

计算机的进制和运算

计算机的进制和运算 1. 基本概念2. 运算3. 逻辑右移和算术右移4. 浮点数6. 数据类型7. 指针8. ByteBuffer 1. 基本概念 计算机处理信息的最小单位是位,就相当于二进制中的一位。位的英文bit是二进制数位(binary digit)的缩写。 8位二进制数…

计算机系统中常用的进制,计算机常用进制详解

内容 进制的由来 生活中的常用进制 二进制的介绍 四种进制说明 八进制和十六进制 常用进制间的转换 1、进制的由来 进制:进位计数制 原始的计数方式 结绳计数 书契计数 算盘 正字计数法 2、生活中的常用进制 十进制 七进制(0~6,星期) 十二进制(0~11&…

计算机进制转换

文章目录 一.基本概念二.计算机的数值1.KIB、MIB与KB、MB的区别2.数值的表示 三.进制转换1.十进制的转换1.1十进制二进制的转换1.2十进制八进制的转换1.3十进制十六进制的转换 2.二进制八进制十六进制的转换2.1二进制八进制的转换2.2二进制与十六进制的转换2.3八进制十六进制的…

计算机进制转换(看完这一篇你就全懂了)—基础篇

我相信很多人都学过进制的转换,但是总是转不过来,你只需要看完这一篇,你对进制的理解与转换一定会很熟练。 众所周知计算机只能识别0和1,其他的文字、数字、字符只能通过转换成进制,然后让计算机识别,并显示…

一文带你读懂计算机进制

hi,大家好,我是开发者FTD。在我们的学习和工作中少不了与进制打交道,从出生开始上学,最早接触的就是十进制,当大家学习和使用计算机时候,我们又接触到了二进制、八进制以及十六进制。那么大家对进制的认识和…

计算机进制转换a是什么,[计算机基础] 计算机进制转换:二进制、八进制、十进制、十六进制...

计算机进制转换:二进制、八进制、十进制、十六进制 一、什么是进制 在生活中,我们通常都是使用阿拉伯数字计数的,也就是10进制,以10为单位,遇10进一,所以是由0,1,2、3、4、5、6、7、…

用计算机进行进制换算方法,计算机进制怎么转换?计算机进制换算方法

如果你正在学习计算机知识,必然需要掌握计算机进制的换算方法。很多同学对于进制换算已经炉火纯青,即便我们可以使用科学计算器程序进行换算,但多数时候使用计算器还没有我们心算更快呢,你说是吧。如果是复杂式我们还需要打草稿,使用计算器反而添乱。阅读下文了解计算机进…

计算机中的进制

进制概念 今天我们来复习一下进制之间的转换,首先我们先来了解一下什么是进制?进制也就是人们规定的一种进位的方法,比如二进制就是逢二进一,也就是说0,1之后就该进位,然后就是10,11&#xff0c…

计算机中的进制(二进制,八进制,十进制,十六进制)

编写背景 最近做了个项目&#xff0c;对接蓝牙设备通信&#xff0c;对接的时候第三方的设备需要协议加密&#xff0c;就用到了位运算(&,>>,<<),只是这个加密算法不是我写的&#xff0c;是公司的架构师写的&#xff0c;他是写java的。呵呵呵…我看了他的javasc…

计算机进制转换:二进制、八进制、十进制、十六进制

一、什么是进制 在生活中&#xff0c;我们通常都是使用阿拉伯数字计数的&#xff0c;也就是10进制&#xff0c;以10为单位&#xff0c;遇10进一&#xff0c;所以是由0&#xff0c;1&#xff0c;2、3、4、5、6、7、8、9组成的&#xff1b;而在计算机中&#xff0c;计算机是无法…

计算机的进制转换

目录 一、计算机的数制1.1数制1.2数位1.3基数1.4位权 二、数制的表示三、数制分类3.1十进制3.2二进制3.3十六进制 四、数制转换4.1二进制、十六进制转换为十进制4.2二进制转换为十六进制4.3十进制转换为二进制、十六进制4.4常见的八位二进制数 五、存储量总结 一、计算机的数制…

计算机基础--进制转换

计算机基础之进制转换 一、什么叫进制&#xff08;system&#xff09; 学习进制转换之前&#xff0c;我们要先知道什么是进制&#xff0c;进制也就是进位计数制&#xff0c;对于任何一种进制——n进制&#xff0c;就表示每一位置上的数运算时都是逢n进一位&#xff0c; 十进制…