深度学习入门笔记系列 ( 六 ) ——卷积神经网络(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


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


相关文章
|
4月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
259 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
4月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
90 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
4月前
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
853 1
深度学习环境搭建笔记(一):detectron2安装过程
|
4月前
|
机器学习/深度学习 自然语言处理 并行计算
深度学习笔记(十四):Transormer知识总结
关于深度学习中Transformer模型的知识总结,涵盖了Self-attention机制、QKV、Multi-head attention、位置编码和并行运算等关键概念,以及如何在PyTorch中实现Self-attention。
84 1
|
4月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
626 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
4月前
|
机器学习/深度学习
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
484 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
|
4月前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
116 0
|
4月前
|
机器学习/深度学习 编解码 计算机视觉
深度学习笔记(十一):各种特征金字塔合集
这篇文章详细介绍了特征金字塔网络(FPN)及其变体PAN和BiFPN在深度学习目标检测中的应用,包括它们的结构、特点和代码实现。
645 0
|
4月前
|
机器学习/深度学习 Web App开发 编解码
论文精度笔记(四):《Sparse R-CNN: End-to-End Object Detection with Learnable Proposals》
Sparse R-CNN是一种端到端的目标检测方法,它通过使用一组可学习的稀疏提议框来避免传统目标检测中的密集候选框设计和多对一标签分配问题,同时省去了NMS后处理步骤,提高了检测效率。
80 0
论文精度笔记(四):《Sparse R-CNN: End-to-End Object Detection with Learnable Proposals》
|
4月前
|
机器学习/深度学习 vr&ar
深度学习笔记(十):深度学习评估指标
关于深度学习评估指标的全面介绍,涵盖了专业术语解释、一级和二级指标,以及各种深度学习模型的性能评估方法。
118 0
深度学习笔记(十):深度学习评估指标

热门文章

最新文章