想知道深度学习是如何工作的?这里有个基础指南

百家 作者:原力AI学院 2017-11-09 11:41:41

人工智能和机器学习是现如今最热门的话题了。


“人工智能”这个词每天被到处乱用。你听到开发者们说他们要学习人工智能。你也会听到管理者说他们要把人工智能技术应用他们的服务中。但他们往往并不了解人工智能。


读完这篇文章,你将会了解到人工智能和机器学习的基础知识。更重要的是你将会了解到最流行的一种机器学习技术——深度学习是如何工作的。


这篇指引是面向大众的,所以文中不会出现高等数学的内容。


背景知识


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


人工智能与机器学习


人工智能是人类智能在计算机中的复现。


在人工智能研究的起步阶段,研究人员正试图在计算机上复现人类智能的具体任务 —— 比如玩游戏。


他们引入了计算机需要遵守的大量规则。计算机有一个具体的可能行动清单,并根据这些规则做出决定。


机器学习指的是机器学习使用大数据集而不是硬编码规则的能力。


机器学习允许计算机自己学习。这种学习利用了现代计算机的处理能力,它可以很容易地处理大型数据集。


监督学习与无监督学习


监督学习涉及使用具有输入和期望输出的标记数据集。


当你使用监督学习训练人工智能时,你给计算机一个输入内容并告诉计算机预期的输出内容。


如果人工智能产生的输出是错误的,它将调整计算方法。这个过程在数据集上迭代完成,直到 AI 不再犯错误为止。


监督学习的一个例子是天气预报人工智能。它学习用历史数据预测天气。训练数据有输入(压力、湿度、风速)和输出(温度)。


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


当你使用无监督学习训练人工智能时,你让人工智能对数据进行逻辑分类。


无监督学习的一个例子是一个电子商务网站的行为预测人工智能。它不会通过使用标记的输入和输出数据集来学习。


相反,它将创建自己的输入数据分类。它会告诉你哪种用户最有可能购买不同的产品。


那么,深度学习是怎样工作的?


现在你有了足够的预备知识去理解深度学习是什么,以及深度学习是怎样工作的。


深度学习是一种机器学习的方法。深度学习允许我们训练一个人工智能系统通过给定一个输入数据集,去预测输出数据。监督和无监督学习都可以运用到训练人工智能上。


我们将会通过一个飞机票价评估服务来学习深度学习是如何工作的。我们会使用监督学习方法来训练这个系统。


我们希望我们的飞机票价评估系统通过以下数据来预测票价(为了系统的简单,我们没有使用返程票价的数据):


  • 始发机场

  • 目的地机场

  • 启程日期

  • 航空公司


神经网络


让我们看看人工智能的大脑。


像动物一样,我们的评估系统 AI 的大脑有神经元。它们以圆圈表示。这些神经元之间相互连接。

神经元被分成三组不同的层级:


  1. 输入层

  2. 隐含层

  3. 输出层


输入层接收输入数据。在我们的例子中,输入层有四个神经元:始发机场、目的地机场、启程日期和航空公司。输入层将输入传递给第一个隐含层。


隐含层对输入数据进行数学计算。创建神经网络所面临的挑战之一是决定隐含层的数目,以及每个层的神经元数目。


深度学习中的“深度”指的就是因为它有一个以上的隐藏层。


输出层返回输出数据。在我们的例子中,它给了我们对于价格的预测。

那么深度学习系统如何给出对于价格的预测呢?


这就是深度学习的魔力所在。


在每个神经元之间都有一个“权重”。这个权重描述了输入数据的重要性,初始权重是随机设置的。


当预测机票价格的时候,启程日期是一个重要的因素。因此,启程日期神经元连接将会有高的权重。

每个神经元都有一个激活函数。如果没有数学推到,这些函数很难理解。


简单来说,激活函数的目的是标准化来自神经元的输出。


一旦一个数据集被传入到神经网络的所有的层,激活函数将通过输出层返回数据。


这没什么难的,对吧?


