0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于深度学习的七大学习步骤

电子设计 作者:电子设计 2018-12-14 16:01 次阅读

作者:Matthew Mayo 翻译:Andrewseu

网上有很多的深度学习的免费学习资源,但是可能会对从哪里开始有些困惑。七步内从对深度神经网络的模糊理解到知识渊博的从业者(knowledgeable practitioner)!

深度学习是机器学习的一个分支,拥有很多的相似性,但是却也不同,深度神经网络结构在自然语言处理、计算机视觉、生物信息学和其他领域解决了各种各样的问题。深度学习经历了一场巨大的最近研究的重现,并且在很多领域中已经展现出最先进的成果。

本质上,深度学习是超过一层隐藏神经元的神经网络的执行。但是,这是对深度学习的一个简单的看法,并且不是一个没有争议的观点。这些深层构架也非常不同,对不同任务或目标优化会有不同的执行。在这样一个恒定速率进行着的大量研究在以史上未有的速度展现新的和创新的深度学习模型。

关于深度学习的七大学习步骤

最近的一个白热化的研究课题,深度学习似乎影响着机器学习的所有领域,相关的还有数据科学。粗略看看相关arXiv目录下最近的论文,很容易看出大量正在被发表的论文都是深度学习相关的。鉴于已经产生的令人惊叹的成果,很多研究者,从业者和外行都在想深度学习是否是真正的人工智能的边界。

这系列的阅读材料和教程旨在给深度神经网络的新人提供一条路径去理解这个巨大而复杂的课题。尽管我不假设对神经网络和深度学习真正的理解,但是我假设你对一般的机器学习理论和实践具有某种程度的熟悉度。为了克服在一般机器学习理论和实践的不足,你可以看看最近KDnuggets发布的7 Steps to Mastering Machine Learning With Python。由于我们也看用Python写的例子的执行,对语言有些熟悉会很有用。介绍和综述的资源在previodsly mentioned post也是提供的。

这篇博客将以紧密结合的顺序使用网络上免费提供的材料在理论层面上获得对深度神经网络的一些理解,然后继续转向一些实际的执行。同样的,借鉴过来的引用材料只属于创建者,跟资源会一起被标注。如果你看到有人因为他们的工作没有被正确引用,请告知我,我会很快修改的。

一个完全诚实的免责申明:深度学习是一个复杂而在广度和深度(pun unintended?)变化很快的领域,因此这篇博客不保证包括所有成为深度学习专家的手册;这样的一个转化将会需要更多的时间,很多附加材料和很多实际建立和测试的模型。但是,我相信的是,使用这里的资源可以帮你在这样一个路径下开始。

第一步:介绍深度学习

如果你正在读这个并且对这个课题感兴趣,你可能已经对深度神经网络已经熟悉,甚至在一个很基础的层次。神经网络有一个故事性的历史,但是我们将不会深入。但是,我们需要如果在开始就有一个普遍高层次的理解。

首先,看看DeepLearning .tv精彩的介绍视频。在 写完这个的时候已经有14个视频了;如果你喜欢看完他们,但是一定要看前五个,包含了神经网络的基础和一些更常见的结构。

然后,仔细阅读Geoff Hinton,Yoshua Bengioh和Yann LeCun的NIPS 2015 Deep Learning Tutorial,一个稍微更低层次的介绍。

完成我们的第一步,读the first chapter of Neural Networks and Deep Learning,这个由Michael Nielden写的精妙的,不断更新的在线书,这会更近一步但是依然很粗浅。

第二步:学习技术

深度神经网络依赖代数和微积分的数学基础。然而这篇博客不会产生任何理论上的数学,在继续之前有一些理解将会很有帮助。

第一,看Andrew Ng的linear algebra review videos。但是不是绝对的必要,想要对线性代数了解更深的话,从Ng的斯坦福课程看看Zico Kolter 和Chuong Do写的Linear Algebra Review and Reference.

然后看看Professor Leonard的Introduction to the Derivative of a Function. 视频是很简洁的,例子是很清晰的,并且提供了从数学的视角来看在反向传播的过程中到底发生了什么。一会儿会更多。

接下来迅速浏览下维基Sigmoid function的词条,一个在神经网络中经常通过单个神经元应用的边界差分函数。

最后,从数学上休息下阅读谷歌研究科学家 Quoc Le的Deep Learning Tutorial.

第三步:反向传播和梯度下降

神经网络包括现代深度构架重要的一部分是反向传播算法的错误,使用离输入更近的神经元通过网络更新权重。非常坦率的说,这就是神经网络继承他们”力量“(缺乏更好的术语)的地方。反向传播和一个随后分布式的最小化权重的优化方法,为了最小化损失函数。在深度学习中一个常见的优化方法是梯度下降。

首先,看看这些斯图加特大学Marc Toussaint 写的关于梯度下降的介绍笔记。

然后,看看Matt Mazur写的this step by step example of backpropagation in action.

继续,阅读Jeremy Kun关于 coding backpropagation in Python的信息博客。仔细看看完整代码也是建议的,尝试自己写一遍代码。

