零基础入门深度学习工作原理?人人都能看懂!

在入门学习深度学习之前,有必要先了解一下深度学习的工作原理。著名程序猿小哥 Radu Raicea 特意为入门学习者写了一篇文章,利用一个票价预测工具的例子解释深度学习的工作原理,不需要有多高深的数学知识,人人都能看懂

当前,人工智能和机器学习应该是最火爆的话题了,你估计经常听到有很多程序猿朋友说要去学 AI,很多公司宣布要应用AI技术,可是很多人其实并没有完全理解人工智能和机器学习。因此 Radu Raicea 觉得在解释深度学习原理之前,我们有必要了解几个基本术语,就当一个入门小测验好了:

你知道啥是机器学习吗?

机器学习指机器能够学习利用大数据集学习而不是硬编码规则,它是人工智能的核心,是使计算机具有智能的根本途径,主要使用归纳、综合而不是演绎。

机器学习能让电脑自我学习,这种学习类型得益于现代计算机强大的处理能力,可以轻易地处理大数据集。

你知道啥是监督学习吗?

监督学习应用了包含输入值和期望输出值的标记数据集。

当用监督学习训练AI的时候,我们需要给它输入值,并告诉它期望输出值。如果AI生成的输出值有误,它会调整自身计算。这个过程会随着数据集的更新而不断迭代,直到AI不再犯错。

监督学习的一个典型应用就是天气预报AI应用。AI利用历史数据学习如何预测天气。训练数据包括输入值(气压、湿度、风速等)和输出值(温度等)。

你知道啥是无监督学习吗?

无监督学习就是使用没有具体结构的数据集。

当使用无监督学习方法训练AI时,需要让AI对数据进行分类。

无监督学习的一个应用例子就是为电商网站预测消费行为。AI没有利用标记过的输入值和输出值数据集,相反它会对输入数据自己分类,从而能让网站知道顾客最喜欢买什么东西。

为啥要讲这两个概念呢?

因为监督学习和无监督学习正是深度学习中的两种学习方法

祝贺你通过入门小测验,现在我们开启深度学习的大门。

深度学习的概念源于人工神经网络的研究,是机器学习研究中的一个新的领域,目的是建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

作为一种机器学习方法,深度学习能让我们用给定的输入值训练AI预测输出值。监督学习和无监督学习都能用来训练AI

我们来看看 Radu Raicea 怎样用制作一个票价预测小工具的例子解释深度学习的工作原理,然后用监督式学习的方法训练它。

首先我们希望这个票价预测工具能用以下输入值预测票价(在这里先不考虑往返机票):

  • 出发机场
  • 到达机场
  • 出发时间
  • 航线

神经网络

我们来看看AI的大脑——神经网络。 和动物一样,这个票价预测AI的大脑也有神经元。下图中的圆圈代表神经元,它们相互连接:

神经元被分为三种不同的层级:

  • 输入层(input layer)
  • 隐藏层(可能有多个)(hidden layer)
  • 输出层(output layer)

输入层接收输入数据。在我们的票价预测AI中,输入层有4个神经元:出发机场,到达机场,出发日期和航线。输入层收到这些信息后会传递给第一个隐藏层。

隐藏层会对输入数据进行数学运算。如何决定隐藏层的数量、以及每层神经元的数量仍是构建神经网络的挑战。

深度学习中的“深度”俩字指的就是神经元中有不止一个隐藏层。

最后,输出层会返回输出数据,在这个例子中,就是AI预测出票价。

所以,这个AI工具到底是怎么计算出预测票价的呢?

当然是靠神奇的深度学习。

神经元之间的每个连接都和权重(weight)紧密相关,它决定了输入值的重要性。初始权重是随机设置的。 当预测某个航班的机票价格时,出发日期是最重要的因素之一,因此,出发日期神经元之间的连接会有很大的权重。

每个神经元都有一个激活函数。如果没有一定的数学知识,很难理解这些函数。不过,这篇文章面向入门者的,所以这里不再讲解深奥的数学知识。

简单来说,这些函数的目标之一就是将神经元的输出值“标准化”。

一旦一组输入数据通过神经网络的所有层级,AI会通过输出层返回输出值。

这不难理解,对吧?

训练神经网络

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

  • 你需要大数据集。
  • 你需要有满足训练所需的强大的计算能力。

拿我们要做的票价预测AI来说,我们需要有历史机票价格的数据。而且因为机场和出发日期的组合有很多种可能,因此这个票价列表信息会非常庞大。

要训练AI,我们需要为它提供来自数据集中的输入值,然后将AI的输出值与数据集的输出值相比较。由于AI还没有接受训练,因此输出值会有很多错误。