训练神经网络


训练人工智能是深度学习中最困难的部分。为什么?


  1. 你需要一个很大的数据集

  2. 你需要强大计算能力


对于我们的机票价格估计系统,我们需要找到机票价格的历史数据。由于机场和起飞日期的可能组合有很多,因此我们需要一个非常大的机票价格清单。


为了训练人工智能,我们需要从数据集中输入它,并将其输出与数据集的输出进行比较。由于人工智能还未经训练,其输出将是错误的。


一旦我们完成了整个数据集,我们就可以创建一个函数,告诉我们人工智能系统的输出与我们需要的输出的差距有多大。这个函数叫做成本函数。


理想情况下,我们希望我们的成本函数为零。这要求人工智能的输出数据和数据集的输出数据完全相同。


如何降低成本函数?


我们可以改变神经元之间的权重。我们可以随机地改变权重,直到我们的成本函数是低的,但这个方法效率不高。


相反,我们将使用一种称为梯度下降的技术。


梯度下降是一种允许我们找到函数最小值的技术。在我们的例子中,我们在寻找最小的成本函数。


它通过在每次数据集迭代后以较小的增量改变权重。在一定的权重集上通过计算成本函数曲线的导数(或梯度),我们可以看到降低成本函数的方向是什么。



为了最小化成本函数,你需要多次迭代你的数据集。这就是为什么你需要大量的计算能力。


使用梯度下降调整权重是自动完成的。这就是深度学习的魔力!


一旦我们训练了我们的机票价格估计AI,我们就可以用它来预测机票未来的价格。


哪里可以学到更多深度学习知识?


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


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


目前,学习深度学习最好的课程是吴恩达(Andrew Ng)的深度学习课程。如果你对获得证书不感兴趣,你不需要为课程付钱。你可以免费旁听。


如果你有任何的问题,或者需要更多的技术概念的解释,请在下面询问。


总结


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

  • 一个神经网络钟有三种类型的层级神经元:输入层,隐含层和输出层。

  • 神经元之间的联系与权重有关,权重来指示输入值的重要性。

  • 神经元在数据上应用一个激活函数来“标准化”神经元的输出。

  • 训练一个神经网络,你需要一个很大数据集。

  • 迭代数据集和比较输出将产生一个成本函数,表明人工智能与实际输出有多大的差距。

  • 每次迭代后,通过梯度下降调整神经元之间的权值,降低代价函数。


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


 End 

阅读排行榜/精华推荐
1
入门学习

如果有人质疑大数据?不妨把这两个视频转给他 

视频:大数据到底是什么 都说干大数据挣钱 1分钟告诉你都在干什么

人人都需要知道 关于大数据最常见的10个问题

2
进阶修炼

从底层到应用,那些数据人的必备技能

如何高效地学好 R?

一个程序员怎样才算精通Python?

3
数据源爬取/收集

排名前50的开源Web爬虫用于数据挖掘

33款可用来抓数据的开源爬虫软件工具

在中国我们如何收集数据?全球数据收集大教程

4
干货教程

PPT:数据可视化,到底该用什么软件来展示数据?

干货|电信运营商数据价值跨行业运营的现状与思考

大数据分析的集中化之路 建设银行大数据应用实践PPT

【实战PPT】看工商银行如何利用大数据洞察客户心声?              

六步,让你用Excel做出强大漂亮的数据地图

 数据商业的崛起 解密中国大数据第一股——国双

双11剁手幕后的阿里“黑科技” OceanBase/金融云架构/ODPS/dataV

金融行业大数据用户画像实践


讲述大数据在金融、电信、工业、商业、电子商务、网络游戏、移动互联网等多个领域的应用,以中立、客观、专业、可信赖的态度,多层次、多维度地影响着最广泛的大数据人群

36大数据

长按识别二维码,关注36大数据


搜索「36大数据」或输入36dsj.com查看更多内容。

投稿/商务/合作:dashuju36@qq.com


点击下方“阅读原文”查看更多

↓↓↓

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接