这是我看过,最好懂的神经网络

来源:图灵教育

猜一猜,下图中是什么动物?

640?wx_fmt=jpeg

图1 看图猜动物

尽管图中的动物胖得出奇,你也应该能够猜到它是一只长颈鹿。人类的大脑拥有强大的辨识能力,它是一个由差不多 800 亿个神经元组成的复杂网络。即使某物并非我们熟知的模样,我们也能够轻松地识别。

大脑神经元彼此协同工作,它们把输入信号(比如长颈鹿的图片)转换成相应的输出标签(比如“长颈鹿”)。

神经网络技术的诞生正是受到人脑神经元的启发。

1. 神经网络

神经网络是自动图像识别的基础,由神经网络衍生出的一些技术在执行速度和准确度上都超过了人类。近年来,神经网络技术大热,这其中主要有 3 个原因。

  • 数据存储和共享技术取得进步。这为训练神经网络提供了海量数据,有助于改善神经网络的性能。
  • 计算能力越来越强大。GPU(graphics processing unit,图形处理器)的运行速度最快能达到CPU(central processing unit,中央处理器)的 150 倍。之前,GPU 主要用来在游戏中显示高品质图像。后来,人们发现它能为在大数据集上训练神经网络提供强大的支持。
  • 算法获得改进。虽然目前神经网络在性能上还很难与人脑媲美,但是已有一些能大幅改善其性能的技术。本文会介绍其中一些技术。

自动图像识别是神经网络技术的有力例证,它被应用于许多领域,包括视觉监控和汽车自主导航,甚至还出现在智能手机中,用来识别手写体。下面来看看如何训练能识别手写体的神经网络。

2. 示例:识别手写数字

下面示例中使用的手写数字来自于 MNIST 数据库,如下图所示。

640?wx_fmt=jpeg

图2 MNIST 数据库中的手写数字

为了让计算机读取图像,必须先把图像转换成像素。黑色像素用 0 表示,白色像素用 1 表示,如图 3 所示。如果图像是彩色的,则可以使用三原色的色相值来表示。

640?wx_fmt=jpeg

图3 把一幅图像转换为像素

一旦图像完成像素化,就可以把得到的值交给神经网络。在本例中,神经网络总共得到 10 000 个手写数字以及它们实际所表示的数字。在神经网络学过手写数字及其对应标签的联系之后,我们拿 1000 个新的手写数字(不带标签)来测试它,看看它是否能够全部识别出来。

测试发现,神经网络从 1000 个新的手写数字中正确识别出了 922 个,即正确率达到了 92.2%。下图是一张列联表,可以用它来检查神经网络的识别情况。

640?wx_fmt=jpeg

 图4 列联表

图4 列联表总结了神经网络的表现:第一行指出,共有 85 个“0”,神经网络正确识别出 84 个,最后一个“0”被错误地识别为“6”。最后一列是识别准确率。

从图4 可以看到,“0”和“1”的手写图像几乎全部被正确识别出来了,而“5”的手写图像最难识别。接下来详细看看那些被识别错的数字。

“2”被错误识别成“7”或“8”的情况大约占8%。虽然人能够轻松识别出图5 中的这些数字,神经网络却可能被某些特征给难住,比如“2”的小尾巴。有趣的是,神经网络对“3”和“5”也比较困惑(如图6 所示),识别错误的情况约占10%。

640?wx_fmt=jpeg

 图5 错误识别“2”

640?wx_fmt=jpeg

图6 错误识别“3”和“5” 

尽管出现了这些错误,但是神经网络的识别速度远快于人类,并且从总体上看,神经网络的识别准确率很高。

3. 神经网络的构成

为了识别手写数字,神经网络使用多层神经元来处理输入图像,以便进行预测。图7 为双层神经网络示意图。

640?wx_fmt=jpeg

图7 双层神经网络示意图。

输入不同,但是输出相同,其中红色表示被激活的神经元。

在图7 双层神经网络中,虽然输入是“6”的两幅不同形态的图像,但输出是一样的,并且该神经网络使用不同的神经元激活路径。尽管每一个神经元组合产生的预测是唯一的,但是每一个预测结果都可以由多个神经元组合实现。

