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

    浏览量

    15919

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

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

收藏 人收藏

    评论

    相关推荐

    卷积神经网络的基本概念、原理及特点

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习算法,它在图像识别、视频分析、自然语言处理等领域有着广泛的应用。本文将详细介绍卷积
    的头像 发表于 07-11 14:38 776次阅读

    BP神经网络卷积神经网络的关系

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种在人工智能和机器
    的头像 发表于 07-10 15:24 1182次阅读

    循环神经网络卷积神经网络的区别

    循环神经网络(Recurrent Neural Network,RNN)和卷积神经网络(Convolutional Neural Network,CNN)是深度学习领域中两种非常重要的
    的头像 发表于 07-04 14:24 1099次阅读

    卷积神经网络的实现原理

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积
    的头像 发表于 07-03 10:49 489次阅读

    bp神经网络卷积神经网络区别是什么

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种不同类型的人工
    的头像 发表于 07-03 10:12 993次阅读

    卷积神经网络分类方法有哪些

    卷积神经网络(Convolutional Neural Networks,CNN)是一种深度学习模型,广泛应用于图像分类、目标检测、语义分割等计算机视觉任务。本文将详细介绍卷积
    的头像 发表于 07-03 09:40 392次阅读

    卷积神经网络的基本结构和工作原理

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积
    的头像 发表于 07-03 09:38 422次阅读

    cnn卷积神经网络分类有哪些

    卷积神经网络CNN)是一种深度学习模型,广泛应用于图像分类、目标检测、语义分割等领域。本文将详细介绍CNN在分类任务中的应用,包括基本结构、关键技术、常见
    的头像 发表于 07-03 09:28 467次阅读

    cnn卷积神经网络三大特点是什么

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。CNN具有以下三大特点: 局
    的头像 发表于 07-03 09:26 709次阅读

    卷积神经网络训练的是什么

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积
    的头像 发表于 07-03 09:15 346次阅读

    卷积神经网络的原理与实现

    1.卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。 卷积
    的头像 发表于 07-02 16:47 495次阅读

    卷积神经网络cnn模型有哪些

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。 CNN的基本概念 1.1
    的头像 发表于 07-02 15:24 652次阅读

    卷积神经网络的原理是什么

    卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,广泛应用于图像识别、语音识别、自然语言处理等领域。本文将详细介绍卷积
    的头像 发表于 07-02 14:44 551次阅读

    卷积神经网络和bp神经网络的区别

    卷积神经网络(Convolutional Neural Networks,简称CNN)和BP神经网络(Backpropagation Neural Networks,简称BPNN)是两
    的头像 发表于 07-02 14:24 2793次阅读

    卷积神经网络的优点

    卷积神经网络的优点  卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的
    的头像 发表于 12-07 15:37 4061次阅读