分享

什么是人工神经网络(ANN)

 CDA数据分析师 2020-03-06

过去十年中最具影响力的技术之一是人工神经网络,它是深度学习算法的基本组成部分,是人工智能的前沿。

每天使用神经网络的应用程序有很多,例如Google的翻译服务,AppleFace ID iPhone锁和AmazonAlexa AI驱动的助手。神经网络也在其他领域的一些重要人工智能突破背后,例如诊断皮肤和乳腺癌,让目光投向自动驾驶汽车。

人工神经网络背后的概念和科学已经存在了数十年。但是直到最近几年,神经网络的承诺才变为现实,并帮助AI行业摆脱了漫长的冬季。

尽管神经网络帮助AI取得了飞跃,但它们也常常被误解。这时您需要了解的有关神经网络的所有信息。

人工和生物神经网络之间的相似性

人工智能先驱的最初愿景是复制人类大脑的功能,这是自然界最聪明,最复杂的已知创造。这就是为什么该领域从人类心灵的形体和功能派生出其大部分术语(包括人工智能一词)的原因。

人工神经网络的灵感来自其生物学对应物。大脑的许多功能仍然是个谜,但是我们知道的是,生物神经网络使大脑能够以复杂的方式处理大量信息。

大脑的生物神经网络由大约1000亿个神经元组成,这是大脑的基本处理单元。神经元通过彼此之间巨大的连接(称为突触)来执行其功能。人脑大约有100万亿个突触,每个神经元约有1,000个。

大脑的每个功能都涉及在大量此类神经元中运行的电流和化学反应。

人工神经网络如何运作

人工神经网络的核心成分是人工神经元。每个神经元接收来自其他几个神经元的输入,将它们乘以分配的权重,将它们相加,然后将总和传递给一个或多个神经元。一些人工神经元可能在将输出传递给下一个变量之前将激活函数应用于输出。

人工神经元的结构,人工神经网络的基本组成部分(来源:维基百科)

从本质上讲,这听起来像是一个非常琐碎的数学运算。但是,当您将成千上万的神经元多层放置并堆叠在一起时,您将获得一个人工神经网络,可以执行非常复杂的任务,例如对图像进行分类或识别语音。

人工神经网络由一个输入层和一个输出层组成,其中输入层从外部源(数据文件,图像,硬件传感器,麦克风等)接收数据,一个或多个隐藏层处理数据,输出层提供一个或多个数据点基于网络的功能。例如,检测人,汽车和动物的神经网络将具有一个包含三个节点的输出层。对银行在安全和欺诈之间进行交易进行分类的网络将只有一个输出。

