一文看懂神经网络工作原理

https://www.toutiao.com/a6634049434629980680/

现在谈人工智能已经绕不开“神经网络”这个词了。人造神经网络粗线条地模拟人脑,使得计算机能够从数据中学习。

机器学习这一强大的分支结束了 AI 的寒冬,迎来了人工智能的新时代。简而言之,神经网络可能是今天最具有根本颠覆性的技术。

看完这篇神经网络的指南,你也可以和别人聊聊深度学习了。为此,我们将尽量不用数学公式,而是尽可能用打比方的方法,再加一些动画来说明。

强力思考

AI 的早期流派之一认为,如果您将尽可能多的信息加载到功能强大的计算机中,并尽可能多地提供方法来了解这些数据,那么计算机就应该能够“思考”。比如 IBM 著名的国际象棋 AI Deep Blue 背后就是这么一个思路:通过对棋子可能走出的每一步进行编程,再加上足够的算力,IBM 程序员创建了一台机器,理论上可以计算出每一个可能的动作和结果,以此来击败对手。

通过这种计算,机器依赖于工程师精心预编程的固定规则——如果发生了 A,那么就会发生 B ; 如果发生了 C,就做 D——这并不是如人类一样的灵活学习。当然,它是强大的超级计算,但不是“思考”本身。

 

教机器学习

在过去十年中,科学家已经复活了一个旧概念,不再依赖大型百科全书式记忆库,而是框架性地进行模拟人类思维,以简单而系统的方式分析输入数据。 这种技术被称为深度学习或神经网络,自20世纪40年代以来一直存在,但是由于今天数据的大量增长—— 图像、视频、语音搜索、浏览行为等等——以及运算能力提升而成本下降的处理器,终于开始显示其真正的威力。

机器——它们和我们很像

人工神经网络(ANN)是一种算法结构,使得机器能够学习一切,从语音命令、播放列表到音乐创作和图像识别。典型的 ANN 由数千个互连的人造神经元组成,它们按顺序堆叠在一起,以称为层的形式形成数百万个连接。在许多情况下,层仅通过输入和输出与它们之前和之后的神经元层互连。(这与人类大脑中的神经元有很大的不同,它们的互连是全方位的。)

这种分层的 ANN 是今天机器学习的主要方式之一,通过馈送其大量的标签数据,可以帮助它学习如何解读数据(有时甚至比人类做得更好)。

以图像识别为例,它依赖于称为卷积神经网络(CNN)的特定类型的神经网络,因为它使用称为卷积的数学过程来以非文字的方式分析图像, 例如识别部分模糊的对象或仅从某些角度可见的对象。 (还有其他类型的神经网络,包括循环神经网络和前馈神经网络,但是这些神经网络对于识别诸如图像的东西不太有用,下面我们会用示例来说明)

神经网络的训练过程

那么神经网络到底是如何学习的? 让我们看一个非常简单但有效的流程,它叫作监督学习。我们为神经网络提供了大量的人类标记的训练数据,以便神经网络可以进行基本的自我检查。

假设这个标签数据分别由苹果和橘子的图片组成。照片是数据;“苹果”和“橘子”是标签。当输入图像数据时,网络将它们分解为最基本的组件,即边缘、纹理和形状。当图像数据在网络中传递时,这些基本组件被组合以形成更抽象的概念,即曲线和不同的颜色,这些元素在进一步组合时,就开始看起来像茎、整个的橘子,或是绿色和红色的苹果。

在这个过程的最后,网络试图对图片中的内容进行预测。首先,这些预测将显示为随机猜测,因为真正的学习还未发生。如果输入图像是苹果,但预测为“橘子”,则网络的内部层需要被调整。

调整的过程称为反向传播,以增加下一次将同一图像预测成“苹果”的可能性。这一过程持续进行,直到预测的准确度不再提升。正如父母教孩子们在现实生活中认苹果和橘子一样,对于计算机来说,训练造就完美。如果你现在已经觉得“这不就是学习吗?”,那你可能很适合搞人工智能。

很多很多层……

通常,卷积神经网络除了输入和输出层之外还有四个基本的神经元层:

卷积层(Convolution)

激活层(Activation)

池化层(Pooling)

完全连接层(Fully connected)

