查看原文
其他

这些深度学习术语,你了解多少?

【方向】 云栖社区 2019-03-29

摘要:入门深度学习,不知道这些术语怎么和别人对话?


对于一个新手来说,深度学习术语可能非常难以理解。本表试图解释深度学习常用术语并链接到原始参考,以帮助读者深入了解特定主题。


深度学习与“一般”的机器学习术语之间的界限非常模糊。例如,我这里不包括“交叉验证”,因为它是一种通用技术,用于整个机器学习。但是,我加入了softmax或word2vec等术语,因为它们通常与深度学习相关,即使它们不是深度学习技术。


激活函数


为了让神经网络学习复杂的决策边界,我们将非线性激活函数应用于其某些层。常用的函数包括sigmoid、tanh、ReLU(整流线性单元)及它们的变体。


Adadelta


Adadelta是一种基于梯度下降的学习算法,可以随时间调整每个参数的学习速率。它被认为是对Adagrad的改进,因为Adagrad对超参数很敏感,并且可能过于快速的降低学习速度。Adadelta类似于rmsprop,可以用来代替朴素SGD。


相关资源:


1、ADADELTA:一种自适应学习率方法;

http://arxiv.org/abs/1212.5701


2、斯坦福CS231n:优化算法;

http://cs231n.github.io/neural-networks-3/


3、梯度下降优化算法概述;

http://sebastianruder.com/optimizing-gradient-descent/


Adagrad


Adagrad是一种自适应学习速率算法,它可以跟随时间变化,并自动调整每个参数的学习速率。它可以代替vanilla SGD使用,并且对稀疏数据特别有用,它可以为不经常更新的参数分配更高的学习率。


相关资源:


1、在线学习和随机

http://www.magicbroom.info/Papers/DuchiHaSi10.pdf


2、斯坦福CS231n:优化算法;

http://cs231n.github.io/neural-networks-3/


3、梯度下降优化算法概述;

http://sebastianruder.com/optimizing-gradient-descent/


Adam


Adam是一种类似于rmsprop的自适应学习速率算法,但是使用梯度的第一和第二时刻的运行平均值直接估计更新,并且还包括偏差校正项。


1、Adam:随机优化的一种方法

http://arxiv.org/abs/1412.6980


2、梯度下降优化算法概述

http://sebastianruder.com/optimizing-gradient-descent/


Affine layer(仿射层)


一种神经网络中的完全连接层。仿射意味着前一层中的每个神经元都连接到当前层中的每个神经元。在许多情况下,这是神经网络的“标准”层。在进行最终预测之前,通常会在卷积神经网络或递归神经网络的输出之上添加仿射层。仿射层通常形式的y=f(Wx+b),其中x是该层的输入,W参数,b偏置向量,f是非线性激活函数。


注意力机制


注意力机制受到人类视觉注意力机制的启发,即关注图像特定部分的能力。注意力机制可以应用在语言处理和图像识别架构中,以帮助网络了解在进行预测时“关注”的内容。


1、深度学习和NLP中的注意力机制

http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/


Alexnet


Alexnet是一种卷积神经网络架构的名称,它以绝对的优势赢得了ILSVRC 2012竞赛。它由五个卷积层组成,其中一些后面是最大池层,三个是完全连接的层,最后是1000-way softmax。Alexnet在深度卷积神经网络的ImageNet分类中被引入。


自动编码器


自动编码器是一种神经网络模型,其目标是预测输入本身,通常是通过网络中某处的“瓶颈”。通过引入瓶颈,我们可以强制网络输入的低维表示,这样能有效地将输入压缩为更好的表示。自动编码器与PCA和其他降维技术差不多,但由于其非线性的特性,它可以学习更复杂的映射。而且存在很多种自动编码器架构,包括去噪自动编码器、变分自动编码器或序列自动编码器。


平均池(Average-Pooling)


Average-Pooling是用于图像识别的卷积神经网络的汇集技术。它的工作原理是在一系列特征(例如像素)上滑动窗口,并获取窗口内所有值的平均值。它可以将输入压缩为较低维表示。