最后,读Quoc Le写的Deep Learning Tutorial的第二部分,为了获取一些更具体更常见的深度结构和他们用途的介绍。

第四步:实践

具体的神经网络结构的下一步介绍将会使用在现在研究中最流行的python深度学习库包括实际执行。在一些情况下,一些不同的库的优化是为了某个特定的神经网络结构,并且已经在某些特定的领域立足,我们将会使用三个不同的深度学习库。这不是多余的,在特定领域的实践中与最新的库保持一致时学习时很重要的一步。接下来的训练也将会让你自己评价不同的库,并且形成一个在哪些问题上用哪个的直觉。

现在欢迎你选择一个库或者联合库进行安装,是否继续那些教程取决于你的选择。如果你希望尝试一个库并且使用它来执行接下来步骤的教程,我会推荐TensorFlow,原因如下,我会提到最相关的(至少是在我的眼中):它执行自动分化(autodifferentiation),意味着你不需要担心从头执行反向传播,更可能使代码更容易理解(尤其是对一个初学者来说)。

我写关于TensorFlow的文章是在刚出来的时候TensorFlow Disappoints – Google Deep Learning Falls Shallow,这个标题暗示着比在实际中更失望;我最初关注的是它缺少GPU集丛的网络训练(很可能很快会有它自己的方式).无论如何,如果你没有看列在下面的白皮书但是想看更多关于TensotFlow的材料,我建议读我原始的文章,然后跟着Zachary Lipton's 写的很好的部分,TensorFlow is Terrific – A Sober Take on Deep Learning Acceleration.

TensorFlow

Google的TensorFlow是基于数据流图展现的一个通用的机器i学习库。

安装TensorFlow在这里

查看白皮书

尝试它的

文档

Theano

Theano是被蒙特利尔大学的LISA group积极开发的。

安装Theano在这里

介绍教程

文档

Caffe

Caffe是由加州大学伯克利分校的BVLC开发的。Theano和Tensorflow可以认为是通用的深度学习库,Caffe是由一个计算机视觉的组开发的,主要考虑的解决那样的问题;但是,它也是一个通用的库为了为不同领域建立不同的深度学习框架。

在这里安装Caffe

阅读来进行熟悉

同时看看文档

记住这些并不仅仅是现在流行的库。事实上,还有很多很多可以选择,这些选择是基于教程的流行性,文档和总体上研究上的接受程度。

其他的深度学习库选择包括:

Keras---一个用于Theano和TensorFlow高层、极简Python神经网络库

Lasagne---Theano顶上的轻量级python库

Torch---Lua机器学习算法库

DeepLearning4j---Jaav和Scala开源、分布式深度学习库

Chainer---一个灵活的、直观的python神经网络库

Mocha---Juliade的一个深度学习框架

安装好这些库,现在我们可以继续实践。

第五步:卷积神经网络和计算机视觉

计算机视觉解决处理和理解图片和它的符号信息。大部分领域最近的突破都是来自于深度神经网络的使用。特别的,卷积神经网络在最近扮演一个很重要的角色。

首先,读Yoshua Bengio的deep learning with computer vision,为了对这个课题有一个理解。

然后。如果你安装好了TensorFlow,阅读并执行这个教程,这个是用卷积i神经网络分类CIFAR-10图片。如果你安装了Caffe,对于上一个教程的替代,执行Caffe中的卷积神经网络分类MNIST数据集图片。

这里是一个粗略等同于Caffe 的练习Theano tutorial.

然后,读Krizhevsky, Sutskever和Hinton的seminal convolutional neural network paper增加额外的视野。

第六步:递归网和语言处理

自然语言处理(NLP)是收益与深度学习的另一个领域。关心理解自然语言,NLP通过运用递归神经网络(RNN)有很多最新的成功。

Andrej Karpathy有一篇很赞的博客,题目是The Unreasonable Effectiveness of Recurrent Neural Networks,列出了RNN在训练字符级语言模型的有效性的大纲。它提到的代码是通过Torch用Lua写的,所以你可以跳过;这个在纯理论层次上依旧很有用。

这个教程为语言处理在TensorFlow上执行RNN.

你也可以用Theano并且用这个教程尝试,用文字嵌套执行了一个RNN.

最后,你可以读Yoon Kim的Convolutional Neural Networks for Sentence Classification,这是CNN在语言处理上的又一个应用。Denny Britz 有一篇博客,题目是Implementing A CNN For Text Clasification in TensorFlow,使用的是电影的评论数据。

第七步:更深入的课题

上面的步骤在深度学习已经从理论上进步到实践。通过在前两步执行卷积神经网络和递归神经网络,希望的是对它们力量和功能性的预先感知。与CNN和RNN一样普遍的有很多其他随着基础研究出现的已经存在的深度结构。

有很多超过前面理论步骤展现的其他的考虑,同样的,下面是这些另外结构和考虑的快速的调研。

为了更深的理解适合时间序列预测的特定类型的RNN,长短项记忆网络,读Christopher Olah写的这篇文章。

