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

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

3天内不再提示

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

mK5P_AItists 来源:人工智能学家 2019-11-24 09:55 次阅读

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

图1 看图猜动物

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

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

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

1. 神经网络

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

数据存储和共享技术取得进步。这为训练神经网络提供了海量数据,有助于改善神经网络的性能。

计算能力越来越强大。GPU(graphics processing unit,图形处理器)的运行速度最快能达到CPU(central processing unit,中央处理器)的 150 倍。之前,GPU 主要用来在游戏中显示高品质图像。后来,人们发现它能为在大数据集上训练神经网络提供强大的支持。

算法获得改进。虽然目前神经网络在性能上还很难与人脑媲美,但是已有一些能大幅改善其性能的技术。本文会介绍其中一些技术。

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

2. 示例:识别手写数字

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

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

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

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

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

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

图4 列联表

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

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

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

图5 错误识别“2”

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

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

3. 神经网络的构成

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

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

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

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

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

输入层:该层处理输入图像的每个像素。如此说来,神经元的数量应该和输入图像的像素数一样多。为简单起见,图7 把大量神经元“凝聚”成一个节点。 为了提高预测准确度,可以使用卷积层。卷积层并不处理单个像素,而是识别像素组合的特征,比如发现“6”有一个圈和一条朝上的尾巴。这种分析只关注特征是否出现,而不关注出现的位置,所以即使某些关键特征偏离了中心,神经网络仍然能够正确识别。这种特性叫作平移不变性。

隐藏层:在像素进入神经网络之后,它们经过层层转换,不断提高和那些标签已知的图像的整体相似度。标签已知是指神经网络以前见过这些图像。虽然转换得越多,预测准确度就会越高,但是处理时间会明显增加。一般来说,几个隐藏层就足够了。每层的神经元数量要和图像的像素数成比例。前面的示例使用了一个隐藏层,它包含 500 个神经元。

输出层:该层产生最终预测结果。在这一层中,神经元可以只有一个,也可以和结果一样多。

损失层:虽然图7 并未显示损失层,但是在神经网络的训练过程中,损失层是存在的。该层通常位于最后,并提供有关输入是否识别正确的反馈;如果不正确,则给出误差量。 在训练神经网络的过程中,损失层至关重要。若预测正确,来自于损失层的反馈会强化产生该预测结果的激活路径;若预测错误,则错误会沿着路径逆向返回,这条路径上的神经元的激活条件就会被重新调整,以减少错误。这个过程称为反向传播。 通过不断重复这个训练过程,神经网络会学习输入信号和正确输出标签之间的联系,并且把这些联系作为激活规则编入每个神经元。因此,为了提高神经网络的预测准确度,需要调整管理激活规则的部件。

4. 激活规则

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

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

图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 层的神经元首先被输入数据激活,然后将激活状态传播到后续各层的神经元,最终在输出层产生预测结果。

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

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

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

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

    关注

    42

    文章

    4570

    浏览量

    98703
  • 数据集
    +关注

    关注

    4

    文章

    1177

    浏览量

    24347

原文标题:这是我看过,最好懂的神经网络

文章出处:【微信号:AItists,微信公众号:人工智能学家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    详解深度学习、神经网络与卷积神经网络的应用

    处理技术也可以通过深度学习来获得更优异的效果,比如去噪、超分辨率和跟踪算法等。为了跟上时代的步伐,必须对深度学习与神经网络技术有所学习和研究。本文将介绍深度学习技术神经网络与卷积
    的头像 发表于 01-11 10:51 708次阅读
    详解深度学习、<b class='flag-5'>神经网络</b>与卷积<b class='flag-5'>神经网络</b>的应用

    一种具有高度柔性与可塑性的超香肠覆盖式神经元模型

    人工神经网络是模拟人脑神经活动的重要模式识别工具,受到了众多科学家和学者的关注。然而,近年来DNN的改进与优化工作主要集中于网络结构和损失函数的设计,
    的头像 发表于 12-04 11:12 209次阅读
    一种具有高度柔性与可塑性的超香肠覆盖式<b class='flag-5'>神经元</b>模型

    人工神经网络相关资料

    ,但计算机则很难做到这一点。 大脑是由生物神经元构成的巨型网络,它在本质上不同于计算机,是一种大规模的并行处理系统,它具有学习、联想记忆、综合等能力,并有巧妙的信息处理方法。
    发表于 09-27 06:13

    10分钟快速了解神经网络(Neural Networks)

    神经网络是深度学习算法的基本构建模块。神经网络是一种机器学习算法,旨在模拟人脑的行为。它由相互连接的节点组成,也称为人工神经元,这些节点组织成层次结构。Source:victorzho
    的头像 发表于 09-21 08:30 752次阅读
    10分钟快速了解<b class='flag-5'>神经网络</b>(Neural Networks)

    不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料包分享(附源代码)

    ,是模拟人工智能的一条重要途径。人工神经网络人脑相似性主要表现在: ①神经网络获取的知识是从外界环境学习得来的; ②各神经元的连接权,即突触权值,用于储存获取的知识。
    发表于 09-13 16:41

    深度学习的神经网络架构解析

    感知器是所有神经网络中最基本的,也是更复杂的神经网络的基本组成部分。它只连接一个输入神经元和一个输出神经元
    发表于 08-31 16:55 837次阅读
    深度学习的<b class='flag-5'>神经网络</b>架构解析

    神经网络模型的工作原理和作用

    神经网络模型是一种计算模型,基于人类神经系统的处理和学习机制,模仿大脑神经元的工作方式,对输入数据进行分析处理,实现分类、识别和预测等任务。神经网络模型在人工智能领域中得到了广泛应用,
    发表于 08-28 18:21 887次阅读

    神经网络模型的工作原理、种类及优缺点

    神经网络模型(Neural Network Model)是指一种数学模型,可以模拟和学习人脑神经元之间的信号传递过程,用于解决各种问题,如分类、回归、图像识别、自然语言处理等。神经网络模型可以根据输入数据和参数不断调整自身结构和
    发表于 08-23 18:25 1958次阅读

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构和功能的计算模型,也被称为
    的头像 发表于 08-22 16:45 3417次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预测和分类。卷积
    发表于 08-21 17:07 2285次阅读

    卷积神经网络三大特点

    是一种基于图像处理的神经网络,它模仿人类视觉结构中的神经元组成,对图像进行处理和学习。在图像处理中,通常将图像看作是二维矩阵,即每个像素点都有其对应的坐标和像素值。卷积神经网络采用卷积操作实现图像的特征提取,具有“局部感知”的特
    的头像 发表于 08-21 16:49 3529次阅读

    卷积神经网络的工作原理 卷积神经网络通俗解释

    卷积神经网络的工作原理 卷积神经网络通俗解释  卷积神经网络(Convolutional Neural Network, CNN)是一种众所周知的深度学习算法,是人工智能领域中最受欢迎的技术
    的头像 发表于 08-21 16:49 2721次阅读

    卷积神经网络模型有哪些?卷积神经网络包括哪几层内容?

    、视频等信号数据的处理和分析。卷积神经网络就是一种处理具有类似网格结构的数据的神经网络,其中每个单元只处理与之直接相连的神经元的信息。本文将对卷积神经网络的模型以及包括的层进行详细介绍
    的头像 发表于 08-21 16:41 1502次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的人工
    的头像 发表于 08-17 16:30 900次阅读

    什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

    神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。
    的头像 发表于 07-26 18:28 1928次阅读
    什么是<b class='flag-5'>神经网络</b>?为什么说<b class='flag-5'>神经网络</b>很重要?<b class='flag-5'>神经网络</b>如何工作?