反向传播


反向传播是一种有效计算神经网络中梯度的算法,更一般地说,是一种前馈计算图。可以把它归结为从网络输出开始应用差异化的链规则并向后传播梯度,反向传播的第一次使用可以追溯到1960年代的Vapnik。


1、计算图上的微积分:反向传播

http://colah.github.io/posts/2015-08-Backprop/


反向传播时间(BPTT)


Backpropagation Through Time(paper)是应用于递归神经网络(RNN)的反向传播算法。BPTT可被视为应用于RNN的标准反向传播算法,其中每个时间步长代表一个层,并且参数在各层之间共享。由于RNN在所有时间步骤中共享相同的参数,因此必须将“一段时间”的错误“通过时间”反向传播到所有先前的时间步骤,因此名称。当处理长序列时,经常使用Truncated-BPTT来降低计算成本。Truncated-BPTT在固定步数后停止反向传播错误。


1、通过时间反向传播:它做什么以及如何做到这一点


批量标准化(Batch Normalization)


批量标准化是一种对每个小批量的层输入进行标准化的技术。它加快了训练的速度,允许使用更高的学习率。目前已经发现批量标准化对卷积和前馈神经网络非常有效,但尚未成功应用于递归神经网络。


1、批量标准化:通过减少内部协变量转换来加速深度网络训练;

http://arxiv.org/abs/1502.03167


2、批量标准化递归神经网络;

http://arxiv.org/abs/1510.01378


双向RNN


双向RNN是一种神经网络,包含两个进入不同方向的RNN。前向RNN从开始到结束读取输入序列,而后向RNN从结束到开始读取输入序列。两个RNN堆叠在彼此之上,并且通常通过附加两个向量来组合它们的状态。双向RNN通常用于自然语言问题,因为希望在进行预测之前考虑单词之前和之后的上下文。


1、双向递归神经网络;


Caffe


Caffe是伯克利视觉和学习中心开发的深度学习框架,

Caffe在视觉任务和CNN模型中特别受欢迎。


分类交叉熵损失(Categorical Cross-Entropy Loss)


分类交叉熵损失也称为负对数似然,它是分类问题中流行损失函数,它可以测量两个概率分布之间的相似性,通常是真实标签和预测标签。它由真实标签的概率分布L =-sum(y * log(y_prediction))在何处给出,y_prediction是预测标签的概率分布,通常来自softmax。


通道(Channel)


向Deep Learning模型输入数据可以有多个通道。一般的图像是具有红色、绿色和蓝色通道。图像可以表示为三维张量,其尺寸对应于通道、高度和宽度。自然语言数据也可以具有多个通道,例如以不同类型的嵌入的形式。


卷积神经网络(CNN,ConvNet)


CNN使用卷积来连接输入的局部区域的提取特征。大多数CNN都包含卷积,汇集和仿射层。CNN已经越来越受欢迎,特别是他们在视觉识别任务方面的出色表现。


1、斯坦福CS231n类-视觉识别的卷积神经网络

http://cs231n.github.io/


2、NLP中使用卷积神经网络;

http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/


深度信念网络(DBN)


DBN是一种概率图形模型,其以无监督的方式学习数据的分层表示。DBN由多个隐藏层组成,每个连续的层中的神经元之间具有连接。DBN是通过将多个RBN堆叠在一起并逐个训练来构建的。


1、深度信念网络的快速学习算法

https://www.cs.toronto.edu/~hinton/absps/fastnc.pdf


DeepDream


Google发明的一种技术,旨在提炼深层卷积神经网络捕获的知识。该技术可以生成新图像或者转换现有图像并赋予它们梦幻般的风格。


Dropout


Dropout是神经网络的正则化技术,可防止过度拟合。它通过在每次训练迭代中将它们的一部分随机设置为0来防止神经元过度适应。可以以各种方式解释丢失,例如从指数数量的不同网络中随机采样。Dropout层首先通过在CNN中的使用而获得普及,但此后已应用于其他层。


