4. OpenAI GPT算法原理解析
1. 语言模型
2. Attention Is All You Need(Transformer)算法原理解析
3. ELMo算法原理解析
4. OpenAI GPT算法原理解析
5. BERT算法原理解析
6. 从Encoder-Decoder(Seq2Seq)理解Attention的本质
1. 前言
本文对2018年OpenAi提出的论文《Improving Language Understanding
by Generative Pre-Training》做一个解析。
一个对文本有效的抽象方法可以减轻NLP对监督学习的依赖。大多数深度学习方法大量的人工标注信息,这限制了在很多领域的应用。在这些情况下,可以利用来未标记数据的语言信息的模型来产生更多的注释,这可能既耗时又昂贵。此外,即使在可获得相当大的监督的情况下,以无人监督的方式学习良好的表示也可以提供显着的性能提升。到目前为止,最引人注目的证据是广泛使用预训练词嵌入来提高一系列NLP任务的性能。
2. OpenAI GPT原理
本文提出一种半监督的方式来处理语言理解的任务。使用非监督的预训练和监督方式的微调。我们的目标是学习一个通用的语言标示,可以经过很小的调整就应用在各种任务中。这个模型的设置不需要目标任务和非标注的数据集在同一个领域。模型有两个过程。
- 使用语言模型学习一个深度模型
- 随后,使用相应的监督目标将这些参数调整到目标任务
3. OpenAI GPT模型结构
3.1 非监督预训练
处理非监督文本\((x_1,x_2,...,x_m)\)的普通方法是用语言模型去最大化语言模型的极大似然。
\[
L_1(X)=\sum_ilogP(x_i|x_{i-k},...,x_{i-1}:\theta)
\]
文章中使用的是多层Transformer的decoder的语言模型。这个多层的结构应用multi-headed self-attention在处理输入的文本加上位置信息的前馈网络,输出是词的概念分布。
\[
h_0=UW_e+W_p
\]
\[
h_l=transformer\_block(h_{l-1})
\]
\[
P(u)=softmax(h_nW^T_e)
\]
3.2 监督微调fine-tuning
这个阶段要对前一个阶段模型的参数,根据监督任务进行调整。我们假设有标签数据集\(C\),里面的结构是\((x_1,x_2,...,x_m,y)\)。输入\((x_1,x_2,...,x_m)\)经过我们预训练的模型获得输出向量\(h_l^m\),然后经过线性层和softmax来预测标签。
\[
P(y|x_1,x_2,...,x_m)=softmax(h_l^m{W_y})
\]
\[
L_2(C)=\sum_{x,y}logP(y|x_1,...,x_m)
\]
我们增加了语言模型去辅助微调,提高了监督模型的结果。最后的损失函数可以标示为
\[
L_3(C)=L_2(C)+\lambda{L_1(C)}
\]
模型结构如下:
3.3 特殊任务的输入变换
对于有些任务,像文本分类,我们能够直接用上文的模型进行微调。另外的任务,问答系统,需要构造输入的句子对,或者三个文档。由于我们的预训练模型需要连续的文本序列,我们需要改变这种多句文本的输入。
- 文本含义:用$链接前后两个文本
- 相似度:对于相似度的问题,由于没有文本内部的先后顺序。我们可以有两个输入\(Text1\$Text2\)和\(Text2\$Text1\),输出的表示向量在加起来。
- 问答系统:有\(Context\)和\(Answer_1,...,Answer_N\),我们可以组合成\(N\)个\(Context\$Answer_i\)输入,获得N个输出,在通过linear后softmax出概率分布。
4. 总结
论文中介绍了一通过预训练学习和有针对性的微调的个强有力的框架。通过预训练是不同的长文本连续的数据集,模型能够有能力去处理长而广的依赖关系,这个是解决问答系统、语义相似度、文本分类中的关键点。
4. OpenAI GPT算法原理解析的更多相关文章
- 2. Attention Is All You Need(Transformer)算法原理解析
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...
- 3. ELMo算法原理解析
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...
- 5. BERT算法原理解析
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...
- PhotoShop算法原理解析系列 - 像素化---》碎片。
接着上一篇文章的热度,继续讲讲一些稍微简单的算法吧. 本文来讲讲碎片算法,先贴几个效果图吧: 这是个破坏性的滤镜,拿美女来说事是因为搞图像的人90%是男人,色色的男人. 关于碎 ...
- PhotoShop算法原理解析系列 - 风格化---》查找边缘。
之所以不写系列文章一.系列文章二这样的标题,是因为我不知道我能坚持多久.我知道我对事情的表达能力和语言的丰富性方面的天赋不高.而一段代码需要我去用心的把他从基本原理-->初步实现-->优化 ...
- FastText算法原理解析
1. 前言 自然语言处理(NLP)是机器学习,人工智能中的一个重要领域.文本表达是 NLP中的基础技术,文本分类则是 NLP 的重要应用.fasttext是facebook开源的一个词向量与文本分类工 ...
- LRU算法原理解析
LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的. 现代操作系统提供了一种对主存的抽象概念虚拟内存,来对主存进行更好地管理.他将主存 ...
- 最全排序算法原理解析、java代码实现以及总结归纳
算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不通过 ...
- 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现
本文地址 原文地址 分享提纲: 0. 引子 1. 感性认识GeoHash 2. GeoHash算法的步骤 3. GeoHash Base32编码长度与精度 4. GeoHash算法 5. 使用注意点( ...
随机推荐
- iOS 技术篇:__VA_ARGS__实现自定义NSLog
系统的NSLog 我个人觉得有bug时,没准确的说明哪一行出现的问题,所以为了方便自己开发查找问题,附上自己的NSLog 创建定义方式: 1:在创建好的pch文件里 配置: 2:在pch文件里添加上这 ...
- PushBackInputStream回退流
[例子1] import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.PushbackInputS ...
- AJP认证信息爆破ajp_brute
AJP认证信息爆破ajp_brute 一旦AJP服务启用身份认证后,就可以使用Nmap提供的ajp-brute脚本实施爆破.该脚本使用Nmap自带的用户名字典和密码字典实施爆破.在破解前,用户应该 ...
- windows系统,添加网络位置向导。
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ============ 创建一个文件夹 共享. 共享位置 ,文件夹 图标 修改. 分组 ...
- BZOJ.3425.[POI2013]Polarization(DP 多重背包 二进制优化)
BZOJ 洛谷 最小可到达点对数自然是把一条路径上的边不断反向,也就是黑白染色后都由黑点指向白点.这样答案就是\(n-1\). 最大可到达点对数,容易想到找一个点\(a\),然后将其子树分为两部分\( ...
- Python3练习题系列(04)
题目: 制作一个游戏 知识点: 函数.if_elif_else, while, exit 游戏图谱: 游戏代码: from sys import exit def gold_room(): print ...
- Java并发程序设计(十三)锁的性能优化
锁的性能优化 一.优化注意事件 一)减少锁的持有时间 只在必要时进行同步,能明显减少锁的持有时间. 二)锁的细化 缺陷:当系统需要全局锁时,其消耗的资源会比较多. 三)锁的分离 比如读写分离锁 四)锁 ...
- [HDU4906]Our happy ending
[HDU4906]Our happy ending 题目大意: 让你构造一个\(n(n\le20)\)个数的数列,其中每个数都为小于等于\(l(l\le10^9)\)的非负整数. 问你能构造出多少个这 ...
- U3D面试题六
U3D面试题大全 1.Unity中碰撞器(Collider)和触发器(Trigger)的区别? 两方都必须要有碰撞体,且一方要有刚体,但在发生碰撞的条件下,Collide碰撞器会生产 碰撞反弹的物 ...
- iOS开发-工厂模式
工厂模式算是开发中比较常见的设计模式,简单工厂模式,工厂模式和抽象工厂模式,都属于工厂模式.简单工厂模式(simple factory)是类的创建模式,静态工厂方法(static factory me ...