想知道深度学习如何工作?这里让你快速入门!

最近更新时间 2017年11月8日 14:58:51

本文翻译自freecodecampRadu Raicea所发文章Want to know how Deep Learning works? Here’s a quick guide for everyone. 文中版权、图像代码等数据均归作者所有。为了本土化,翻译内容略作修改。

人工智能(AI)和机器学习(ML)是当今世界上最热门的话题之一。

“AI”这个词现在在互联网中飞来飞去。你不仅能在开发人员口中听到这个词,甚至有时候也会在产品设计运营人员中听到这个词。但是,他们真的搞清楚AI是什么了吗?所以,为了让更多人了解AI和ML,我写下本文。

本文适合所有人阅读,本文将不涉及高等数学及代码等相关领域的知识。

背景

了解深度学习第一步是掌握深度学习术语之间的差异。

人工智能与机器学习

人工智能是人类智能在计算机中的产物。

人类刚开始研究人工智能的时候,科学家就是尝试复制人类的智慧来完成特定的任务。

就拿玩游戏来说,需要让计算机了解并遵守游戏中大量的规则。计算机拥有一个详细的计划清单,并根据这些计划规则做出决定。我们将这个系统称为专家系统

机器学习是指机器使用大量数据而非专家系统获得的学习能力。

ML(机器学习)允许电脑自己进行学习。这种方式利用强大的计算性能及大量的大型数据集,训练电脑认知某个事物。

监督学习和非监督学习

监督学习需要特定的输入数据及特定的预期输出结果。

当使用监督学习来训练AI时,你需要给它一个输入数据,并告诉它你的预期结果。

如果AI产生输出错误,它会对比正确的输出数据并重新调整内部算法。这个过程是需要迭代输入数据并判断输出结果,直到AI误差率降到很低。

监督学习一个很好的例子是天气预报,AI使用历史的天气数据(压力、温度、风速等)来预测输出的结果(温度,天气状况)

非监督学习是没有特定的结构数据的数据集进行的机器学习任务。

当使用非监督学习来训练AI时,您只用给AI一堆数据集即可,AI会对数据进行逻辑分类。

非监督学习很好的一个例子是电子商务网站用户购买行为预测,AI不会通过输入及输出来标记学习,反而会使用用户购买数据进行分类,并告诉你,那种用户最有可能购买那些产品。

那么,深度学习是如何工作的?

希望你已经准备好去了解深度学习的方法及它的工作原理。

深度学习是ML(机器学习)的一种方法。它允许我们使用特定的数据和方法(监督学习或者非监督学习)来训练AI(人工智能)。

我们还是通过想象在大脑中建立一个机票价格预测服务的模型来了解深度学习是如何工作的吧!为了更好的理解机器学习,这里将采用监督学习的方法进行讨论。

为此,我们需要以下输入数据(简单期间,暂时不考虑回程票):

• 出发地

• 目的地

• 出发日期

• 航空公司

神经网络

开始之前,我们先看看AI的大脑。

正如同动物一样,AI也有类似神经元的东西,我们用圆圈表示每个神经元。这些神经元是互相连接的。

神经元被分三个不同的层:

1. 输入层

2. 隐藏层(多个)

3. 输出层

输入层接收输入数据。在例子中,我们在输入层有四个神经元数据:出发地、目的地、出发日期航空公司。输入层将数据传给第一个隐藏层。

隐藏层中,我们需要考虑计算的方法。创建神经网络的挑战之一就是决定隐藏层才数量以及每层神经元的个数。有趣的是,深度学习中的“深度”就是指深度学习中有多少个隐藏层。

输出层负责返回数据,通过神经网络,我们就能预测出某个航班的价格。

那么它是如何计算并预测价格的呢?

这就是深度学习魅力所在。

神经元之间的每一个连接都有不同的权重,这个权重决定了输入值的重要性,起初,这个权重是随机设置的。

通过数据对比,神经网络发现出发日期是比较重要的因素。因此,出发日期的权重慢慢就变得非常重要。

每一个神经元都有一个激励函数。没有数学推导的话,这些内容将很难理解。简而言之,激励函数的目的是标准化神经网络输出数据。

一旦一组输入数据通过神经网络,他就会通过输出层返回数据。

其实很简单,不是吗?

训练神经网络

训练是深度学习中最难的部分,为什么?

1. 你需要大量的数据集。

2. 需要强劲的计算能力。

对于机票价格的估算,我们需要找到票价历史的数据,但是因为机场和出发日期组合数量非常多,所以我们需要一个非常大的票价清单。

为了训练人工智能,我们需要给他特定的输入集,并将输出数据与真实的数据做比较。

一旦对比完整个数据集,就可以创建一个函数,告诉AI如何从真实数据中对比错误。这个函数我们称为损失函数(成本函数)。

