深度学习NLP领域文本生成总结

最近也不知道干啥了,索性把这个坑填完,也算是对自己研一的一些总结吧。

文章目录

  • 前言
  • 一、神经网络与深度学习
  • 二、神经网络的过拟合与正则化
  • 三、深度学习的优化算法
  • 四、卷积神经网络
  • 五、循环神经网络
    • 从第五章开始 重点就将在NLP领域了
  • 六、长短期记忆网络
  • 七、自然语言处理与词向量
  • 八、word2vec词向量
  • 九、seq2seq与注意力模型
  • 十、从Embedding到XLNET:NLP预训练简介
    • 1.ELMo
    • 2.特征提取器Transformer
    • 3.GPT(生成式预训练模型)
    • 4.BERT
    • 5.XLNet
  • 十一、深度生成模型之自编码器
    • 变分自编码器
  • 十二、GAN
  • 十三、神经风格迁移、深度强化学习下与胶囊网络
    • 1.风格迁移
    • 2.风格迁移评价指标
    • 3深度强化学习
  • 十四、深度学习框架
    • 1 TensorFlow
    • 2 Keras
    • 3 PyTorch
  • 十五、NLP经典数据集


前言

这周将深度学习的东西写一点总结吧,也算是对研一的一个小总结,要加油呀呀呀。

提示:以下是本篇文章正文内容,寻欢桑知识水平有限,请大家多多批评

一、神经网络与深度学习

1.以神经网络为核心的深度学习是机器学习的一个分支,所以本质上也遵循机器学习的基本要义和法则。
2.对线性不可分的情况,在感知机的基础上一共两种解决方法:一,支持向量机;二,神经网络模型(也叫作多层感知机MLP)这使得神经网络能够处理非线性的问题。
3.BP神经网络模型:前向计算得到输出,反向传播调整参数,最后得到顺势最小时的参数为最优学习参数。(反向传播是基于梯度下降的,主要是以目标参数的负梯度方向对参数进行更新,所以基于损失函数对前向计算过程中各个变量进梯度计算非常有必要)
交叉熵损失函数L(y,a)=-(yloga+(1-y)log(1-a))

二、神经网络的过拟合与正则化

神经网络因为隐藏层的存在可以实现复杂的非线性拟合功能,但是也带来过拟合的问题,解决过拟合的问题,我们一般使用正则化。这一节主要介绍一种正则化方法:Dropout。
1.有监督机器学习的损失函数计算公式①。所有有监督机器学习的核心任务就是正则化参数的同时最小化经验误差。通俗的来说训练误差小,测试误差也小,模型就有比较好的泛化能力;或者说模型偏差小,方差也小。请添加图片描述
2.过拟合就是说,在训练集表现好,而在测试集表现差。特征工程,扩大训练集,算法设计和超参数调优等都是为防止过拟合的。
3.①式的第二项就是正则化项,那么大 就是正则化系数,通常大于零,是一种调整经验误差和正则化项之间关系的系数。
4.范数。常见的L1和L2范数,机器学习当中使用的多的为L2范数。L1通常用于实现参数矩阵的稀疏性。请添加图片描述
5.带正则化的交叉熵损失函数⑤
请添加图片描述
6.Dropout(随机失活):在神经网络训练过程中,对所有神经元按照一定的概率进行消除的处理方式。 所以,从本质上来讲,Dropout也是一种正则化的方式。带有Dropoutj结构的神经网络模型效果类似与L2正则化。

三、深度学习的优化算法

神经网络的训练求解方法从早期的梯度下降、批梯度下降,随机梯度下降到Momentum、RMSProp和Adam等,大体上都脱离不了梯度下降的框架。
1.一个完整的统计学习方法包括模型、策略和算法三个要素。
2.Adam(自适应矩估计算法)是一种将Momentum(动量梯度下降)和RMSProp(均方根加速算法)结合起来的算法。再同等数据量的情况下,Adam算法占用内存小,超参数相对固定,特别适用于大量训练数据的场景,且对稀疏和梯度噪音有很多的容忍性。主要是用了一阶矩和二阶矩,实际上是综合考虑了直线惯性和转动惯性
请添加图片描述

四、卷积神经网络

