深度学习入门笔记系列 ( 六 ) ——卷积神经网络(CNN)学习笔记

简介: 本系列将分为 8 篇 。本次为第 6 篇 ,介绍在计算机视觉中使用广泛并且十分基础的卷积神经网络 。

卷积神经网络(CNN)学习笔记

本系列将分为 8 篇 。本次为第 6 篇 ,介绍在计算机视觉中使用广泛并且十分基础的卷积神经网络 。

1.从感受野说起

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

2.CNN 基本知识

我们已经知道神经网络结构是怎样的了 ,见下图 :

80.jpg


卷积神经网络与普通神经网络的区别在于 ,卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器 。在卷积神经网络的卷积层中 ,一个神经元只与部分邻层神经元连接 。

卷积神经网络所必须要理解的操作有卷积和池化 ,两个必须了解的概念有局部连接和权值共享 ,下边将一一道来 。

3.卷积

卷积层是卷积神经网络中的核心 ,从命名也能够看出来 。主要有两个关键的操作 ,即局部关联和窗口滑动 。将每一个卷积核在输入窗口依次滑动 ,进行卷积计算得到卷积结果 。例如下图 :

81.jpg


当然 ,上述图片中的卷积计算和数学中学的略有不同 ,理论来说卷积计算需要将卷积核旋转 180 度再进行滑动计算 ,但在这省略了旋转操作这一步骤(这一段可以跳过 ,避免数学基础不强的朋友弄混) 。

上述图片基本上介绍了卷积计算的方式 ,还需要介绍的有几个概念 以在计算机视觉领域为例 ,包括概念 :输入图片大小 ,卷积核大小(就是感受野大小),卷积核滑动步长 ,填充值 。

3.1 输入图片尺寸大小 ,记作 ni * ni *n维 ,ni 为图片大小 ,n维表示图片通道信息 ,例如 RGB 三通道图片中为 3 。

3.2 卷积核大小 ,记作 nf * nf * n维 ,也可以理解成感受野大小 ,即一个神经元连接的输入神经元个数或者说范围 。例如上图中为 2*2 ,即一个输出神经元通过卷积连接的输入神经元大小是 2*2 ,也就是局部连接的概念 !值得注意的是卷积核的维度必须和输入图片维度一致

3.3 滑动步长 stride ,记作s 。代表的是卷积核在输入上单次滑动的幅度 ,例如上图即为 stride=1 ,表示一次卷积后水平或垂直移动一个位置 。

3.4 填充值padding ,以下图为例子,比如有这么一个5*5的图片(一个格子一个像素),我们滑动窗口取2*2,步长取2,那么我们发现还剩下1个像素没法滑完,那怎么办呢?

82.jpg


我们可以在原先的矩阵加了一层填充值 ,使得变成 6*6 的矩阵 ,那么窗口就可以刚好把所有像素遍历完 ,这就是填充值 padding 的作用 。

83.jpg


值得一提的是 padding取值有两种 ,一个是 SAME ,一个是 VALID ,Same padding 时 ,卷积前后图片尺寸不变 ,padding = 0时即为 Valid padding 。

3.5 输出大小 ,如果我们用s表示stride长度,p表示padding长度,如果原始图片尺寸为n x n,filter尺寸为f x f,则卷积后的图片尺寸为:

84.jpg

其中 ,⌊⋯⌋表示向下取整。

然后就是多通道图片的卷积操作和多个卷积核的卷积操作 。

对于多通道图片的卷积操作 ,例如 RGB 三通道图片 ,只需要用同样三通道卷积核进行卷积操作然后累加得到卷积结果即可 。

85.jpg


至于多个卷积核的卷积操作 ,则可以理解成一个卷积核提取了图片的一种特征 ,多个卷积核分别对图片提取特征并得到多通道的输出结果 。


86.jpg

最后 ,关于卷积操作 。分享一张经典的动态图 ,很生动的描述了卷积层的操作过程 。

87.gif



上述提到局部连接和参数共享两个概念 ,这两个也正是卷积神经网络区别于相比标准神经网络的关键 ,CNN 的优势之一就是参数数目要少得多 。参数数目少的原因有两个 :

  • 参数共享 :一个特征检测器(例如垂直边缘检测)对图片某块区域有用 ,同时也可能作用在图片其它区域 。
  • 局部连接 :因为滤波器算子尺寸限制 ,每一层的每个输出只与输入部分区域内有关 。

4.池化

池化层 Pooling layers 在 CNN 中能够减小数据大小 ,提高运算速度的 ,使用较多的池化方法有 max pooling 和 average pooling 两种 。max pooling是最常用的做法 。即取区域内的最大值 。同理 average pooling 即计算区域内的平均值作为特征 。计算示意图分别如下所示 :

max pooling

87.jpg


average pooling

88.jpg


最后 ,如果觉得这个系列不错 ,记得扫码关注噢 !


相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
23 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
29天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
257 55
|
4天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
26天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
61 31
|
1月前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
362 7
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
84 1