标题: fig:神经网络由多层组成(来源:www.deeplearningbook.org

训练人工神经网络

人工神经网络首先为神经元之间的连接权重分配随机值。ANN正确而准确地执行其任务的关键是将这些权重调整为正确的数字。但是找到合适的权重并不是一件容易的事,特别是当您处理多层和成千上万的神经元时。

通过对带有注释示例的网络进行培训来完成此校准。例如,如果您要训练上述图像分类器,则可以为其提供多张照片,每张照片均标有其相应的类别(人,汽车或动物)。当您为它提供越来越多的训练示例时,神经网络会逐渐调整其权重,以将每个输入映射到正确的输出。

基本上,训练期间发生的事情是网络进行自我调整以从数据中收集特定模式。同样,对于图像分类器网络,当您使用质量示例训练AI模型时,每一层都会检测到特定的特征类别。例如,第一层可能检测到水平和垂直边缘,第二层可能检测到拐角和圆形。在网络的更深处,更深的层次将开始挑选出更高级的功能,例如面部和物体。

标题: fig:神经网络的每一层都将从输入图像中提取特定特征。(来源: arxiv.org

当您通过训练有素的神经网络运行新图像时,调整后的神经元权重将能够提取正确的特征并准确确定图像属于哪个输出类别。

训练神经网络的挑战之一是找到正确数量和质量的训练示例。而且,训练大型AI模型需要大量的计算资源。为了克服这一挑战,许多工程师使用转移学习(一种培训技术),您可以采用预先训练的模型,并使用针对特定领域的新示例对其进行微调。当已经有一个与您的用例接近的AI模型时,转移学习特别有效。

神经网络与经典AI

传统的基于规则的AI程序基于经典软件的原理。计算机程序旨在对存储在存储单元中的数据运行操作,并将结果保存在其他存储单元中。程序的逻辑是顺序的,确定性的,并基于明确定义的规则。操作由一个或多个中央处理器运行。

但是,神经网络既不是顺序的也不是确定性的。另外,无论底层硬件如何,都没有中央处理器来控制逻辑。相反,逻辑分布在成千上万个较小的人工神经元上。人工神经网络不运行指令;相反,他们对输入执行数学运算。开发模型行为的是他们的集体行动。

神经网络不是通过手动编码的逻辑表示知识,而是在权重和激活的总体状态下对知识进行编码。特斯拉AI负责人安德烈·卡帕蒂(Andrej Karpathy)在一篇出色的媒体文章软件2.0 ” 中雄辩地描述了神经网络的软件逻辑:

 我们都熟悉Software 1.0经典堆栈 它是用PythonC ++等语言编写的。它由程序员编写的对计算机的明确指令组成。通过编写每一行代码,程序员可以识别程序空间中具有某些所需行为的特定点。

相比之下, Software 2.0 可以用更加抽象的,人类不友好的语言(例如神经网络的权重)来编写。没有人参与编写此代码,因为权重很多(典型的网络可能有数百万个),而直接用权重编码有点困难(我尝试过)。

神经网络与其他机器学习技术

人工神经网络只是执行机器学习的几种算法之一,而 机器学习是人工智能的分支,它根据经验来发展行为。还有许多其他机器学习技术,它们可以在数据中找到模式并执行诸如分类和预测之类的任务。其中一些技术包括回归模型,支持向量机(SVM),k最近方法和决策树。

但是,在处理杂乱且非结构化的数据(例如图像,音频和文本)时,神经网络的性能优于其他机器学习技术。

例如,如果要使用经典的机器学习算法执行图像分类任务,则必须进行大量复杂的功能工程,这是一个复杂而艰巨的过程,需要数名工程师和领域专家的共同努力。神经网络和深度学习算法不需要特征工程,只要训练得当,就可以自动从图像中提取特征。

但是,这并不意味着神经网络可以替代其他机器学习技术。其他类型的算法需要较少的计算资源,并且较不复杂,这使得它们在尝试解决不需要神经网络的问题时更可取。

其他机器学习技术也是可以解释的(在下文中有更多介绍),这意味着更容易研究和更正他们做出的决策。这可能使它们在解释性比准确性更重要的用例中更可取。

神经网络的局限性

尽管有人工神经网络的名称,但其与人类等效的神经网络却有很大不同。尽管神经网络和深度学习是当今AI的最先进技术,但与人类智能仍然相距甚远。因此,神经网络将在您希望从人类的思想中想到的许多事情上失败:

·            神经网络需要大量数据:与人脑可以通过很少的示例学习做事的人脑不同,神经网络需要成千上万个示例。

·            神经网络在概括方面很不好:神经网络将在经过培训的任务上准确执行,但在其他任何方面都表现不佳,即使它与原始问题相似。例如,接受过数千张猫图片训练的猫分类器将无法检测到狗。为此,它将需要成千上万张新图像。与人类不同,神经网络不会在符号(耳朵,眼睛,胡须,尾巴)方面发展知识,它们会处理像素值。这就是为什么他们将无法从高级功能上了解新对象,因此需要从头开始对其进行重新培训。

·            神经网络是不透明的:由于神经网络通过神经元的权重和激活来表达其行为,因此很难确定其决策背后的逻辑。这就是为什么它们经常被称为黑匣子。这使得很难确定他们是否基于错误的因素做出决策。

人工智能专家和神经科学家Gary Marcus 在去年的一份深入研究论文中解释了深度学习和神经网络的局限性。

而且,在逻辑和推理很明确并且可以编入不同规则的问题中,神经网络也不能替代老式的基于规则的AI。例如,在求解数学方程式时,神经网络的性能非常差。

为了克服神经网络的局限性,人们进行了许多努力,例如由DARPA资助的创建可解释的AI模型的计划。其他有趣的发展包括开发 结合了神经网络和基于规则的AI的混合模型,以创建可解释且需要较少训练数据的AI系统。

尽管要实现人类级AI的目标(如果我们能够实现),还有很长的路要走,但是神经网络使我们更加接近。看看下一个AI创新将是什么会很有趣。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多