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

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

3天内不再提示

7种架构范例的深度学习,每个范例都提供了TensorFlow教程

DPVg_AI_era 来源:lq 2019-02-13 10:40 次阅读

作为MIT的深度学习基础系列课程的一部分,本文概述了7种架构范例的深度学习,每个范例都提供了TensorFlow教程的链接。

我们不久前介绍了MIT的深度学习基础系列课程,由MIT学术研究员Lex Fridman开讲,将介绍使用神经网络解决计算机视觉、自然语言处理、游戏、自动驾驶机器人等领域问题的基础知识。

作为讲座的一部分,Lex Fridman撰文概述了7种架构范例的深度学习,每个范例都提供了TensorFlow教程的链接。

深度学习是表示学习(representation learning):从数据中自动形成有用的表示。我们如何表示世界,可以让复杂的东西对我们人类和我们构建的机器学习模型来说都显得更简单。

对于前者,我最喜欢的例子是哥白尼于1543年发表的日心说,日心说认为太阳是宇宙的中心,完全推翻了之前把地球放在中心的地心说。在最好的情况下,深度学习可以让我们自动完成这一步,从“特征工程”过程中去掉哥白尼(即,去掉人类专家)。

日心说(1543) vs地心说(6th century BC)

在高级别上,神经网络可以是编码器,可以是解码器,也可以是两者的组合:

编码器在原始数据中找到模式,以形成紧凑、有用的表示(representations)。

解码器从这些表示中生成高分辨率数据。生成的数据可以是新的示例,也可以是描述性知识。

其余的则是一些聪明的方法,可以帮助我们有效地处理视觉信息、语言、音频(第1–6项),甚至可以在一个基于这些信息和偶尔的奖励的世界中采取行动(第7项)。下面是一个总体的图示:

在下面的部分中,我将简要描述这7种架构范例,并提供每个范例的演示性TensorFlow教程的链接。请参阅最后的“基础拓展”部分,该部分讨论了深度学习的一些令人兴奋的领域,不完全属于这七个类别。

TensorFlow教程地址:

https://github.com/lexfridman/mit-deep-learning/blob/master/tutorial_deep_learning_basics/deep_learning_basics.ipynb

1.前馈神经网络(FFNNs)

前馈神经网络(Feed Forward Neural Networks, FFNNs)的历史可以追溯到20世纪40年代,这是一种没有任何循环的网络。数据以单次传递的方式从输入传递到输出,而没有任何以前的“状态记忆”。从技术上讲,深度学习中的大多数网络都可以被认为是FFNNs,但通常“FFNN”指的是其最简单的变体:密集连接的多层感知器(MLP)。

密集编码器用于将输入上已经很紧凑的一组数字映射到预测:分类(离散)或回归(连续)。

TensorFlow教程:请参阅我们的深度学习基础教程的第1部分,其中有一个用于波士顿房价预测的FFNNs示例,它是一个回归问题:

网络学习时在训练集和验证集上的误差

2.卷积神经网络(CNN)

CNN(又名ConvNets)是一种前馈神经网络,它使用一种空间不变性技巧来有效地学习图像中的局部模式,这种方法在图像中最为常见。空间不变性(Spatial-invariance )是指,比如说,一张猫脸的图像上,左上角的猫耳与图像右下角的猫耳具有相同的特征。CNN跨空间共享权重,使猫耳以及其他模式的检测更加高效。

CNN不是只使用密集连接的层,而是使用卷积层(卷积编码器)。这些网络用于图像分类、目标检测、视频动作识别以及任何在结构上具有一定空间不变性的数据(如语音音频)。

TensorFlow教程:请参阅我们的深度学习基础教程的第2部分,了解用于对MNIST数据集中的手写数字进行分类的一个CNN示例。

分类预测(右),生成的手写数字(左)。

3.循环神经网络(RNN)

RNN是具有循环的网络,因此具有“状态记忆”。它们可以及时展开,成为权重共享的前馈网络。正如CNN在“空间”上共享权重一样,RNN在“时间”上共享权重。这使得它们能够处理并有效地表示序列数据中的模式。

RNN模块有许多变体,包括LSTM和GRU,以帮助学习更长的序列中的模式。它的应用包括自然语言建模、语音识别、语音生成等。