1、Dropout:一种防止神经网络过度拟合的简单方法

2、递归神经网络正则化


嵌入(Embedding)


嵌入是将输入(例如单词或句子)映射到向量中。有一种流行的嵌入类型是word嵌入,例如word2vec或GloVe。它们可以嵌入句子,段落或图像。例如,通过将图像及其文本描述映射到公共嵌入空间并最小化它们之间的距离,我们可以将标签与图像匹配。嵌入可以明确地学习,例如在word2vec中,也作为监督任务的一部分,例如情感分析。通常,网络的输入层用预先训练的嵌入进行初始化,然后将其微调到手头的任务。


梯度爆炸问题


梯度爆炸问题正好与消失梯度问题相反。在深度神经网络中,梯度可能在反向传播期间爆炸,导致数量溢出。处理梯度爆炸的常用技术是执行梯度裁剪。


1、训练递归神经网络的难点;


微调


微调是指使用来自其他任务(例如无人监督的训练任务)的参数初始化网络,然后根据手头的任务更新这些参数的技术。例如,NLP架构通常使用像word2vec这样的预训练词嵌入模型,然后在训练期间根据诸如情感分析之类的特定任务更新这些词嵌入模型。


梯度裁剪


梯度裁剪是一种防止在非常深的网络中爆炸梯度的技术。执行梯度裁剪有很多方式,但常见的是当参数矢量的L2范数超过某个阈值时归一化参数矢量的梯度

new_gradients=gradients * threshold/l2_norm(gradients)。


手套(GloVe)


GloVe是一种用于获得单词的矢量表示(嵌入)的无监督学习算法。GloVe向量与word2vec具有相同的目的,但由于受到共现统计的训练,因此具有不同的向量表示。


1、GloVe:Word表征的全局向量


GoogleLeNet


它是赢得ILSVRC 2014挑战的卷积神经网络架构。网络使用Inception模块来减少参数并提高网络内计算资源的利用率。


GRU


门控循环单元是LSTM单元的简化版本,参数较少。就像LSTM单元一样,它使用门控机制防止RNN通过出现梯度消失的问题。GRU由一个复位门和更新门组成,用于确定旧存储器的哪一部分与当前时间步的新值保持一致。


1、使用RNN编码器-解码器学习短语表示以进行统计机器翻译;

http://arxiv.org/abs/1406.1078v3


2、循环神经网络教程-使用Python和Theano实现GRU/LSTM RNN;

http://www.wildml.com/2015/10/recurrent-neural-network-tutorial-part-4-implementing-a-grulstm-rnn-with-python-and-theano/


初始模块


初始模块用于卷积神经网络,通过堆叠1×1卷积降低维数,实现更高效的计算和更深入的网络。


Keras


Kears是一个基于Python的深度学习库,包含许多用于深度神经网络的高级构建块。它可以在TensorFlow、Theano或CNTK之上运行。


LSTM


长短期记忆网络是为了通过使用记忆门控机制来防止递归神经网络中的消失梯度问题。使用LSTM单元计算RNN中的隐藏状态,帮助网络有效地传播梯度并学习远程依赖性。


1、长短期记忆网络;

http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf


2、了解LSTM网络;

http://colah.github.io/posts/2015-08-Understanding-LSTMs/


3、循环神经网络教程-使用Python和Theano实现GRU/LSTM RNN;

http://www.wildml.com/2015/10/recurrent-neural-network-tutorial-part-4-implementing-a-grulstm-rnn-with-python-and-theano/


Max-pooling


池操作通常在卷积神经网络中使用。最大池层会选择特征块中的最大值,就像卷积层一样,池化层通过窗口大小和步幅大小进行参数化。例如,我们可以使用步幅大小2在10×10特征矩阵上滑动尺寸为2×2的窗口,在每个窗口内的所有4个值中选择最大值,从而产生新的5×5特征矩阵。合并图层有助于通过仅保留最显着的信息来减少表征的维度,并且在图像输入的情况下,它们提供转换的基本不变性(即使图像移动了几个像素,也将选择相同的最大值)。通常在连续的卷积层之间会插入池化层。


