深度学习和神经网络指南
作为人工智能的一个子集,深度学习是各种创新的核心:自动驾驶汽车、自然语言处理、图像识别等等。提供DL解决方案的公司(如亚马逊、特斯拉、Salesforce)处于股票市场的最前沿,并吸引了令人印象深刻的投资。根据Statista的数据,2014-2019年全球人工智能创业公司的融资总额相当于260多亿美元。这种高度兴趣可以解释为深度学习及其架构--人工神经网络的惊人好处。
_(1).jpg)
什么是深度学习?
.jpg)
深度学习是机器学习的子集之一,它使用深度学习算法,根据输入数据隐含地得出重要结论。
通常情况下,深度学习是无监督的或半监督的。深度学习以表征学习为基础。它不使用特定任务的算法,而是从代表性的例子中学习。例如,如果你想建立一个按物种识别猫的模型,你需要准备一个包括大量不同猫图像的数据库。
深度学习的主要架构是
- 卷积神经网络
- 递归神经网络
- 生成式对抗性网络
- 递归神经网络
我们将在本文后面更详细地讨论它们。
机器学习和深度学习之间的区别
机器学习试图从加载到系统中的一大组预处理数据中提取新的知识。程序员需要为机器制定规则,而机器则根据这些规则进行学习。有时,人类可能会干预以纠正其错误。
然而,深度学习则有点不同。
| 深度学习 | 机器学习 |
|---|---|
| 大量的数据 | 小数据集,只要它们是高质量的 |
| 计算量大 | 不一定 |
| 从原始数据中得出准确的结论 | 仔细预处理的数据 |
| 需要更长的时间来训练 | 可以在较短的时间内进行训练 |
| 你无法知道神经元所代表的特定特征是什么 | 机器决策背后的逻辑是明确的 |
| 可以以意想不到的方式使用 | 算法的建立是为了解决一个特定的问题 |
深度学习的优势
现在你知道DL和ML的区别是什么了,让我们看看深度学习的一些优势。
- 2015年,一群谷歌工程师正在进行关于NN如何执行分类任务的研究。偶然间,他们还注意到神经网络可以产生幻觉,并产生相当有趣的艺术。
- 在大量原始数据中识别模式和异常的能力使深度学习能够有效地向专业人士提供准确和可靠的分析结果。例如,亚马逊网站上有超过5.6亿件商品和3亿多用户。如果没有人工智能工具,任何人类会计甚至整个会计大军都无法跟踪这么多交易。
- 深度学习不像传统机器学习那样依赖人类的专业知识。DL允许我们在数据中做出发现,即使开发人员不确定他们想要找到什么。例如,你希望你的算法能够预测客户的保留率,但你不确定客户的哪些特征会使系统做出这种预测。
_(1).jpg)
深度学习的问题
- 收集大量的高质量数据是很消耗资源的。多年来,规模最大、准备最充分的样本集合是ImageNet,有1400万张不同的图像和2万多个类别。它成立于2012年,直到去年,腾讯才发布了一个更大、更多的数据库。
- 深度学习技术的另一个困难是,它不能为其结论提供理由。因此,如果你不知道输出应该是什么,就很难评估模型的性能。与传统的机器学习不同,你将无法测试算法并找出为什么你的系统决定,例如,图片中是一只猫而不是一只狗。
- 构建深度学习算法的成本很高。如果没有受过复杂数学训练的合格员工,这是不可能的。此外,深度学习是一种资源密集型技术。它需要强大的GPU和大量的内存来训练模型。当输入通过网络传播时,需要大量的内存来存储输入数据、权重参数和激活函数。有时,深度学习算法变得如此耗电,以至于研究人员宁愿使用其他算法,甚至牺牲预测的准确性。
然而,在许多情况下,深度学习是不能被替代的。
如何将DL应用于现实生活中的问题?
_(1).jpg)
今天,深度学习被应用于不同行业的各种用例中。
- 语音识别。所有主要的商业语音识别系统(如微软Cortana、Alexa、谷歌助手、苹果Siri)都基于深度学习。
- 模式识别。模式识别系统已经能够在医疗诊断中给出比人眼更准确的结果。
- 自然语言处理。自21世纪初以来,神经网络已被用于实现语言模型。LSTM的发明有助于改善机器翻译和语言建模。
- 发现新的药物。例如,AtomNet神经网络已被用于预测新的生物分子,这些生物分子有可能治愈埃博拉和多发性硬化症等疾病。
- 推荐系统。今天,深度学习正被用于研究许多领域的用户偏好。Netflix是这个领域最亮眼的例子之一。
什么是人工神经网络?
.jpg)
"人工神经网络 "和 "深度学习 "经常被互换使用,这其实并不正确。并非所有的神经网络都是 "深度 "的,意思是 "有很多隐藏层",也不是所有的深度学习架构都是神经网络。例如,也有深度信仰网络。
_(1).jpg)
然而,由于神经网络是目前最热门的算法,而且事实上对解决复杂任务非常有用,所以我们将在这篇文章中讨论它们。
人工神经网络的定义
人工神经网络代表了计算机上建模的人脑结构。它由组织成层的神经元和突触组成。
ANN可以有数百万个神经元连接成一个系统,这使得它在分析甚至记忆各种信息方面非常成功。
这里有一个视频,供那些想深入了解人工神经网络工作原理的技术细节的人观看。
神经网络的组成部分
有不同类型的神经网络,但它们总是由相同的组件组成:神经元、突触、权重、偏置和功能。
神经元
神经元或节点是神经网络的一个基本单位,它接收信息,进行简单的计算,并进一步传递信息。
一个网络中的所有神经元被分为三组。
- 输入神经元,接收来自外部世界的信息。
- 处理该信息的隐藏神经元。
- 输出神经元,产生一个结论。
_(1).jpg)
在一个有许多神经元和它们之间的连接的大型神经网络中,神经元被组织成层。有一个接收信息的输入层,若干个隐藏层,以及提供有价值结果的输出层。每个神经元都对输入信息进行转换。
神经元只操作[0,1]或[-1,1]范围内的数字。为了将数据变成神经元可以操作的东西,我们需要规范化。我们在关于回归分析的文章中谈到了它是什么。
等等,但神经元如何进行交流?通过突触。
突触和权重
突触是连接神经元的东西,就像一根电线。每个突触都有一个重量。权重也是对输入信息的变化的补充。权重较大的神经元的结果将在下一个神经元中占主导地位,而来自 "权重 "较小的神经元的信息将不会被传递过去。 可以说,权重的矩阵支配着整个神经系统。
_(1).jpg)
你怎么知道哪个神经元的权重最大?在初始化过程中(NN的第一次启动),权重是随机分配的,但随后你将不得不对其进行优化。
偏置
一个偏置的神经元允许存储更多的权重变化。偏置为模型的权重增加了更丰富的输入空间的表示。
在神经网络的情况下,每一层都会添加一个偏置神经元。它通过使激活函数在图上向左或向右移动成为可能而发挥重要作用。
_(1).jpg)
诚然,ANN可以在没有偏置神经元的情况下工作。然而,它们几乎总是被添加,并被视为整个模型中不可缺少的一部分。
ANNs如何工作
每个神经元处理输入数据以提取一个特征。让我们想象一下,我们有三个特征和三个神经元,每个神经元都与所有这些特征相连。
每个神经元都有自己的权重,用于对特征进行加权。在网络的训练过程中,你需要为每个神经元选择这样的权重,使整个网络提供的输出是真实的。
为了进行转换并获得输出,每个神经元都有一个激活函数。这种函数的组合执行一个由共同函数F描述的转换--这描述了NN神奇背后的公式。
_(1).jpg)
有很多的激活函数。最常见的是线性、sigmoid和双曲切线。它们的主要区别是它们工作的数值范围。
你如何训练一个算法?
神经网络的训练与其他算法一样。你想得到一些结果,并为网络提供信息,让它从中学习。例如,我们希望我们的神经网络能够区分猫和狗的照片,并提供大量的例子。
Delta是数据和神经网络的输出之间的差异。我们使用微积分魔法,反复优化网络的权重,直到delta为零。一旦三角洲为零或接近零,我们的模型就能正确预测我们的例子数据。
迭代
这是一种计数器,每当神经网络通过一个训练集时就会增加。换句话说,这就是神经网络完成的训练集总数。
纪元
每当我们通过整个训练集时,epoch就会增加。纪元越多,模型的训练效果就越好。
批量
批量大小等于一个前向/后向通道中的训练例子的数量。批量大小越大,你需要的内存空间就越大。
迭代和历时之间的区别是什么?
.jpg)
- 一个历时是对所有训练实例的一次前向和一次后向传递。
- 迭代次数是一个传递次数,每个传递使用[批次大小]的例子数量。为了清楚起见,一个周期等于一个前向周期+一个后向周期(我们不把前向周期和后向周期算作两个不同的周期)。
那么误差呢?
误差是一种偏差,反映了预期输出和接收输出之间的差异。误差应该在每个历时后变小。如果这种情况没有发生,那么你就做错了。
误差可以用不同的方法计算,但我们将只考虑两种主要的方法。Arctan和平均平方误差。
对使用哪一种没有限制,你可以自由选择哪种方法给你带来最好的结果。但每种方法都以不同的方式计算误差。
- 使用Arctan,误差几乎总是比较大。
- MSE更平衡,使用更频繁。
存在哪些种类的神经网络?
有这么多不同的神经网络,根本不可能全部提及。如果你想了解更多关于这个品种的信息,请访问神经网络动物园,在那里你可以看到它们都以图形的方式表示。
.jpg)
前馈式神经网络
这是最简单的神经网络算法。一个前馈网络没有任何记忆。也就是说,在前馈网络中没有回头路。在许多任务中,这种方法并不十分适用。例如,当我们处理文本时,单词形成了一定的序列,而我们希望机器能够理解它。
当你所处理的数据不具有顺序性或时间性时,前馈神经网络可以应用于监督学习。如果你不知道输出应该如何结构化,但想建立一个相对快速和简单的NN,你也可以使用它。
递归神经网络
递归神经网络可以处理文本、视频或图像集,并且每次都会变得更精确,因为它记住了上一次迭代的结果,并可以利用这些信息做出更好的决定。
递归神经网络被广泛用于自然语言处理和语音识别。
卷积神经网络
卷积神经网络是当今深度机器学习的标准,被用来解决大多数问题。卷积神经网络可以是前馈式或递归式。
让我们来看看它们是如何工作的。想象一下,我们有一个阿尔伯特-爱因斯坦的图像。我们可以给输入图像中的所有像素分配一个神经元。
但这里有一个很大的问题:如果你把每个神经元连接到所有的像素,那么,首先,你会得到很多的权重。因此,这将是一个非常密集的计算操作,需要很长的时间。然后,会有这么多的权重,这种方法将非常不稳定,无法进行过度拟合。它在训练实例上的预测效果会很好,但在其他图像上的效果却很差。
.jpg)
因此,程序员想出了一个不同的架构,每个神经元只与图像中的一个小方块相连。所有这些神经元将有相同的权重,这种设计被称为图像卷积。我们可以说,我们已经转化了图片,用一个过滤器简化了过程,走过了图片。更少的权重,更快的计数,更不容易出现过拟合。
.jpg)
关于卷积神经网络工作原理的精彩解释,请看路易斯-塞拉诺的这个视频。
生成式对抗性神经网络
生成式对抗网络是一种无监督的机器学习算法,它是两个神经网络的组合,其中一个(网络G)生成模式,另一个(网络A)试图区分真假样本。由于网络有相反的目标--创建样本和拒绝样本--它们开始了一场对立的游戏,结果证明是相当有效的。
.jpg)
例如,GANs被用来生成被人眼认为是自然图像的照片或深度假象(视频中真实的人说和做他们在现实生活中从未做过的事情)。
神经网络能解决什么样的问题?
神经网络被用来解决复杂的问题,这些问题需要类似于人脑的分析计算。神经网络最常见的用途是。
- 分类。神经网络通过隐含地分析数据的参数将其标记为类别。例如,一个神经网络可以分析银行客户的参数,如年龄、偿付能力、信用记录,并决定是否向他们贷款。
- 预测。该算法有能力进行预测。例如,它可以根据股票市场的情况预见一只股票的上涨或下跌。
- 识别。这是目前神经网络最广泛的应用。例如,安全系统可以使用人脸识别,只让经授权的人进入大楼。
总结
深度学习和神经网络是扩展人类智慧和技能的有用技术。神经网络只是深度学习架构的一种类型。然而,它们已经广为人知,因为神经网络可以有效地解决大量的任务,并且比其他算法更好地应对这些任务。