TensorFlow教程:训练循环神经网络是很有挑战性的,但同时也允许我们对序列数据进行一些有趣而强大的建模。使用TensorFlow生成文本的教程是我最喜欢的教程之一,因为它用很少的几行代码就完成了一些了不起的事情:在字符基础上生成合理的文本:

使用TensorFlow生产文本

使用TensorFlow生产文本教程:

https://www.tensorflow.org/tutorials/sequences/text_generation

4. Encoder-Decoder架构

前3节中介绍的FFNN、CNN和RNN都只是分别使用密集编码器、卷积编码器或循环编码器进行预测的网络。这些编码器可以组合或切换,取决于我们试图形成有用表示的原始数据类型。“Encoder-Decoder”架构是一种更高级的概念,通过对压缩表示进行上采样的解码步骤来生成高维输出,而不是进行预测。

请注意,编码器和解码器可以彼此非常不同。例如,image captioning网络可能有卷积编码器(用于图像输入)和循环解码器(用于自然语言输出)。Encoder-Decoder架构的应用包括语义分割、机器翻译等。

TensorFlow教程:请参阅驾驶场景分割的教程,该教程演示了针对自主车辆感知问题的最先进的分割网络:

使用TensorFlow的驾驶场景分割

地址:

https://github.com/lexfridman/mit-deep-learning/blob/master/tutorial_driving_scene_segmentation/tutorial_driving_scene_segmentation.ipynb

5.自动编码器(Autoencoder)

自动编码器(Autoencoder)是一种采用encoder-decoder架构的更简单的“无监督学习”形式,并学习生成输入数据的精确副本。由于编码的表示比输入数据小得多,网络被迫学习如何形成最有意义的表示。

由于ground truth数据来自输入数据,所以不需要人工操作。换句话说,它是自我监督的。自动编码器的应用包括无监督嵌入、图像去噪等。最重要的是,它的“表示学习”的基本思想是下一节的生成模型和所有深度学习的核心。

TensorFlow教程:在这个TensorFlow Keras教程中,你可以探索自动编码器对(1)输入数据去噪和(2)在MNIST数据集进行嵌入的能力。

地址:

https://www.kaggle.com/vikramtiwari/autoencoders-using-tf-keras-mnist

6.生成对抗网络(GAN)

GAN是一种用于训练网络的框架,GAN网络经过优化,可以从特定的表示中生成新的逼真样本。最简单的形式是,训练过程涉及两个网络。其中一个网络称为生成器(generator),它生成新的数据实例,试图欺骗另一个网络,即鉴别器(discriminator),后者将图像分类为真实图像和假图像。

