0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

干货速来!详析卷积神经网络(CNN)的特性和应用

analog_devices 来源:未知 2023-03-27 22:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前文《卷积神经网络简介:什么是机器学习》中,我们比较了在微控制器中运行经典线性规划程序与运行CNN的区别,并展示了CNN的优势。我们还探讨了CIFAR网络,该网络可以对图像中的猫、房子或自行车等对象进行分类,还可以执行简单的语音识别。本文重点解释如何训练这些神经网络以解决实际问题。

01 神经网络的训练过程

前文中讨论的CIFAR网络由不同层的神经元组成。如图1所示,32 × 32像素的图像数据被呈现给网络并通过网络层传递。CNN处理过程的第一步就是提取待区分对象的特性和结构,这需要借助滤波器矩阵实现。设计人员对CIFAR网络进行建模后,由于最初无法确定这些滤波器矩阵,因此这个阶段的网络无法检测模式和对象。

为此,首先需要确定滤波器矩阵的所有参数,以最大限度地提高检测对象的精度或最大限度地减少损失函数。这个过程就称为神经网络训练。前文所描述的常见应用在开发和测试期间只需对网络进行一次训练就可以使用,无需再调整参数。如果系统对熟悉的对象进行分类,则无需额外训练;当系统需要对全新的对象进行分类时,才需要额外进行训练。

进行网络训练需要使用训练数据集,并使用类似的一组测试数据集来测试网络的精度。例如CIFAR-10网络数据集为十个对象类的图像集合:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、轮船和卡车。我们必须在训练CNN之前对这些图像进行命名,这也是人工智能应用开发过程中最为复杂的部分。本文讨论的训练过程采用反向传播的原理,即向网络连续展示大量图像,并且每次都同时传送一个目标值。本例的目标值为图像中相关的对象类。在每次显示图像时,滤波器矩阵都会被优化,这样对象类的目标值就会和实际值相匹配。完成此过程的网络就能够检测出训练期间从未看到过的图像中的对象。

954a4b9c-ccae-11ed-bfe3-dac502259ad0.svg

图1.CIFAR CNN架构。

95612b6e-ccae-11ed-bfe3-dac502259ad0.svg

图2.由前向传播和反向传播组成的训练循环。

02 过拟合和欠拟合

在神经网络的建模过程中经常会出现的问题是:神经网络应该有多少层,或者是神经网络的滤波器矩阵应该有多大。回答这个问题并非易事,因此讨论网络的过拟合和欠拟合至关重要。过拟合由模型过于复杂以及参数过多而导致。我们可以通过比较训练数据集和测试数据集的损失来确定预测模型与训练数据集的拟合程度。如果训练期间损失较低并且在向网络呈现从未显示过的测试数据时损失过度增加,这就强烈表明网络已经记住了训练数据而不是在实施模式识别。此类情况主要发生在网络的参数存储空间过大或者网络的卷积层过多的时候。这种情况下应当缩小网络规模。

03 损失函数和训练算法

学习分两个步骤进行。第一步,向网络展示图像,然后由神经元网络处理这些图像生成一个输出矢量。输出矢量的最大值表示检测到的对象类,例如示例中的"狗",该值不一定是正确的。这一步称为前向传播。

目标值与输出时产生的实际值之间的差值称为损失,相关函数则称为损失函数。网络的所有要素和参数均包含在损失函数中。神经网络的学习过程旨在以最小化损失函数的方式定义这些参数。这种最小化可通过反向传播的过程实现。在反向传播的过程中,输出产生的偏置(损失 = 目标值-实际值)通过网络的各层反馈,直至达到网络的起始层。

因此,前向传播和反向传播在训练过程中产生了一个可以逐步确定滤波器矩阵参数的循环。这种循环过程会不断重复,直至损失值降至一定程度以下。

04 优化算法、梯度和梯度下降法

为说明训练过程,图3显示了一个包含x和y两个参数的损失函数的示例,这里z轴对应于损失。如果我们仔细查看该损失函数的三维函数图,我们就会发现这个函数有一个全局最小值和一个局部最小值。

目前,有大量数值优化算法可用于确定权重和偏置。其中,梯度下降法最为简单。梯度下降法的理念是使用梯度算子在逐步训练的过程中找到一条通向全局最小值的路径,该路径的起点从损失函数中随机选择。梯度算子是一个数学运算符,它会在损失函数的每个点生成一个梯度矢量。该矢量的方向指向函数值变化最大的方向,幅度对应于函数值的变化程度。在图3的函数中,右下角(红色箭头处)由于表面平坦,因此梯度矢量的幅度较小。而接近峰值时的情况则完全不同。此处矢量(绿色箭头)的方向急剧向下,并且由于此处高低差明显,梯度矢量的幅度也较大。

957cdd8c-ccae-11ed-bfe3-dac502259ad0.svg

图3.使用梯度下降法确定到最小值的不同路径。

因此我们可以利用梯度下降法从任意选定的起点开始以迭代的方式寻找下降至山谷的最陡峭路径。这意味着优化算法会在起点计算梯度,并沿最陡峭的下降方向前进一小步。之后算法会重新计算该点的梯度,继续寻找创建一条从起点到山谷的路径。这种方法的问题在于起点并非是提前定义的,而是随机选择的。在我们的三维地图中,某些细心的读者会将起点置于函数图左侧的某个位置,以确保路径的终点为全局最小值(如蓝色路径所示)。其他两个路径(黄色和橙色)要么非常长,要么终点位于局部最小值。但是,算法必须对成千上万个参数进行优化,显然起点的选择不可能每次都碰巧正确。在具体实践中,这种方法用处不大。因为所选择的起点可能会导致路径(即训练时间)较长,或者目标点并不位于全局最小值,导致网络的精度下降。