1.卷积层是的神经网络具备更强的学习和特征提取能力,池化层是使得CNN有更强的稳定性。全连接层可以起到分类器的作用。一个典型的CNN通常就包含这 三层。在训练卷积网络时,需要初始化滤波器中卷积参数,在训练中不断迭代得到最好的滤波器参数。卷积本质上就是一个翻转平移加权求和的操作。
2.使用卷积对图像等数据做出处理。将卷积核与图片矩阵对齐,对应格子的数字相乘后再相加,再填到新矩阵中,这就是卷积。新矩阵能反映特征,叫特征图。是这一层的输出,也是下一层的输入。通过训练寻找卷积核。池化层和全连接层,池化层能选取图像的主要特征;全连接层一般在最后,能将提取到的特征集合在一起,给出图片可能是某种事物的概率。将声音当作图谱处理可以完成语音识别,将词语作为向量处理可以完成机器翻译。

五、循环神经网络

从第五章开始 重点就将在NLP领域了

迁移学习可以帮助我们缓解在数据和计算资源上的尴尬。所谓的迁移学习就是利用数据、任务或模型之间的相似性,将在旧领域学习过或训练好的模型,应用于新领域的过程。两个任务的输入属于同一性质。
RNN(Recurrent Neural Network)
音频是按照时间顺序播放的。建立由序列输入到序列输出之间的有监督机器学习模型就是RNN要做的事。带有时间和记忆属性的神经网络模型使得深度学习可以解决语音识别和自然语言处理等建模问题。
1.一个RNN单元结构通常需要进行两次激活计算,一次是结合上一个时间步的隐状态值和输入计算,另一次是基于当前隐状态值的输出状态。两次激活计算公式如下在这里插入图片描述
2.结构类型多对一多个输入一个输出可以适用与情感分析,文本分类等。例如:电影评论得到情感分析。在这里插入图片描述

六、长短期记忆网络

1.LSTM是RNN的一种常见的改进模型,引用了门机制去解决梯度爆炸或者梯度消散的问题。在【0,1】之间,0是完全舍弃,1是完全保留。门计算所需要用到的参数,由模型自己去进行学习。每一个门都有对应的参数,每一个门的每次计算,是根据当前的输入前一刻的状态,以及内部状态,来计算门的值是什么,最后再对整个状态进行更新整个状态进行更新。遗忘门丢掉 不需要的信息,输入门要记住那些东西,输出门决定了多大程度输出信息。
在这里插入图片描述

2.GRU是另一个对RNN进行改进的模型,可以看作是LSTM的变形。相对于LSTM ,GRU模型减少了一个门,更新们是遗忘门和输入门的结合体。参数量也会变少。因此,最终GRU的速度比RNN、LSTM更快一些。 在这里插入图片描述
在这里插入图片描述

七、自然语言处理与词向量

1.词汇表征 目前主要有两种方法,一种是传统机器学习中的one-hot编码方式,另外一种是基于神经网络的词嵌入技术。
one-hot词汇表征方法存在两个缺点:①容易造成维数灾难②不能很好地获取词汇间的相似性。
第二种称为词嵌入技术,基本思想是将词汇表中的每个单词表示为一个普通向量。(例如word2vec word2vec有两种语言模型 一种是会根据上下文来预测中间词的CBOW(连续词袋模型) 另一种是根据中间词来预测上下文的Skip-gram(跳字模型))
2.词向量 词向量的本质在于降维
3.语言模型 通俗来讲就是把一些词语组成一句话来判断这句话是不是一句完整的话。两种语言模型:一种是基于概率统计语言描述的语言模型,另外一种则是利用函数来拟合上述概率模型,将模型当做一种有监督学习模型来求解。

八、word2vec词向量

word2vec word2vec有两种语言模型 一种是会根据上下文来预测中间词的CBOW(连续词袋模型) 另一种是根据中间词来预测上下文的Skip-gram(跳字模型)本质上都是一种词汇降维的操作。
1.将CBOW的输入层换成输出层基本上就变成了Skip-gram模型,二者 可以理解为一种互为翻转的关系。

九、seq2seq与注意力模型

seq2seq模型详解
seq2seq模型及优化

十、从Embedding到XLNET:NLP预训练简介

词嵌入是一种比较流行的词汇表征方法,word2vec是主要的词嵌入工具,词嵌入除了是一种词汇表征的方法外,更是一种标准的预训练模型。词嵌入很难解决多义词的问题(同一个单词占据的是同一行参数空间,这使得不同上下文信息都会编码相同的词嵌入空间去,所以此前如无法处理多义词问题)
**语言模型嵌入(ELMo)**的提出很好地解决了词嵌入静态表示(word2vec训练之后每个单词都固定了,在使用时就比较受限于应用场景)的缺点。
NLP预训练模型分为基于特征的预训练和基于微调的预训练。

1.ELMo

