水很深的深度学习(四)——卷积神经网络CNN

简介: 上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理,它试图将视觉系统模型化,使其能够在即使物体有位移或轻微变形的时候,也能完成识别。

卷积神经网络的概念


计算机视觉和 CNN 发展十一座里程碑

上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理,它试图将视觉系统模型化,使其能够在即使物体有位移或轻微变形的时候,也能完成识别。


卷积神经网络是多层感知机(MLP)的变种,由生物学家休博尔和维瑟尔在早期关于猫视觉皮层的研究发展而来,视觉皮层的细胞存在一个复杂的构造,这些细胞对视觉输入空间的子区域非常敏感,称之为感受野。


CNN由纽约大学的Yann Lecun于1998年提出,其本质是一个多层感知机,成功的原因在于其所采用的局部连接和权值共享的方式:


一方面减少了权值的数量使得网络易于优化


另一方面降低了模型的复杂度,也就是减小了过拟合的风险


该优点在网络的输入是图像时表现的更为明显,使得图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建的过程,在二维图像的处理过程中有很大的优势,如网络能够自行抽取图像的特征包括颜色、纹理、形状及图像的拓扑结构,在处理二维图像的问题上,特别是识别位移、缩放及其他形式扭曲不变性的应用上具有良好的鲁棒性和运算效率等。


image.png

image.png


卷积神经网络基本原理


卷积神经网络的基本结构大致包括:卷积层、激活函数、池化层、全连接层、输出层等。


卷积层

二维卷积运算:给定二维的图像I作为输入,二维卷积核K,卷积核需要进行上下翻转和左右反转

eature_map尺寸计算公式:[ (原图片尺寸 -卷积核尺寸)/ 步长 ] + 1


卷积实际上就是互相关

fe5161544874399be48edc78c37bc8fd_93fe6d49d27de374c547a629dc0d5f7e.png



**卷积的步长(stride)**:卷积核移动的步长

b688f3c739ea38142dbeaf24f7380fde_8a97894e9a30f6921be7586fd20a8d5b.png



卷积的模式:Full**,** Same和Valid

93344a5f0ae37990c12202e1e892fee6_23bef55cf8ef73e6e2ddfc33d4736268.png



数据填充:如果我们有一个 𝑛×𝑛 的图像,使用𝑓×𝑓 的卷积核进行卷积操作,在进行卷积操作之前我们在图像周围填充 𝑝 层数据,输出的维度:

0414e44a17bbd65061a8a4df4c8e2b54_27e524c15bcbea70db5d6aa84c4870d2.png



感受野:卷积神经网络每一层输出的特征图(featuremap)上的像素点在输 入图片上映射的区域大小,即特征图上的一个点对应输入图上的区 域。

df87cfc3427191acc51f715d8da8ebfa_3fe8c9aaad886148be0ab9bb5224c7fd.png



那么如何计算感受野的大小,可以采用从后往前逐层的计算方法:


第 i 层的感受野大小和第 i - 1 层的卷积核大小和步长有关系,同时也与第 (i - 1)层感受野大小有关

假设最后一层(卷积层或池化层)输出特征图感受野的大小(相对于其直 接输入而言)等于卷积核的大小

fdb245c3827c5f67e1567f60efd9780a_b94207e3f6202b464f614f80b474e483.png


**卷积层的深度(卷积核个数)**:一个卷积层通常包含多个尺寸一致的卷积核

7f52efa8045bdcef0c91c0c23360ebaf_04d4b3438df80794a4876e297560dc06.png



激活函数

激活函数是用来加入非线性因素,提高网络表达能力,卷积神经网络中最常用的是ReLU,Sigmoid使用较少。


39b3e6d7fd42f7cf368286f1b991fe3f_414e3aee59e15e8fea0521e6451467c3.png



 

386440db5d71a1a94dd274b52b878b9c_102e4acb5905cd7eb2633986e9fb35ae.png



1. ReLU函数