一旦将整个数据集中的所有数据输入完成,我们可以创建一个函数,为我们展示AI的输出值与真正的输出值差距有多大。这个函数就叫做“代价函数”(Cost Function)。

理想状态下,我们希望代价函数为零,但是只有AI的输出值和数据集的输出值一样的时候,才代表达到了这个状态。

那问题来了,怎样降低代价函数?

我们上文中提到了“权重”这个东东,还记得吗?在减少代价函数的操作中,权重起着至关重要的作用。改变神经元间的权重可以调整代价函数,我们可以随机改变它们直到代价函数接近0,但这种方法效率很低。

在这种情况下,一种叫做梯度下降(Gradient Descent)的神器隆重出场。

梯度下降是一种寻找函数最小值的方法,我们要找到机票价格模型中代价函数的最小值,就要靠梯度下降。

梯度下降的工作原理是在数据集的每次迭代后,以很小的增量改变权重通过计算确定权重代价函数的导数(或梯度),我们就能发现朝哪个方向可以找到最小值。

要想将代价函数最小化,我们需要多次迭代数据集,这就是为什么刚才说需要有强大的计算能力。

利用梯度下降更新权重可以自动完成,这就是深度学习的魔力所在!等我们训练完机票价格预测AI工具后,我们就可以用它来预测未来的机票价格了!

哦对了,神经网络也有很多类型,不同的AI使用的神经网络也不同,比如计算机视觉技术采用的是卷积神经网络(Convolutional Neural Networks),自然语言处理用的是循环神经网络(Recurrent Neural Networks)。

最后对深度学习做个总结:

  • 深度学习需要神经网络模仿动物的智力。
  • 一个神经网络中有三种神经元层,即输入层、隐藏层(可有多个层级)和输出层。
  • 神经元之间的连接与权重有关,它决定了输入值的重要性。
  • 将激活函数应用到数据中,可以使神经元的输出值“标准化”。
  • 要训练神经网络,你需要一个大数据集。
  • 迭代数据集和将AI输出与数据集输出进行对比,将产生一个代价函数,显示AI的输出与真实输出之间的差异。
  • 数据集的每一次迭代后,神经元之间的权重会通过梯度下降的方式,降低代价函数的值。

深度学习的工作原理,这下理解了吧,那就快入坑学习吧!

原文发布于微信公众号 - 机器人网(robot_globalsources)

原文发表时间:2018-06-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

观点 | 增加深度,加速神经网络优化?这是一份反直觉的实验结果

选自offconvex 作者:Nadav Cohen 机器之心编译 参与:晏奇、黄小天 深度学习的根本理论问题之一是「深度有何作用」?虽然增加神经网络的层数可...

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

深度学习角度 | 图像识别将何去何从?

本文主要介绍了一些经典的用于图像识别的深度学习模型,包括AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet的网络结构及创新之处,并...

54950
来自专栏数据派THU

揭秘深度学习成功的数学原因:从全局最优性到学习表征不变性

来源:机器之心 本文长度为4900字,建议阅读7分钟 本文为深层网络的若干属性,如全局最优性、几何稳定性、学习表征不变性,提供了一个数学证明。 近年来,深度学习...

29570
来自专栏专知

何去何从:从经典深度学习模型探讨图像识别新方向

【导读】1月22日,深度学习工程师George Seif发布一篇文章,主要介绍了一些经典的用于图像识别的深度学习模型,包括AlexNet、VGGNet、Goog...

45260
来自专栏目标检测和深度学习

2017年历史文章汇总|深度学习

11920
来自专栏机器之心

学界 | Adobe提出深度抠图:利用卷积网络分离图像前景与背景

选自arXiv 机器之心编译 参与:蒋思源 抠图,一直是一件体力活,它需要大量的操作与时间。而传统抠图算法主要是以色彩为特征分离前景与背景,并在小数据集上完成,...

468110
来自专栏人工智能头条

特征选择算法在微博应用中的演进历程

19930
来自专栏AI科技评论

学界 | 如何有效预测未来的多种可能?LeCun的误差编码网络给你带来答案

AI 科技评论按:许多自然问题都有一定的不确定性,比如一个杯子从桌上掉地,它可能躺在桌角、立在凳子下面,甚至直接摔碎。这种具有多种可能结果的未来预测一直是一个难...

34380
来自专栏目标检测和深度学习

吴恩达授课,斯坦福CS230深度学习课程资源开放

课程地址:https://web.stanford.edu/class/cs230/

19340
来自专栏机器之心

深度 | 思考VC维与PAC:如何理解深度神经网络中的泛化理论?

39640

扫码关注云+社区

领取腾讯云代金券