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

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

3天内不再提示

人工神经网络中语音分析与图像识别的研究

0BFC_eet_china 来源:互联网 作者:佚名 2017-09-27 14:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

卷积神经网络(Convolutional Neural Network, CNN)是人工神经网络的一种,是当下语音分析和图像识别领域的研究热点。

这篇文章用最简明的语言和最直观的图像,带你入门CNN。准备好了吗?Let’s go——

我们先从最基础的内容说起。

对二维数字信号(图像)的操作,可以写成矩阵形式。

比如对图像做平滑,一个典型的8领域平滑,其结果中的每个值都来源于原对应位置和其周边8个元素与一个3X3矩阵的乘积:

也就相当于对原矩阵,按照顺序将各区域元素与W矩阵相乘,W 矩阵为:

这也被称作核(Kernel, 3X3)

其处理效果如下:

也就是,这个核对图像进行操作,相当于对图像进行了低通滤波。因此这个核也被称为滤波器,整个操作过程按照概念称为卷积。

扩展来讲,对二维图像的滤波操作可以写成卷积,比如常见的高斯滤波、拉普拉斯滤波(算子)等。

滤波器跟卷积神经网络有什么关系呢。不如我们预想一个识别问题:我们要识别图像中的某种特定曲线,也就是说,这个滤波器要对这种曲线有很高的输出,对其他形状则输出很低,这也就像是神经元的激活

我们设计的滤波器和想要识别的曲线如下:

假设上面的核(滤波器)按照卷积顺序沿着下图移动:

那么当它移动到上面的位置时,按照矩阵操作,将这个区域的图像像素值与滤波器相乘,我们得到一个很大的值(6600):

而当这个滤波器移动到其他区域时,我们得到一个相对很小的值:

如此,我们对整个原图进行一次卷积,得到的结果中,在那个特定曲线和周边区域,值就很高,在其他区域,值相对低。这就是一张激活图。对应的高值区域就是我们所要检测曲线的位置。

在训练卷积审计网络(CNN)的某一个卷积层时,我们实际上是在训练一系列的滤波器(filter)。比如,对于一个32x32x3(宽32像素x高32像素xRGB三通道)的图像,如果我们在CNN的第一个卷积层定义训练12个滤波器,那就这一层的输出便是32X32X12.按照不同的任务,我们可以对这个输出做进一步的处理,这包括激活函数,池化,全连接等。

简单来说,训练CNN在相当意义上是在训练每一个卷积层的滤波器。让这些滤波器组对特定的模式有高的激活,以达到CNN网络的分类/检测等目的。

一个实际CNN(AlexNet)第一个卷积层的滤波器>

卷积神经网络的第一个卷积层的滤波器用来检测低阶特征,比如边、角、曲线等。随着卷积层的增加,对应滤波器检测的特征就更加复杂(理性情况下,也是我们想要的情况)。

比如第二个卷积层的输入实际上是第一层的输出(滤波器激活图),这一层的滤波器便是用来检测低价特征的组合等情况(半圆、四边形等),如此累积,以检测越来越复杂的特征。实际上,我们的人类大脑的视觉信息处理也遵循这样的低阶特征到高阶特征的模式。

可参考之前文章《为什么无彩色系(黑白灰色)在色彩搭配中可以和谐地与任何彩色搭配?》:https://www.zhihu.com/question/27380522/answer/36794240

最后一层的滤波器按照训练CNN目的的不同,可能是在检测到人脸、手写字体等时候激活[1]。

所以,在相当程度上,构建卷积神经网络的任务就在于构建这些滤波器。也就是,将这些滤波器变成这样(改变滤波器矩阵的值,也就是Weight)的——能识别特定的特征。这个过程叫做训练

在训练开始之时,卷积层的滤波器是完全随机的,它们不会对任何特征激活(不能检测任何特征)。这就像刚出生的孩子,TA不知道什么是人脸、什么是狗,什么是上下左右。

TA需要学习才知道这些概念,也就是通过接触人脸、狗、上下左右,并被告知这些东西分别是人脸、狗、上下左右。然后TA才能在头脑中记住这些概念,并在之后的某一次见到之后能准确的给出结果。

把一个空白的滤波其,修改其权重(weights)以使它能检测特定的模式,整个过程就如工程里面的反馈。

想想一下,如果有一只无意识的猴子,完全随机的修改一个5X5滤波器矩阵的25个值,那完全可能经过一定的轮次之后,这个滤波器能够检测棱角等特征。这是一种无反馈的训练情况。对神经网络的训练当然不能如此,我们不可能靠运气去做这件事情。

举个例子,我们要训练一个用于分类的神经网络,让它能判定输入图像中的物体最可能是十个类别的哪一类。那么,训练过程就是这样的:

第一次训练,输入一张图像,这个图像通过各层卷积处理输出量一组向量[1,1,1,1,1,1,1,1,1,1], 也就是,对于完全由随机滤波器构建的网络,其输出认为这张图等概率的是十个类别中的某一种。

但是对于训练,我们有一个Gound Thuth, 也就是这张图中物体所属的类别:[0,0,1,0,0,0,0,0,0,0],也就是属于第三类。这时候我们可以定义一个损失函数,比如常见的MSE(mean squared error)。

我们假定L是这个损失函数的输出。这时候我们的目的就是,让L的值反馈(这种神经网络概念下称为 back propagation, 反向传输)给整个卷积神经网络,以修改各个滤波器的权重,使得损失值L最小。