ELMo采用了双层双向的LSTM结构,由前一个和后一个语言模型构成,目标函数则取这两个方向语言模型的极大似然估计。深度学习NLP领域文本生成总结_第1张图片
左边代表正方向编码器,输入的是除目标单词之外的从左到右的上文Context-before;右边的后向双层LSTM代表反方向编码器,输入的是从右到左的你虚下文Context-after。
前向LSTM:深度学习NLP领域文本生成总结_第2张图片
后向LSTM:深度学习NLP领域文本生成总结_第3张图片
目标函数为联合两个方向的极大对数似然函数:在这里插入图片描述
ELMo训练好之后可根据下游的NLP任务来进行调整。

2.特征提取器Transformer

一个好的NLP预训练模型,除了要有能够适应各种场景的词嵌入表达之外,更需要一个特征提取能力强大的网络结构。
Transformer抛弃了传统的CNN和RNN结构,本质上一种完全由注意力构成的网络。从结构上看依然是编码解码架构,由自注意力、编码-解码注意力和前馈神经网络构成,一个完整的Transformer结构也是一个典型的编码解码结构。深度学习NLP领域文本生成总结_第4张图片
Transformer目前已经取代RNN、LSTM成为预训练模型主流特征提取器。

3.GPT(生成式预训练模型)

GPT本质与ELMo相似,有两个区别:
1)采用了Transformer代替LSTM作为特征提取器
2)相对于EMLo的双向模型,GPT采用的是单向语言模型。(单向是指只使用Context-before上文信息来做预测,不使用Context-after下文信息)
单向模型相对于双向模型有一定的信息损失,这也是GPT的缺点。
深度学习NLP领域文本生成总结_第5张图片
模型的左边是使用Transformer结构作为预训练,右边是根据具体的NLP任务对GPT进行微调。

4.BERT

与ELMo和GPT一样B,BERT也是基于微调的预训练方法。
BERT本质就是双向的GPT,BERT有两个关键点:双向结构和Transfoemer特征提取器。深度学习NLP领域文本生成总结_第6张图片

5.XLNet

XLNet是一个类似BERT的模型,是一种自回归预训练方法。
1)自回归语言模型就是个根据上问内容预测下文,或者个更具后文来预测前文。ELMo和GPT都是典型的自回归模型
2)自编码语言模型就是在输入序列中随机屏蔽一些单词,然后在预训练时,预测这些被屏蔽(MASK)的单词,从自编码的角度来看,被MASK的三次可以视为向输入添加的噪声,BERT就是这种自编码语言模型的代表。
XLNet是为了解决BERT的问题应运而生的产物:自编码语言模型能够很好地融入双向模型,但输入端使用Mask使得预训练阶段和微调阶段会存在不一致的情况,因为在微调阶段被屏蔽的单词没有被标记。XLNet用回了自回归语言模型,但与 Elmo和gpt不一样的是,它采用了一种新的方法来实现双向编码——乱序语言模型。

ELMo, GPT等经典模型的介绍与对比

十一、深度生成模型之自编码器

自编码器本质上是一种数据压缩算法,其压缩和解压缩算法都是通过神经网络来实现的。自编码器就是一种利用反向传播算法,是的输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,再将这种表征重构为输出。
自编码器通常有两个方面的应用:一是数据去噪,二是为进行可视化而降维。

变分自编码器

生成模型的两座大山:GAN和变分自编码器(VAE)
经典的自编码器由于本身是一种有损的数据压缩算法,VAE则不是将输入图像压缩为潜在的空间的编码,而是将图像转换为常见的两个统计分布:均值赫尔标准差。然后使用这两个参数来从分布中进行随机采样得到隐变量,并对隐变量进行解码重构即可。
在深度学习和图像领域,生成模型也可以给概括为用概率方式描述图像的生成,通过对概率分布采样产生数据。从概率论的角度来看,生成模型本质上就是一种分布变换。(构建一个模型将原始数据的概率分布转换到目标数据的概率分布,目标就是原始分布和目标分布越像越好)

十二、GAN

GAN的全称是Generative adversarial network,中文翻译过来就是生成对抗网络。生成对抗网络其实是两个网络的组合:生成网络(Generator)负责生成模拟数据;判别网络Discriminator)负责判断输入的数据是真实的还是生成的。生成网络要不断优化自己生成的数据让判别网络判断不出来,判别网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗网络。

生成器(Generator):通过机器生成数据(大部分情况下是图像),最终目的是“骗过”判别器。

判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”。
二者互相博弈,已达到以假乱真的效果。

