卷积神经网络简介


卷积神经网络 (CNN) 是计算机视觉中常用的一种深度学习神经网络架构。计算机视觉是人工智能的一个领域,它使计算机能够理解和解释图像或视觉数据。

在机器学习方面,人工神经网络表现非常出色。神经网络用于各种数据集,如图像、音频和文本。不同类型的神经网络用于不同的目的,例如,为了预测单词序列,我们使用循环神经网络,更准确地说是 LSTM,同样,对于图像分类,我们使用卷积神经网络。在本博客中,我们将为 CNN 构建一个基本构建块。

神经网络:层和功能

在常规神经网络中,有三种类型的层:

  1. Input Layers(输入层):这是我们为模型提供输入的层。该层中的神经元数量等于我们数据中的特征总数(图像中的像素数)。
  2. 隐藏层:然后,来自 Input 层的输入被馈送到隐藏层中。根据我们的模型和数据大小,可以有许多隐藏层。每个隐藏层可以有不同数量的神经元,这些神经元通常大于特征的数量。每一层的输出是通过矩阵乘前一层的输出与该层的可学习权重,然后加上可学习偏差,然后是激活函数来计算的,这使得网络非线性。
  3. 输出层:然后将隐藏层的输出馈送到 sigmoid 或 softmax 等 logistic 函数中,该函数将每个类的输出转换为每个类的概率分数。

将数据输入模型并从上述步骤获得每一层的输出称为前馈,然后我们使用误差函数计算误差,一些常见的误差函数是交叉熵、平方损失误差等。error 函数用于测量网络的性能。之后,我们通过计算导数来反向传播到模型中。此步骤称为 Backpropagation ,基本上用于最小化损失。

卷积神经网络

卷积神经网络 (CNN) 是人工神经网络 (ANN) 的扩展版本,主要用于从网格状矩阵数据集中提取特征。例如,数据模式起着广泛作用的图像或视频等视觉数据集。

CNN 架构

卷积神经网络由多个层组成,如输入层、卷积层、池化层和全连接层。

max

卷积神经网络简介的图2 编辑

简单的 CNN 架构

卷积层对输入图像应用过滤器以提取特征,池化层对图像进行下采样以减少计算,全连接层进行最终预测。网络通过反向传播和梯度下降来学习最佳滤波器。

卷积层是如何工作的?

卷积神经网络或 covnet 是共享其参数的神经网络。假设您有一张图片。它可以表示为具有长度、宽度(图像的尺寸)和高度(即图像通常具有红色、绿色和蓝色通道的通道)的长方体。

cnn-2-300x133

卷积神经网络简介的图4 编辑

现在想象一下,从这张图片中获取一小块,并运行一个小型神经网络,称为过滤器或内核,其中包含 K 个输出,并垂直表示它们。现在在整个图像上滑动该神经网络,结果,我们将得到另一个具有不同宽度、高度和深度的图像。现在,我们不仅有 R、G 和 B 通道,而且有更多的通道,但宽度和高度更小。此作称为 卷积。如果补丁大小与图像的大小相同,它将是一个常规神经网络。由于这个小块,我们的权重较少。

Screenshot-from-2017-08-15-13-55-59-300x217

卷积神经网络简介的图6 编辑

图片来源: Deep Learning Udacity

卷积的数学概述

现在让我们谈谈整个卷积过程中涉及的一些数学运算。

  • 卷积层由一组可学习的滤波器(或内核)组成,这些滤波器的宽度和高度较小,深度与输入体积的深度相同(如果输入层是图像输入,则为 3)。
  • 例如,如果我们必须对尺寸为 34x34x3 的图像运行卷积。滤镜的可能大小可以是 axax3,其中 'a' 可以是 3、5 或 7 之类的大小,但与图像尺寸相比更小。
  • 在前向传递期间,我们逐步在整个输入体积上滑动每个滤波器,其中每个步骤称为步幅(对于高维图像,该值可以是 2、3 甚至 4),并从输入体积计算内核权重和补丁之间的点积。
  • 当我们滑动过滤器时,我们将获得每个过滤器的 2-D 输出,我们将它们堆叠在一起,因此,我们将得到深度等于过滤器数量的输出体积。网络将学习所有过滤器。

用于构建 ConvNet 的层

