什么是神经网络?什么使它“深入”?
作为人工智能的子集,深度学习是各种创新的核心:自动驾驶汽车,自然语言处理,图像识别等。提供DL解决方案的公司(例如Amazon,Tesla,Salesforce)处于股票市场的前列,并吸引了可观的投资。
什么是深度学习?
深度学习是机器学习的子集之一,它使用深度学习算法根据输入数据隐式得出重要结论。
通常,深度学习是无监督或半监督的。深度学习基于表征学习。它没有使用特定于任务的算法,而是从代表性示例中学习。例如,如果要建立一个按物种识别猫的模型,则需要准备一个包含许多不同猫图像的数据库。
深度学习的主要架构是:
- 卷积神经网络
- 递归神经网络
- 生成对抗网络
机器学习和深度学习之间的区别
机器学习尝试从加载到系统中的大量预处理数据中提取新知识。程序员需要为机器制定规则,然后机器将根据这些规则进行学习。有时,人类可能会干预以纠正其错误。
但是,深度学习有点不同。尽管常规的机器学习可以处理较小的数据集,并且可能不是繁重的计算,但深度学习需要大量的计算资源和大量的数据集才能正常工作。此外,深度学习模型决策背后的逻辑并不透明。
深度学习的优势
- 识别大量原始数据中的模式和异常的能力使深度学习能够向专业人员有效地提供准确可靠的分析结果。例如,亚马逊在网站上拥有超过5.6亿个商品,并拥有300+百万用户。没有人工智能工具,人类会计甚至整个会计团队都无法追踪这么多交易。
- 深度学习不像传统机器学习那样依赖人类专业知识。DL允许我们在数据中进行发现,即使开发人员不确定他们要查找的内容也是如此。例如,您希望自己的算法能够预测客户保留率,但是不确定客户的哪些特征将使系统做出此预测。
深度学习的问题
- 收集大量质量数据会消耗大量资源。多年来,ImageNet收集的样本规模最大、准备最充分,有1400万张不同的图片和超过20,000个类别。它成立于2012年就在去年,腾讯发布了一个更大,更通用的数据库。
- 深度学习技术的另一个困难是它无法提供得出结论的理由。因此,如果您不知道输出应该是什么,则很难评估模型的性能。与传统的机器学习不同,您将无法测试算法并找出系统为什么决定例如图片中的猫而不是狗的原因。
- 构建深度学习算法非常昂贵。没有训练有素的精通数学的合格员工是不可能的。此外,深度学习是一种资源密集型技术。它需要强大的GPU和大量内存来训练模型。当输入通过网络传播时,需要大量内存来存储输入数据,重量参数和**功能。有时,深度学习算法变得非常耗电,以至于研究人员更喜欢使用其他算法,甚至牺牲了预测的准确性。
但是,在许多情况下,深度学习无法替代。
DL在现实生活中的应用
如今,深度学习已应用于不同行业的各种用例:
- 语音识别。
所有主要的商业语音识别系统(例如Microsoft Cortana,Alexa,Google Assistant,Apple Siri)都基于深度学习。
- 模式识别。
在医学诊断中,模式识别系统已经能够提供比人眼更准确的结果。
- 自然语言处理。
自2000年代初以来,就一直使用神经网络来实现语言模型。LSTM的发明有助于改善机器翻译和语言建模。
- 医学发现。
例如,AtomNet神经网络已被用于预测可以治愈诸如埃博拉和多发性硬化症等疾病的新生物分子。
- 推荐系统。
如今,深度学习已被用于研究许多领域的用户偏好。Netflix是该领域最出色的例子之一。
什么是人工神经网络?
人工神经网络和深度学习经常互换使用,这实际上是不正确的。并非所有的神经网络都是“深度”的,意思是“具有许多隐藏层”,并且并非所有的深度学习架构都是神经网络。
人工神经网络的定义
人工神经网络受到人脑结构的极大启发。简单地说,ANN代表由突触连接的神经元序列。这些序列通常组织成层。
机器中有许多(有时是数百万个)输入神经元,该机器学习分析甚至记忆各种信息。由于这种结构,神经网络可以非常快速地处理大量信息。
人工神经网络不仅对分析传入的信息,而且还可以从其记忆中复制信息非常有价值。
神经网络的组成
每个神经网络都由神经元,突触,权重,偏见和功能组成。
神经元
神经元或神经网络的节点是一个计算单元,可以接收信息,对其执行简单的计算并进一步传递信息。
网络中的所有神经元均分为三组:
- 输入神经元,可从外界获取信息
- 隐藏的神经元处理该信息
- 输出得出结论的神经元
在具有许多神经元及其之间连接的大型神经网络中,神经元是分层组织的。输入层接收信息,n个隐藏层(至少三个或更多)对其进行处理,输出层提供一些结果。
每个神经元输入和输出一些数据。如果这是第一层,则输入=输出。在其他情况下,神经元已从前一层接收的信息将传递到输入。然后,它使用**函数获得新的输出,该输出将传递到系统中的下一层神经元。
神经元仅运算[0,1]或[-1,1]范围内的数字。为了将数据转换为神经元可以使用的东西,我们需要规范化。
突触和权重
神经元如何交流?通过突触。如果没有突触,我们将陷入一堆无活动,无用的神经元。突触是两个神经元之间的连接。每个突触都有分量。当输入信息从一个神经元传递到另一个神经元时,权重会改变输入信息。具有较大权重的神经元将在下一个神经元中占主导地位。可以说,权重的矩阵是整个神经系统的大脑。
由于这些权重,输入信息得以处理并转换为结果。在初始化期间(首次启动NN),权重是随机分配的。后来,它们进行了优化。
偏压
偏向神经元允许存储更多的权重变化。偏移为模型的权重增加了输入空间的丰富表示。
在神经网络的情况下,将偏置神经元添加到每一层。它通过使**功能可以在图表上向左或向右移动而起着至关重要的作用。
的确,人工神经网络可以在没有偏向神经元的情况下工作。但是,它们几乎总是被添加并被视为整个模型中必不可少的部分。
人工神经网络的工作原理
每个神经元都处理输入数据以提取特征。假设我们具有特征x1,x2,x3和三个神经元,每个神经元都与所有这些特征相关联。
每个神经元都有自己的权重,用于加权特征。在网络训练期间,您需要为每个神经元选择权重,以使整个网络提供的输出栩栩如生。
为了执行转换并获得输出,每个神经元都有**功能。这使我们可以获得一些新的功能空间。函数的这种组合执行由公共函数F描述的转换-这描述了NN魔术背后的公式。
有很多**函数。我们将考虑最常见的:线性,S形和双曲正切。它们的主要区别在于它们使用的值的范围。
线性功能
几乎从未使用过此功能,除非您需要测试神经网络或无需转换即可传输值。
S型
这是最常见的**功能。它的值范围是[0,1]。但是,如果研究中存在负值,则不能使用它(例如,股票不仅可以上涨,而且可以下跌)。在这种情况下,您将需要使用负值的函数。
双曲正切
仅当您的值既可以为负也可以为正时才使用双曲正切是有意义的,因为函数的范围为[-1,1]。不建议仅将此函数与正值一起使用,因为它将大大降低神经网络结果的准确性。
如何训练算法?
如何训练神经网络?基本上,像其他任何学习算法一样。我们有一些想要获取的输出,例如,一个类标签。有一些参考输出,我们知道这些功能应该具有。例如,我们希望我们的神经网络区分猫和狗的照片,并且知道它们的外观。
增量是神经网络的数据和输出之间的差。我们使用演算魔术,并反复优化网络权重,直到增量为零。一旦增量为零,我们的模型显然可以正确预测我们的示例数据。
迭代
每当神经网络经过一个训练集时,这种计数器就会增加。换句话说,这是由神经网络完成的训练集的总数。
阶段
初始化神经网络时,此值设置为0。阶段越大,网络训练得越好,因此其结果也越好。每当我们经历整套训练集时,阶段就增加。
批处理
批处理大小等于一次向前/向后传递中训练示例的数量。批处理大小越大,您将需要更多的内存空间。
迭代和阶段有什么区别?
一个时期是所有训练示例中的一个向前通过和一个向后通过
迭代次数是遍数,每遍都使用[批量大小]的示例数。明确地说,一次通过等于一次向前通过+一次向后通过(我们不将向前和向后计算为两个不同的通过)。
误差呢?
误差是反映期望输出与接收输出之间差异的偏差。在每个时期之后,误差应变小。如果这没有发生,则说明您做错了事。
可以用不同的方法来计算误差,但是我们将仅考虑三种主要方法:均方误差,均方根(MSE)和Arctan。
使用哪种方法没有限制,您可以*选择哪种方法都能获得最佳效果。但是每种方法以不同的方式计算错误:
在Arctan中,误差几乎总是会变大,因为它是根据差值越大,误差越大的原理工作的。
在根MSE中,误差最小,并且在误差计算中更加平衡。MSE是最常用的。
存在哪些类型的神经网络?
前馈神经网络
这是最简单的神经网络算法。前馈网络没有任何内存。也就是说,前馈网络没有回头路。在许多任务中,这种方法不太适用。例如,当我们处理文本时,单词形成一定的顺序,我们希望机器能够理解它。
当您使用的数据不是顺序或时间相关的时,前馈神经网络可以应用于监督学习中。如果您不知道输出的结构,但想要构建相对快速便捷的NN,也可以使用它。
递归神经网络
循环神经网络可以处理文本,视频或图像集,并且每次都能变得更加精确,因为它可以记住上一次迭代的结果,并可以使用该信息做出更好的决策。
递归神经网络广泛用于自然语言处理和语音识别。
卷积神经网络
卷积神经网络是当今深度机器学习的标准,用于解决大多数问题。卷积神经网络可以是前馈的也可以是递归的。
让我们看看它们是如何工作的。想象一下,我们有一个爱因斯坦的形象。我们可以将神经元分配给输入图像中的所有像素。
但是这里存在一个大问题:如果将每个神经元连接到所有像素,那么首先您将获得很多权重。因此,这将是非常计算密集的操作,并且将花费很长时间。然后将有太多的权重,以至于该方法对于过度拟合将非常不稳定。它将在训练示例中很好地预测所有内容,但在其他图像上效果不佳。
因此,程序员提出了一种不同的体系结构,其中每个神经元仅连接到图像中的一个小方块。所有这些神经元将具有相同的权重,这种设计称为图像卷积。可以说,我们已经变换了图片,并使用简化筛选器的筛选器遍历了图片。重量更少,计数更快,更不容易过拟合。
生成对抗神经网络
生成对抗网络是一种无监督的机器学习算法,它是两个神经网络的组合,一个神经网络(网络G)生成模式,另一个神经网络(网络A)试图将真实样本与假样本区分开。由于网络具有相反的目标(创建样本和拒绝样本),因此它们发起了一场对抗性游戏,事实证明它非常有效。
GAN用于生成人眼感知为自然图像或伪造品(真实人说和做自己在现实生活中从未做过的事情的视频)的照片。
神经网络解决什么样的问题?
神经网络用于解决复杂的问题,这些问题需要类似于人脑的分析计算。神经网络最常见的用途是:
- 分类。NN通过隐式分析其参数将数据标记为类。例如,神经网络可以分析银行客户的参数(例如年龄,偿付能力,信用记录)并决定是否向他们借钱。
- 预测。该算法具有进行预测的能力。例如,它可以根据股票市场的情况预测股票的上升或下降。
- 识别。这是目前神经网络最广泛的应用。例如,安全系统可以使用人脸识别仅允许经过授权的人员进入建筑物。
本文来源物联工坊,地址:https://meimos.com/baike/ai/115.html,转载请注明出处!