Transformers

Extracting, transforming and selecting features

让人想犯罪 __ 提交于 2021-02-17 17:59:38
This section covers algorithms for working with features, roughly divided into these groups 本节介绍使用功能的算法,大致分为以下几组: 提取: 从数据中抽取特征。 转变: Scaling, converting, or modifying features 选择: 在多个特征中挑选比较重要的特征。 局部敏感哈希(LSH): 这类算法将特征变换的各个方面与其他算法结合起来。 Table of Contents Feature Extractors 特征提取 TF-IDF Word2Vec CountVectorizer Feature Transformers 特征变换 Tokenizer 分词器 StopWordsRemover 停用字清除 n n -gram Binarizer 二元化方法 PCA 主成成分分析 PolynomialExpansion 多项式扩展 Discrete Cosine Transform (DCT-离散余弦变换) StringIndexer 字符串-索引变换 IndexToString 索引-字符串变换 OneHotEncoder 独热编码 VectorIndexer 向量类型索引化 Interaction Normalizer 范数p-norm规范化

【ICLR2020】Transformer Complex-order:一种新的位置编码方式

旧巷老猫 提交于 2021-02-08 16:34:26
补一下昨天没发完的一篇 文中公式若显示不全可左右滑动~ 比较有意思的论文 [1] ,关注的点也是在序列建模的位置信息编码。先前的方法通过引入额外的位置编码,在 embedding 层将词向量和位置向量通过加性编码融合, 但是该种方式每个位置向量是独立训练得到的,并不能建模序列的 order relationship (例如邻接或优先关系),作者将此称为 the position independece problem 。 针对该问题论文提出了一种新的位置编码方式,将独立的词向量替换成自变量为位置的函数,于是单词表示会随着位置的变化而平滑地移动,可以更好地建模单词的绝对位置和顺序信息。 其中, 表示此表中序号为 的单词在位置 时的单词向量, 表示函数集合, 表示单词到函数的映射,展开即为, 为了达到上述要求,函数应该满足以下两个条件: Property 1. Position-free offset transformation 对于任意位置 pos 和 ,存在变换 Transform Transform 满足, 特别地,论文考虑 Transform 为线性变换 Property 2. Boundedness 函数应该是有界的, 接下去,论文证明了满足上述两个条件的解函数形式为, ❝ 贴一下论文给的证明:(看不看无所谓,能用就行 haha) 假设函数 满足上述两个条件,则对于任意位置

ICLR2020 | 深度自适应Transformer

人盡茶涼 提交于 2021-02-08 14:57:35
作者 | kaiyuan 整理 | NewBeeNLP 一篇来自ICLR2020,facebook人工智能实验室的论文,关于改进Transformer推理速度的。 论文地址: https://arxiv.org/abs/1910.10073 写在前面 大模型在困难任务上表现非常好,而小模型也可以在比较简单的任务上表现出色。但是目前大模型在应用简单任务时的运算量同复杂任务一样,这就导致了不必要的资源浪费,此外还会导致推理速度变慢。对此,提出了一种 depth-adaptive transformer ,可以在推理阶段针对不同的token自动选择在合适的层进行停止并输出,在不损失模型效果的同时大大提高推理速度。 Anytime Prediction 传统的transformer decoder,所有的token都需要经过N个block,且最后的分类器是唯一的。但是一些简单的任务并不需要推理如此多步,可能在第 层模型已经得出结果了,再往上走并没有意义,于是可以选择在第 层就输出,这称为 「动态计算(Dynamic Computation)」 , 并且,每一层的分类器 可以选择不同或者相同。接下去就是怎么去实现上面的想法,即对于每个输入token,如何自动确定其在哪一层退出?文中提出了两种策略: Aligned training 对齐训练会同时优化所有分类器,并假设当前状态之前的所有状态

【论文阅读】DeiT | Training data-efficient image transformers & distillation through attention