f(x)=\left\{


0,x<0x,x≥0
0,x<0x,x≥0


\right.f(x)={0,x<0x,x≥0


ReLU函数的优点:


计算速度快,ReLU函数只有线性关系,比Sigmoid和Tanh要快很多

输入为正数的时候,不存在梯度消失问题

ReLU函数的缺点:


强制性把负值置为0,可能丢掉一些特征

当输入为负数时,权重无法更新,导致“神经元死亡”(学习率不 要太大)


2. Parametric ReLU


f(x)=\left\{


αx,x<0x,x≥0
αx,x<0x,x≥0


\right.f(x)={αx,x<0x,x≥0


当 𝛼=0.01 时,称作Leaky ReLU

当 𝛼 从高斯分布中随机产生时,称为Randomized ReLU(RReLU)

PReLU函数的优点:


比sigmoid/tanh收敛快

解决了ReLU的“神经元死亡”问题

PReLU函数的缺点:需要再学习一个参数,工作量变大


3. ELU函数


f(x)=\left\{


α(ex−1),x<0x,x≥0
α(ex−1),x<0x,x≥0

\right.f(x)={α(ex−1),x<0x,x≥0



ELU函数的优点:


处理含有噪声的数据有优势

更容易收敛

ELU函数的缺点:计算量较大,收敛速度较慢


CNN在卷积层尽量不要使用Sigmoid和Tanh,将导致梯度消失。

首先选用ReLU,使用较小的学习率,以免造成神经元死亡的情况。

如果ReLU失效,考虑使用Leaky ReLU、PReLU、ELU或者Maxout,此时一般情况都可以解决

特征图


浅层卷积层:提取的是图像基本特征,如边缘、方向和纹理等特征

深层卷积层:提取的是图像高阶特征,出现了高层语义模式,如“车轮”、“人脸”等特征

池化层

池化操作使用某位置相邻输出的总体统计特征作为该位置 的输出,常用最大池化(max-pooling)和均值池化(average- pooling)。

5042f0c81002081bde4392114a6f52e6_e7fac6f3c0f4fbd4098268cbf1803062.png

池化层不包含需要训练学习的参数,仅需指定池化操作的核大小、操作步幅以及池化类型。

池化的作用:


减少网络中的参数计算量,从而遏制过拟合

增强网络对输入图像中的小变形、扭曲、平移的鲁棒性(输入里的微 小扭曲不会改变池化输出——因为我们在局部邻域已经取了最大值/ 平均值)

帮助我们获得不因尺寸而改变的等效图片表征。这非常有用,因为 这样我们就可以探测到图片里的物体,不管它在哪个位置

全连接层

对卷积层和池化层输出的特征图(二维)进行降维

将学到的特征表示映射到样本标记空间的作用

输出层

对于分类问题:使用Softmax函数


y_i = \frac{e^{z_i}}{\sum_{i = 1}^{n}e^{z_i}}yi=∑i=1neziezi


对于回归问题:使用线性函数


y_i = \sum_{m = 1}^{M}w_{im}x_myi=m=1∑Mwimxm


卷积神经网络的训练

Step 1:用随机数初始化所有的卷积核和参数/权重


Step 2:将训练图片作为输入,执行前向步骤(卷积, ReLU,池化以及全连接层的前向传播)并计算每个类别的对应输出概率。


Step 3:计算输出层的总误差


Step 4:反向传播算法计算误差相对于所有权重的梯度,并用梯度下降法更新所有的卷积核和参数/权重的值,以使输出误差最小化


注:卷积核个数、卷积核尺寸、网络架构这些参数,是在 Step 1 之前就已经固定的,且不会在训练过程中改变——只有卷 积核矩阵和神经元权重会更新。

122f83c66096266ece192eff126936f9_8300bfc4247817f761da82ae12bdba73.png



和多层神经网络一样,卷积神经网络中的参数训练也是使用误差反向传播算法,关于池化层的训练,需要再提一下,是将池化层改为多层神经网络的形式

075f8e9f17b41b3d7ed34ebd1a6213c6_7fb5f314de509b650904c7923b879776.png

477802b6a4cfe405f6573112517b3db1_bf3653fccb8cdb8d585f6c360dc7f09d.png


将卷积层也改为多层神经网络的形式

1ad85e582c2ffb5ea5d49e5e4e591269_d609239f15f76c6ff318bc2a0fc7b1ed.png



主要应用

图像处理领域主要应用

图像分类(物体识别):整幅图像的分类或识别

物体检测:检测图像中物体的位置进而识别物体

图像分割:对图像中的特定物体按边缘进行分割

图像回归:预测图像中物体组成部分的坐标

a4683a5db1fbe5d64402997e4c96f2db_d9ae5af7de8f71bef4e3f4eae3d976af.png

目录
打赏
0
0
0
0
521
分享
相关文章
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
48 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
63 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
116 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
102 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
97 8
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
47 5
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
72 11
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
58 0
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
212 10

热门文章

最新文章