深入理解深度学习
文章平均质量分 89
《深入理解深度学习》系列以机器学习中的神经网络算法为主线,由浅入深地介绍各类型的神经网络结构与应用场景以及深度学习理论中必备的知识点。
von Neumann
技术日新月异,人类生活方式正在快速转变,这一切给人类历史带来了一系列不可思议的奇点。我们曾经熟悉的一切,都开始变得陌生。
展开
-
深入理解深度学习——BERT派生模型:T5(Text to Text Transfer Transformer)
T5的全称为Text to Text Transfer Transformer,是谷歌提出的预训练语言模型领域的通用模型,该模型将所有自然语言问题都转化成文本到文本的形式,并用一个统一的模型解决。为了得到大一统的高质量预训练语言模型,T5不可避免地走上了“大力出奇迹”的道路,使用了更大的模型和更多的数据,但是模型和数据规模只是T5通往最强模型的手段之一,T5最核心的理念是:使用前缀任务声明及文本答案生成,统一所有自然语言处理任务的输入和输出。原创 2023-06-24 15:48:13 · 20092 阅读 · 4 评论 -
深入理解深度学习——BERT派生模型:BART(Bidirectional and Auto-Regressive Transformers)
UniLM和XLNet都尝试在一定程度上融合BERT的双向编码思想,以及GPT的单向编码思想,同时兼具自编码的语义理解能力和自回归的文本生成能力。由脸书公司提出的BART(Bidirectional and Auto-Regressive Transformers)也是如此,它是一个兼顾上下文信息和自回归特性的模型。不同的是,UniLM和XLNet的模型结构与BERT基本一致,通过修改训练过程让模型具备了一定的文本生成能力,故模型的主要功能依然是语义理解。原创 2023-06-24 15:19:43 · 12115 阅读 · 1 评论 -
深入理解深度学习——BERT派生模型:RoBERTa(A Robustly Optimized BERT Pretraining Approach)
现阶段,预训练语言模型总是可以通过更大的模型和更多的数据获得更好的性能,GPT系列模型就是此类优化方向的典范。RoBERTa(模型名源自论文名A Robustly Optimized BERT Pretraining Approach)是脸书公司提出的在BERT基础上增加训练数据,充分训练得到的预训练语言模型。原创 2023-06-23 22:00:40 · 12563 阅读 · 1 评论 -
深入理解深度学习——BERT派生模型:ALBERT(A Lite BERT)
预训练语言模型的一个趋势是使用更大的模型配合更多的数据,以达到“大力出奇迹”的效果。随着模型规模的持续增大,单块GPU已经无法容纳整个预训练语言模型。为了解决这个问题,谷歌提出了ALBERT,该模型与BERT几乎没有区别,但其所占用的显存空间可以减少至BERT的十分之一乃至更少,方便了预训练语言模型的训练与部署。Embedding层低秩分解是为了固定Embedding层的参数规模,使其不随模型的增大而增大。原创 2023-06-23 21:39:34 · 13482 阅读 · 0 评论 -
深入理解深度学习——BERT派生模型:SpanBERT(Improving Pre-training by Representing and Predicting Spans)
MLM训练方法是BERT拥有自然语言理解能力的核心训练方法。然而,BERT在预训练过程中挑选掩码词的概率是独立计算的,即BERT掩码词的粒度是最小的,可能是单个词,也可能是一个词的部分子词。SpanBERT的核心思想是,扩大掩码范围会让模型有更好的性能。SpanBERT没有修改BERT的结构,也没有使用更多的语料,仅仅通过设计更合理的预训练任务和目标,使模型有更好的性能表现,思路非常独特。原创 2023-06-23 21:21:44 · 10267 阅读 · 0 评论 -
深入理解深度学习——BERT派生模型:XLM(Cross-lingual Language Model)
BERT本应在语义理解上具有绝对优势,但其训练语料均为英语单语,受限于此,早期的BERT只在英语文本理解上有优势。随着全球化进程的加速,跨语言的预训练语言模型也具有非常重要的应用场景。为了探究BERT在跨语言场景中的性能,跨语言语言模型XLM(Cross-lingual Language Model)应运而生。使用BPE编码是为了解决词表中未登录词过多的问题,而在训练语料中加入大量双语平行语料及采用TLM训练方法都是为了关联多语种输入文本的词义和句义。原创 2023-06-23 16:51:19 · 11559 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):模型总结与注意事项
2018年涌现出了很多优秀的预训练语言模型,ELMo和GPT都为自然语言处理领域带来了不一样的惊喜,但最具影响力或可以被称为自然语言处理领域中里程碑式的模型,非BERT莫属。BERT的出现,打破了自然语言处理领域各任务的模型混战的局面,使用预训练加微调训练这样的二段式,BERT在各个领域都能很轻松地达到,甚至超越SOTA性能。[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019。原创 2023-06-23 15:46:44 · 11274 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):微调训练-[单句标注]
在进行单句标注任务时,需要在每个词的最终语义特征向量之后添加全连接层,将语义特征转化为序列标注任务所需的特征。与文本问答不同的是,单句标注任务需要对每个词都做标注,故无须横向对比,即不需要引入辅助向量,直接对经过全连接层后的结果做Softmax操作,即可得到各类标签的概率分布,如下图所示。BERT根据自然语言处理下游任务的输入和输出的形式,将微调训练支持的任务分为四类,分别是句对分类、单句分类、文本问答和单句标注。,得到最终的NER标注结果为:“爱因斯坦”是人名,“柏林”是地名。》系列中的其它文章介绍。原创 2023-06-23 14:45:47 · 10894 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):微调训练-[单句分类]
BERT根据自然语言处理下游任务的输入和输出的形式,将微调训练支持的任务分为四类,分别是句对分类、单句分类、文本问答和单句标注。本文就将介绍单句分类的微调训练,其它类别的任务将在《因此,针对单句二分类任务,无须对BERT的输入数据和输出数据的结构做任何改动,如下图所示,单句分类使用句首标签。的输出特征作为分类标签,计算分类标签与真实标签的交叉熵,将其作为优化目标,在任务数据上进行微调训练。[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.原创 2023-06-23 14:30:26 · 10677 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):微调训练-[句对分类]
针对句对分类任务,BERT在预训练过程中就做了充分的准备,使用NSP训练方法获得了直接捕获句对语义关系的能力。针对二分类任务,BERT不需要对输入数据和输出数据的结构做任何改动,直接使用与NSP训练方法一样的输入和输出结构即可。BERT根据自然语言处理下游任务的输入和输出的形式,将微调训练支持的任务分为四类,分别是句对分类、单句分类、文本问答和单句标注。,将句首标签所对应的输出值作为分类标签,计算预测分类标签与真实分类标签的交叉熵,将其作为优化目标,在任务数据上进行微调训练。操作得到对应的类别结果。原创 2023-06-23 14:19:20 · 11306 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):输入表示
中介绍的Self-attention不会考虑词的位置信息,因此Transformer需要两套Embedding操作,一套为One-hot词表映射编码(下图中标注为Token Embeddings),另一套为位置编码(下图中标注为Position Embeddings)。值得注意的是,Transformer使用的位置编码一般为三角函数,而BERT使用的位置编码和分割编码均在预训练过程中训练得到,其表示位置信息的能力更强。》所述的两种训练方法,在真实训练的过程中,两种方法是混合在一起使用的。原创 2023-06-23 13:43:56 · 11760 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):NSP任务
具体而言,BERT的输入语句将由两个句子组成,其中,50%的概率将语义连贯的两个连续句子作为训练文本(注意,连续句子应取自篇章级别的语料,以确保前后语句的语义强相关),另外50%的概率将完全随机抽取的两个句子作为训练文本,BERT需要根据输入的两个句子,判断它们是否为真实的连续句对。编码后的输出标签,BERT可以学会捕获两个输入句对的文本语义,在连续句对的预测任务中,BERT的正确率可以达到97%~98%,为下游任务的微调训练打下了坚实基础。标签表示分隔符,用于区分两个句子,而。原创 2023-06-23 13:35:11 · 11879 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):MLM(Masked Language Model)
虽然BERT比GPT的训练效率低了很多,但从下图的结果来看,MLM训练方法可以让BERT获得超出同期所有预训练语言模型的语义理解能力,牺牲训练效率是值得的。BERT的作者认为,使用自左向右编码和自右向左编码的单向编码器拼接而成的双向编码器,在性能、参数规模和效率等方面,都不如直接使用深度双向编码器强大,这也是BERT使用Transformer Encoder作为特征提取器,而不使用自左向右编码和自右向左编码的两个Transformer Decoder作为特征提取器的原因。时,参考的上下文中,词。原创 2023-06-23 13:32:12 · 12400 阅读 · 1 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):BERT的结构
近年来,受限于可用于监督训练的带标签数据的规模,部分学者认为采用更大的模型无法得到更高的收益,而BERT的出现证明了预训练语言模型采用无监督训练和特定数据集微调训练的模式可以突破这一限制,即更大规模的预训练语言模型总是可以通过模型参数随机初始化和领域数据微调获得更好的性能。有关模型大小与模型能力的对比,BERT的作者在三个任务上测试了不同参数量设置情况下BERT的性能表现,下图所示为不同规模的BERT在不同任务上的性能表现,随着BERT参数量的增大,模型在所有任务上的表现都有明显进步。原创 2023-06-23 12:32:23 · 12817 阅读 · 0 评论 -
深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):基础知识
虽然使用双向编码使得BERT不再具有文本生成能力,但研究结果表明,BERT在对输入文本的编码过程中,利用了每个词的所有上下文信息,与只能使用前序信息提取语义的单向编码器相比,BERT的语义信息提取能力更强。单向编码只会使用“今天天气很”这五个字的信息来推断“( )”内的字或词,以人类的经验与智慧,使用概率最大的词应该是:“好”“不错”“差”“糟糕”,而这些词可以被划分为截然不同的两类。双向编码可以利用下文信息“我们不得不取消户外运动”来帮助模型判断,以人类的经验与智慧,概率最大的词应该是:“差”“糟糕”。原创 2023-06-22 23:10:20 · 13491 阅读 · 0 评论 -
深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-3与Few-shot Learning
GPT-3曾经是最大、最让人惊艳也是最具争议的预训练语言模型。介绍GPT-3的论文长达72页,包括模型设计思路、理论推导、实验结果和实验设计等内容。GPT-3的模型实在过于庞大,参数量达到1750亿,即使开源,也因为过大的模型和算力需求,无法作为个人使用的预训练语言模型进行部署。与文章《》中介绍的GPT-2在Zero-shot Learning设置下的惊喜表现相比,GPT-3在Few-shot Learning设置下的性能足以震惊所有人。原创 2023-06-22 20:30:57 · 13371 阅读 · 1 评论 -
深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning
最后,小维根据爸爸的提示,找到了画有斑马的卡片。同样用一个形象的例子解释:爸爸拿了五张分别画有柴犬、柯基、边牧、哈士奇和阿拉斯加的卡片,告诉小维,这些都属于犬类,然后给了小维三张卡片,分别画有橘猫、东北虎和金毛,让小维指出哪张卡片上的动物属于犬类,小维根据已有的五张犬类卡片的特征,指向画有金毛的卡片。GPT-2的不俗表现,证明它是一个极其优秀的预训练语言模型,虽然OpenAI并没有给出GPT-2微调后在各下游任务中的表现,但可以预期的是,其效果一定很好,在监督微调阶段的训练方式与第一代GPT并无差别。原创 2023-06-22 20:08:40 · 12417 阅读 · 0 评论 -
深入理解深度学习——GPT(Generative Pre-Trained Transformer):在不同任务中使用GPT
虽然Self-Attention的计算过程不考虑词与词之间的距离,直接计算两个词的语义关联性,但是位置编码会引入位置关系,人类语言学认知及实验结果均表明,距离越近的词具有的语义相关性越强。因此,直接拼接的输入会导致相同的答案在不同的位置与问句产生不同的相关性,即答案之间存在不公平的现象。将问答语句揉在一起作为输入序列的简单拼接方式存在明显的隐患,事实上,这样做也无法获得很好的微调效果。GPT预训练语言模型作为一个标准的语言模型,其输入和输出是固定的,即输入一个词序列,输出该词序列的下一个词。原创 2023-06-22 17:47:51 · 12974 阅读 · 0 评论 -
深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识
系列文章介绍了Transformer,该模型最初被用于机器翻译任务,其出色表现引起了学术界的极大兴趣,其优异的特征提取与语义抽象能力得到了学者的广泛认可,于是研究人员纷纷采用Transformer作为特征提取器,推出了新一代性能更优的预训练语言模型。原创 2023-06-22 16:21:28 · 14578 阅读 · 1 评论 -
深入理解深度学习——Transformer:整合编码器(Encoder)和解码器Decoder)
我们已经知道,解码器预测的是词汇的概率分布,并选择概率最高的词作为输出。另外需要注意,为了防止过拟合,我们可以将Dropout方法应用于每个子层的输出以及嵌入和位置编码的总和。我们可以看到,一旦输入句子(原句),编码器就会学习其特征并将特征发送给解码器,而解码器又会生成输出句(目标句)。[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.原创 2023-06-15 21:33:23 · 12447 阅读 · 0 评论 -
深入理解深度学习——Transformer:解码器(Decoder)部分
因此,一个解码器(第一个除外)将有两个输入:一个是来自前一个解码器的输出,另一个是编码器输出的特征值。同理,我们也不是将输入直接送入解码器,而是将其转换为嵌入矩阵,为其添加位置编码,然后再送入解码器。,我们将输入转换为嵌入(我们称之为嵌入值输出,因为这里计算的是解码器在以前的步骤中生成的词的嵌入),将位置编码加入其中,然后将其送入解码器。这编码器中的多头注意力层的工作原理相似,但有一点不同,具体的原理可以参考《一旦解码器学习了目标句的特征,我们就将顶层解码器的输出送入线性层和Softmax层,如下图所示。原创 2023-06-15 20:42:09 · 12741 阅读 · 0 评论 -
深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)
来表示由带掩码的多头注意力层输出的注意力矩阵。多头注意力机制的第1步是创建查询矩阵、键矩阵和值矩阵。我们已知可以通过将输入矩阵乘以权重矩阵来创建查询矩阵、键矩阵和值矩阵。我们可以看到,每个解码器中的多头注意力层都有两个输入:一个来自带掩码的多头注意力层,另一个是编码器输出的特征值。[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.是通过分数加权的值向量之和计算的。将最终的注意力矩阵送入解码器的下一个子层,即前馈网络层。(前一个子层的注意力矩阵)。原创 2023-06-14 22:32:07 · 10983 阅读 · 1 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):带掩码的多头注意力(Masked Multi-head Attention)
模型的注意力机制应该只与该词之前的单词有关,而不是其后的单词。我们知道,自注意力机制将一个单词与句子中的所有单词联系起来,从而提取每个词的更多信息。[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.下面,让我们看看带掩码的多头注意力层是如何工作的。现在,我们可以将Softmax函数应用于前面的矩阵,并将结果与值矩阵。》中,我们为了运行自注意力机制,我们需要创建三个新矩阵,即查询矩阵。个注意力矩阵,将它们串联起来,并将结果乘以新的权重矩阵。原创 2023-06-13 21:51:42 · 13288 阅读 · 1 评论 -
深入理解深度学习——Transformer:编码器(Encoder)部分
中介绍的多头注意力。前馈网络的参数在句子的不同位置上是相同的,但在不同的编码器模块上是不同的。除此之外,在编码器中还有一个重要的组成部分,即叠加和归一组件。它同时连接一个子层的输入和输出,如下图所示(虚线部分),它同时连接多头注意力层的输入和输出,也同时连接前馈网络层的输入和输出。从最后一个编码器(顶层的编码器)得到的输出将是给定输入句子的特征值。要进一步理解编码器的工作原理,我们可以将编码器再次分解。一个编码器的输出作为下一个编码器的输入。层的归一化可以防止每层的值剧烈变化,从而提高了模型的训练速度。原创 2023-06-12 21:55:30 · 11961 阅读 · 5 评论 -
入理解深度学习——正则化(Regularization):多任务学习
因为共享参数,其统计强度可大大提高(共享参数的样本数量相对于单任务模式增加的比例),并能改善泛化和泛化误差的范围。从深度学习的观点看,底层的先验知识如下:能解释数据变化(在与之相关联的不同任务中观察到)的因素中,某些因素是跨两个或更多任务共享的。多任务学习是通过合并几个任务中的样例(可以视为对参数施加的软约束)来提高泛化的一种方式。正如额外的训练样本能够将模型参数推向具有更好泛化能力的值一样,当模型的一部分被多个额外的任务共享时,这部分将被约束为良好的值(如果共享合理),通常会带来更好的泛化能力。原创 2023-05-28 19:15:00 · 17949 阅读 · 0 评论 -
深入理解深度学习——Transformer:基础知识
在“编码器—解码器”注意力中,查询来自前一个解码器层的输出,而键和值来自整个编码器的输出。可以说,它的出现是自然语言处理领域的突破,并为新的革命性架构(BERT、GPT-3、T5等)打下了理论基础。》中基于Bahdanau注意力实现的序列到序列的学习相比,Transformer的编码器和解码器是基于自注意力的模块叠加而成的,源(输入)序列和目标(输出)序列的嵌入(Embedding)表示将加上位置编码(Positional Encoding),再分别输入到编码器和解码器中。原创 2023-06-11 14:35:08 · 10969 阅读 · 1 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):位置编码(Positional Encoding)
在处理词元序列时,循环神经网络是逐个的重复地处理词元的,而自注意力则因为并行计算而放弃了顺序操作。为了使用序列的顺序信息,通过在输入表示中添加位置编码(Positional Encoding)来注入绝对的或相对的位置信息。位置编码可以通过学习得到也可以直接固定得到。接下来描述的是基于正弦函数和余弦函数的固定位置编码。假设输入表示X∈Rn×d包含一个序列中n个词元的d维嵌入表示。位置编码使用相同形状的位置嵌入矩阵P∈Rn×d输出XP, 矩阵第i行、第2j列和2j1。原创 2023-06-10 15:08:58 · 16890 阅读 · 8 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)
想象一下,有了注意力机制之后,我们将词元序列输入注意力池化中, 以便同一组词元同时充当查询、键和值。具体来说,将比较的是卷积神经网络、循环神经网络和自注意力这几个架构的计算复杂性、顺序操作和最大路径长度。请注意,顺序操作会妨碍并行计算,而任意的序列位置组合之间的路径越短,则能更轻松地学习序列中的远距离依赖关系。总而言之,卷积神经网络和自注意力都拥有并行计算的优势, 而且自注意力的最大路径长度最短。但是因为其计算复杂度是关于序列长度的二次方,所以在很长的序列中计算会非常慢。而在自注意力中,查询、键和值都是。原创 2023-06-10 13:30:00 · 13710 阅读 · 2 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):多头注意力(Multi-head Attention)
为此,与其只使用单独一个注意力汇聚, 我们可以用独立学习得到的组不同的 线性投影(Linear Projections)来变换查询、键和值。然后,这组变换后的查询、键和值将并行地送到注意力汇聚中。最后,将这个注意力汇聚的输出拼接在一起, 并且通过另一个可以学习的线性投影进行变换, 以产生最终输出。在实践中,当给定相同的查询、键和值的集合时,我们希望模型可以基于相同的注意力机制学习到不同的行为, 然后将不同的行为作为知识组合起来, 捕获序列内各种范围的依赖关系 (例如,短距离依赖和长距离依赖关系)。原创 2023-06-09 22:06:06 · 14266 阅读 · 2 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):Bahdanau注意力
在为给定文本序列生成手写的挑战中, Graves设计了一种可微注意力模型, 将文本字符与更长的笔迹对齐, 其中对齐方式仅向一个方向移动。在预测词元时,如果不是所有输入词元都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。具体来说,循环神经网络编码器将长度可变的序列转换为固定形状的上下文变量, 然后循环神经网络解码器根据生成的词元和上下文变量按词元生成输出(目标)序列词元。然而,即使并非所有输入(源)词元都对解码某个词元都有用, 在每个解码步骤中仍使用编码相同的上下文变量。原创 2023-06-08 22:03:55 · 11132 阅读 · 1 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):注意力评分函数(Attention Scoring Function)
中使用了高斯核来对查询和键之间的关系建模。式中的高斯核指数部分可以视为注意力评分函数(Attention Scoring Function), 简称评分函数(Scoring Function), 然后把这个函数的输出结果输入到Softmax函数中进行运算。通过上述步骤,将得到与键对应的值的概率分布(即注意力权重)。最后,注意力汇聚的输出就是基于这些注意力权重的值的加权和。从宏观来看,上述算法可以用来实现注意力机制框架。下图说明了如何将注意力汇聚的输出计算成为值的加权和, 其中表示注意力评分函数。原创 2023-06-08 21:33:38 · 10721 阅读 · 0 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):注意力汇聚与Nadaraya-Watson 核回归
介绍了框架下的注意力机制的主要成分: 查询(自主提示)和键(非自主提示)之间的交互形成了注意力汇聚,注意力汇聚有选择地聚合了值(感官输入)以生成最终的输出。本文将介绍注意力汇聚的更多细节, 以便从宏观上了解注意力机制在实践中的运作方式。具体来说,1964年提出的Nadaraya-Watson核回归模型是一个简单但完整的例子,可以用于演示具有注意力机制的机器学习。简单起见,考虑下面这个回归问题: 给定的成对的数据集{(x1y1x2y2⋯xnyn)}原创 2023-06-08 20:26:52 · 10937 阅读 · 0 评论 -
深入理解深度学习——注意力机制(Attention Mechanism):基础知识
自主性的与非自主性的注意力提示解释了人类的注意力的方式, 下面来看看如何通过这两种注意力提示, 用神经网络来设计注意力机制的框架,首先,考虑一个相对简单的状况, 即只使用非自主性提示。如下图所示,可以通过设计注意力汇聚的方式, 便于给定的查询(自主性提示)与键(非自主性提示)进行匹配, 这将引导得出最匹配的值(感官输入)。注意力机制要从当今十分普及的双组件(Two-component)的框架开始讲起: 这个框架的出现可以追溯到19世纪90年代的威廉·詹姆斯, 他被认为是“美国心理学之父”。原创 2023-06-06 19:47:08 · 16181 阅读 · 0 评论 -
深入理解深度学习——切面距离(Tangent Distance)、正切传播(Tangent Prop)和流形正切分类器
不同的是在数据集增强的情况下,网络显式地训练正确分类这些施加大量变换后产生的不同输入。它是一种非参数的最近邻算法,其中使用的度量不是通用的欧几里德距离,而是根据邻近流形关于聚集概率的知识导出的。由于分类器应该对局部因素(对应于流形上的移动)的变化保持不变,一种合理的度量是将点。正切传播和手动指定转换的数据集增强都要求模型在输入变化的某些特定的方向上保持不变。这些估计的切向量不仅对图像经典几何变换(如转化、旋转和缩放)保持不变,还必须掌握对特定对象(如正在移动的身体某些部分)保持不变的因素。原创 2023-06-05 21:41:59 · 10938 阅读 · 1 评论 -
深入理解深度学习——正则化(Regularization):对抗训练(Adversarial Training)
然而,它们在正则化的背景下很有意思,因为我们可以通过对抗训练(Adversarial Training)减少原有独立同分布的测试集的错误率——在对抗扰动的训练集样本上训练网络。不幸的是,如果一个线性函数具有许多输入,那么它的值可以非常迅速地改变。驱动这种方法的假设是,不同的类通常位于分离的流形上,并且小扰动不会使数据点从一个类的流形跳到另一个类的流形上。不使用真正的标签,而是由训练好的模型提供标签产生的对抗样本被称为虚拟对抗样本(Virtual Adversarial Example)。原创 2023-06-05 21:11:55 · 12360 阅读 · 1 评论 -
深入理解深度学习——正则化(Regularization):Dropout
分类目录:《深入理解深度学习》总目录Dropout供了正则化一大类模型的方法,计算方便且功能强大。在第一种近似下,Dropout可以被认为是集成大量深层神经网络的实用Bagging方法。Bagging涉及训练多个模型,并在每个测试样本上评估多个模型。当每个模型都是一个很大的神经网络时,这似乎是不切实际的,因为训练和评估这样的网络需要花费很多运行时间和内存。通常我们只能集成五至十个神经网络,如Szegedy集成了六个神经网络赢得ILSVRC,超过这个数量就会迅速变得难以处理。Dropout提供了一种廉价的Ba原创 2023-06-05 19:46:11 · 22141 阅读 · 5 评论 -
深入理解深度学习——正则化(Regularization):Bagging和其他集成方法
模型平均(Model Averaging)奏效的原因是不同的模型通常不会在测试集上产生完全相同的误差。换言之,平均上集成至少与它的任何成员表现得一样好,并且如果成员的误差是独立的,集成将显著地比其成员表现得更好。例如,集成的每个成员可以使用不同的算法和目标函数训练成完全不同的模型。例如,一种被称为Boosting的技术构建比单个模型容量更高的集成模型。神经网络中随机初始化的差异、小批量的随机选择、超参数的差异或不同输出的非确定性实现往往足以使得集成中的不同成员具有部分独立的误差。的情况下,均方误差减少到。原创 2023-05-29 19:28:36 · 10319 阅读 · 0 评论 -
深入理解深度学习——正则化(Regularization):稀疏表示
惩罚是使表示稀疏的方法之一。其他方法还包括从表示上的Student-t先验导出的惩罚和KL散度惩罚,这些方法对于将表示中的元素约束于单位区间上特别有用。惩罚如何诱导稀疏的参数,即许多参数为零(或接近于零)。另一方面,表示的稀疏描述了许多元素是零(或接近零)的表示。表示的正则化可以使用参数正则化中同种类型的机制实现。还有一些其他方法通过激活值的硬性约束来获得表示稀疏。指定允许的非零特征数量。另一种策略是惩罚神经网络中的激活单元,稀疏化激活单元。添加对表示的范数惩罚来实现的。惩罚诱导参数稀疏性,对表示元素的。原创 2023-05-29 18:47:53 · 10319 阅读 · 0 评论 -
深入理解深度学习——正则化(Regularization):参数绑定和参数共享
这种方法由Lasserre提出,正则化一个模型(监督模式下训练的分类器)的参数,使其接近另一个无监督模式下训练的模型(捕捉观察到的输入数据的分布)的参数。参数范数惩罚是正则化参数使其彼此接近的一种方式,而更流行的方法是使用约束:强迫某些参数相等。和正则化参数使其接近(通过范数惩罚)相比,参数共享的一个显著优点是,只有参数(唯一一个集合)的子集需要被存储在内存中。有时候,我们可能无法准确地知道应该使用什么样的参数,但我们根据相关领域和模型结构方面的知识得知模型参数之间应该存在一些相关性。原创 2023-05-28 21:15:00 · 10200 阅读 · 0 评论 -
入理解深度学习——正则化(Regularization):提前终止(Early Stopping)
为了更好地利用这一额外的数据,我们可以在完成提前终止的首次训练之后,进行额外的训练。在第二轮,即额外的训练步骤中,所有的训练数据都被包括在内。除了由于限制训练的迭代次数而明显减少的计算成本,还带来了正则化的益处(不需要添加惩罚项的代价函数或计算这种附加项的梯度)。大多数超参数的选择必须使用高代价的猜测和检查过程,我们需要在训练开始时猜测一个超参数,然后运行几个步骤检查它的训练效果。当训练有足够的表示能力甚至会过拟合的大模型时,我们经常观察到,训练误差会随着时间的推移逐渐降低但验证集的误差会再次上升。原创 2023-05-28 21:00:00 · 12640 阅读 · 0 评论