神经网络通常由如下几部分组成。

  • 输入层:该层处理输入图像的每个像素。如此说来,神经元的数量应该和输入图像的像素数一样多。为简单起见,图7 把大量神经元“凝聚”成一个节点。
    为了提高预测准确度,可以使用卷积层。卷积层并不处理单个像素,而是识别像素组合的特征,比如发现“6”有一个圈和一条朝上的尾巴。这种分析只关注特征是否出现,而不关注出现的位置,所以即使某些关键特征偏离了中心,神经网络仍然能够正确识别。这种特性叫作平移不变性。
  • 隐藏层:在像素进入神经网络之后,它们经过层层转换,不断提高和那些标签已知的图像的整体相似度。标签已知是指神经网络以前见过这些图像。虽然转换得越多,预测准确度就会越高,但是处理时间会明显增加。一般来说,几个隐藏层就足够了。每层的神经元数量要和图像的像素数成比例。前面的示例使用了一个隐藏层,它包含 500 个神经元。
  • 输出层:该层产生最终预测结果。在这一层中,神经元可以只有一个,也可以和结果一样多。
  • 损失层:虽然图7 并未显示损失层,但是在神经网络的训练过程中,损失层是存在的。该层通常位于最后,并提供有关输入是否识别正确的反馈;如果不正确,则给出误差量。
    在训练神经网络的过程中,损失层至关重要。若预测正确,来自于损失层的反馈会强化产生该预测结果的激活路径;若预测错误,则错误会沿着路径逆向返回,这条路径上的神经元的激活条件就会被重新调整,以减少错误。这个过程称为反向传播。
    通过不断重复这个训练过程,神经网络会学习输入信号和正确输出标签之间的联系,并且把这些联系作为激活规则编入每个神经元。因此,为了提高神经网络的预测准确度,需要调整管理激活规则的部件。

4. 激活规则

为了产生预测结果,需要沿着一条路径依次激活神经元。每个神经元的激活过程都由其激活规则所控制,激活规则指定了输入信号的来源和强度。在神经网络的训练过程中,激活规则会不断调整。

图8 展示了神经元 G 的一条激活规则,它模拟的是图7 中的第一个场景。经过训练,神经网络认识到神经元 G 和上一层的神经元 A、C、D 有联系。这 3 个神经元中的任何一个被激活,都会作为输入信号传递给神经元 G。

640?wx_fmt=jpeg

图8 神经元激活规则示例

这些联系的强度各不相同,联系强度也被称为权重,记作w。在图8 中,与神经元 C 相比(w = 1),神经元 A 激活后发送的信号更强(w = 3)。联系也是有方向的,例如神经元 D(w = –1)实际上会减弱传送给神经元G 的输入信号。

在计算神经元 G 的输入信号总强度时,把上一层与之有关联的所有激活神经元的权重加起来。如果信号强度大于指定的阈值,神经元 G 就会被激活。在图8 中,最终的信号强度为2(即3 – 1),由于神经元 G 的阈值为3,因此它仍然处于未激活状态。

良好的激活规则有助于产生准确的预测结果,其关键在于确定合适的权重和阈值。另外,神经网络的其他参数也需要调整,比如隐藏层的数量、每层的神经元数量等。(可以使用梯度下降法优化这些参数。)

5. 局限性

尽管神经网络能在一定程度上模拟人脑,但其本身仍然存在一些缺点。为了克服这些缺点,人们提出了各种各样的方法。

▶ 需要大样本:

神经网络的复杂性使之能够识别带有复杂特征的输入,但前提是我们能为它提供大量训练数据。如果训练集太小,就会出现过拟合问题(算法过度敏感,它把数据中的随机波动错误地当成持久模式)。如果很难获得更多训练数据,则可以使用如下几种技术来最大限度地降低过拟合风险。

  • 二次取样:为了降低神经元对噪声的敏感度,需要对神经网络的输入进行“平滑化”处理,即针对信号样本取平均值,这个过程叫作二次取样。以图像处理为例,可以通过二次取样缩小图像尺寸,或者降低红绿蓝3 个颜色通道的对比度。
  • 畸变:当缺少训练数据时,可以通过向每幅图像引入畸变来产生更多数据。每幅畸变图像都可以作为新的输入,以此扩大训练数据的规模。畸变应该能够反映原数据集的特征。以手写数字为例,可以旋转图像,以模拟人们写字的角度,或者在特定的点进行拉伸和挤压(这叫作弹性变形),从而把手部肌肉不受控制而抖动的特点表现出来。
  • 丢弃:如果可供学习的训练样本很少,神经元就无法彼此建立联系,这会导致出现过拟合问题,因为小的神经元集群之间彼此会产生过度依赖。为了解决这个问题,可以在训练期间随机丢弃一半的神经元。这些遭丢弃的神经元将处于未激活状态,剩下的神经元则正常工作。下一次训练丢弃一组不同的神经元。这迫使不同的神经元协同工作,从而揭示训练样本所包含的更多特征。

▶ 计算成本高:

