社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

零基础入门深度学习工作原理?看本文就对了!

景略集智 • 7 年前 • 635 次点击  

零基础入门深度学习工作原理?看本文就对了!

昨天为大家推荐了几本入门深度学习的必看书籍,错过的朋友请戳这里

在入门学习深度学习之前,有必要先了解一下深度学习的工作原理。著名程序猿小哥 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)。

想学习更多知识?

了解深度学习的工作原理只是学习深度学习的第一步,我觉得接下来可以先看吴恩达在coursera上开设的深度学习课程

集智再补充一些资源,我们曾整理了一批机器学习、深度学习的网络资源,少年请拿去:戳这里

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

  • 深度学习需要神经网络模仿动物的智力。

  • 一个神经网络中有三种神经元层,即输入层、隐藏层(可有多个层级)和输出层。

  • 神经元之间的连接与权重有关,它决定了输入值的重要性。

  • 将激活函数应用到数据中,可以使神经元的输出值“标准化”。

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

  • 迭代数据集和将AI输出与数据集输出进行对比,将产生一个代价函数,显示AI的输出与真实输出之间的差异。

  • 数据集的每一次迭代后,神经元之间的权重会通过梯度下降的方式,降低代价函数的值。

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

但是如果害怕自己基础不好,学习AI技能感到吃力,怎么破?没关系!!

假如你是真正的小白,但又希望能以最高效的方式学习人工智能知识,我们这里正好有个免费学习AI的机会,让你从零到精通变身AI工程师,不了解一下?

机会传送门:戳这里!!

这可能是正点赶上AI这班车的最好机会,不要错过哦。


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/i4QNNWleI7
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12770
 
635 次点击