理想情况下,我们的损失函数为零,AI输出数据与原始数据相同。

如何降低损失函数

最简单的方法是随机改变神经元之间的权重,知道损失函数数值变得很低,但是这种方法效率很低,不太实用。

为了解决这个问题,我们引入一个新的概念梯度下降

梯度下降是一种方法,可以让我们找到一个函数的最小值,在本次案例中,我们正尝试寻找最低的损失函数。

当每次数据迭代后,以小增量的方式来改变权重,通过计算权重损失函数的导数(梯度),我们可以看到最小值的发展趋势。

为了让损失函数达到最小值,你需要使用不同的数据进行多次尝试。这就是为什么你需要强劲的计算力了。

当然,神奇的是损失函数的更新下降是梯度下降的,由程序自动完成的。

一旦通过这样的训练得到了比较好的模型,那么就可以通过他来预测未来航空公司的价格。

希望学到更多?

还有很多其他类型的神经网络:比如用于计算机视觉处理的卷积神经网络和用于自然语言处理的回归神经网络

如果你想了解深度学习方面的技术,我建议参加在线课程。

目前,深度学习最好的课程是Andrew Ng的深度学习课程。如果你对获得证书不感兴趣,你可以免费体验这个课程。

如果你有任何问题,或者想了解深度学习相关的技术概念,可以回复本帖。

总结

• 深度学习使用神经网络模仿动物的智力。

• 神经网络有三种神经元层:输入层,隐藏层,输出层。

• 神经元之间的链接与权重有关,权重规定输入值的重要性。

• 神经元将激励函数用于数据,并以“标准化”神经元输出。

• 神经网络需要大量的数据集。

• 迭代比较真实数据将产生一个损失函数,标识AI与真实数据偏离了多少。

• 通过数据集的每次迭代,使用梯度下降来调整神经元之间的权重,从而降低损失函数数据。

如果你喜欢这篇文章,请给我一些鼓励!让更多人看到它,谢谢!

你还可以看看我是如何通过Python来寻找有趣的人

想了解更多信息?请在Twitter上关注我。

原文链接:https://medium.freecodecamp.org/want-to-know-how-deep-learning-works-heres-a-quick-guide-for-everyone-1aedeca88076

原文作者:Radu Raicea

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏应兆康的专栏

“西瓜书”——第三章_线性模型(笔记)

线性模型形式简单、易于建模,许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。 ? ? ? ? ?

37215
来自专栏Petrichor的专栏

深度学习: Nonlinear (非线性)

1062
来自专栏AI科技评论

学界 | 离「脑机接口」再近一步,日本研究员根据大脑fMRI重建看到的图像

AI 科技评论按:位于日本的国际电气通信基础技术研究所(ATR)的计算神经科学实验室和京都大学日前联合发布了一篇论文,他们可以借助 fMRI(功能性磁共振成像)...

3589
来自专栏AI科技评论

学界 | AAAI 18论文解读:基于强化学习的时间行为检测自适应模型

AI 科技评论按:互联网上以视频形式呈现的内容在日益增多,对视频内容进行高效及时的审核也变得越来越迫切。因此,视频中的行为检测技术也是当下热点研究任务之一。本文...

3116
来自专栏ATYUN订阅号

深入了解Hinton的Capsule网络,第一部分:直观地介绍

上周,Geoffrey Hinton和他的团队发表了两篇论文,介绍了一种基于所谓的capsules(胶囊)的全新类型的神经网络。除此之外,该团队还发布了一种叫做...

3625
来自专栏机器学习算法与Python学习

2019校招面试必备,15个CNN关键回答集锦【必收藏】

关于利用卷积神经网络作为视觉系统的模型是否有生物学理论支持,目前仍然存在许多质疑之声。本文作者通过多年在计算神经领域的经验,以问答的形式详细阐述了CNN与神经科...

642
来自专栏鸿的学习笔记

《machine learning yearning》学习笔记

一、如何选择机器学习策略 一个例子:当你的团队在使用cat图片去喂神经网络,让它去识别出一只cat.但是你的算法的精确度(accuracy)一直没办法提高。 下...

1111
来自专栏IT派

手把手教你使用TensorFlow生成对抗样本 | 附源码

摘要: 本文使用TensorFlow一步一步生成对抗样本,步骤明确清晰。首先生成的对抗样本不具有旋转鲁棒性,后面使用同样的方法生成具有鲁棒性的对抗样本,适合初学...

5125
来自专栏人工智能头条

由一只猫看深度学习面临哪些挑战?

我们要面对的可不仅仅是这样一只蹲在我们面前可爱的小猫,在实际中有着很多的可能性,比如光照强度,遮蔽程度,角度等等,这些就成为了我们深度学习任务的一个极大的挑战。

562
来自专栏人工智能头条

为什么深度学习不能取代传统的计算机视觉技术?

1433

扫码关注云+社区