MNIST


该MNIST数据集是最常用的图像识别数据集。它包括60,000个训练和10,000个手写数字测试示例。每个图像大28×28像素,现有技术模型通常在测试装置上达到99.5%或更高的精度。


动量(Momentum)


Momentum是Gradient Descent算法的扩展、可加速或抑制参数更新。


1、通过反向传播的错误来学习表征


多层感知器(MLP)


多层感知器是一种前馈神经网络,具有多个完全连接的层,使用非线性激活函数来处理不可线性分离的数据。MLP是多层神经网络的最基本形式,如果它超过2层,则是深度神经网络。


神经机器翻译(NMT)


NMT系统使用神经网络在不同语言之间进行翻译,例如英语和法语。NMT系统可以使用双语语料库进行端到端的训练,这与需要手工制作的特征的传统机器翻译系统不同。NMT系统通常使用编码器和解码器递在归神经网络来实现,该编码器和解码器分别是编码源句子和产生目标句子。


1、用神经网络进行序列学习的序列

2、使用RNN编码器-解码器学习短语表示


神经网络图灵机(NTM)


NMT是神经网络架构,可以从示例中推断出简单的算法。例如,NTM可以通过示例输入和输出来学习排序算法。NTM通常学习某种形式的记忆和注意力机制来在程序执行期间处理状态。


1、神经网络图灵机


噪声对比估计(NCE)


噪声对比估计是通常用于训练具有大输出词汇的分类器采样损耗。在大量可能的类别上计算softmax非常昂贵,但使用NCE,我们可以通过训练分类器将问题从“实际”分布和人为生成的噪声分布区分开来,将问题简化为二元分类问题。


1、噪声对比估计:非标准化统计模型的一种新的估计原理

2、通过噪声对比估计有效地学习词嵌入


受限玻尔兹曼机(RBN)


RBM是一种概率图形模型,也可以解释为随机人工神经网络,RBN以无监督的方式学习数据的表征。RBN由可见层和隐藏层以及这些层中的二进制神经元之间的连接组成。RBN可以使用对比发散(Contrastive Divergence)进行有效训练,这是梯度下降的近似值。


1、动力系统中的信息处理:和谐理论的基础

2、受限玻尔兹曼机器简介


递归神经网络(RNN)


RNN通过隐藏状态顺序交互,它最多需要N个输入并产生多达N个输出。例如,输入可以是句子,输出是句子的情感分类(N-to-1)。输入可以是单个图像,输出可以是与图像的描述(1到N)对应的单词序列。在每个时间步,RNN基于当前输入和先前隐藏状态计算新的隐藏状态(“存储器”)。“递归性”就是源于这样的事实:在每个步骤中使用相同的参数并且网络基于不同的输入执行相同的计算操作。


结构递归神经网络


结构递归神经网络是递归神经网络结合树状结构的推广。它也在每次递归时应用相同的权重,但结构递归神经网络可以使用反向传播进行端到端的训练。虽然可以将树结构作为优化问题的一部分来学习,但结构递归神经网络通常应用于已经具有预定义结构的问题,如自然语言处理中的解析树。


1、用结构递归神经网络解析自然场景和自然语言处理


RELU


线性整流函数的简称。ReLU通常用作深度神经网络中的激活函数,它们的定义是f(x)=max(0,x)。ReLU函数在性能上是优于tanh函数,并且它们对梯度消失问题的影响较小。ReLUs是卷积神经网络中最常用的激活函数。ReLU存在若干变体,例如Leaky ReLU,Parametric ReLU(PReLU)或更平滑的softplus近似。


1、深入研究整流函数:超越ImageNet分类的表现;

2、用非线性整流函数改善神经网络声学模型;

3、线性整流函数改进受限制的玻尔兹曼机器;


RESNET