谁说我不能喝 提交于 2021-02-02 11:52:35
本文主要对Facebook最近提出来的DeiT模型进行阅读分析。 一、动机:DeiT解决什么问题? 现有的基于Transformer的分类模型ViT需要在海量数据上(JFT-300M,3亿张图片)进行预训练,再在ImageNet数据集上进行fune-tuning,才能达到与CNN方法相当的性能,这需要非常大量的计算资源,这限制了ViT方法的进一步应用。 Data-efficient image transformers (DeiT) 无需海量预训练数据,只依靠ImageNet数据,便可以达到SOTA的结果,同时依赖的训练资源更少(4 GPUs in three days)。 上图左边是DeiT与ViT, EfficientNet的结果对比图,右边是几种DeiT模型采用的结构。 二、方法 DeiT如何实现前面介绍的结果呢?主要是以下两个方面: 1) 采用合适的训练策略包括optimizer, data augmentation, regularization等 ,这一块该文主要是在实验部分介绍; 2) 采用蒸馏的方式,结合teacher model来引导基于Transformer的DeiT更好地学习 (这个论文的方法部分主要是介绍的这个); 假设已经获取得到一个较好的分类模型(teacher),采用蒸馏的方式也很简单,相对于ViT主要是增加了一个distillation token

两种端到端通用目标检测方法

自古美人都是妖i 提交于 2021-01-30 12:35:59
摘要: 本文介绍两种端到端训练通用目标检测算法--DETR和DeFCN。 通用目标检测作为计算机视觉中一个基础的任务,对着图像理解、信息提取有着极为重要的意义。对于该任务目前已经发展出了许多方法,如基于全卷积的单阶段方法DenseBox,YOLO,SSD, RetinaNet和CenterNet等,以及更加复杂的多阶段方法RCNN, Fast RCNN, Faster RCNN和 Cascade RCNN等。根据目标检测任务的定义,这些方法需要对图像中出现的目标物体进行定位和分类,为了确保目标的召回率,结合卷积神经网络的采用的滑动窗口预测的特性,上述的方法均使用卷积进行密集的候选区提取和目标预测,因此对于输入的每个目标,往往有多个网络预测值相对应。 这些方法通常使用非极大值抑制方法(NMS)对重复的预测结果进行过滤,从而得到最终预测结果。不同于卷积操作,NMS过程不可导,模型无法对去重的过程进行优化,最终的检测检测模型也由于该操作的存在不能做到完全端到端。 通用目标检测近期的一些进展中,一些方法实现了端到端训练,训练和推理均无需NMS操作。如基于Transformer的DETR[1]和全卷积DeFCN[2], 两种方法采用了较为不同的实现路线,分别具有不同的优势和潜力,下面对这两种方法进行介绍。 DETR Transformer在自然语言处理任务中取得了巨大的成功

Hinton最新访谈:无监督胶囊网络、对比学习以及大脑中的反向传播

走远了吗. 提交于 2021-01-30 11:53:00
来源 | 数据实战派 转载自:AI科技评论 原文链接: Hinton最新访谈:无监督胶囊网络、对比学习以及大脑中的反向传播 ​ mp.weixin.qq.com Geoff Hinton 是公认的深度学习先驱。2018 年,他与 Yoshua Bengio、Yann LeCun 共同获得了图灵奖。而在这之前的一年,他提出了一个想法 —— 胶囊网络(Capsule Network)。这是卷积神经网络的替代方案,它考虑了物体在 3D 世界中的姿势,尝试弥补当今计算机视觉模型学习能力上的不足,比如学会从不同的角度来识别同一个物体。 从那之后, Hinton 在学术界的公开活动有所沉寂。直到2020 年 12 月,在 NeurIPS 上,他的团队介绍了一项堆叠式胶囊自动编码器(stacked capsule autoencoders)相关的研究成果。更早之前 2 月的 AAAI 会议上,他谈到,胶囊网络是无监督学习的关键。4 月,Hinton 又重新提出了将反向传播作为人类大脑中的一种学习功能,并介绍了近似反向传播的算法 ——用活动差异表示神经梯度(neural gradient representation by activity differences,简称 NGRAD)。 近日,在播客节目 Eye on AI 中,受到播客主理人、纽约时报资深记者 Craig Smith 的邀请

从BERT、XLNet到MPNet,细看NLP预训练模型发展变迁史

