深度学习自学笔记十一:卷积神经网络

目录

一、卷积神经网络在计算机视觉介绍和应用

二:边缘检测内容和示例、填充

1、边缘检测内容和示例

2、填充

三、卷积步长、三维卷积、单层卷积网络

1、卷积步长

2、三维卷积

3、单层卷积网络

四、池化层


一、卷积神经网络在计算机视觉介绍和应用

卷积神经网络(Convolutional Neural Networks,简称CNN)在计算机视觉领域中被广泛应用。它是一种专门针对图像处理的神经网络结构。在计算机视觉任务中,CNN主要用于图像分类、目标检测、图像分割和图像生成等任务。其核心思想是通过卷积层、池化层和全连接层构成的多层网络来提取图像特征,并进行相应的分类或回归任务。

首先,卷积层是CNN的核心组件之一。它通过使用一组可学习的滤波器(也称为卷积核)对输入图像进行卷积操作,从而提取图像的局部特征。每个滤波器会在整个图像上进行滑动,并对局部区域进行卷积运算,得到一个特征图。通过使用多个不同的滤波器,可以提取出图像的多个特征图,用于表达不同的特征信息。

其次,池化层用于降低特征图的维度,并增强对平移、缩放和旋转等变化的不变性。常见的池化操作包括最大值池化和平均值池化。通过对每个特征图进行池化操作,可以减少特征图的尺寸,保留关键信息,并减少网络参数数量。

最后,全连接层用于将卷积和池化阶段提取的特征映射到具体的类别或回归值。全连接层将特征展平成一维向量,并通过多个全连接层进行非线性变换和分类操作。

除了上述基本组件,CNN还可以包含其他附加层,如批归一化层、激活函数层(如ReLU)、Dropout层等,以增强模型性能。通过使用CNN,计算机视觉任务可以实现更高的准确度和鲁棒性。CNN在图像处理领域的广泛应用包括人脸识别、物体检测、图像分割、场景理解等。

二:边缘检测内容和示例、填充

1、边缘检测内容和示例

边缘检测是计算机视觉中的一项基本任务,用于识别图像中物体或场景的边界。它是在图像中找到像素值变化剧烈的位置,通常表示不同区域之间的边界。

常见的边缘检测算法包括Sobel算子、Prewitt算子、Canny边缘检测等。

1. Sobel算子:Sobel算子是一种常用的边缘检测算子,通过对图像进行卷积操作来计算每个像素点的梯度强度和方向。梯度强度表示图像在该位置的灰度变化程度。在Sobel算子中,分别使用水平和垂直两个3x3的卷积核来计算图像的梯度。将水平和垂直梯度进行合并,可以得到最终的边缘图像。

2. Prewitt算子:Prewitt算子也是一种常用的边缘检测算子,原理与Sobel算子类似。它使用两个3x3的卷积核来计算水平和垂直方向上的梯度,并将两个方向的梯度合并得到边缘图像。

3. Canny边缘检测:Canny边缘检测算法是一种经典的边缘检测方法,它通过多个步骤来实现边缘检测。首先,对图像进行高斯滤波以平滑噪声。然后,计算图像的梯度强度和方向。接下来,使用非极大值抑制来细化边缘,保留局部最大值点。最后,通过阈值处理来筛选出具有较高梯度强度的像素作为真正的边缘。

2、填充

在计算机视觉中,填充(Padding)是指在图像边缘周围添加额外的像素。填充操作通常用于卷积神经网络(CNN)中的卷积层,以保持输入和输出特征图的尺寸一致或进行尺寸变换。

填充操作可以分为两种类型:零填充和边界填充。

1. 零填充(Zero Padding):零填充是最常见的填充方式,在图像边缘周围添加零值像素。它可以使卷积操作后输出特征图的大小保持与输入特征图相同,且不改变特征图中物体边缘信息的位置。零填充还有助于减少卷积层对图像边缘的影响,提高特征图的质量。

2. 边界填充(Border Padding):边界填充是在图像边缘重复边界像素值来填充。这种方式可以保留图像边缘的纹理和细节信息,但会导致特征图尺寸增加,可能影响模型性能。

填充操作在卷积层中起到以下几个作用:

1. 保持特征图尺寸:通过填充,可以确保卷积操作后的输出特征图与输入特征图的尺寸相同。这对于设计深层神经网络时非常重要,因为它可以避免特征图在层与层之间过早缩小而导致信息丢失。

2. 边缘信息保留:填充操作可以保留输入图像边缘的信息,使得卷积核能够更好地捕捉物体的边界细节。这对于图像分割和物体检测等任务非常关键。