了解更详细{http://bbs.ropal.com.cn}

卷积层

在最初的卷积层中,成千上万的神经元充当第一组过滤器,搜寻图像中的每个部分和像素,找出模式(pattern)。随着越来越多的图像被处理,每个神经元逐渐学习过滤特定的特征,这提高了准确性。

比如图像是苹果,一个过滤器可能专注于发现“红色”这一颜色,而另一个过滤器可能会寻找圆形边缘,另一个过滤器则会识别细细的茎。如果你要清理混乱的地下室,准备在车库搞个大销售,你就能理解把一切按不同的主题分类是什么意思了(玩具、电子产品、艺术品、衣服等等)。 卷积层就是通过将图像分解成不同的特征来做这件事的。

特别强大的是,神经网络赖以成名的绝招与早期的 AI 方法(比如 Deep Blue 中用到的)不同,这些过滤器不是人工设计的。他们纯粹是通过查看数据来学习和自我完善。

卷积层创建了不同的、细分的图像版本,每个专用于不同的过滤特征——显示其神经元在哪里看到了红色、茎、曲线和各种其他元素的实例(但都是部分的) 。但因为卷积层在识别特征方面相当自由,所以需要额外的一双眼睛,以确保当图片信息在网络中传递时,没有任何有价值的部分被遗漏。

神经网络的一个优点是它们能够以非线性的方式学习。如果不用数学术语解释,它们的意思是能够发现不太明显的图像中的特征——树上的苹果,阳光下的,阴影下的,或厨房柜台的碗里的。这一切都要归功于于激活层,它或多或少地突出了有价值的东西——一些既明了又难以发现的属性。

在我们的车库大甩卖中,想像一下,从每一类东西里我们都挑选了几件珍贵的宝物:书籍,大学时代的经典 T 恤。要命的是,我们可能还不想扔它们。我们把这些“可能”会留下的物品放在它们各自的类别之上,以备再考虑。

池化层

整个图像中的这种“卷积”会产生大量的信息,这可能会很快成为一个计算噩梦。进入池化层,可将其全部缩小成更通用和可消化的形式。有很多方法可以解决这个问题,但最受欢迎的是“最大池”(Max Pooling),它将每个特征图编辑成自己的“读者文摘”版本,因此只有红色、茎或曲线的最好样本被表征出来。

在车库春季清理的例子中,如果我们使用著名的日本清理大师 Marie Kondo 的原则,将不得不从每个类别堆中较小的收藏夹里选择“激发喜悦”的东西,然后卖掉或处理掉其他东西。 所以现在我们仍然按照物品类型来分类,但只包括实际想要保留的物品。其他一切都卖了。

这时,神经网络的设计师可以堆叠这一分类的后续分层配置——卷积、激活、池化——并且继续过滤图像以获得更高级别的信息。在识别图片中的苹果时,图像被一遍又一遍地过滤,初始层仅显示边缘的几乎不可辨别的部分,比如红色的一部分或仅仅是茎的尖端,而随后的更多的过滤层将显示整个苹果。无论哪种方式,当开始获取结果时,完全连接层就会起作用。

 

完全连接层

现在是时候得出结果了。在完全连接层中,每个削减的或“池化的”特征图“完全连接”到表征了神经网络正在学习识别的事物的输出节点(神经元)上。 如果网络的任务是学习如何发现猫、狗、豚鼠和沙鼠,那么它将有四个输出节点。 在我们描述的神经网络中,它将只有两个输出节点:一个用于“苹果”,一个用于“橘子”。

如果通过网络馈送的图像是苹果,并且网络已经进行了一些训练,且随着其预测而变得越来越好,那么很可能一个很好的特征图块就是包含了苹果特征的高质量实例。 这是最终输出节点实现使命的地方,反之亦然。

“苹果”和“橘子”节点的工作(他们在工作中学到的)基本上是为包含其各自水果的特征图“投票”。因此,“苹果”节点认为某图包含“苹果”特征越多,它给该特征图的投票就越多。两个节点都必须对每个特征图进行投票,无论它包含什么。所以在这种情况下,“橘子”节点不会向任何特征图投很多票,因为它们并不真正包含任何“橘子”的特征。最后,投出最多票数的节点(在本例中为“苹果”节点)可以被认为是网络的“答案”,尽管事实上可能不那么简单。

因为同一个网络正在寻找两个不同的东西——苹果和橘子——网络的最终输出以百分比表示。在这种情况下,我们假设网络在训练中表现已经有所下降了,所以这里的预测可能就是75%的“苹果”,25%的“橘子”。或者如果是在训练早期,可能会更加不正确,它可能是20%的“苹果”和80%的“橘子”。这可不妙。

 

如果一开始没成功,再试,再试…

所以,在早期阶段,神经网络可能会以百分比的形式给出一堆错误的答案。 20%的“苹果”和80%的“橘子”,预测显然是错误的,但由于这是使用标记的训练数据进行监督学习,所以网络能够通过称为“反向传播”的过程来进行系统调整。

避免用数学术语来说,反向传播将反馈发送到上一层的节点,告诉它答案差了多少。然后,该层再将反馈发送到上一层,再传到上一层,直到它回到卷积层,来进行调整,以帮助每个神经元在随后的图像在网络中传递时更好地识别数据。

这个过程一直反复进行,直到神经网络以更准确的方式识别图像中的苹果和橘子,最终以100%的正确率预测结果——尽管许多工程师认为85%是可以接受的。这时,神经网络已经准备好了,可以开始真正识别图片中的苹果了。

原文链接:https://techcrunch.com/2017/04/13/neural-networks-made-easy/

一文看懂神经网络工作原理相关推荐

  1. 神经网络通俗指南:一文看懂神经网络工作原理

    现在谈人工智能已经绕不开"神经网络"这个词了.人造神经网络粗线条地模拟人脑,使得计算机能够从数据中学习. 机器学习这一强大的分支结束了 AI 的寒冬,迎来了人工智能的新时代.简而言 ...

  2. 看懂相控阵雷达工作原理及类型简介

    我们知道,蜻蜓的每只眼睛由许许多多个小眼组成,每个小眼都能成完整的像,这样就使得蜻蜓所看到的范围要比人眼大得多.与此类似,相控阵雷达的天线阵面也由许多个辐射单元和接收单元(称为阵元)组成,单元数目和雷 ...

  3. 一文读懂CPU工作原理、程序是如何在单片机内执行的、指令格式之操作码地址码

    文章较长,大家可选择性阅读,嘎嘎细 计算机结构 CPU的运行原理 CPU的控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指 ...

  4. 一文读懂舵机工作原理并运用(附代码)

    杂谈 自己拿到这一模块是也挺迷茫的,后来看了一些资料,也渐渐积累了些自己的理解,很多博文并没有将舵机讲明白,至少你待把PWM与角度如何换算讲清楚吧,所以笔者写这篇博文供大家学习掌握. 如果你拿到一个舵 ...

  5. 一文看懂CDN加速原理

    随着互联网的发展,用户在使用网络时对网站的浏览速度和效果愈加重视,但由于网民数量激增,网络访问路径过长,从 而使用户的访问质量受到严重影响.特别是当用户与网站之间的链路被突发的大流量数据拥塞时,对于异 ...

  6. ntnub原理怎么看_电锤只转不冲击怎么回事?看懂了工作原理,你也可以动手解决...

    电锤是我们在装修中常用到的电动工具,主要用来在混凝土.楼板.砖墙和石材上钻孔,下面我们来看看电锤的工作原理和常见的故障以及修理方法. 电锤内部结构动图 电锤工作原理动图 电锤工作时电机一方面通过齿轮减 ...

  7. π型滤波频率计算_一文看懂π型滤波电路原理

    π型滤波器简介 π型滤波器包括两个电容器和一个电感器,它的输入和输出都呈低阻抗.π型滤波有RC和LC两种, 在输出电流不大的情况下用RC,R的取值不能太大,一般几个至几十欧姆,其优点是成本低.其缺点是 ...

  8. 一文看懂π型滤波电路原理

    π型滤波器简介 π型滤波器包括两个电容器和一个电感器,它的输入和输出都呈低阻抗.π型滤波有RC和LC两种, 在输出电流不大的情况下用RC,R的取值不能太大,一般几个至几十欧姆,其优点是成本低.其缺点是 ...

  9. 一文看懂神经网络中的梯度下降原理 图像说明

    本文是一篇关于深度学习优化方法--梯度下降的介绍性文章.作者通过长长的博文,简单介绍了梯度下降的概念.优势以及两大挑战.文中还配有大量生动形象的三维图像,有兴趣的亲了解一下? 从很大程度上来说,深度学 ...

  10. 一文读懂遗传算法工作原理(附Python实现)

    Datawhale干货 选自:AnalyticsVidhya,编译:机器之心 近日,Analyticsvidhya 上发表了一篇题为<Introduction to Genetic Algori ...

最新文章

  1. 报错解决:undefined reference to `snappy::MaxCompressedLength(unsigned long)'
  2. 【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )
  3. 用图讲解狄克斯特拉(DiskStra)算法,python实现 。
  4. Android RecyclerView嵌套EditView实时更新Item数据
  5. MongoDB中关于64位整型存储解决方案
  6. 从零学ELK系列(十一):SpringBoot项目接入ELK超级版(超详细图文教程)
  7. python3 zip函数
  8. Akka异步通讯《three》译
  9. Knockout.Js官网学习(创建自定义绑定)
  10. Eclipse 中侧边栏、控制台、Server打不开怎么办?
  11. 2020-11-16梦笔记
  12. python set集合排序_Python Set集合
  13. win10添加网络打印机_Win7系统添加网络共享打印机
  14. Coinbase与华尔街的内幕故事
  15. 手机上的Linux体验----Aid learning
  16. 中国Linux公社校园联络员第四次全体大会会议记录
  17. 今日推荐:2068个开源的网站模板【免费下载】
  18. weblogic子服务器显示状态RESUMING,长期等待状态
  19. 五子棋游戏源码和核心算法的讲解(简易五子棋web版)
  20. 字距调整属性font-kerning,怎么查老婆的网贷信息,看看老婆在外面借了多少钱?

热门文章

  1. 黑苹果系统的优化与问题解决(一)
  2. 什么是取整?有几种取整方式?C语言又是哪种方式?取模取余一样吗?
  3. Android手机怎么开启原生虚拟按键-以小米手机为例,实现全面屏手势
  4. Extraneous children found when component already has explicitly named default slot. These children
  5. php jquery 时间轴,关于jQuery插件Timelinr 实现时间轴特效
  6. winows服务器的ftp密码如何修改,windows怎么修改服务器ftp密码
  7. flea-frame-cache使用之Redis接入【旧】
  8. 虎牙直播怎么换html5,虎牙直播怎么换徽章-虎牙直播更换粉丝徽章的方法 - 河东软件园...
  9. 扯ruan蛋的房价,恶心死了我
  10. SAP SD客户寄售案例教程1