17.Transformer-XL论文笔记
17.Transformer-XL论文笔记本文是Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context笔记,是后续XLM-RoBERTa的基础。
AbstractTransformers拥有学习长距离依赖的潜力,但其在语言模型中被固定长度的上下文限制。本文提出了一个新颖的神经架构Transformer-XL(extra long),用其破坏时序连贯性(disrupting temporal coherence)从而能学习超出固定长度的依赖。它由segment-level循环机制和与众不同的位置编码方案组成。该方法不仅能捕获长距离依赖信息,还能解决上下文碎片化(context fragmentation problem) [就是将一段文本分割后,后一段词相对前一段词的语义关系损失掉了]。结果上, Transformer-XL学习的依赖比RNNs长80%, 比vanilla Transformers 长450%, 在长短序列上都取得更好表现,并且在评估时比vanilla Transformers快18 ...
16. Reformer 论文翻译笔记
16. Reformer 论文翻译笔记机构:Google Research 、U.C. Berkeley 作者:Nikita Kitaev、Łukasz Kaiser、Anselm Levskaya 论文地址:https://arxiv.org/pdf/2001.04451.pdf 收录会议:ICLR2020 论文代码:https://github.com/google/trax/tree/master/trax/models/reformer
Reformer, 主要是对Transformer的计算复杂度和内存进行优化,最关键的两个点是:
局部敏感哈希
可逆的残差连接
摘要大型Transformer模型常常在大量任务上取得最佳成绩,但是训练这些模型是非常昂贵的。本文引入两种计算来提升Transformer的效率。
第一,用局部敏感哈希代替点乘式的attention,使其空间复杂度从O(L^2)降低到O(L\log L),其中L是文本序列的长度。
此外,用可逆的残差连接层代理标准残差, 这使得训练过程中只需要存储移除激活 ...
15. RoBERTa 论文笔记
15. RoBERTa 论文笔记RoBERTa是RoBERTa: A Robustly Optimized BERT Pretraining Approach的简称。本文主要是论文的阅读笔记。
Abstract预训练语言模型已经取得了显著的表现但是仔细比较不同方法是有挑战性的。在计算上训练非常昂贵,通常在不同大小的私有数据集上,并且超参数选择对最终结果有重大影响。作者提出一个BERT预训练的复制研究,仔细衡量许多关键超参数和训练数据大小的影响。作者发现BERT明显训练不足,并且能匹配和超越在其之后发布的每个模型表现。作者最好的模型在GLUE, RACE 和SQuAD上获得了最佳成绩。这些结果强调之前忽略的设计方案,并提出了近期报告的改进的来源的问题。作者发布了作者的模型和代码。
1. Introduction自训练方法如ELMo, GPT,BERT, XLM, XLNet已经带来显著的性能提升,但是它们都被质疑,能否准确算出哪些方法贡献最大。在计算上训练是昂贵的,限制了可以进行微调的数目,或者说经常在不同大小的私有数据集上进行,限制了衡量建模效果的能力的发展。
作者提出BERT预训练的 ...
12.2 GPT系列论文: GPT-2 笔记
12.2 GPT系列论文: GPT-2 笔记本文是 Language Models are Unsupervised Multitask Learners无监督多任务学习语言模型,即GPT-2的论文。这里作为GPT系列论文第二篇。
摘要自然语言处理任务,如问答,机翻,阅读理解,以及概括,都是在特定任务数据集上典型的监督学习方法。作者展示了在新的百万级网页数据集WebText上训练时,这些语言模型在没有任何明确的监督数据的情况下开始学习这些任务。以文档和问题条件,用该语言模型生成的答案在CoQA数据集上达到55 F1,并且没有使用127,000+训练样本就相当或超过4个基线系统中3个的性能。语言模型至关重要的能力是零样本任务迁移的成功,并且其能在一个流行的对数线性跨任务上提升性能。作者的最大模型,GPT-2,一个15亿参数的Transformer,在零样本设置下8个测试语言模型的数据中7个取得最佳成绩,并且在WebText上仍然前拟合。模型中的样本反映这些提升并包含连贯的文本段落。这些发现表明通往构建语言处理系统的有希望路径是从语言处理系统自然发生的演示中学习执行如何执行任务
1. 介绍 ...
12.1 GPT系列论文: GPT-1 笔记
12.1 GPT系列论文: GPT-1 笔记本文是 Improving Language Understanding by Generative Pre-Training——GPT-1的论文。它是生成式预训练模型,使用的是Transformer decoder,而且还有不同。因为GPT系列有3篇论文,我会先看论文,再看相应代码。这是这个这个系列的第一篇笔记。
摘要自然语言理解包含了广泛的多样性任务,比如文本蕴涵,问答,语义相似度评估,文本分离。然而大规模的没标注的文本语料是丰富,而特定任务学习的标注数据有非常少,使得要充分做区分地训练模型非常有挑战性。作者证明通过在丰富的无标签文本语料库生成预训练generative pre-training语言模型,然后在每项具体任务上判别性微调discriminative fine-tuning,可以实现巨大的收益。对比之前的方法,作者在微调阶段使用任务感知的输入转换来实现有效的迁移,仅仅需要小小修改模型架构。作者通用的任务未知task-agnostic模型优于那些为每个任务精心设计的模型,在12个研究任务中9个提升到SOTA。如,作者在常识推理( ...
11. BERT 论文笔记
11. BERT 论文笔记 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding ,一种从Transformers模型得来的双向编码表征模型。
Abstract BERT: 是Bidirectional Encoder Representations from Transformers 的缩写。
特点:
不像其它模型,BERT是基于所有层的左右上下文来预训练来自未标定文本的深层双向表示向量。
基于BERT得到的向量,加上一个输出层,微调下就能得到很多任务的最优模型,如:问答和语言推理,无需对特定任务架构做大量的修改。
成绩:刷了11个语言任务的榜单, 包括一下:
pushing the GLUE score to 80.5% (7.7% point absolute improvement),
MultiNLI accuracy to 86.7% (4.6% absolute improvement),
SQuAD v1.1 question answ ...
10.2 Transformer 代码详解
10. 2 Transformer 代码详解
按照上图结构, 如果作者需要Encoder和Decoder这个主干结构,作者需要实现encoder和decoder最主要两个结构。
而encoder 和 decoder两个部分主要由:
positional encoding
pad mask
ScaledDotProductAttention
MultiHeadAttention
PoswiseFeedForwardNet
因此,本文逻辑为,
每个子组件实现
实现encoder layer 和 decoder layer
实现Transformer
所有代码来自于 nlp-tutorial中的5-1.Transformer。
1. 每个子组件实现1.positional encodingmulti-head self-attention 机制抛弃RNNs架构,使得模型能够并行计算,能获取句子中长矩依赖信息。但是当每个句子同步流过Transformer encoder和decoder结构时,模型没有了每个词的任何关于位置、顺序的信息。但Transformer又需要词的顺序——位置信息 ...
10.1 Transformer 笔记
10. Transformer 笔记本文是transformer 开山之作 Attention Is All You Need 的笔记, 并结合了 The Illustrated Transformer图解。
Abstract现在主流序列转换都是基于复杂的RNN和CNN,其包含一个encoder和decoder。最好的模型是通过一个attention机制来连接encoder,decoder。作者提出了一个新的网络架构,Transformer,只基于attention,完全不用RNN和CNN。
两个翻译任务证明这个模型:又快又好。
WMT 2014 英语-德语任务中BLEU为28.4,高了2 个BLEU
8xGPU 3.5天 在WMT 2014 英语-德语中,单一模型BLEU达到41.8
Transformer 还可以用于其他任务, 如英语成分分析等。
1. IntroductionRNN, LSTM, GRU在翻译和LM中占据中最领先的水平。无数努力都是在推进RNN模型和Encoder-Decoder的极限。
RNN 通常是对输入和输出序列的符号位置计算。在计算期间将位置和时间步对 ...
Precision Recall F1-score和AUC 评价指标解释
Precision Recall F1-score和AUC 评价指标解释1. Precision, Recall, F1-score解释这些名词都建立在混淆矩阵之上confusion matirx,如下所示:
真实情况
预测Positive
Negative
正例
TP 真正例
FN 假反例
反例
FP 假正例
TN 真反例
查准率和查全率分别为:
\begin{aligned}
&P \text{ :precision} = \frac{TP}{TP + FP} \\
&R \text{ :recall}= \frac{TP}{TP + FN} \\
\end{aligned}
查准率:就是找到的正例中有多少是真正的正例(实际上是比率),就等于真正的正例/ 所有预测的正例
查全率:又叫召回率, 就是在找到的真正例在所有原始样本中的比例,(所有原始样本数目=真正例和反例和),在混淆矩阵中就是$TP + FN$,实际上就等于真正的正例/所有原始样本数。更通俗地说,把目标样本找全了没,而查准率是你找准了多少正样本。
而F1-score是:它是P和 ...
Tabular Playground Series 比赛 去噪和quantile normalization
Tabular Playground Series 比赛 去噪和quantile normalization原文,利用自编码器去噪。
1. 导入包和数据12345678910111213141516171819202122import random, math, sysimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlinefrom pathlib import Pathimport seaborn as snsimport tensorflow as tfimport tensorflow.keras.backend as Kfrom tensorflow import kerasfrom tensorflow.keras import layers, initializers, regularizers, activations, callbacksfrom tensorflow.keras.optimizers import Adamfrom tensorflo ...