训练一个由几千个神经元组成的神经网络可能需要很长时间。一个简单的解决方法是升级硬件,但这会花不少钱。另一个解决方法是调整算法,用稍低一些的预测准确度换取更快的处理速度,常用的一些方法如下。

  • 随机梯度下降法:为了更新某一个参数,经典的梯度下降法在一次迭代中使用所有训练样本。当数据集很大时,这样做会很耗时,一种解决方法是在每次迭代中只用一个训练样本来更新参数。这个方法被称为随机梯度下降法,虽然使用这个方法得到的最终参数可能不是最优的,但是准确度不会太低。
  • 梯度下降法:简单地说,梯度下降法先初步猜测合适的权重组合,再通过一个迭代过程,把这些权重应用于每个数据点做预测,然后调整权重,以减少整体预测误差。这个过程类似于一步步走到山底下。每走一步,梯度下降法都要判断从哪个方向下是最陡峭的,然后朝着那个方向重新校准权重。最终,我们会到达最低点,这个点的预测误差最小。
  • 小批次梯度下降法:虽然使用随机梯度下降法能够提升速度,但最终参数可能不准确,算法也可能无法收敛,导致某个参数上下波动。一个折中方法是每次迭代使用训练样本的一个子集,这就是小批次梯度下降法。
  • 全连接层:随着加入的神经元越来越多,路径的数量呈指数增长。为了避免查看所有可能的组合,可以使初始层(处理更小、更低级的特征)的神经元部分连接。只有最后几层(处理更大、更高级的特征)才对相邻层的神经元进行全连接。

▶ 不可解释:

神经网络由多层组成,每层都有几百个神经元,这些神经元由不同的激活规则控制。这使得我们很难准确地找到产生正确预测结果的输入信号组合。这一点和回归分析不同,回归分析能够明确地识别重要的预测变量并比较它们的强弱。神经网络的“黑盒”特性使之难以证明其使用得当,在涉及伦理问题时尤其如此。不过,人们正在努力研究每个神经元层的训练过程,以期了解单个输入信号如何影响最终的预测结果。

  • 尽管存在上述局限性,但是神经网络本身拥有的强大能力使之得以应用于虚拟助手、自动驾驶等前沿领域。除了模拟人脑之外,神经网络在一些领域已经战胜了人类,比如谷歌公司的AlphaGo 在2015 年首次战胜了人类棋手。随着算法不断改进,以及计算能力不断提升,神经网络将在物联网时代发挥关键作用。

6. 小结

神经网络由多个神经元层组成。训练期间,第 1 层的神经元首先被输入数据激活,然后将激活状态传播到后续各层的神经元,最终在输出层产生预测结果。

一个神经元是否被激活取决于输入信号的来源和强度,这由其激活规则指定。激活规则会根据预测结果的反馈不断调整,这个过程被称为反向传播。

在大数据集和先进的计算硬件可用的情况下,神经网络的表现最好。然而,预测结果在大部分时候都是无法解释的。

——本文节选自《白话机器学习算法》


640?wx_fmt=jpeg

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上位机软件用什么写的_python7天训练营 | 为什么大家都开始用python写论文了?...

谈及保研,“内卷”被大家吵得沸沸扬扬。但其实,不仅是夏令营申请竞争、推免资格评比等环节,就连最基本的论文,也开始卷了起来。就以大家最常写的实证类论文为例:前两年,很多社科和经管的学科,夏…

美国如何发展脑科技

来源:蓝海长青智库作者:王小理、韩雪、薛淮大脑是理解自然和人类本身的“终极疆域”,脑科技是科研领域“皇冠上的明珠”。相比欧洲“人类脑计划”的迟缓,美国“推进创新神经技术脑研究计划”(BRAIN)进展颇为…

关于mysql ERROR 1045 (28000)错误的解决办法

错误情景: 使用Navicat打开mysql的时候弹出错误框 错误代码: ERROR 1045 (28000): Access denied for user ODBClocalhost (using password: NO) ERROR 1045 (28000): Access denied for user ODBClocalhost (using password: YES) 解决步骤: 1.找到配置文件my.ini &#xff0…

欧洲将研究具备自学习能力的无人机“蜂群”

来源:空天防务观察2019年10月23日,美国《防务新闻》网站报道称:芬兰将发展人工智能列为其领导欧洲联盟理事会六个月任期的关键目标,并提出了“压制防空无人机蜂群”(SEAD Swarm)项目,以迷惑、瘫…

表格打印没有左边线_office办公软件Excel表格的打印技巧,建议收藏

很多新手使用办公软件过程中,对于Excel的打印出现了诸多问题,今天我们就一起来看看表格打印的几个技巧!打印预览时网格线怎么不见了?如何调整打印区域的页边距?如何设置单色打印?......这些打印时遇到的麻烦…

符号说明表怎么做_能看懂这些房屋施工图,说明你家装修没问题了

