0基础怎样理解深度学习的工作原理?做个票价预测工具就懂了
2017-10-29 00:00
381 查看
原作:Radu Raice
安妮 编译自 Medium
量子位 出品 | 公众号 QbitAI
这篇文章颇!具!人!气!
软件工程专业的学生Radu Raice近日发表了文章《Want to know how Deep Learning works? Here’s a quick guide for everyone》,不到两天时间就在外网《Medium》上收获了6.9k个赞。
零基础没关系,Raice通过用深度学习搭建预测机票价格模型,教你直观理解深度学习的工作原理。
△ Radu
Raice
入学测验
莫急莫急,想学习深度学习的工作原理,你得先通过一个入学测试才行。Q1:你了解监督学习吗?
点击下方空白区域查看答案
▼
监督学习应用了包含输入和期望输出的标记数据集。
用监督学习训练AI时,我们需要给它输入并告诉它期望输出值。当AI输出有误时,它将重新调整计算。这个过程在数据集中反复进行,直到AI不再犯错。
Q2:你了解无监督学习吗?
点击下方空白区域查看答案
▼
用无监督学习训练数据时,你让AI对数据进行分类。
比如用AI预测网店的销量,没有标记了输入和输出的数据集供它使用,它将创造自己的输入数据分类,告诉你哪种类型的用户更可能购买哪些不同的产品。
比如用AI预测网店的销量,没有标记了输入和输出的数据集供它使用,它将创造自己的输入数据分类,告诉你哪种类型的用户更可能购买哪些不同的产品。
关于机器学习/深度学习的入门知识,量子位近期还报道过这些文章,请依个人实际情况自取:
两个月入门深度学习,全靠动手实践!一位前端小哥的经验分享
从零开始学习神经网络 | 视频教程
想成为机器学习工程师?这份自学指南你值得收藏
给你一个卷积神经网络工作原理最直观的解释
搞机器学习/AI有什么必备的数学基础?| 经验之谈+资源大全
万字长文|如何直观解释卷积神经网络的工作原理?
深度学习的工作原理
恭喜通过入学测试!其实,深度学习是机器学习里的一个分支,让我们在给定输入上训练AI预测输出。训练AI需要会用到监督学习和无监督学习。
在这篇文章中,我们通过构建一个机票价格预测工具了解机器学习的原理,之后用监督学习的方法训练它。
为了对新手友好,我们排除了往返机票等复杂情况,仅用以下四种输入:
出发机场
到达机场
出发日期
航线名
神经网络
神经网络好比AI的大脑。与动物类似,这个AI机票价格预测工具的大脑也有神经元。下图中的圆圈就代表神经元,它们是互相连接的。
这些神经元被分为三种不同类型的层:
输入层(input layer)
隐藏层(hidden layer)
输出层(output layer)
输入层负责接收输入数据。在这个预测工具中,输入层主要包含四个神经元,分别为起始机场、到达机场、出发日期和航线名。接收到这些信息后,它将输入数据传递到第一个隐藏层。
隐藏层负责对输入数据进行数学运算。如何决定隐藏层的数量、以及每层神经元的数量仍是构建神经网络的挑战。
输出层返回输出数据。在本例中,它会给出预测的机票价格。
所以,这个工具到底是怎样计算机票价格的呢?答案是深度学习。
每个神经元间靠权重(weight)连接,它决定了输入值的重要性。初始权重是随机设置的。
在预测机票价格时,出发日期是对价格影响较大的因素。所以,出发日期神经元连接的权重会比较大。
每个神经元都有一个激活函数。不过,因为这篇文章是新手友好向,我们不讲解相关的数学推理。
简单来说,激活函数的目的是将神经元的输出“标准化”。
一旦一组输入数据传递到了神经元的所有层,它将会通过输出层再将输出数据返回。
训练神经网络
走到训练这一步,你又要开始新挑战了,训练难就难在你不仅没有大数据集,而且还很难满足所需的强大计算能力。想做机票价格预测工具,我们必须找到票价信息的历史数据。由于机场和出发日期的组合有很多种可能,因此这个票价列表信息也非常庞大。
为了训练AI,我们需要给它提供来自数据集的输入,并将AI的输出和数据集中的真实输出做对比。因为还没有经过训练,所以AI的输出还是错误的。
一旦将整个数据集中所有数据输入完成,我们就可以创建一个代价函数,它能显示AI的输出与实际输出的差异。
理想情况下,我们希望代价函数是0,此时AI的输出就等于真实输出。
怎样降低代价函数?
还记得上面章节中提到的权重吗,在减少代价函数的操作中,权重起着至关重要的作用。改变神经元间的权重可以调整代价函数,我们可以随机改变它们直到代价函数接近0,但这种方法很低效。
在这种情况下,梯度下降(Gradient Descent)闪亮登场。
梯度下降是一种寻找函数最小值的方法,寻找机票价格模型中的代价函数最小值也得用它。
梯度下降的工作原理是在数据集的每次迭代后,以很小的增量改变权重。通过计算确定权重代价函数的导数(或梯度),我们可以看到最小值的方向。
为了使代价函数最小,我们需要用强大的计算力多次循环访问数据集。
深度学习的魔力就在于,使用梯度下降法更新权重是自动完成的。就这样,我们的机票价格预测小工具就完成了。
想了解更多?
这篇文章只是入门深度学习的第一步,入坑深度学习任重而道远,还有许多其他类型的神经网络需要你了解,比如计算机视觉的卷积神经网络和自然语言处理的递归神经网络等。如果你想了解深度学习的应用技术,建议你选择一门在线课程。我觉得Andrew Ng的Deeplearning.ai课程不错。
总结
深度学习需要神经网络模仿动物的智力。一个神经网络中有三种神经元层,即输入层、隐藏层和输出层。
神经元之间的连接与权重有关,它决定了输入值的重要性。
将激活函数应用到数据中,可以使神经元的输出标准化。
为了训练神经网络,你需要一个大数据集。
迭代数据集和对比输出将产生一个代价函数,显示AI的输出与真实输出之间的差异。
数据集的每一次迭代后,神经元之间的权重会通过梯度下降的方式,降低代价函数的值。
想进一步讨论,可以在文章下方留言。
附原文地址:
https://medium.freecodecamp.org/want-to-know-how-deep-learning-works-heres-a-quick-guide-for-everyone-1aedeca88076
深度学习的工作原理你了解了吗?
— 完 —
加入社群
量子位AI社群10群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot4入群;
此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。
进群请加小助手微信号qbitbot4,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI
վ'ᴗ' ի 追踪AI技术和产品新动态
相关文章推荐
- 深度学习基础理解
- 深度学习之前的基础知识理解
- [6]深度学习和Keras---- 深度学习中的一些难理解的基础概念:softmax, batch,min-batch,iterations,epoch,SGD
- 一名工程师对于深度学习的理解-神经网络基础ANN
- 一文理解深度学习,卷积神经网络,循环神经网络的脉络和原理1-深度学习基础
- 深度学习基础知识(1)神经网络理解
- 一名工程师对于深度学习的理解-神经网络基础ANN
- 深度学习FPGA实现基础知识14(如何理解“卷积”运算)
- 【深度学习】【caffe实用工具4】笔记26 windows下使用Caffe中的源代码进行【训练】和【预测】
- 深度学习与计算机视觉系列(1)_基础介绍
- DAY5:神经网络及深度学习基础
- 深度学习研究理解5:Visualizing and Understanding Convolutional Networks
- 深度学习成为最具潜力的工具
- 想学习深度学习需要什么样的基础?
- 深度学习基础介绍
- 深度学习开发工具
- 深度学习--LeNet5参数理解
- jsp基础学习(四)----jsp引擎工作原理
- 并查集--学习精解(从基础深度剖析)
- 文本深度表示模型Word2Vec 简介 Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简