3. 参数共享:填充操作还有助于保持卷积操作的参数共享性质。由于填充后的特征图尺寸与输入特征图相同,卷积核在不同位置上的权重可以共享,减少了模型中需要学习的参数数量。

三、卷积步长、三维卷积、单层卷积网络

1、卷积步长

卷积步长(Stride)是指在卷积操作中滑动卷积核的步幅大小。它决定了在每一次卷积操作中,卷积核在输入特征图上移动的距离。

常见的卷积步长包括1、2和更大的数值。步长为1表示卷积核每次移动一个像素;步长为2表示卷积核每次移动两个像素,以此类推。

通过调整卷积步长可以实现以下几个效果:

1. 尺寸减小:较大的卷积步长可以导致输出特征图尺寸的减小。例如,在步长为2的情况下,输出特征图的宽度和高度将分别缩小为输入特征图的一半。这对于减少模型参数和计算量有利。

2. 特征稀疏化:较大的卷积步长可以使得卷积操作覆盖的区域更加稀疏,从而导致输出特征图中的特征点更少。这有助于提取更加显著和抽象的特征,减少冗余信息。

3. 计算效率:较大的卷积步长可以减少卷积操作的次数,从而降低计算复杂度。这对于大规模神经网络和实时应用中的计算速度至关重要。

2、三维卷积

三维卷积(3D Convolution)是在计算机视觉和视频处理领域中用于处理三维数据的一种卷积操作。与二维卷积不同,三维卷积同时考虑了图像或视频的宽度、高度和深度(或时间维度),因此适用于处理具有时间序列信息或体积感知的数据。

三维卷积通常应用于视频分析、动作识别、医学图像处理等任务。它在二维卷积的基础上引入了对时间维度的建模,从而能够捕捉到时序变化和运动特征。

与二维卷积类似,三维卷积也涉及卷积核、步长、填充等概念:

1. 卷积核:三维卷积核是一个立方体形状的滤波器,它沿着三个维度(宽度、高度、深度/时间)进行滑动,并在每个位置进行卷积操作。卷积核的参数由网络通过训练学习得到。

2. 步长:三维卷积的步长定义了卷积核沿每个维度移动的距离。较大的步长可以减小输出特征图的尺寸,类似于二维卷积的效果。

3. 填充:三维卷积可以在各个维度上进行填充操作,以控制输出特征图的尺寸。常见的填充方式包括零填充和边界填充。

与二维卷积不同的是,三维卷积需要考虑时间维度上的相关性。它通过对时间序列数据进行卷积运算,从而捕捉到视频中的时空信息。这在行为识别、动作检测等任务中非常重要。

3、单层卷积网络

单层卷积网络是一种简单的神经网络结构,其中只包含一个卷积层。它通常由以下几个部分组成:

1. 输入层:接受输入数据,可以是图像、文本或其他形式的数据。

2. 卷积层:使用卷积操作来提取输入数据中的特征。卷积层包含多个卷积核(也称为滤波器),每个卷积核在输入数据上滑动并执行卷积运算。这样可以生成多个特征图(也称为卷积特征)。

3. 激活函数:对卷积层的输出进行非线性变换,引入非线性特性。常用的激活函数有ReLU、Sigmoid和Tanh等。

4. 池化层:通过降采样操作减少特征图的尺寸,同时保留重要的特征信息。池化操作可以有最大池化、平均池化等。

5. 全连接层:将池化层输出的特征图展平为一维向量,并与权重矩阵相乘,得到最终的输出结果。

6. 输出层:根据任务需求确定输出层的激活函数,可以是Softmax函数(多分类问题)或者Sigmoid函数(二分类问题)。

四、池化层

池化层是卷积神经网络中的一种常用层,用于对特征图进行降采样操作。它可以减小特征图的尺寸,并且保留重要的特征信息。

常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling):

1. 最大池化:最大池化在每个池化窗口中选择最大的特征值作为输出。通过这种方式,最大池化可以保留特征图中最显著的特征。最大池化常用于图像处理任务中。

2. 平均池化:平均池化计算每个池化窗口内特征值的平均值作为输出。通过取平均值,平均池化可以有效地降低噪声,并保留整体特征。平均池化常用于文本分类等任务中。

池化层通常在卷积层之后使用,其作用包括:

1. 降采样:通过减小特征图的尺寸,降低了后续层的计算复杂度,并且可以减少模型的参数数量。

2. 平移不变性:池化操作对输入的微小变化具有一定的鲁棒性,使得模型对于平移、旋转等操作具有一定的不变性。

3. 特征提取和选择:池化层可以帮助网络识别最显著的特征,通过选取最强大或平均特征来表示输入图像或特定区域。

你可能感兴趣的:(深度学习,笔记,cnn)