一、基本知识1、标高1.1绝对标高亦称绝对高程或海拔高度,我国把青岛附近黄海的平均海平面定为绝对标高的零点,全国各地的标高均以此为基准。1.2标高是把某地点对应的绝对标高定义为0.000,(如名辉12#楼27.5)也称相对标高。建筑中一般以一层室内地面对应的绝对标高为0…

【ARM-Linux开发】U-Boot启动过程--详细版的完全分析

------------------------------------------------------------------------------------------------------------------------------------------- 我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。 在…

一文看懂RISC-V:异构IoT时代全新架构

来源: 芯潮近两年来,在ARM和Intel主导的竞争格局中,新的开源指令集架构RISC-V在芯片江湖声名鹊起。我们将指令集分为三种:1、复杂指令集(CISC):x86;2、精简指令集(RISC&a…

谷粒商城三阶段课件_苏科版初中物理九年级上册二、变阻器公开课优质课课件教案视频...

课题: 14.2变阻器教学目标:1.知道滑动变阻器的构造及工作原理。2.能画出滑动变阻器的结构示意图和符号。3.会正确连接和使用滑动变阻器。4.了解生活中变阻器的一些应用。教学重点、难点:重点&a…

小牛地图矢量抓取工具_SEO优化网站sitemap需要注意哪些要点才能很好的被百度蜘蛛抓取...

SEO优化网站sitemap需要注意哪些要点才能很好的被百度蜘蛛抓取一、全部链接真实有效。地图的主要目的是方便搜索引擎蜘蛛抓取的,如果地图存在死链,会影响网站在搜索引擎中网站权重的,要仔细检查有无错误的链接地址,提交前通过站长…

【加州理工】什么是模仿学习(Imitation Learning(模仿学习), 这62页ppt带你了解进展...

来源:专知【导读】Imitation Learning(模仿学习)机器学习新的研究热点之一,因其能很好的解决强化学习中的多步决策(sequential decision)问题,近段时间得到了广泛关注。那么模仿学习近期的前沿进…

ios12完美深色模式插件_分屏插件更新支持 A12,一心二用真滴爽

在众多iOS越狱插件中,总有几款亘古不变的插件一直深受大家的喜爱,分屏类插件就是其中之一。之前少年也介绍过几款好用的分屏 App,但是因为自己手持“真香” XR 机,而之前介绍的插件也一直没有适配 A12 设备,所以一直没…

人工智能三大驱动力背后的CMOS传感器

来源:智东西随着人工智能概念逐渐成为科技界最炙手可热的话题,这一依托芯片产业的全新概念牵动了整个科技界的心。依靠政府的大力扶持、潜在市场的巨大规模以及已经逐渐落地的海量应用场景,中国已然成为世界上潜力最大的人工智能市场之一。在…

css —— 图片环绕+首行缩进

1.利用css实现图片环绕文字的效果: 只需要给img标签设置float:left/right即可; 2.实现上段文字首行缩进两个字的效果: 使用 text-indent: 2em;即可(em为相对单位,2em相当于两个汉字的距离) 转载…

西华大学c语言期末成绩占比例,期末成绩开始录入!优秀率一般不得超过20%

原标题:期末成绩开始录入!优秀率一般不得超过20%各学院(系):2020-2021学年秋季学期本科生期末成绩录入工作将在新版本科教学一体化信息平台中进行,为了更好地协助任课教师了解本次成绩录入工作,在录入通知正…

c语言商品货架管理_汽配仓库布局及管理

奥玛物流仓储平台我们平台在全球已经发展超过40,660多个联盟成员,遍布全球665个城市,提供超过6亿平方米的仓库空间,并为60,000个用家服务,如想找物流服务或加入我们,可关注公众号 或 登陆网址www.oym56LM.com&#xff…

沈浩:博弈论在人工智能中的应用

转自 ∑ 沈浩老师最近看到一篇不错的文章,让沈雨尘帮助整理一下,与同学们分享!概览什么是博弈论?它是如何应用到人工智能(AI)中的?人工智能中的博弈论是一个迷人的概念,每个人应该有一定了解。我们希望通过…

更新node_kubernetes证书更新

适用环境:kubeadm部署的k8s集群,默认证书位置为/etc/kubernetes/pki如果环境中证书目录为非pki(以ssl为例),则需创建对应软连接。本文以高可用集群为例(3 master)master节点:查看证书…

python 3 关于requests库的 text / content /json

最近在爬SDFDA的数据,刚开始用urllib.request 库,一直连不到数据 ; 后来通过CHROME浏览器的F12,发现该 网站用的是JSON格式{}Content-Type: application/json,},不同于以往的提交方式“Content-Type: text/html; chars…

Matlab论文插图绘制模板第132期—函数等高线填充图

在之前的文章中,分享了Matlab函数折线图的绘制模板: 函数三维折线图: 函数网格曲面图: 函数曲面图: 函数等高线图: 进一步,再来分享一下函数等高线填充图。 先来看一下成品效果: 特…