手把手教你理解卷积神经网络

简介: 卷积神经网络是一种识别和理解图像的神经网络。本文将从不同的层次来介绍卷积神经网络。

    手把手教你理解卷积神经网络(一)

         本文将继续为你介绍关于卷积神经网络的知识。为了保持文章的简洁性和全面性我将为你提供研究论文的链接,里边会有更为详细的解释。

确定宽度和填充(Stride and Padding)

让我们看看转换层,还记得滤波器、接受域和卷积吗?现在我们可以改变两个主要参数来修改每层的运行状态。在选择滤波器大小之后,还要选择宽度和填充。

用宽度来控制滤波器如何在输入量的上下范围内进行卷积。例如,一个7*7的输入量,一个3*3滤波器(忽略第三维度的简单性),宽度为1

197af7000dffba1ffe8ab2e31be1d3a77709a44f 

看看你是否能尽力猜出随着宽度增加到2,输出量会发生什么变化。

43b4392bdcbe626ca550a0447da71e642f098b30 

因此,正你所看到的那样,接受域现在在两个单元之间来回变换,并且输出体积也缩小了。请注意,如果我们试图将宽度调整为3,那么我们就有间隔的问题了,还要确保接受域适合输入量。通常来说,开发者如果希望接受域重叠较少,并且希望有较小的空间维度,则会增大宽度。

让我们看看填充部分,但是在开始之前,让我们考虑一个场景。当你把三个5*5*3滤波器应用到一个32*32*3的输入量时会发生什么呢?输出量会是28*28*3。注意,空间维度减少了。当我们保持应用转换层时,输出量的大小将比我们想象的减少的快。在我们网络的前面的那些层中,我们想尽可能多地保存原始输入量的信息,这样我们就可以提取那些低级的特性了。这样说吧,我们想应用同样的转换层,但想要的输出量要保持在32 x 32 x 3。要做到这一点,我们可以对该层应用一个大小为2的零填充。零填充在边界上以零为输入的量。如果我们考虑两个中的一个零填充,那么这将会导致一个36*36*3的输入量。

7783b1083b59fe4b69fb1c5d7065df02dbbf119a 

如果你有一个为1的宽度,并且你把零填充的大小设置为:

e2061dc07b86ed0e821f4f09eb01433ab4d6ed6e

当滤波器的大小为K时,输入量和输出量将始终具有相同的空间维度。

对于任何给定的转换层的输出量的计算公式是:

acfc4d1fb6a8ef7972c7a121728fc346b1aa9f1d

上面的公式中,O是输出的高度/长度,W是输入的高度/长度,K滤波器的大小,P是填充,S是宽度。

选择参数(Choosing Hyperparameters)

我们如何知道用了多少层,有多少转换层,滤波器的大小是多少,或者宽度和填充是什么值呢?这些问题我们都不知晓,因为网络将在很大程度上依赖于你的数据类型。数据可以根据大小、图像的复杂度、图像处理任务的类型以及更多的不同因素而变化。当看着你的数据集时,一个考虑如何选择参数的方式是在一个适当的规模找到正确的创建图像抽象的组合。

ReLU (被调整的线性单元)

在每个转换层的后面,就是常规的应用非线性层(或激活层)。这一层的目的是非线性地引入一个系统,这个系统基本上是在转换层一直计算线性操作(只是元素方式的乘法和加法运算)。

在之前,一直用的是非线性函数,如tanhsigmoid,但研究人员发现ReLU层的效率远远更好,这是因为在对精度没有产生显著不同的情况下,网络能训练的更快(因为计算效率更高)。它也有助于缓和消失梯度的麻烦,这是一个问题,因为较低层的网络训练是非常缓慢的,因为在这些层里梯度呈指数级别的下降层(解释这个问题可能超出了本文的范围,点击这里这里来查看具体的解释和描述)。ReLU层调用函数fx= max0x)来提供输入量的所有值。基本上来说,这一层刚好改变所有的负激活为0。这一层在不影响转换层的接受域的情况下,提高了模型和整个网络的非线性的属性。

