生成对抗网络GAN
生成对抗网络 GAN
生成对抗网络 GAN 是一种深度学习模型,它源于 2014
年发表的论文:《Generative Adversarial Nets》,论文地址:https://arxiv.org/pdf/1406.2661.pdf。
GAN
的用途非常广泛,比如:有大量的卡通头像,想通过学习自动生成卡通图片,此问题只提供正例,可视为无监督学习问题。不可能通过人工判断大量数据。如何生成图片?如何评价生成的图片好坏?GAN
为此类问题提供了解决方法。
GAN 同时训练两个模型:生成模型G(Generative
Model)和判别模型D(Discriminative
Model),生成模型G的目标是学习数据的分布,判别模型D的目标是区别真实数据和模型G生成的数据。以生成卡通图片为例,生成网络
G 的目标是生成尽量真实的图片去欺骗判别网络 D。而 D 的目标就是尽量把 G
生成的图片和真实的图片分别开来。G 和 D
构成了一个动态的“博弈过程”,通过迭代双方能力都不断提高。
对抗网络近年来发展迅速。下图是近几年 ICASSP
会议上所有提交的论文中包含关键词 “generative”、“ ...
NLP模型应用之三:GPT与GPT-2
NLP 模型应用之三:GPT 与
GPT-2
#自然语言处理
GPT 模型
GPT 全称 Generative Pre-Training,出自 2018 年 OpenAi
发布的论文《Improving Language Understandingby Generative
Pre-Training》,论文地址:https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf。
在自然语言处理问题中,可从互联网上下载大量无标注数据,而针对具体问题的有标注数据却非常少,GPT
是一种半监督学习方法,它致力于用大量无标注数据让模型学习“常识”,以缓解标注信息不足的问题。其具体方法是在针对有标签数据训练
Fine-tune 之前,用无标签数据预训练模型
Pretrain,并保证两种训练具有同样的网络结构。
GPT 底层也基于 Transformer 模型,与针对翻译任务的 Transformer
模型不同的是:它只使用了多个 Deocder 层。
下图展示了在不修改模型主体结构的情况下,如何使用模型适配多分类、文本 ...
NLP模型应用之二:BERT
NLP 模型应用之二:BERT
引入
BERT 是谷歌在 2018 年 10
月发布的自然语言处理模型,它在十一项自然语言任务中打破记录,在有些任务中有显著提高,并超越了人类水平,被誉为开启了
NLP 的新时代。虽然,在之后又出现了大量新算法,这两年 BERT
仍然是各大比赛以及产品中的主流算法。论文地址:https://arxiv.org/pdf/1810.04805.pdf。
BERT 全称为 Bidirectional Encoder Representations from
Transformers,从名字可以看出,它基于 Transformer 基础模型。在 BERT
之前,ELMo
模型已经开始用预测训练方法从无监督数据中提取与上下文相关的词义;而 GPT
模型用 Pretrain/Fine-tune
方法,延用了预训练模型的结构和参数,但由于它是单向模型,主要用于据前文估计后文。而
BERT
使用了双向模型,遮蔽句中部分单词,训练句间关系等方法,提出了一套完整的解决方案,在模型结构不变的情况下,适配各种各样的
NLP 任务。
模型规模
BERT 通过前期对大量的无标签数据 ...
NLP模型应用之一:基础知识
NLP 模型应用之一:基础知识
#自然语言处理
引入
2018 年底发布的 BERT 模型和 2019 年初发布的 GPT-2
模型,开始挑战人类的语言处理能力。二者都基于之前介绍过的 Transformer
基础模型。
对模型的研究有几个层次:研究基础模型、扩展模型、应用模型
研究基础模型 我们熟知的卷积神经网络 CNN,循环神经网络
RNN,Transformer 模型,残差网络 ResNet
等等,都是底层模型,它们是神经网络应用的基础。
扩展模型
基础模型需要经过适配和扩展,才能应用到更多领域。如图像识别一开始主要支持图片分类,而后扩展到人脸识别、图像分割等等领域。在自然语言处理领域
Transformer
模型最初被用于解决翻译问题,而后扩展到解决问答、判断一致性、完型填空等问题之中,比如
BERT 通过 Mask 遮蔽技术优化了自然语言处理中的更多问题的解决方法。
应用模型
再上层是针对某一个领域的具体应用和细化,调用模型解决问题并调优模型。例如使用模型判断正常和病变细胞、预测股票趋势,使用预训练好的语言模型撰写某种类型的文章……这些大多是由工程师完成的工作。从算法角度看 ...
Transformer-XL框架
Transformer-XL 框架
1 引入
Transformer-XL 超长上下文的注意力模型,出自 CMU 和 Google Brain 在
2019 年 1 月发表的论文:《Transformer-XL: Attentive Language Models
Beyond a Fixed-Length Context》。其中 XL 是 extra long
的缩写,意为额外长度。论文地址:https://arxiv.org/pdf/1901.02860.pdf
先简单举例 Transformer XL 与 Transformer 的区别。比如有以下数据:
“小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。”
如果把序列长度设为十个字,代入模型时数据被切分为:
“小说是以刻画人物形象”(序列一)
“为中心,通过完整的故”(序列二)
……
在训练第二个序列时,它的意思是不完整的,Transformer
计算第二个序列中的第三字“心”时只能通过前两个字“为中”作为输入计算,而
Transformer-XL 可以把序列一中的十个字同时作为输入。
切分,尤 ...
国产的自然语言处理框架ERNIE
国产的自然语言处理框架 ERNIE
看到题目是否引发一些刻板印象?国产的自然语言处理,主要是用于处理中文?有没有用到最前沿的技术?是不是只提供服务,里面是黑盒?是否全面开源并提供模型?平台是否通用?本文将为您一一解答。
ERNIE 是继 BERT,ELMo 之后又一个以芝麻街人物命名的自然语言模型。ERNIE
全称 Enhanced Language Representation with Informative Entities。
原理
ERNIE 的结构类似 BERT 框架,或可视为 BERT
的延续。也是通过海量无标签数据预训练模型,并在特定领域使用 fine-tuning
调优,同样也使用了在序列中插入符号,以适配不同的训练任务,以及 Mask
遮蔽部分数据的方法。
从全称可以看出,它最初主要致力于在自然语言处理中加入关于实体的信息。在
ERNIE 1.0 阶段,着重改进了遮蔽策略,BERT 遮蔽语料中的词,而
ERNIE
把短语和一些专有名词也作为遮蔽的对象。之前的自然语言模型都是国外模型,因为分词有一定难度,所以处理中文时只是简单地以字为单位。可以想见,引入了词和短语后, ...
定向写作模型CTRL
定向写作模型 CTRL
介绍
CTRL 全称为 Conditional Transformer Language
有条件的文本生成模型,它始于 Salesforce 在 2019 年发布的论文《A
Conditional Transformer Language Model for Controllable
Generation》,该模型用于定向写作。论文地址如下:https://arxiv.org/pdf/1909.05858.pdf
这两年非常流行的 BERT 和 GPT-2 都基于 Transformer
模型,虽然代码量不大,逻辑也并不复杂,但是极大规模的数据量、训练强度和模型容量,以及利用无监督文本建模,使模型的能力空前强大,在一些领域已超过人类水平。
GPT-2
使用各种类型的文章训练模型,包括散文、小说、新闻、科技文章,用它写作的文章也综合了各种风格。如果想生成“金庸风格”的小说,则需要用所有金庸先生的小说重新训练模型;或者从原模型中提取特征构造新模型;也可以在原有模型基础上
fine-tuning。如需撰写新闻稿,则需要另行训练。
GPT-2
模型根据文章开头的内容,继 ...
Transformer框架
123name_ch: 注意力就是你所需要的name_en: Attention is All you Needpaper_addr: https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf
Transformer 框架
1 读后感
应该是本世纪最重要的论文之一,提出 Transformer
模型,基于注意力机制,避免了递归和卷积,相比之前模型,训练速度快,模型效果好。
2 摘要
Transformer 是 Google 团队在 2017
年提出的自然语言处理(NLP)框架,也是截至目前,最主流的 NLP
框架。BERT、GPT-2 都是基于该模型的变形和扩展。
Transformer 的具体算法在论文《Attention Is All You
Need》中描述。论文中展示了该模型的训练准确性高于之前所有模型,训练时间明显低于之前的模型,在训练集内容较少时训练效果也很好。它使用8
个 P100 的 GPU 训练 12 小时即可生成基本翻译模 ...
Seq2Seq与Attention
Seq2Seq 与 Attention
自然语言处理是典型的序列问题,其底层算法在最近几年迅速发展,比如去年年底发布的
BERT 在 11 项自然语言处理任务中表现卓越,今年 GPT-2
生成文本(写作)的水平也有了显著提高。
目前这些最先进的技术都基于 Transformer 模型,该模型从
RNN,LSTM,Seq2Seq,Attention,ConvS2S,Transformer
一步步进化而来,还涉及自然语言处理的相关知识,包含的知识点太多,无法一次说清。笔者将其分成几篇,从其进化过程逐步引入。之前已经介绍过
RNN 及 LSTM,本篇将介绍 Seq2Seq 和 Attention 算法。
翻译功能
深度学习中的自然语言处理常用于自动翻译、语言识别、问答系统、提取概要、写作等等领域。
其中自动翻译是一项非常典型的应用,在翻译过程中,输入和输出的词汇个数可长可短,不能一一对应,不同语言词汇顺序又可能不同,并且还有一词多义,一义多词,词在不同位置含义不同的情况……是相对复杂的自然语言处理问题。
先来看看人怎么解决翻译问题,面对一种完全不认识的语言,人把句子分解成词,通过查字典的方式 ...
Pytorch_LSTM与GRU
Pytorch_LSTM 与 GRU
RNN 循环网络在序列问题处理中得到了广泛的应用。但使用标准版本的 RNN
模型时,常遇到梯度消失 gradient vanishing 和梯度爆炸 gradient explosion
问题。
RNN 的缺点
RNN
的梯度消失和梯度爆炸不同于其它网络,全连接网络和卷积网络每一层有不同参数,而
RNN 的每个处理单元 Cell(处理单个序列元素的操作称为处理单元
Cell)共用同一组权重矩阵 W。在上一篇介绍 RNN
网络算法时可以看到,处理单元之间是全连接关系,序列向前传播的过程中将不断乘以权重矩阵
W,从而构成了连乘 Wn,当 W<1 时,如果序列很长,则结果趋近
0;当 w>1
时,经过多次迭代,数值将迅速增长。反向传播也有同样问题。
梯度爆炸问题一般通过“梯度裁剪”方法改善,而梯度消失则使得序列前面的数据无法起到应有的作用,造成“长距离依赖”(Long-Term
Dependencies)问题,也就是说 RNN 只能处理短距离的依赖关系。
这类似于卷积神经网络在处理图像问题时加深网络层数,无法改进效果。尽管理论上可以通过调参改 ...