隐身守侯 提交于 2021-01-29 15:49:26
20世纪以来,自然语言处理(NLP)领域的发展涌现了许多创新和突破。NLP中许多之前机器不可能完成的任务,如阅读理解、人机对话、自动写新闻稿等,正逐渐成为现实,甚至超越了人类的表现。 如果总结过去20年里,无数先辈辛劳付出带来的璀璨成果,以下3个代表性工作列入NLP名人堂,应该实至名归: 1)2003年Bengio提出神经网络语言模型NNLM, 从此统一了NLP的特征形式——Embedding; 2)2013年Mikolov提出词向量Word2vec ,延续NNLM又引入了大规模预训练(Pretrain)的思路; 3)2017年Vaswani提出Transformer模型, 实现用一个模型处理多种NLP任务。 基于Transformer架构,2018年底开始出现一大批预训练语言模型,刷新众多NLP任务,形成新的里程碑事件。本文将跨越2018-2020,着眼于3个预训练代表性模型BERT、XLNet和MPNet,从以下4个章节介绍NLP预训练语言模型的发展变迁史: 1.BERT 原理及 MLM 简述 2.XLNet 原理及 PLM 简述 3.MPNet 原理及创新点简述 4.NLP预训练模型趋势跟踪 附录:快速上手BERT的4大工具包 1.BERT 原理及 MLM 简述 自谷歌2018年底开源BERT,NLP界的游戏规则某种程度上被“颠覆”了;一时间,这个芝麻街的可爱小黄人形象

使用Flask部署机器学习模型

允我心安 提交于 2021-01-15 06:20:54
Introduction A lot of Machine Learning (ML) projects, amateur and professional, start with an aplomb. The early excitement with working on the dataset, answering the obvious & not so obvious questions & presenting the results are what everyone of us works for. There are compliments thrown around and talks about going to the next step -- that's when the question arises, How? The usual suspects are making dashboards and providing insights. But mostly, the real use of your Machine Learning model lies in being at the heart of a product -- that maybe a small component of an automated mailer system

EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念

♀尐吖头ヾ 提交于 2021-01-14 07:46:45
Mule ESB在众多开源的ESB中处于领先者的地位,MuleSoft公司也作为独角兽,2017年在纽交所上市。我们作为MuleSoft的合作伙伴也有幸参与其中,在六年多的时间里,我们使用Mule ESB实施,包括使用Mule ESB企业版实施,或者在社区版基础上扩展,使用Mule ESB社区版实施,帮助国内众多的企业成功上线SOA项目。 使用Mule ESB的过程中,体会到其快速的开发效率,以及优秀的架构设计。同时也深感国内这块资料非常稀少,所以计划使用8篇文章来写Mule ESB的基础课程系列。 EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念 EnjoyingSoft之Mule ESB开发教程第三篇:Mule message structure - Mule message结构 EnjoyingSoft之Mule ESB开发教程第四篇:Mule Expression Language - MEL表达式 EnjoyingSoft之Mule ESB开发教程第五篇:控制消息的流向-数据路由 EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换 EnjoyingSoft之Mule ESB开发教程第七篇:SOAP Web

[NLP自然语言处理]谷歌BERT模型深度解析

故事扮演 提交于 2021-01-08 07:25:22
我的机器学习教程 「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于 算法、编程、AI行业知识 或博客内容的问题,可以随时扫码关注 公众号「图灵的猫」 ,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦 ​ ​ ​ ​ BERT模型代码已经发布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下载,请记得start哦 目录 一、前言 二、如何理解BERT模型 三、BERT模型解析 论文的核心:详解BERT模型架构 关键创新:预训练任务 实验结果 四、BERT模型的影响 对BERT模型的观点 参考文献 一、前言 最近谷歌搞了个大新闻,公司AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类,并且还在11种不同NLP测试中创出最佳成绩 ,包括将GLUE基准推至80.4%(绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进率5.6%)等。可以预见的是,BERT将为NLP带来里程碑式的改变,也是NLP领域近期最重要的进展。 ​ 谷歌团队的Thang Luong直接定义: BERT模型开启了NLP的新时代! ​