欢迎光临散文网 会员登陆 & 注册

人工智能AI面试题-4.9卷积神经网络CNN的基本原理

2023-10-16 09:00 作者:机器爱上学习  | 我要投稿

4.9 卷积神经网络CNN的基本原理 本文基于深度学习的主题,将在第35题“详细解释CNN的工作原理”的基础上,结合第36题“CNN是如何一步一步工作的?”的图像识别示例,全面阐述了卷积神经网络(CNN)的基本工作原理。 1 前言 深度学习的兴起可以追溯到2012年,当时举办了8期机器学习读书会,人们对机器学习充满了热情。然而,随着时间的推移,深度学习逐渐成为了热门话题。虽然我公司的在线课程由60多位讲师团队提供,但我仍然努力将复杂的概念以简单易懂的方式呈现,这是重新撰写技术博客的价值所在。 在深度学习中,卷积神经网络(CNN)是一个关键概念,它是入门深度学习的必备知识。本文的内容主要参考了斯坦福大学的机器学习公开课CS231n和“七月在线”的深度学习课程,旨在提供一份通俗易懂的CNN导论。 2 人工神经网络 2.1 神经元 神经网络由大量神经元相互连接而成。每个神经元接收线性组合的输入,最初只是简单的线性加权和。但后来为了引入非线性变换,每个神经元都加入了激活函数。神经元之间的连接代表着权重,不同的权重和激活函数会导致神经网络产生不同的输出。 以手写数字识别为例,给定一个未知数字图像,神经网络的输入由一组激活的输入神经元表示。经过非线性激活函数的变换后,神经元被激活并传递到其他神经元。这个过程不断重复,直到最后一个输出神经元被激活,从而识别出当前数字是什么。 神经元的基本公式如下: a = g(w * x + b) 其中: - x 表示输入向量 - w 表示权重,多个输入对应多个权重,即每个输入都有一个权重 - b 表示偏置项 - g(z) 表示激活函数 - a 表示输出 如果只是这样解释,可能对于初次接触的人会感到迷糊。实际上,这个简单模型可以追溯到20世纪50/60年代的感知器,它可以将决策建立在不同因素和它们的重要性上。 举个例子,假设北京周末有一个草莓音乐节,我们要决定是否参加。决定的因素有两个,这两个因素可以表示为输入 x1 和 x2,而它们对决策的影响程度由权重 w1 和 w2 表示。一般来说,音乐节的演唱嘉宾对我们的决策影响很大,所以我们可以这样表示: x1:是否有喜欢的演唱嘉宾。如果喜欢,x1 = 1;如果不喜欢,x1 = 0。演唱嘉宾因素的权重 w1 = 7。 x2:是否有人陪同去。如果有人陪同,x2 = 1;如果没有人陪同,x2 = 0。是否有人陪同的权重 w2 = 3。 这样,我们就建立了一个决策模型:a = g(w * x + b),其中 g 表示激活函数,b 可以看作是用于调整以更好地实现目标的偏置项。如果只有 x1 和 x2 同时取值为 1 时,g(z) → 1,判定为正样本;如果 x1 和 x2 中至少有一个取值为 0 时,g(z) → 0,判定为负样本。 2.2 激活函数 常用的非线性激活函数包括 Sigmoid、tanh、ReLU 等。Sigmoid 和 tanh 通常用于全连接层,而 ReLU 常用于卷积层。我们首先简要介绍一下最基本的 Sigmoid 函数: Sigmoid 函数的数学表达式如下: g(z) = 1 / (1 + e^(-z)) 其中 z 是线性组合的结果,可以是例如:z = w * x + b。通过代入较大的正数或较小的负数到 g(z) 函数中,可以看出其结果趋近于 0 或 1。因此,Sigmoid 函数 g(z) 的图形如下所示: (插入 Sigmoid 函数的图像) 换句话说,Sigmoid 函数的作用相当于将实数压缩到 0 到 1 之间。当 z 是非常大的正数时,g(z) 趋近于 1;当 z 是非常小的负数时,g(z) 趋近于 0。将结果压缩到 0 到 1 之间的好处是,我们可以将激活函数视为一种“分类的概率”,例如,激活函数的输出为 0.9 可以解释为90%的概率 表示正样本。 同样,tanh 函数也是一种非线性激活函数,其数学表达式如下: g(z) = (e^z - e^(-z)) / (e^z + e^(-z)) tanh 函数的图形如下所示: (插入 tanh 函数的图像) tanh 函数的作用是将实数压缩到 -1 到 1 之间。与 Sigmoid 不同,tanh 函数的输出可以是负数,因此它可以表示正负样本的概率。tanh 函数在一些神经网络中仍然有用,但在卷积神经网络中,ReLU 更为流行。 ReLU(Rectified Linear Unit)是一种非常简单但有效的激活函数。其数学表达式如下: g(z) = max(0, z) 这意味着如果 z 大于等于 0,则输出为 z,否则输出为 0。ReLU 的图形如下所示: (插入 ReLU 函数的图像) ReLU 的优点是计算简单且有效,但也有一个问题,就是在 z 小于 0 时,梯度为零,这会导致梯度消失问题。为了解决这个问题,出现了一些改进版的 ReLU,如 Leaky ReLU 和 Parametric ReLU(PReLU)。 至此,我们已经了解了神经元的基本原理以及常用的激活函数。在卷积神经网络中,神经元的组织和连接方式有所不同,这就是我们将在下一节中讨论的内容。 3 卷积神经网络(CNN) 卷积神经网络(CNN)是一种特殊的神经网络,主要用于图像识别和处理任务。它的设计灵感来自于生物学中对动物视觉系统的研究,尤其是猫的视觉系统。CNN 的核心概念是卷积层和池化层。 3.1 卷积层 卷积层是 CNN 的核心组件之一,它模拟了生物学中的视觉皮层,通过局部感知域和权重共享来实现对输入图像的特征提取。卷积层的输入通常是一个多通道的图像(例如,RGB 彩色图像有三个通道),而输出是一组二维特征图,每个特征图对应一个不同的特征。 在卷积层中,有两个重要的概念:卷积核和步幅。卷积核是一个小的二维滤波器,它在输入图像上滑动,计算每个位置的卷积操作。步幅表示卷积核每次滑动的距离。通过调整卷积核的大小和步幅,可以控制特征图的大小。 卷积操作的数学表示如下: 输出特征图 = 输入图像 * 卷积核 在实际应用中,通常有多个卷积核,每个卷积核用于检测输入图像中的不同特征。通过对输入图像的不同位置应用不同的卷积核,CNN 可以提取出图像的局部特征,例如边缘、纹理等。 3.2 池化层 池化层用于减小特征图的大小,降低计算复杂度,并增强网络的平移不变性。池化操作通常在每个特征图上执行,通过在局部感知域内取最大值或平均值来减小特征图的尺寸。 最常见的池化操作是最大池化(Max Pooling),它在局部感知域内选择最大值作为输出。最大池化的数学表示如下: 输出特征图 = Max(局部感知域) 最大池化操作可以帮助网络保留重要的特征,同时减小特征图的尺寸。其他类型的池化操作包括平均池化(Average Pooling)等。 4 CNN的工作原理 现在,我们将详细解释 CNN 是如何一步一步工作的,以图像识别为例。 4.1 输入图像 首先,输入图像被传递到 CNN 网络中。输入图像通常是一个多通道的矩阵,其中每个通道代表图像的不同颜色通道(例如,RGB 彩色图像有三个通道)。 4.2 卷积层 在卷积层中,输入图像经过一系列卷积核的滑动操作,每个卷积核检测输入图像中的不同特征。这些特征映射(也称为特征图)捕获了图像的局部特征,例如边缘、纹理等。每个特征图都是通过对应卷积核与输入图像执行卷积操作得到的。 4.3 非线性激活函数 在卷积层之后,通常会应用非线性激活函数,例如 ReLU,以引入非线性变换。这可以增加网络的表达能力并使其能够学习复杂的特征。 4.4 池化层 池化层用于减小特征图的尺寸,同时保留重要的特征。最常见的是最大池化,它在每个特征图上执行最大池化操作。 4.5 全连接层 在经过多个 卷积层和池化层之后,通常会添加全连接层。全连接层将所有特征图中的信息汇总,并将其传递给输出层。 4.6 输出层 输出层通常包含一个或多个神经元,用于输出网络对输入图像的分类结果。对于图像分类任务,常用的输出层激活函数是 softmax 函数,它将网络的原始输出转化为类别概率分布。 4.7 训练和反向传播 CNN 的训练过程通常使用反向传播算法。在训练中,网络通过与标签进行比较来计算损失,并通过梯度下降算法来调整权重和偏置,以最小化损失函数。这个过程需要大量的标记样本和反复迭代。 5 应用领域 CNN 在图像识别、图像分类、目标检测、人脸识别、自然语言处理等领域取得了显著的成就。它们已经在许多实际应用中取得了成功,如自动驾驶、医学影像分析、安全监控等。 总之,卷积神经网络是一种强大的深度学习模型,特别适用于处理图像数据。它通过卷积层和池化层来提取图像的局部特征,并通过全连接层和输出层来实现分类或回归任务。CNN 已经在各种应用领域取得了显著的成功,是计算机视觉领域的重要工具之一。

人工智能AI面试题-4.9卷积神经网络CNN的基本原理的评论 (共 条)

分享到微博请遵守国家法律