因此,为避免上述问题,过去几年已开发出大量可作为替代的优化算法。一些替代的方法包括随机梯度下降法、动量法、AdaGrad方法、RMSProp方法、Adam方法等。鉴于每种算法都有其特定的优缺点,实践中具体使用的算法将由网络开发人员决定。

05 训练数据

在训练过程中,我们会向网络提供标有正确对象类的图像,如汽车、轮船等。本例使用了已有的 CIFAR-10 dataset。当然,在具体实践中,人工智能可能会用于识别猫、狗和汽车之外的领域。这可能需要开发新应用,例如检测制造过程中螺钉的质量必须使用能够区分好坏螺钉的训练数据对网络进行训练。创建此类数据集极其耗时费力,往往是开发人工智能应用过程中成本最高的一步。编译完成的数据集分为训练数据集和测试数据集。训练数据集用于训练,而测试数据则用于在开发过程的最后检查训练好的网络的功能。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 亚德诺
    +关注

    关注

    6

    文章

    4680

    浏览量

    16592

原文标题:干货速来!详析卷积神经网络(CNN)的特性和应用

文章出处:【微信号:analog_devices,微信公众号:analog_devices】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    自动驾驶中常提的卷积神经网络是个啥?

    在自动驾驶领域,经常会听到卷积神经网络技术。卷积神经网络,简称为CNN,是一种专门用来处理网格状数据(比如图像)的深度学习模型。
    的头像 发表于 11-19 18:15 1826次阅读
    自动驾驶中常提的<b class='flag-5'>卷积</b><b class='flag-5'>神经网络</b>是个啥?

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    数的提出很大程度的解决了BP算法在优化深层神经网络时的梯度耗散问题。当x&gt;0 时,梯度恒为1,无梯度耗散问题,收敛快;当x&lt;0 时,该层的输出为0。 CNN
    发表于 10-29 07:49

    NMSISI库的使用

    (q7_t) 和 16 位整数 (q15_t)。 卷积神经网络示例: 本示例中使用的 CNN 基于来自 Caffe 的 CIFAR-10 示例。神经网络由 3 个
    发表于 10-29 07:07

    NMSIS神经网络库使用介绍

    (q7_t) 和 16 位整数 (q15_t)。 卷积神经网络示例: 本示例中使用的 CNN 基于来自 Caffe 的 CIFAR-10 示例。神经网络由 3 个
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般化建议

    整个模型非常巨大。所以要想实现轻量级的CNN神经网络模型,首先应该避免尝试单层神经网络。 2)减少卷积核的大小:CNN
    发表于 10-28 08:02

    卷积运算分析

    的数据,故设计了ConvUnit模块实现单个感受域规模的卷积运算. 卷积运算:不同于数学当中提及到的卷积概念,CNN神经网络中的
    发表于 10-28 07:31

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    模型。 我们使用MNIST数据集,训练一个卷积神经网络CNN)模型,用于手写数字识别。一旦模型被训练并保存,就可以用于对新图像进行推理和预测。要使用生成的模型进行推理,可以按照以下步骤进行操作: 1.
    发表于 10-22 07:03

    CICC2033神经网络部署相关操作

    读取。接下来需要使用扩展指令,完成神经网络的部署,此处仅对第一层卷积+池化的部署进行说明,其余层与之类似。 1.使用 Custom_Dtrans 指令,将权重数据、输入数据导入硬件加速器内。对于权重
    发表于 10-20 08:00

    卷积神经网络如何监测皮带堵料情况 #人工智能

    卷积神经网络
    jf_60804796
    发布于 :2025年07月01日 17:08:42

    MAX78000采用超低功耗卷积神经网络加速度计的人工智能微控制器技术手册

    的Maxim超低功耗微控制器相结合。通过这款基于硬件的卷积神经网络(CNN)加速器,即使是电池供电的应用也可执行AI推理,同时功耗仅为微焦耳级。
    的头像 发表于 05-08 11:42 712次阅读
    MAX78000采用超低功耗<b class='flag-5'>卷积</b><b class='flag-5'>神经网络</b>加速度计的人工智能微控制器技术手册

    自动驾驶感知系统中卷积神经网络原理的疑点分析

    背景 卷积神经网络(Convolutional Neural Networks, CNN)的核心技术主要包括以下几个方面:局部连接、权值共享、多卷积核以及池化。这些技术共同作用,使得
    的头像 发表于 04-07 09:15 639次阅读
    自动驾驶感知系统中<b class='flag-5'>卷积</b><b class='flag-5'>神经网络</b>原理的疑点分析

    BP神经网络卷积神经网络的比较

    多层。 每一层都由若干个神经元构成,神经元之间通过权重连接。信号在神经网络中是前向传播的,而误差是反向传播的。 卷积神经网络
    的头像 发表于 02-12 15:53 1301次阅读

    什么是BP神经网络的反向传播算法

    BP神经网络的反向传播算法(Backpropagation Algorithm)是一种用于训练神经网络的有效方法。以下是关于BP神经网络的反向传播算法的介绍: 一、基本概念 反向传播算法是BP
    的头像 发表于 02-12 15:18 1269次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经网络,即反向传播神经网络(Backpropagation Neural N
    的头像 发表于 02-12 15:15 1338次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上一篇文章中,我们介绍了传统机器学习的基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工神经网络   人工神经网络模型之所
    的头像 发表于 01-09 10:24 2235次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法