池化层Pooling Layers

经过一些ReLU层,开发者可以选择应用一个池化层,它也被称为缩减采样层。在这一类别中,也有其它几个层的选择,与最大池化maxpooling)一起是最受欢迎的。这基本上需要一个滤波器(通常大小为2*2)和相同尺寸的宽度。然后将其应用于输入量和在每个有滤波器卷积的子区域中输出的最大数量。

4a3c89c082ec7f249544c3f225ac15efe53e04cf 

池化层的其他选项是平均池化L2-norm池化。这个层背后的直观理解是,一旦我们知道一个特定的特征是在原始输入量中(将会有一个高激活值),它的确切位置并不像它相对于其它特征的位置那么重要。可以想象,这一层极大地减少了输入量的空间维度(长度和宽度的变化,而不是深度)。这有两个主要目的。首先,参数或权重的数量减少了75%,从而降低了计算的成本。其次,它将控制过度拟合,这指的是当一个模型被调整到训练样本时,它不能很好地为验证和测试集进行标准化。过度拟合的表现是,有一个模型,在训练集上得到100%99%的表现,但在测试数据上只有50%

Dropout Layers

现在,Dropout Layers在神经网络中有一个非常特殊的功能。在上一节中,我们讨论了过度拟合的问题,训练结束后,网络的权重被调整到了已给的训练样本,当提供了新的训练样本时网络就执行的不那么好了。Dropout的想法在本质上是过于简单化的。这一层删除一个随机激活集,通过将它们设置为零。即使某些激活被删除了,网络也应该能够为特定的样本提供正确的分类或输出。它确保网络变得不适合训练数据,从而有助于缓解过度拟合的问题。一个重要的注意事项是,这一层仅用于训练期间,而不是在测试期间使用。

