作为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,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论