开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
深度学习基础指南 - 技术翻译 - 开源中国社区

深度学习基础指南 【已翻译100%】

oschina 推荐于 3周前 (共 9 段, 翻译完成于 11-07) 评论 5
收藏  
79
推荐标签: 待读

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

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

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

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

rever4433
 翻译得不错哦!

背景知识

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

人工智能与机器学习

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

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

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

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

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

监督学习与无监督学习

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

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

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

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

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

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

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

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

rever4433
 翻译得不错哦!

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

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

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

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

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

  • 始发机场

  • 目的地机场

  • 启程日期

  • 航空公司

rever4433
 翻译得不错哦!

神经网络

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

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

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

  1. 输入层

  2. 隐含层

  3. 输出层

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

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

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

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

rever4433
 翻译得不错哦!

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

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

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

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

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

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

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

这没什么难的,对吧?

rever4433
 翻译得不错哦!

训练神经网络

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

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

  2. 你需要强大计算能力

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

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

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

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

rever4433
 翻译得不错哦!

如何降低成本函数?

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

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

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

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


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

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

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

rever4433
 翻译得不错哦!

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

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

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

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

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

rever4433
 翻译得不错哦!

总结

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

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

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

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

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

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

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

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

rever4433
 翻译得不错哦!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
评论(5)
Ctrl/CMD+Enter

写的不错!希望连载
写的确实很浅显,对于正在进行机器学习入门的新手来说,貌似没有什么作用
很棒,学习人工智能路漫漫
@红薯 osc对人工智能这块为什么还停留在偶尔翻译一些文章
成本函数这个翻译不好吧?好像是损失函数。。。
顶部