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

    文章

    4538

    浏览量

    98438
  • 深度学习
    +关注

    关注

    73

    文章

    5206

    浏览量

    119804
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60232

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    labview里的范例项目

    请问哪位好汉的labview里有图中的两个项目范例?我安装了real-time模块和DAQ模块怎么就没有这两个范例?还请有的大侠能帮帮忙!!
    发表于 05-30 20:29

    分享推荐一个labview视觉检测的范例

    相关课程推荐:《8周LabVIEW视觉项目编程实战特训营》分享一个labview vision and motion自带的视觉检测范例,安装了该工具包的电脑应该都有。之前学习别人一个复杂程序的时候,因为信息太多,容易进入混乱区,带来各种迷惑。而这个简单
    发表于 09-05 11:57

    Nanopi深度学习之路(1)深度学习框架分析

    着手,使用Nanopi2部署已训练好的检测模型,例如硅谷电视剧的 Not Hotdog 检测器应用,会在复杂的深度学习历程中有些成就感。 目前已有几十流行的深度
    发表于 06-04 22:32

    谷歌深度学习插件tensorflow

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

    干货!教你怎么搭建TensorFlow深度学习开发环境!

    到1的过程却是难住很多人的最大原因。在了解到教程中的这些东西之后,相信理解Tensorflow的官方教程已经对你没有难度了,如果你跟着官方教程走下去,会发现其实这些东西并不算难,相信以各位的智慧一定能学会的。那么本次教程就到这里,如果还没有机器的朋友推荐一个好用的
    发表于 09-27 13:56

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

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

    浅谈深度学习TensorFlow

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

    labview+yolov4+tensorflow+openvion深度学习

    /1XavCXSIOYaukCzER7eZQ3g提取码:[hide] 3icg [/hide]随着机器学习深度学习的发展,很多人眼很难去直接量化的特征,
    发表于 05-10 22:33

    CPLD设计范例

    CPLD设计范例
    发表于 06-30 17:57 63次下载

    迪米系统架构应用范例

    迪米系统架构应用范例从第一、二代最早期的系统整合方式,用单一或分布式的计算机插上数片I/O 卡及通讯适配卡(RS232/RS485/RS422),用来收集远程的I/O 数据并
    发表于 07-11 11:56 471次阅读

    TOP245设计范例报告

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

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

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

    深度学习框架tensorflow介绍

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

    TOP单端反激设计范例

    电子发烧友网站提供《TOP单端反激设计范例.pdf》资料免费下载
    发表于 10-26 11:04 0次下载
    TOP单端反激设计<b class='flag-5'>范例</b>