2018-06-29 17:56:00 cluster1893 阅读数 1343
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

读《一天搞懂深度学习》ppt笔记

学习自http://www.cnblogs.com/liuyihai/p/8448977.html,推荐看这个链接。很全面很完整,我的笔记仅是记部分东西。

softmax

输出层:
一般情况下,输出层可以输出任何值:

在输出层前加Softmax Layer:

推荐的开发工具:


tips


不要总是将原因归到过拟合,下图中,56层的网络在训练集误差大,所以这个就是没训练好,而不是在测试集的过拟合。
20层的是过拟合。

对训练过程:

(1)选择合适的损失


(2)需要mini batch


也就是批梯度下降法。快而且好的方法。

每100个数据进行一次梯度下降
整个训练集数据拿来训练20轮
- 每轮整个数据集迭代结束后,对数据进行一次打乱,即shuffle

(3)选择合适的激励函数


可以解决梯度消失问题
很多都是用relu作为激励函数。

(4)恰当的学习率


Adagrad可以达到学习率由大变小:

(5)momentum



对测试数据:


早停:

权重消失

L1正则化其实就是这个

dropput

在训练集上:
在每一个mini batch 数据迭代更新完权重后,重新抽样dropout的神经元。这样,每个mini batch 训练的都是一个新结构的网络。网络的结构在重新抽样中被改变了。
在测试集上:
不能dropout
dropout和maxout在一起可以工作的更好


网络结构

2017-11-09 00:00:00 eNohtZvQiJxo00aTz3y8 阅读数 1487
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

原文标题:Want to know how Deep Learning works? Here’s a quick guide for everyone

作者:Radu Raicea

翻译:程思衍

校对:冯羽

本文长度为2500字,建议阅读6分钟

Medium上获得超过一万五千赞的深度学习入门指南,结合图文为你缕清深度学习中的各个基础概念的内涵。


Image credit: Datanami

 

人工智能(AI)