网络层的网络(Network in Network Layers

网络层的网络指的是一个应用1 x 1大小的滤波器的转换层。首先,既然接受域通常要比它们映射到的空间大,你可能想知道为什么层的类型会有帮助。然而,我们必须记住,这些1x1卷积的跨度是有一定深度的,所以可以认为它是一个1 x 1 x N的卷积,其中N滤波器在这一层中应用的数量。

分类、定位、检查、分割(Classification, Localization, Detection, Segmentation

当我们执行一个类似于对象本地化这样的任务时,不仅仅是生成一个类标签,还包括一个用来描述对象在图片中位置的包围盒(bounding box)。

d1accc56419c2925ffa93ce10b25ce8b7ce5ab59 

我们也有对象检测的任务,需要对图像中的所有对象进行定位。因此,将有多个包围盒和多个类标签。

最后,我们还进行了对象分割,其中的任务是输出一个类标签以及一个输入图像中每个对象的轮廓。

fa0b0b032c79b7f0a6dce1ec4d95e50b8cf3e933 

迁移学习Transfer Learning

现在,在深度学习社区的一个常见的误解是:没有超大的数据量,你不可能创建有效的深度学习模型。数据固然是创建网络的关键部分,但也不是决定部分迁移学习的思想有助于减少数据需求。迁移学习是接受预训练模型(由其他人在大数据集上训练过的网络的权重和参数)并用自己的数据集对模型进行微调的过程。这个想法是这个预先训练的模型将作为一个特征提取器。你将删除网络的最后一层,并用自己的分类器来代替。然后冻结所有其它层的权重,并正常地训练网络(冻结这些层意味着在梯度下降/优化过程中不改变权重)。

我们正在探讨的是预训练模型在ImageNet上训练(ImageNet是一个数据集,在1000以上个类里包含1400万幅图像)。当考虑网络上那些较低的层时,我们知道它们将检测到像边缘和曲线这样的特征。现在,除非你有一个非常独特的问题空间和数据集,你的网络也将需要检测曲线和边缘。与其通过一个随机的权重初始化值来训练整个网络,我们可以使用预训练模型的权重,并致力于在更重要的层(更高的层)上进行训练。如果你的数据集与ImageNet完全不同,那么你就要训练更多的层并冻结两个较低的层。

数据扩展技术(Data Augmentation Techniques

现在,我们可能对数据在卷积神经网络中的重要性没什么感觉了,因此让我们谈论一下让你的数据集变大的方法,仅仅是用两个简单的变换。正如我们前面提到过的,当计算机用一个图像作为输入时,它将输入一个像素值的数组。假设整个图像被左移1个像素。对你和我来说,这个变化是潜移默化的。然而,对于一个计算机来说,这一改变可能相当地重要,因为图像的分类或标签不会改变,而数组改变了。以改变数组表示的方式改变训练数据的方法,同时保持标签相同,称为数据扩展技术。这是一种人工扩展数据集的方法。人们使用的一些流行的扩展是灰度、水平翻转、垂直翻转、随作物、色恐慌、平移、旋转等等。通过将其中的两个转换应用到训练数据中,你就可以轻松地将训练样本的数量扩大一倍或三倍。


数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

 以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《A Beginner's Guide to Understanding Convolutional Neural Networks》,译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文 

相关文章
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
2月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
312 11
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
2月前
|
机器学习/深度学习 传感器 数据采集
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
161 0
|
4月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
216 7
|
6月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于PSO(粒子群优化)改进TCN(时间卷积神经网络)的时间序列预测方法。使用Matlab2022a运行,完整程序无水印,附带核心代码中文注释及操作视频。TCN通过因果卷积层与残差连接处理序列数据,PSO优化其卷积核权重等参数以降低预测误差。算法中,粒子根据个体与全局最优位置更新速度和位置,逐步逼近最佳参数组合,提升预测性能。
|
5月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络和GEI步态能量提取的步态识别算法matlab仿真,对比不同角度下的步态识别性能
本项目基于CNN卷积神经网络与GEI步态能量提取技术,实现高效步态识别。算法使用不同角度(0°、45°、90°)的步态数据库进行训练与测试,评估模型在多角度下的识别性能。核心流程包括步态图像采集、GEI特征提取、数据预处理及CNN模型训练与评估。通过ReLU等激活函数引入非线性,提升模型表达能力。项目代码兼容Matlab2022a/2024b,提供完整中文注释与操作视频,助力研究与应用开发。
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本内容包含时间序列预测算法的相关资料,涵盖以下几个方面:1. 算法运行效果预览(无水印);2. 运行环境为Matlab 2022a/2024b;3. 提供部分核心程序,完整版含中文注释及操作视频;4. 理论概述:结合时间卷积神经网络(TCN)与鲸鱼优化算法(WOA),优化TCN超参数以提升非线性时间序列预测性能。通过因果卷积层与残差连接构建TCN模型,并用WOA调整卷积核大小、层数等参数,实现精准预测。适用于金融、气象等领域决策支持。
|
5月前
|
机器学习/深度学习 数据采集 并行计算
基于WOA鲸鱼优化的TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于TCN(Temporal Convolutional Network)与WOA(Whale Optimization Algorithm)的时间序列预测算法。TCN通过扩张卷积捕捉时间序列长距离依赖关系,结合批归一化和激活函数提取特征;WOA用于优化TCN网络参数,提高预测精度。算法流程包括数据归一化、种群初始化、适应度计算及参数更新等步骤。程序基于Matlab2022a/2024b开发,完整版含详细中文注释与操作视频,运行效果无水印展示。适用于函数优化、机器学习调参及工程设计等领域复杂任务。
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本内容涵盖基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测算法。完整程序运行效果无水印,适用于Matlab2022a版本。核心代码配有详细中文注释及操作视频。理论部分阐述了传统方法(如ARIMA)在非线性预测中的局限性,以及TCN结合PSO优化超参数的优势。模型由因果卷积层和残差连接组成,通过迭代训练与评估选择最优超参数,最终实现高精度预测,广泛应用于金融、气象等领域。

热门文章

最新文章

下一篇
开通oss服务