这是一个典型的最优化问题。当然地,在工程上我们几乎不可能一次就把滤波器的权重W修改到使L最小的情况,而是需要多次训练和多次修改。

如果情况理想的话,权重修改的方向是使得L的变化收敛的。这也就是说很可能达到了我们训练这个神经网络的目的——让各个卷积层的滤波器能够组合起来最优化的检测特定的模式。

参考文献

[1] Zeiler, M. D., & Fergus, R. (2014, September). Visualizing and understanding convolutional networks. In European conference on computer vision (pp. 818-833). Springer, Cham.

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

    关注

    42

    文章

    4842

    浏览量

    108173
  • 图像识别
    +关注

    关注

    9

    文章

    534

    浏览量

    40180
  • 人工智能
    +关注

    关注

    1820

    文章

    50324

    浏览量

    266933

原文标题:给你一个卷积神经网络工作原理最直观的解释

文章出处:【微信号:eet-china,微信公众号:电子工程专辑】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么 VisionFive V1 板上的 JH7100 并存 NVDLA 引擎和神经网络引擎?

    我想知道为什么 VisionFive V1 板上的 JH7100 并存 NVDLA 引擎和神经网络引擎,请问?您能否举一些关于他们的用例的例子?
    发表于 03-25 06:01

    神经网络的初步认识

    日常生活的智能应用都离不开深度学习,而深度学习则依赖于神经网络的实现。什么是神经网络神经网络的核心思想是模仿生物神经系统的结构,特别是大
    的头像 发表于 12-17 15:05 460次阅读
    <b class='flag-5'>神经网络</b>的初步认识

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

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

    NMSIS神经网络库使用介绍

    NMSIS NN 软件库是一组高效的神经网络内核,旨在最大限度地提高 Nuclei N 处理器内核上的神经网络的性能并最​​大限度地减少其内存占用。 该库分为多个功能,每个功能涵盖特定类别
    发表于 10-29 06:08

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

    整个模型非常巨大。所以要想实现轻量级的CNN神经网络模型,首先应该避免尝试单层神经网络。 2)减少卷积核的大小:CNN神经网络是通过权值共享的方式,利用卷积运算从图像中提取线性纹理。
    发表于 10-28 08:02

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

    本帖欲分享在Ubuntu20.04系统训练神经网络模型的一些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练一个手写数字识别的神经
    发表于 10-22 07:03

    CICC2033神经网络部署相关操作

    在完成神经网络量化后,需要将神经网络部署到硬件加速器上。首先需要将所有权重数据以及输入数据导入到存储器内。 在仿真环境下,可将其存于一个文件,并在 Verilog 代码通过 readmemh 函数
    发表于 10-20 08:00

    液态神经网络(LNN):时间连续性与动态适应性的神经网络

    1.算法简介液态神经网络(LiquidNeuralNetworks,LNN)是一种新型的神经网络架构,其设计理念借鉴自生物神经系统,特别是秀丽隐杆线虫的神经结构,尽管这种微生物的
    的头像 发表于 09-28 10:03 1562次阅读
    液态<b class='flag-5'>神经网络</b>(LNN):时间连续性与动态适应性的<b class='flag-5'>神经网络</b>

    神经网络的并行计算与加速技术

    问题。因此,并行计算与加速技术在神经网络研究和应用变得至关重要,它们能够显著提升神经网络的性能和效率,满足实际应用对快速响应和大规模数据
    的头像 发表于 09-17 13:31 1296次阅读
    <b class='flag-5'>神经网络</b>的并行计算与加速技术

    【嘉楠堪智K230开发板试用体验】01 Studio K230开发板Test2——手掌,手势检测,字符检测

    这篇发完就继续去整比赛了,后续看电赛上k230的发挥吧 之前的颜色识别和二维码识别功能,类似于使用基础工具进行图像分析,适用于简单任务,但在复杂场景下能力有限。 KPU(
    发表于 07-10 09:45

    无刷电机小波神经网络转子位置检测方法的研究

    MATLAB/SIMULINK工具对该方法进行验证,实验结果表明该方法在全程速度下效果良好。 纯分享帖,点击下方附件免费获取完整资料~~~ *附件:无刷电机小波神经网络转子位置检测方法的研究.pdf
    发表于 06-25 13:06

    神经网络专家系统在电机故障诊断的应用

    的诊断误差。仿真结果验证了该算法的有效性。 纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:神经网络专家系统在电机故障诊断的应用.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版
    发表于 06-16 22:09

    神经网络RAS在异步电机转速估计的仿真研究

    ,在一定程度上扩展了转速估计范围。 纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:神经网络RAS在异步电机转速估计的仿真研究.pdf【免责声明】本文系网络转载,版权归原作者
    发表于 06-16 21:54

    明远智睿SSD2351开发板:语音机器人领域的变革力量

    。 开发板支持浮点运算,这对于语音信号处理的精确计算至关重要。在语音识别过程中,需要对语音信号的频率、幅度等参数进行精确计算和
    发表于 05-28 11:36

    AI神经网络降噪算法在语音通话产品的应用优势与前景分析

    随着人工智能技术的快速发展,AI神经网络降噪算法在语音通话产品的应用正逐步取代传统降噪技术,成为提升语音质量的关键解决方案。相比传统DSP
    的头像 发表于 05-16 17:07 1870次阅读
    AI<b class='flag-5'>神经网络</b>降噪算法在<b class='flag-5'>语音</b>通话产品<b class='flag-5'>中</b>的应用优势与前景<b class='flag-5'>分析</b>