十三、神经风格迁移、深度强化学习下与胶囊网络

1.风格迁移

所谓风格迁移,其实就是提供一段文本 a,将文本 a 转换成具有特定风格的文本 a,并尽量保留原文本 a 的内容语义。 风格迁移任务是文本生成的重要分支,实现商业化之后可以为人们带来许多便利,例如在新闻工作中将通俗易懂的白话文转
为正式语言,减少了报道中的人工工作量;过滤或更改社交软件的恶意评论,减少政治纷争问题等。起初,文本中的风格迁移任务的进展落后于其他语音、图像等领域,这主要是因为缺乏并行语料库以及可靠的评价指标,序列到序列模型在多项任务(机器翻译、对话系统等)中取得了巨大的成功,但是需要大量并行数据,所以在风格迁移任务中限制了该模型的使用。 近几年来研究者都将研究重心放在了非平行语料库上,随着训练数据的处理以及模型的改进,风格迁移技术发展迅速。

2.风格迁移评价指标

(1)迁移强度。 目标是检验形式风格是否已经成功更改。 假设存在两个语料库和,在两个语料库上训练分类器,确保能够识别它们各自典型的“形式”,之后将意义/ 形式改变之后的句子输入分类器,分类器输出的整体准确度反映了意义/ 形式的成功程度,这种方式后来得到了广泛应用。
(2)内容保留。 就风格迁移任务来讲,仅有转移强度本身并不能反映更改后句子的整体质量。如果某种模型的风格迁移程度很高,那么得分会很高,但是仅有这种评价指标并不充分,所以应当考虑在转变风格的同时保留了多少原有语义。 为了实现此功能,文献[3] 提出基于余弦相似性的度量,首先进行句子嵌入,其次计算原始句子的嵌入和变化之后的目标语句嵌入之间的余弦相似性得分,最后对整个数据集的得分进行平均。 在不同的任务中,有些看重转移强度,有些则偏向于内容保留,针对不同任务对两种指标进行加权求和即可。
(3) 流畅性。 仅考虑上述两个评价指标并不
能保证生成句子的流畅性与可读性。 需要引入困惑度(perplexity)。 语言模型(Language Model,LM)用来计算一个句子生成的概率,也就是说,LM 是用来判断一句话是否出自人口。 所以文本流畅度的指标可以说是文本生成最基本的指标之一

3深度强化学习

强化学习是一种关于序列决策的工。具体而言就是描述决策主体如何基于环境而行动以获取利益最大化的问题。强化学习的一个典型例子就是击败柯洁的AlphGo(阿尔法围棋)。让计算机在环境中学习,机器的每个行为都会给与相应的奖励,机器通过对这些数据进行学习来决定之后的策略。

十四、深度学习框架

1 TensorFlow

2 Keras

3 PyTorch

作为一款基于python的深度学习计算库,Pytorch提供了高于Numpyd的青岛的的丈量计算能力和兼容灵活度和速度的深度学习研究功能。

十五、NLP经典数据集

1.IMDB 是一家在线收集各种电影信息的网站 和豆瓣类似,用户可以再上面发表对电影的评价。IMDB数据集御用情感分析的IMDB电影评论二分类数据集,包含25000个训练样本和25000个测试样本,所有影评都被标记为正面和负面两种评价。IMDB数据集地址

#导入IMDB模块
from tensflow.keras.datasets import imdb
#导入数据
(x_train,y_train),(x_test,y_test)=imdb.load_data()
#输出数据维度
print(x_train.shape,y_train.shape,x_test.shape,y_test.shape)
  1. WikiText 保留了产生每个词汇的原始文章,非常适用于长期依赖的大文本建模问题 数据集地址
    3.Amazon reviews

Amazon Reviews数据集分为Full和Polarity两个版本。Full版本每个类别包含600000个训练样本和130000个测试样本,Polarity版本每个类别则包含1800000个训练样本和200000个测试样本。评论的商品包括书籍、电子产品、电影、日常家用产品、衣服、手机、玩具等各类常用物品。
Amazon Reviews数据集地址
4.Sogou news Sogou news 数据集是来自SogouCA和SogouCS新闻语料库总共包含运动、金融、娱乐、汽车和技术5个类别2909551篇新闻文章构成的数据集。每个类别分别包含90000个训练样本和12000个测试样本。

Sogou news 数据集地址

参考文献:[1]张兴信,郭志刚,陈刚.受控文本生成技术研究综述[J].信息工程大学学报,2022,23(02):230-238.

你可能感兴趣的:(深度学习,自然语言处理,机器学习)