在过去的几年里,GAN出现了许多变体和改进,包括从特定类别生成图像的能力、从一个域映射到另一个域的能力,以及生成图像的真实性的惊人提高。例如,BigGAN (https://arxiv.org/abs/1809.11096)从单一类别(毒蝇伞)中生成的三个样本:

BigGAN生成的图像

TensorFlow教程:有关GAN变体的示例,请参阅关于conditional GAN和DCGAN的教程。随着课程的进展,我们将在GitHub上发布一个关于GAN的最新教程。

conditional GAN:

https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb

DCGAN:

https://github.com/tensorflow/tensorflow/blob/r1.11/tensorflow/contrib/eager/python/examples/generative_examples/dcgan.ipynb

7.深度强化学习(DeepRL)

强化学习(RL)是一个框架,用于教一个agent如何以一种最大化回报的方式行动。当学习由神经网络完成时,我们称之为深度强化学习(Deep Reinforcement learning, Deep RL)。

RL框架有三种类型:基于策略的(policy-based)、基于价值(value-based)的和基于模型的(model-based)。区别在于神经网络的任务是学习。详细解读请参见本系列课程的第6讲。

Deep RL允许我们在需要做出一系列决策时,在模拟或现实环境中应用神经网络。包括游戏、机器人、神经架构搜索等等。

教程:我们的DeepTraffic环境提供了一个教程和代码示例,可以快速地在浏览器中探索、训练和评估深度RL智能体,我们将很快在GitHub上发布一个支持GPU训练的TensorFlow教程。

MIT DeepTraffic: Deep Reinforcement Learning Competition

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

    关注

    42

    文章

    4771

    浏览量

    100720
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121117
  • tensorflow
    +关注

    关注

    13

    文章

    329

    浏览量

    60528

原文标题:MIT高赞深度学习教程:一文看懂CNN、RNN等7种范例(TensorFlow教程)

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [资料分享]+Google Android SDK开发范例大全

    开发(采用Android SDK 2.1)为主题,通过160多个范例全面且深度地整合手机、网络及服务等多个开发领域,为读者提高程序设计功力提供
    发表于 09-26 10:36

    谷歌深度学习插件tensorflow

    前段时间忙着研究Zedboard,这几天穿插着加入Python的深度学习的研究,最近使用谷歌的tensorflow比较多,而且官方出了中文教程,比较给力,下面在Windows10下安装一下
    发表于 07-04 13:46

    深度学习框架TensorFlow&TensorFlow-GPU详解

    TensorFlow&TensorFlow-GPU:深度学习框架TensorFlow&TensorFlo
    发表于 12-25 17:21

    浅谈深度学习TensorFlow

    使得实现复杂的 DNN 结构成为可能,而不需要深入复杂的数学细节,大数据集的可用性为 DNN 提供必要的数据来源。TensorFlow 成为最受欢迎的深度
    发表于 07-28 14:34

    TOP245设计范例报告

    关于这款IC的使用范例,文章较为详细的提供一个基础范例
    发表于 05-26 10:58 9次下载

    VC++程序开发范例宝典delsave

    VC++程序开发范例宝典delsave,欢迎下载学习
    发表于 09-07 14:33 1次下载

    VC++程序开发范例宝典BindApp

    VC++程序开发范例宝典BindApp,欢迎下载学习
    发表于 09-12 15:57 3次下载

    Pytorch入门教程与范例

    深度学习框架。 对于系统学习 pytorch,官方提供非常好的入门教程 ,同时还提供
    发表于 11-15 17:50 5407次阅读
    Pytorch入门教程与<b class='flag-5'>范例</b>

    TensorFlow实战之深度学习框架的对比

    的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、DeepLearnin
    发表于 11-16 11:52 4571次阅读
    <b class='flag-5'>TensorFlow</b>实战之<b class='flag-5'>深度</b><b class='flag-5'>学习</b>框架的对比

    NI VST上位机编程:LabVIEW范例和仪器设计库教程

    NI矢量信号收发仪可以通过LabVIEW范例和仪器设计库进行编程,或使用业内标准NI-RFSA和NI-RFSG仪器驱动。这两选择提供
    发表于 11-18 08:37 1.1w次阅读
    两<b class='flag-5'>种</b>NI VST上位机编程:LabVIEW<b class='flag-5'>范例</b>和仪器设计库教程

    MIT深度学习基础知识 编码器-解码器架构分析

    本文以 7 架构范例简要介绍深度学习,每种范例
    的头像 发表于 02-21 15:53 1.1w次阅读
    MIT<b class='flag-5'>深度</b><b class='flag-5'>学习</b>基础知识 编码器-解码器<b class='flag-5'>架构</b>分析

    为什么学习深度学习需要使用PyTorch和TensorFlow框架

    如果你需要深度学习模型,那么 PyTorch 和 TensorFlow 都是不错的选择。 并非每个回归或分类问题需要通过
    的头像 发表于 09-14 10:57 3449次阅读

    使用TensorFlow建立深度学习和机器学习网络

    教你使用TensorFlow建立深度学习和机器学习网络。
    发表于 03-26 09:44 18次下载

    HT7A6312低成本电源应用范例

    本文介绍使用 HT7A6312 于低成本电源开发案,针对实物上常用的拓朴架构设计应用范 例,包含:隔离反激式拓朴离架构、非隔离反激式拓朴架构
    发表于 06-30 14:34 2次下载
    HT<b class='flag-5'>7</b>A6312低成本电源应用<b class='flag-5'>范例</b>

    深度学习框架tensorflow介绍

    TensorFlow可以用于各种不同的任务,包括图像和语音识别、自然语言处理和推荐系统等。 TensorFlow提供一个灵活和强大的平台,可以用于构建和训练各种
    的头像 发表于 08-17 16:11 2503次阅读