完整的卷积神经网络架构也称为 covnet。covnets 是一系列层,每一层都通过可微函数将一个体积转换为另一个体积。
图层类型:数据集
让我们以对尺寸为 32 x 32 x 3 的图像运行 covnets 为例。

  • Input Layers(输入层):这是我们为模型提供输入的层。在 CNN 中,通常输入将是一张图像或一系列图像。此图层包含宽度为 32、高度为 32 和深度为 3 的图像的原始输入。
  • 卷积层:这是用于从输入数据集中提取特征的层。它将一组称为内核的可学习过滤器应用于输入图像。过滤器/内核是较小的基质,通常为 2×2、3×3 或 5×5 形状。它在输入图像数据上滑动,并计算 Kernel Weight 和相应的 Input Image Patch 之间的点积。该层的输出称为特征图。假设我们在这个层总共使用 12 个滤波器,我们将得到一个维度为 32 x 32 x 12 的输出体积。
  • 激活层:通过将激活函数添加到前一层的输出中,激活层为网络增加了非线性。它将对卷积层的输出应用元素激活函数。一些常见的激活函数有 RELU:max(0, x)、TanhLeaky RELU 等。体积保持不变,因此输出体积的尺寸为 32 x 32 x 12。
  • 池化层:该层定期插入 covnet 中,其主要功能是减小卷的大小,从而使计算更快,减少内存,还可以防止过拟合。两种常见的池化层类型是 max 池化平均池化。如果我们使用具有 2 x 2 个过滤器且步幅为 2 的最大池,则生成的体积将为 16x16x12 的维度。

Screenshot-from-2017-08-15-17-04-02

卷积神经网络简介的图8 编辑

图片来源: cs231n.stanford.edu

  • Flattening:生成的特征图在卷积层和池化层之后被展平为一维向量,以便它们可以传递到完全链接的层中进行分类或回归。
  • Fully Connected Layers:它从前一层获取输入并计算最终的分类或回归任务。

Screenshot-from-2017-08-15-17-22-40

卷积神经网络简介的图10 编辑

图片来源: cs231n.stanford.edu

  • 输出层:然后将全连接层的输出馈送到 sigmoid 或 softmax 等分类任务的 logistic 函数中,该函数将每个类的输出转换为每个类的概率分数。

卷积神经网络 (CNN) 的优缺点

CNN 的优点:

  1. 擅长检测图像、视频和音频信号中的模式和特征。
  2. 对平移、旋转和缩放不变性具有鲁棒性。
  3. 端到端训练,无需手动提取特征。
  4. 可以处理大量数据并实现高准确性。

CNN 的缺点:

  1. 训练的计算成本很高,并且需要大量内存。
  2. 如果没有足够的数据或使用适当的正则化,则容易出现过拟合。
  3. 需要大量标记数据。
  4. 可解释性有限,很难理解网络学到了什么。

卷积神经网络 – 常见问题解答

什么是卷积神经网络 (CNN)?

卷积神经网络 (CNN) 是一种非常适合图像和视频分析的深度学习神经网络。CNN 使用一系列卷积和池化层从图像和视频中提取特征,然后使用这些特征对对象或场景进行分类或检测。

CNN 的工作原理是什么?

CNN 的工作原理是将一系列卷积层和池化层应用于输入图像或视频。卷积层通过在图像或视频上滑动一个小滤波器或内核,并计算滤波器和输入之间的点积,从输入中提取特征。然后,池化层对卷积层的输出进行下采样,以降低数据的维度并提高其计算效率。

CNN 和卷积有什么区别?

  • CNN(卷积神经网络)是一种深度学习神经网络,旨在通过使用卷积层提取特征来处理网格状数据,例如图像。
  • 另一方面,卷积是 CNN 中的特定数学运算,它将过滤器(内核)应用于输入数据(如图像)以检测边缘或纹理等模式。

CNN 的基本原理是什么?

卷积神经网络 (CNN) 的基本原理是通过使用卷积层从输入数据(通常是图像)中自动学习和提取分层特征。

什么是卷积及其类型?

卷积是卷积神经网络 (CNN) 中应用的一种数学运算,用于从输入数据(例如图像)中提取特征。在 CNN 的上下文中,卷积涉及在输入数据上滑动滤波器(内核),计算滤波器和输入的一小块之间的点积,并生成特征图。

CNN 中有多少层?

CNN 中没有固定的层数,因为它因架构和任务而异。

在 CNN 中使用多个卷积层的目的是什么?

在 CNN 中使用多个卷积层可以使网络从输入图像或视频中学习越来越复杂的特征。第一个卷积层学习简单的特征,例如边缘和角落。更深的卷积层学习更复杂的特征,例如形状和对象。

卷积层和池化层有什么区别?

卷积层从输入图像或视频中提取特征,而池化层对卷积层的输出进行下采样。卷积层使用一系列过滤器来提取特征,而池化层使用各种技术对数据进行下采样,例如最大池化和平均池化。

示例:将 CNN 应用于图像

让我们考虑一张图像,并应用卷积层、激活层和池化层作来提取内部特征。

步:

  • 导入必要的库
  • 设置参数
  • 定义内核
  • 加载图像并绘制它。
  • 重新设置图像格式
  • 应用卷积层作并绘制输出图像。
  • 应用激活层作并绘制输出图像。
  • 应用池化层作并绘制输出图像。

以下内容为付费内容,请购买后观看

App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1