Denny Britz写的这篇文章是用LSTM和GRUs的 很好的一个关于RNN的教程。看这篇论文更深地讨论GRUs和LSTMs.

很显然这没有包含所有的深度学习构架。限制波尔兹曼机是一个脑中很明显需要排除的,正如antoencoders,和一系列产生的相关的模型包括Generative Adversarial Networks. 但是,必须在某处画一条线,不然这篇将会一直下去。

对那些感兴趣其他深度学习构架的,我建议看看Yshua Bengio的ftml.

对于我们的最终目标和有一些不同的东西,看看Google DeepMindShakir Mohamed的 A Statistical Analysis of Deep Learning。这个比我们平常看到的材料更理论一些,但是值得用另一种方法看我们熟悉的事物。Shakir对6个月的课程写了一系列文章,展现测试wide-held beliefs,增强数据的连接,并且深度学习中要隐藏的东西。有一个所有发布的PDF集合.

希望足够的信息已经展现,能够给读者一个对深度神经网络介绍性的综述,并且提供一些想对这个课题继续研究的热情。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4765

    浏览量

    100571
  • 机器学习
    +关注

    关注

    66

    文章

    8382

    浏览量

    132447
  • 深度学习
    +关注

    关注

    73

    文章

    5493

    浏览量

    121005
收藏 人收藏

    评论

    相关推荐

    NPU在深度学习中的应用

    随着人工智能技术的飞速发展,深度学习作为其核心驱动力之一,已经在众多领域展现出了巨大的潜力和价值。NPU(Neural Processing Unit,神经网络处理单元)是专门为深度学习
    的头像 发表于 11-14 15:17 342次阅读

    GPU深度学习应用案例

    GPU在深度学习中的应用广泛且重要,以下是一些GPU深度学习应用案例: 一、图像识别 图像识别是深度学习
    的头像 发表于 10-27 11:13 337次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 401次阅读

    深度学习中的时间序列分类方法

    时间序列分类(Time Series Classification, TSC)是机器学习深度学习领域的重要任务之一,广泛应用于人体活动识别、系统监测、金融预测、医疗诊断等多个领域。随着深度
    的头像 发表于 07-09 15:54 742次阅读

    深度学习中的无监督学习方法综述

    深度学习作为机器学习领域的一个重要分支,近年来在多个领域取得了显著的成果,特别是在图像识别、语音识别、自然语言处理等领域。然而,深度学习模型
    的头像 发表于 07-09 10:50 546次阅读

    深度学习与nlp的区别在哪

    深度学习和自然语言处理(NLP)是计算机科学领域中两个非常重要的研究方向。它们之间既有联系,也有区别。本文将介绍深度学习与NLP的区别。 深度
    的头像 发表于 07-05 09:47 825次阅读

    深度学习中的模型权重

    深度学习这一充满无限可能性的领域中,模型权重(Weights)作为其核心组成部分,扮演着至关重要的角色。它们不仅是模型学习的基石,更是模型智能的源泉。本文将从模型权重的定义、作用、优化、管理以及应用等多个方面,深入探讨
    的头像 发表于 07-04 11:49 992次阅读

    深度学习常用的Python库

    深度学习作为人工智能的一个重要分支,通过模拟人类大脑中的神经网络来解决复杂问题。Python作为一种流行的编程语言,凭借其简洁的语法和丰富的库支持,成为了深度学习研究和应用的首选工具。
    的头像 发表于 07-03 16:04 578次阅读

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的一个重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度
    的头像 发表于 07-02 14:04 903次阅读

    深度学习的模型优化与调试方法

    深度学习模型在训练过程中,往往会遇到各种问题和挑战,如过拟合、欠拟合、梯度消失或爆炸等。因此,对深度学习模型进行优化与调试是确保其性能优越的关键步骤
    的头像 发表于 07-01 11:41 705次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器学习的范畴,但
    的头像 发表于 07-01 11:40 1203次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度学习技术,使得
    发表于 04-23 17:18 1247次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    为什么深度学习的效果更好?

    导读深度学习是机器学习的一个子集,已成为人工智能领域的一项变革性技术,在从计算机视觉、自然语言处理到自动驾驶汽车等广泛的应用中取得了显著的成功。深度
    的头像 发表于 03-09 08:26 596次阅读
    为什么<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的效果更好?

    什么是深度学习?机器学习深度学习的主要差异

    2016年AlphaGo 击败韩国围棋冠军李世石,在媒体报道中,曾多次提及“深度学习”这个概念。
    的头像 发表于 01-15 10:31 1027次阅读
    什么是<b class='flag-5'>深度</b><b class='flag-5'>学习</b>?机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的主要差异

    GPU在深度学习中的应用与优势

    人工智能的飞速发展,深度学习作为其重要分支,正在推动着诸多领域的创新。在这个过程中,GPU扮演着不可或缺的角色。就像超级英雄电影中的主角一样,GPU在深度学习中拥有举足轻重的地位。那么
    的头像 发表于 12-06 08:27 1221次阅读
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中的应用与优势