Deep Residual Networks赢得了2015年ILSVRC的挑战。它通过在层的堆栈之间引入快捷方式连接来工作,允许优化器学习“更容易”的残差映射,而不是更复杂的原始映射。ResNet在ImageNet测试集上实现了3.57%的错误率。


1、深度残留学习的图像识别;


RMSProp


RMSProp是一种基于梯度的优化算法,它与Adagrad类似,但引入了额外的衰减方法来抵消Adagrad学习率的快速下降。


1、用于机器学习的神经网络

2、斯坦福CS231n:优化算法

3、梯度下降优化算法概述


Seq2Seq


序列到序列模型将序列(例如句子)作为输入读取并产生另一序列作为输出。它与标准RNN的不同之处在于,在网络开始产生任何输出之前完全读取输入序列。通常,seq2seq模型使用两个RNN实现,用作编码器和解码器。神经机器翻译是seq2seq模型的典型示例。


1、用神经网络进行序列学习的序列


SGD


随机梯度下降是一种基于梯度的优化算法,用于在训练阶段学习网络参数,通常使用反向传播算法计算梯度。在实践中,人们使用SGD的小批量版本,其中参数更新是基于批次而不是单个示例来执行的,从而提高了计算效率。存在许多对vanilla SGD的扩展,包括Momentum、Adagrad、rmsprop、Adadelta或Adam。


1、在线学习随机优化的自适应子梯度方法;

2、斯坦福CS231n:优化算法;

3、梯度下降优化算法概述;


SOFTMAX


SOFTMAX函数通常用于将原始分数的向量转换成在一个神经网络的概率类用于分类的输出层。它通过取幂和除以标准化常数来对分数进行标准化。如果我们正在处理大量的类,例如机器翻译中的大量词汇表,标准化这些常量的计算成本很高。这就需要各种替代方案以使计算更有效,包括Hierarchical Softmax或使用基于采样的损失,例如NCE。


TensorFlow


TensorFlow是一个开源的C++/Python软件库,使用数据流图进行数值计算。它是由Google创建,在设计方面,它与Theano最相似。


Theano


Theano是一个Python库,允许你自定义、优化和评估数学表达式。它包含许多用于深度神经网络的基础块。Theano是一个类似于Tensorflow的低级库,高级库包括Keras和Caffe。


梯度消失问题


消失梯度问题通常出现在非常深的神经网络中,通常是递归神经网络,因为它使用了使梯度趋于很小的激活函数(在0到1的范围内)。而这些小梯度在反向传播期间成倍增加,所以它们倾向于在整个层中“消失”,从而阻止网络学习远程依赖性。解决此问题的常用方法是使用不受小梯度影响的ReLU激活函数或使用明确消除梯度消失的LSTM等架构,与此问题相反的是梯度爆炸问题。


1、关于训练递归神经网络的难点;


VGG


VGG指的是一种卷积神经网络模型,这个模型分别在2014年ImageNet图像定位和分类中获得第一名和第二名。VGG模型由16-19个权重层组成,并使用尺寸为3×3和1×1的小卷积滤波器。


1、用于大规模图像识别的非常深的卷积网络


word2vec


word2vec是一种算法和工具,通过尝试预测文档中单词的上下文来学习词嵌入。例如,生成的单词向量具有一些有趣的属性vector(‘queen')~= vector('king')-vector('man')+vector('woman')。可以使用两个不同的目标来学习这些嵌入:Skip-Gram目标尝试从单词上预测上下文,并且CBOW目标尝试从其上下文预测单词。


1、向量空间中Word表示的有效估计;

2、词语分布式表达及其组合性;

3、word2vec参数学习解释;


本文由阿里云云栖社区组织翻译。

文章原标题《deep-learning-glossary》

作者:wildml 译者:虎说八道,审校:。



end

因为信仰,油画专业的他自学开发进击阿里技术P9

阿里云喻义:十年牧码,从码农走向工程师的进化之路

饿了么数据库发展中的解决方案

《阿里巴巴Java开发手册》2018年完整资料下载!

更多精彩

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存