参考
李宏毅 深度学习教程:LeeDL-Tutorial
Chapter 6
输入是向量序列
- 文字处理:输入一个句子,每个词汇都是一个向量
- 词汇用独热编码表示:无法获知词汇之间的关联
- 词汇用词嵌入表示:向量包含语义信息
 
- 语音输入:
- 把一段声音信号取一个范围,这个范围叫做一个窗口(window),把该窗口里面的信息描述成一个向量,这个向量称为一帧(frame)
- 通常来说窗口的长度是 25 毫秒,窗口移动的大小是 10 毫秒(经验得到的结果)
 
TIP考虑以下三种类型:
类型 1:输入与输出数量相同:词性标注,给一段话,分析每个词汇的词性
类型 2:输入是一个序列,输出是一个标签:情感分析,给一段话分析其情感
类型 3:序列到序列:翻译任务
自注意力
NOTE背景:全连接网络+Softmax(归一化函数,将全连接网络的输出向量转化为概率分布)适合进行分类,但无法考虑到上下文信息:
自注意力模型
运作方式

向量 的产生过程
- 
根据 找出输入序列里面跟 相关的其他向量 
- 
每一个向量跟 的关联的程度可以用数值 来表示 
- 
关联程度 的计算方法:点积/相加;Transformer中使用的是点积 
- 
点积: - 输入的两个向量分别乘上两个不同的矩阵:,得到向量
- 将 做点积(逐元素相乘再相加)得到关联程度
 
- 
 
计算向量之间的关联性
- 
利用 向量的点积计算:  
- 
计算后通过 进行归一化操作(也可以选择其他激活函数)  
- 
通过 计算得到 ,之后乘 得到新的向量 ,并通过下列计算得到 ;所以谁的注意力的分数()最大,谁的 就会主导(dominant)抽出来的结果:  
TIP可以利用矩阵乘法计算注意力分数等,具体推导略过:
多头自注意力(multi-head self-attention)
用多个不同的 表示不同类别的相关性,相对应地也有多个不同的 ;头的数量是一个超参数,相关性的计算方法相同:

位置编码/截断自注意力
位置编码
- 位置信息同样重要,如词性分析中第一个词是动词的概率较小
- 位置编码为每一个位置设定一个位置向量 ,输入时将其加到 上,相当于告诉模型:如果看到 被加上 ,它就知道现在出现的位置应该是在 这个位置
- 产生位置向量的方法:人为设定/正弦余弦函数(Transformer中的方法)/其他
截断自注意力
- 计算注意力矩阵时,复杂度是长度的平方,导致数据量增大时需要大量内存、计算资源
- 人为设定模型看某句话的范围,减少计算量,加快运算速度
Chapter 7
Transformer结构
包含编码器、解码器:

编码器
- 
编码器包含很多块,每个块都是输入一排向量,输出一排向量,最后一个块的输出作为最终的向量序列  
- 
每个块并不是神经网络的一层,包含了自注意力、全连接层以及残差连接设计:  
NOTE残差连接
- 用于缓解深层网络中的梯度消失和退化问题
- 使得更深的网络能够训练
- 
Tranformer中块重复N次:  
解码器
Chapter 8
生成式对抗网络(GAN)
生成式对抗网络(generative adversarial network)
- 在输入中加入随机数
- 无限制生成(unconditional generation):直接输入随机数
- 限制生成(conditional generation):需要原始输入 ,如 长度相同是将二者相加作为整体输入
生成器/辨别器
- 
生成器如上,可采用多种分布采样(高斯分布,二项分布等) 
- 
辨别器与生成器相同,通常是一个神经网络 以生成图像为例,辨别器可以采用CNN 
- 
训练步骤:固定生成器训练判别器、固定判别器训练生成器 
WARNING训练具体数学运算用不上,略
条件型生成
- 可以使用Transformer读入文字条件,之后根据条件去生成正确内容
- 在判别器中,需要输入成对的数据来训练判别器
- 对于生成结果 和条件 关联小的生成结果,判别器给予低分
循环生成对抗网络(Cycle GAN)
- 
适用于没有成对输入用于训练的情况(如给人物真实图片,想要生成其动漫风格的人物图片) 
- 
训练过程 - 
两个生成器、一个判别器 
- 
增加一个额外的目标,就是我们希望输入一张图片,其从 域转成 域以后,要从 域转回原来一模一样的  域的图片 所以叫循环生成对抗网络  
 
- 
Chapter 9
扩散模型
生成过程
- 生成一张全部是噪声的图片
- 经过 部去噪过程,最终得到想要的图片
- 通常会给每一个去噪的步骤一个编号,产生最终图片的那个编号比较小
- 去噪模型的每一步除了输入当前图片以外,还要输入当前步骤数以表示当前噪声的严重程度
- 去噪的模组里面有一个噪声预测器,用于预测图像中的噪声,之后利用生成的噪声图像;输出就直接是去噪后的图片,它其实是产生一个这个输入的图片的噪声,再把噪声扣掉输入的图片来达到去噪的效果
	
训练噪声预测器
- 
从数据集中拿出一张图像 
- 
高斯采样在图像上不断加噪声 加噪音的过程称为前向过程,也称为扩散过程 
- 
最终将加噪声的图片结果与加噪声轮数作为一堆输入用于训练预测器  
Chapter 10
自监督学习
- 属于无监督学习的一种
- 将输入 分为两部分:模型的输入 ,模型的标签
- 模型的输出为 ,优化目标是使 尽可能贴近

BERT/GPT
BERT
- 
Transformer的双向编码器表示,结构与Transformer相同 
- 
BERT的训练 - 对输入中的某个字符进行掩码“如MASK字符/或替换为其他字符”
- 下一句预测(用处小)/句序预测
 
- 
BERT的使用:根据不同任务进行微调,使之能完成不同的下游任务 
GPT
预测下一个字出现的概率,从而可以源源不断生成;输出结束字符时停止输出。
Chapter 11
自编码器
自编码器结构
- 包含两个网络:编码器和解码器
- 编码器:将输入图像转换为向量
- 解码器:将编码器的输出作为输入,输出一个重构后的图像
- 训练目标:要求重构后的图像与最初的输入图像越相似越好
- 类似于Cycle GAN
去噪自编码器:将输入图片加上噪声,要求重构后的图片与加噪声前的图像越相似越好;其中解码器还可以用做生成器(变分自编码器)

BERT可以看作是一种去噪自编码器,因为BERT的输入加了掩码(类似于噪声),训练目的是去掉掩码(恢复原来的句子)
 
   
  