(https://en.wikipedia.org/wiki/Artificial_intelligence)

和机器学习(ML)

(https://en.wikipedia.org/wiki/Machine_learning)

都属于目前最热门的话题。

 

在日常生活中,AI这个术语我们随处可见。你或许会从立志高远的开发者哪那里听说她(他)们想要学习AI。你又或许会从运营者那里听到他们想要在他们的的服务中实施AI。但往往这些人中的绝大多数都并不明白什么是AI。

 

在你阅读完这篇文章之后,你将会了解AI和ML的基本知识。而更重要的是,你将会明白深度学习(https://en.wikipedia.org/wiki/Deep_learning),这类最热门的机器学习,是如何运作的。

 

这篇教程适用于所有人,所以本文并没有涉及高级数学。

 

背景

 

理解深度学习如何工作的第一步是掌握下列重要术语之间的区别。

 

  • 人工智能(AI)v.s.机器学习(ML)

 

人工智能是人类智能在计算机上的复制。

 

AI的研究之初,那时的研究人员尝试着复制人类智能来完成像玩游戏这样特定的任务。

他们引入了大量的计算机需要遵守的规则。有了这些规则,计算机就有了一份包含各种可能行动的清单,并基于这些规则作出决定(https://en.wikipedia.org/wiki/Expert_system)

 

机器学习,指的是机器使用大量数据集而非硬编码规则来进行学习的能力。

 

ML允许计算机通过自身来学习。这种学习方法得益于现代计算机的强大性能,性能保证了计算机能够轻松处理样本数巨大的数据集。

 

  • 监督学习 v.s. 非监督学习

 

监督学习

(https://en.wikipedia.org/wiki/Supervised_learning)

指的是利用已标注数据集进行的学习,该数据中包含输入和期望输出。

 

当你利用监督学习来训练AI时,你提供给它一份输入,并告诉它预期的输出。

 

如果AI所生成的输出是错误的(译者注:与期望输出不同),它将重新调整计算(注:应该是对公式的参数进行重新计算)。这个过程将会在数据集上迭代运行,直到AI不再犯错误。

 

预测天气的AI便是监督学习的一个典型例子。它通过学习过往数据来预测未来天气。该训练数据拥有输入(气压,湿度,风速)和输出(温度)。

 

非监督学习

(https://en.wikipedia.org/wiki/Unsupervised_learning)

是机器学习应用没有指定结构的数据集来进行学习的任务。

 

当你应用非监督学习来训练AI时,你可以让AI对数据进行逻辑分类。

 

电商网站上的行为预测AI便是非监督学习的一个例子。它无法通过拥有输入和输出的已标注数据集来进行学习。相反地,它在输入数据上创建它自己的分类。它将会告诉你哪一种用户最可能购买差异化的商品。

 

深度学习又是如何运作的呢?

 

现在你已经准备好去理解什么是深度学习,以及它是如何运作的。

 

深度学习是机器学习中的一种方法。在给予它一组输入后,它使我们能够训练AI来预测结果。监督学习和非监督学习都能够用来训练AI。

 

我们将通过建立一个假设的机票价格预估系统来阐述深度学习是如何运作的。我们将应用监督学习方法来训练它。

 

我们想要该机票价格预估系统基于下列输入来进行预测(为了简洁,我们除去了返程机票):

 

  • 起飞机场

  • 到达机场

  • 起飞日期

  • 航空公司

 

神经网络

 

接下来我们将视角转向我们的AI的大脑内部。

 

和动物一样,我们预估系统AI的大脑中有神经元。将它们用圆圈表示。这些神经元在内部都是相互连接的。

 

Image credit: CS231n


这些神经元又被分为三种层次:

 

  • 输入层

  • 隐藏层

  • 输出层

 

输入层接收输入数据。在本案例中,在输入层中有4个神经元:起飞机场,到达机场,起飞日期以及航空公司。输入层将输入传递给第一个隐藏层。

 

隐藏层针对我们的输入进行数学运算。创建神经网络的一大难点便是决定隐藏层的层数,以及每层中神经元的个数。

 

深度学习中的“深度”所指的是拥有多于一层的隐藏层。

 

输出层返回的是输出数据。在本案例中,输出层返回的是价格预测。

 


那么它到底是如何来运算价格预测的呢?

 

这便是我们将要揭晓的深度学习的奇妙之处了。

 

每两个神经元之间的连接,都对应着一个权重。该权重决定了输入值的重要程度。初始的权重会被随机设定。

 

当预测机票价格时,起飞日期是决定价格的最重要的因素之一。因此,与起飞日期这个神经元相连的连接将会有更高的权重。

 

Image credit: CodeProject

 

每个神经元都有一个激活函数(https://en.wikipedia.org/wiki/Activation_function)。若没有数学推导,这些函数十分晦涩难懂。

 

简而言之,激活函数的作用之一便是将神经元的结果“标准化”。

 

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

 

一点也不复杂,是吧?

 

训练神经网络

 

训练AI是深度学习中最难的部分了。这又是为什么呢?

 

  • 你需要一个庞大的数据集

  • 你还需要强大的算力

 

对于我们的机票价格预估系统,我们需要得到过往的票价数据。由于起始机场和起飞时间拥有大量可能的组合,所以我们需要的是一个非常庞大的票价列表。

 

为了训练机票价格预估系统的AI,我们需要将数据集的数据给予该系统,然后将它输出的结果与数据集的输出进行比对。因为此时AI仍然没有受过训练,所以它的输出将会是错误的。

 

一旦我们遍历完了整个数据集,我们便能创造出一个函数,该函数告诉我们AI的输出和真实输出到底相差多少。这个函数我们称为损失函数。


在理想情况下,我们希望我们的损失函数为0,该理想情况指的是AI的输出和数据集的输出相等之时。 

 

如何减小损失函数呢?

 

改变神经元之间的权重。我们可以随机地改变这些权重直到损失函数足够小,但是这种方法并不够高效。

 

取而代之地,我们应用一种叫做梯度下降(https://en.wikipedia.org/wiki/Gradient_descent)的技巧。

 

梯度下降是一种帮助我们找到函数最小值的技巧。在本案例中,我们寻找损失函数的最小值。

 

在每次数据集迭代之后,该方法以小增量的方式改变权重。通过计算损失函数在一组确定的权重集合上的导数(梯度),我们便能够知悉最小值在哪个方向。

 

Image credit: Sebastian Raschka

 

为了最小化损失函数,你需要多次迭代数据集。这便是需要高算力的原因了。

利用梯度下降更新权重的过程是自动进行的。这便是深度学习的魔力所在!

 

一旦我们训练好机票价格预估的AI之后,我们便能够用它来预测未来的价格了。

 

拓展阅读

 

神经网络有非常多的种类:用于计算机视觉(https://en.wikipedia.org/wiki/Computer_vision)的卷积神经网络(https://en.wikipedia.org/wiki/Convolutional_neural_network)以及应用于自然语言处理(https://en.wikipedia.org/wiki/Natural_language_processing)的循环神经网络(https://en.wikipedia.org/wiki/Recurrent_neural_network)

 

如果你想要学习深度学习的技术细节,我建议你参加一个在线课程。

 

吴恩达(https://medium.com/@andrewng)的深度学习专项课程(https://www.coursera.org/specializations/deep-learning)是当下最好的深度学习课程之一。如果你并不需要一个证书,你便可以免费旁听这门课程。

 

小结

 

1. 深度学习应用神经网络来模仿动物智能。

2. 神经网络中有三个层次的神经元:输入层、隐藏层以及输出层。

3. 神经元之间的连接对应一个权重,该权重决定了各输入数据的重要程度。

4. 神经元中应用一个激活函数来“标准化”神经元输出的数据。

5. 你需要一个庞大的数据集来训练神经网络。

6. 在数据集上迭代并与输出结果相比较,我们将会得到一个损失函数,损失函数能告诉我们AI生成的结果和真实结果相差多少。

7. 在每次数据集的迭代之后,都会利用梯度下降方法调整神经元之间的权重,以减小损失函数。

 

原文链接:

https://medium.freecodecamp.org/want-to-know-how-deep-learning-works-heres-a-quick-guide-for-everyone-1aedeca88076

程思衍,本科毕业于北航计算机系,美国南加州大学 Data Informatics 专业在读硕士。曾进行过问答系统、机器学习预测、高并发等方面的开发,目前主要从事问答领域的学习和研究。

翻译组招募信息

工作内容:将选取好的外文前沿文章准确地翻译成流畅的中文。如果你是数据科学/统计学/计算机专业的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友,数据派翻译组欢迎你们加入!

你能得到:提高对于数据科学前沿的认知,提高对外文新闻来源渠道的认知,海外的朋友可以和国内技术应用发展保持联系,数据派团队产学研的背景为志愿者带来好的发展机遇。

其他福利:和来自于名企的数据科学工作者,北大清华以及海外等名校学生共同合作、交流。


点击文末“阅读原文”加入数据派团队~


为保证发文质量、树立口碑,数据派现设立“错别字基金”,鼓励读者积极纠错

若您在阅读文章过程中发现任何错误,请在文末留言,或到后台反馈,经小编确认后,数据派将向检举读者发8.8元红包

同一位读者指出同一篇文章多处错误,奖金不变。不同读者指出同一处错误,奖励第一位读者。

感谢一直以来您的关注和支持,希望您能够监督数据派产出更加高质的内容


转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派THUID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”加入组织~

2018-07-19 09:48:01 u013069552 阅读数 1177
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

深度学习入门(一天读懂深度学习-李宏毅)

1、深度学习框架图: (参考网址https://blog.csdn.net/u010164190/article/details/72633245

2、神经网络要解决的问题

2.1、基于网络功能函数的定义(网络模型的选择,激励函数的选择,优化方法的选择)-->网络模型好坏的评估(损失函数的定义)-->选出一个最优模型-->过拟合问题的解决

2.2、常见的网络结构:DNN,CNN,RNN,LSTM(这个四种神经网络的前向传递,反向参数优化推导网址http://www.cnblogs.com/pinard/p/6418668.html)

2.3、常见的激励函数:sigmod,tanh,ReLU,maxout

2.4、常见的优化方法:SGD、Adagrad、Adadelta、Adam、adamax、Nada                                                                                          (https://blog.csdn.net/yunxinan/article/details/74858070

2.5、常用的损失函数:square error,cross entropy

2.6、常用的解决过拟合的方法:early stop、正则化(权重衰减)、dropout、增加训练样本

 

2019-10-16 13:56:57 yoggieCDA 阅读数 8
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师
13825820-ae3eda47976e0c0c.jpg

作者 | Prakhar Ganesh
编译 | 安然
来源 | 图灵TOPIA

近日,发表在《DataScience》上的一篇文章,使用深度学习方法,从数据处理、循环网络、RNN上的LSTM、CNN-LSTMs等方面介绍了时间序列分析,同时解释了时间序列的概念以及为什么选择深度学习的方法等问题。

什么是时间序列分析?

时间序列是一系列数据点,使用时间戳进行排序,是对时间序列数据的分析。

从水果的每日价格到电路提供的电压输出的读数,时间序列的范围非常大,时间序列分析的领域也是如此。分析时间序列数据通常侧重于预测,但也可以包括分类,聚类,异常检测等。

例如,通过研究过去的价格变化模式,可以尝试预测曾经想要购买的一款手表的价格,判断它的最佳购买时间!

为什么选择深度学习?

时间序列数据可能非常不稳定且复杂。深度学习方法不假设数据的基本模式,而且对噪声(在时间序列数据中很常见)的鲁棒性更强,是时间序列分析的首选方法。

数据处理

在继续进行预测之前,重要的是首先以数学模型可以理解的形式处理数据。通过使用滑动窗口切出数据点,可以将时间序列数据转换为监督学习问题。然后,每个滑动窗口的预期输出是窗口结束后的时间步长。

13825820-3bf0e12a4eb78201.jpg

循环网络

循环网络一种复杂的深度学习网络。它们可以记住过去,因此是序列处理的首选。RNN单元是循环网络的骨干。

RNN单元具有2个传入连接,即输入和先前状态。同样,它们还具有2个传出连接,即输出和当前状态。这种状态有助于他们结合过去和当前输入的信息。

一个简单的RNN单元太简单了,无法统一用于跨多个域的时间序列分析。因此,多年来提出了各种各样的变体,以使循环网络适应各个领域,但核心思想保持不变!、

RNN上的LSTM

LSTM单元格是特殊的RNN单元格,其中带有“门”,其本质上是介于0到1之间的值,对应于状态输入。这些门背后的直觉是忘记或保留过去的信息,这使他们不仅可以记住过去,还可以记住更多。

CNN-LSTMs

由于状态信息要经过每一个步长,所以RNNs只能记住最近的过去。

另一方面,像LSTM和GRU这样的门控网络可以处理相对较长的序列,但是即使这些网络也有其局限性!!为了更好地理解这一问题,还可以研究消失和爆炸的梯度。

那么如何处理很长的序列呢?最明显的解决办法就是缩短它们!!但如何?一种方法是丢弃信号中呈现的细粒度时间信息。

这可以通过将一小组数据点累积在一起并从中创建特征来完成,然后将这些特征像单个数据点一样传递给LSTM。

13825820-a15b824557a7373b.jpg

多尺度分层LSTMs

看看CNN-LSTM架构,有一件事浮现在我的脑海中……为什么要使用CNNs来合并那些组?为什么不使用不同的LSTM呢!多尺度分层LSTMs是基于相同的思想构建的。

输入是在多个尺度上处理的,每个尺度都致力于做一些独特的事情。适用于更细粒度输入的较低标度专注于提供细粒度(但仅是最近的)时间信息。

另一方面,较高的比例集中在提供完整的图片(但没有细粒度的细节)上。多个刻度可以一起更好地理解时间序列。

下一步是什么?

时间序列分析是一个非常古老的领域,包含各种跨学科的问题,每种陈述问题都有其自身的挑战。

然而,尽管每个领域都根据自己的要求调整了模型,但是时间序列分析中仍然有一些一般性的研究方向需要加以改进。

例如,从最基本的RNN单元到多尺度分层LSTM的每项开发都以某种方式专注于处理更长的序列,但是即使最新的LSTM修改也有其自身的序列长度限制,并且目前仍然没有一种架构可以真正处理极长的序列。

2017-11-21 00:00:00 Mbx8X9u 阅读数 389
  • 深度学习基础与TensorFlow实践教程

    本课程主要介绍了深度学习的基础原理和TensorFlow系统基本使用方法。TensorFlow是目前机器学习、深度学习领域优秀的计算系统之一,本课程将结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。

    21447 人正在学习 去看看 AI100讲师

微信公众号

关键字全网搜索最新排名

【机器学习算法】:排名第一

【机器学习】:排名第一

【Python】:排名第三

【算法】:排名第四


转自:小象

 | dzone.com     | 开源中国


如果你经常想让自己弄清楚机器学习和深度学习的区别,阅读该文章,我将用通俗易懂的语言为你介绍他们之间的差别。


机器学习和深度学习变得越来越火。突然之间,不管是了解的还是不了解的,所有人都在谈论机器学习和深度学习。无论你是否主动关注过数据科学,你应该已经听说过这两个名词了。


为了展示他们的火热程度,我在 Google trend 上搜索了这些关键字:


如果你想让自己弄清楚机器学习和深度学习的区别,请阅读本篇文章,我将用通俗易懂的语言为你介绍他们之间的差别。下文详细解释了机器学习和深度学习中的术语。并且,我比较了他们两者的不同,别说明了他们各自的使用场景。


什么是机器学习和深度学习?


让我们从基础知识开始:什么是机器学习?和什么是深度学习?如果你对此已有所了解,随时可以跳过本部分。


什么是机器学习?


一言以蔽之,由 Tom Mitchell 给出的被广泛引用的机器学习的定义给出了最佳解释。下面是其中的内容:


“计算机程序可以在给定某种类别的任务 T 和性能度量 P 下学习经验 E ,如果其在任务 T 中的性能恰好可以用 P 度量,则随着经验 E 而提高。”


是不是读起来很绕口呢?让我们用简单的例子来分解下这个描述。


示例 1:机器学习和根据人的身高估算体重


假设你想创建一个能够根据人的身高估算体重的系统(也许你出自某些理由对这件事情感兴趣)。那么你可以使用机器学习去找出任何可能的错误和数据捕获中的错误,首先你需要收集一些数据,让我们来看看你的数据是什么样子的:

图中的每一个点对应一个数据,我们可以画出一条简单的斜线来预测基于身高的体重

例如这条斜线:


Weight (in kg) = Height (in cm) - 100


...这些斜线能帮助我们作出预测,尽管这些斜线表现得很棒,但是我们需要理解它是怎么表现的,我们希望去减少预测和实际之间的误差,这也是衡量其性能的方法。


深远一点地说,我们收集更多的数据 (experience),模型就会变得更好。我们也可以通过添加更多变量(例如性别)和添加不同的预测斜线来完善我们的模型。


示例2:飓风预测系统


我们找一个复杂一点的例子。假如你要构建一个飓风预测系统。假设你手里有所有以前发生过的飓风的数据和这次飓风产生前三个月的天气信息。


如果要手动构建一个飓风预测系统,我们应该怎么做?




首先我们的任务是清洗所有的数据找到数据里面的模式进而查找产生飓风的条件。


我们既可以将模型条件数据(例如气温高于40度,湿度在80-100等)输入到我们的系统里面生成输出;也可以让我们的系统自己通过这些条件数据产生合适的输出。


我们可以把所有以前的数据输入到系统里面来预测未来是否会有飓风。基于我们系统条件的取值,评估系统的性能(系统正确预测飓风的次数)。我们可以将系统预测结果作为反馈继续多次迭代以上步骤。


让我们根据前边的解释来定义我们的预测系统:我们的任务是确定可能产生飓风的气象条件。性能P是在系统所有给定的条件下有多少次正确预测飓风。经验E是我们的系统的迭代次数。


什么是深度学习?


深度学习的概念并不新颖。它已经存在好几年了。但伴随着现有的所有的炒作,深度的学习越来越受到重视。正如我们在机器学习中所做的那样,先来看看深度学习的官方定义,然后用一个例子来解释。


“深度学习是一种特殊的机器学习,通过学习将世界使用嵌套的概念层次来表示并实现巨大的功能和灵活性,其中每个概念都定义为与简单概念相关联,而更为抽象的表示则以较不抽象的方式来计算。”


这也有点让人混乱。下面使用一个简单示例来分解下此概念。


示例1: 形状检测


先从一个简单的例子开始,从概念层面上解释究竟发生了什么的事情。我们来试试看如何从其他形状中识别的正方形。



我们眼中的第一件事是检查图中是否有四条的线(简单的概念)。如果我们找到这样的四条线,我们进一步检查它们是相连的、闭合的和相互垂直的,并且它们是否是相等的(嵌套的概念层次结构)。


所以,我们完成了一个复杂的任务(识别一个正方形),并以简单、不太抽象的任务来完成它。深度学习本质上在大规模执行类似逻辑。


示例2: 猫 vs. 狗


我们举一个动物辨识的例子,其中我们的系统必须识别给定的图像中的动物是猫还是狗。阅读下此文(https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/,以了解深度学习在解决此类问题上如何比机器学习领先一步。


机器学习和深度学习的对比


现在的你应该已经对机器学习和深度学习有所了解,接下来我们将会学习其中一些重点,并比较两种技术。


数据依赖性


深度学习与传统的机器学习最主要的区别在于随着数据规模的增加其性能也不断增长。当数据很少时,深度学习算法的性能并不好。这是因为深度学习算法需要大量的数据来完美地理解它。另一方面,在这种情况下,传统的机器学习算法使用制定的规则,性能会比较好。下图总结了这一事实。



硬件依赖


深度学习算法需要进行大量的矩阵运算,GPU 主要用来高效优化矩阵运算,所以 GPU 是深度学习正常工作的必须硬件。与传统机器学习算法相比,深度学习更依赖安装 GPU 的高端机器。


特征处理


特征处理是将领域知识放入特征提取器里面来减少数据的复杂度并生成使学习算法工作的更好的模式的过程。特征处理过程很耗时而且需要专业知识。


在机器学习中,大多数应用的特征都需要专家确定然后编码为一种数据类型。


特征可以使像素值、形状、纹理、位置和方向。大多数机器学习算法的性能依赖于所提取的特征的准确度。


深度学习尝试从数据中直接获取高等级的特征,这是深度学习与传统机器学习算法的主要的不同。


基于此,深度学习削减了对每一个问题设计特征提取器的工作。例如,卷积神经网络尝试在前边的层学习低等级的特征(边界,线条),然后学习部分人脸,然后是高级的人脸的描述。更多信息可以阅读神经网络机器在深度学习里面的有趣应用



问题解决方式


当应用传统机器学习算法解决问题的时候,传统机器学习通常会将问题分解为多个子问题并逐个子问题解决最后结合所有子问题的结果获得最终结果。相反,深度学习提倡直接的端到端的解决问题。


举例说明:


假设有一个多物体检测的任务需要图像中的物体的类型和各物体在图像中的位置。



传统机器学会将问题分解为两步:物体检测和物体识别。首先,使用一个边界框检测算法扫描整张图片找到可能的是物体的区域;然后使用物体识别算法(例如 SVM 结合 HOG )对上一步检测出来的物体进行识别。


相反,深度学习会直接将输入数据进行运算得到输出结果。例如可以直接将图片传给 YOLO 网络(一种深度学习算法),YOLO 网络会给出图片中的物体和名称。


执行时间


通常情况下,训练一个深度学习算法需要很长的时间。这是因为深度学习算法中参数很多,因此训练算法需要消耗更长的时间。最先进的深度学习算法 ResNet完整地训练一次需要消耗两周的时间,而机器学习的训练会消耗的时间相对较少,只需要几秒钟到几小时的时间。


但两者测试的时间上是完全相反。深度学习算法在测试时只需要很少的时间去运行。如果跟 k-nearest neighbors(一种机器学习算法)相比较,测试时间会随着数据量的提升而增加。不过这不适用于所有的机器学习算法,因为有些机器学习算法的测试时间也很短。


可解释性


至关重要的一点,我们把可解释性作为比较机器学习和深度学习的一个因素。


我们看个例子。假设我们适用深度学习去自动为文章评分。深度学习可以达到接近人的标准,这是相当惊人的性能表现。但是这仍然有个问题。深度学习算法不会告诉你为什么它会给出这个分数。


当然,在数学的角度上,你可以找出来哪一个深度神经网络节点被激活了。但是我们不知道神经元应该是什么模型,我们也不知道这些神经单元层要共同做什么。所以无法解释结果是如何产生的。


另一方面,为了解释为什么算法这样选择,像决策树(decision trees)这样机器学习算法给出了明确的规则,所以解释决策背后的推理是很容易的。因此,决策树和线性/逻辑回归这样的算法主要用于工业上的可解释性。


机器学习和深度学习用于哪些领域?


维基百科上关于机器学习的文章概述了所有使用机器学习的领域。这些包括:


  • 计算机视觉 用于车牌识别和面部识别等的应用。

  • 信息检索 用于诸如搜索引擎的应用 - 包括文本搜索和图像搜索。

  • 市场营销 针对自动电子邮件营销和目标群体识别等的应用。

  • 医疗诊断 诸如癌症识别和异常检测等的应用。

  • 自然语言处理,如情绪分析和照片标记等的应用。



上图恰当地总结了机器学习的应用领域,涵盖了整个机器智能的更广泛的话题。

使用机器学习/深度学习的公司的一个主要例子是Google


在上图中,你可以看到 Google 正在将机器学习应用于其各种产品。机器学习/深度学习的应用是无尽的 - 你仅需寻找正确的时机!


突击测试


为了评估你是否真的了解这个区别,我们将进行一次测验。 你可以在这个帖子中发布你的答案。


请务必涉及以下步骤,以保证是完整的对各个场景进行回答。


  • 你将如何使用机器学习解决以下问题?

  • 你如何使用深度学习解决以下问题?

  • 结论:哪种方法是更好的?


场景1


你必须建立一个用于自动驾驶车辆的软件组件。你构建的系统应该从相机中获取原始像素数据,并预测你应该引导车轮的角度是多少。


场景2


给定一个人的信用和背景信息,你的系统应该评估出此人是否应该有资格获得贷款。


场景3


你必须创建一个可以将俄语消息翻译成印地语消息的系统,以便俄语代表能够与当地的群众通信。


找到针对上述问题的各种数据科学家的讨论记录和观点。


未来发展趋势


本文概述了机器学习和深度学习及其差异。在本节中,我将分享我对机器学习和深度学习未来发展的观点。


  • 首先,随着业内对数据科学和机器学习使用的日益增长的趋势,对于每个想要生存下来的公司来说,重视机器学习将变得非常重要。苹果正在 iPhone X 中使用机器学习,这标志着这项技术的发展方向。

  • 深入学习让我们每天都感到惊讶,并将在不久的将来继续如此。这是因为深度学习是被证明为最先进的性能最好的技术之一。

  • 针对机器学习和深度学习的研究将是持续的。但与前几年的研究仅限于学术界不同的是,机器学习和深度学习方面的研究将在业界和学术界都有爆发式的发展。而且拥有比以往更多的资助,更有可能成为人类整体发展的主旋律。


协作翻译

原文:Deep Learning vs. Machine Learning

链接:https://dzone.com/articles/deep-learning-vs-machine-learning-the-hottest-topi

译者:Tocy, rever4433, soaring, mskf

招募 志愿者

广告、商业合作

请发邮件:357062955@qq.com

喜欢,别忘关注~

帮助你在AI领域更好的发展,期待与你相遇!


没有更多推荐了,返回首页