这篇文章颇!具!人!气!
软件工程专业的学生Radu Raice近日发表了文章《Want to know how Deep Learning works? Here’s a quick guide for everyone》,不到两天时间就在外网《Medium》上收获了6.9k个赞。
零基础没关系,Raice通过用深度学习搭建预测机票价格模型,教你直观理解深度学习的工作原理。
莫急莫急,想学习深度学习的工作原理,你得先通过一个入学测试才行。
点击下方空白区域查看答案
▼
监督学习应用了包含输入和期望输出的标记数据集。
用监督学习训练AI时,我们需要给它输入并告诉它期望输出值。当AI输出有误时,它将重新调整计算。这个过程在数据集中反复进行,直到AI不再犯错。
点击下方空白区域查看答案
▼
用无监督学习训练数据时,你让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技术和产品新动态