【Transformer】Encoder
【Transformer】Encoder
Transformer编码器由N个EncoderBlock堆叠而成,每个EncoderBlock有两个子层:
Multi-Head Attention (Self-Attention)
Add (残差连接)
Norm (层归一化)
Positionwise Feed Forward Network
Add (残差连接)
Norm (层归一化)
\(EncoderBlock_i\)的输出给到下一层,作为\(EncoderBlock_{i+1}(i=1,2,..,n-1)\)的输入
将\(EncoderBlock_{n}\)的输出给到解码器的各层中
\(EncoderBlock_{n}\)的结构如下所示
image-20240805154949444
前面已实现MultiHeadAttention、AddNorm、PositionWiseFFN等模块,这里首先实现EncoderBlock。
其中包含两个子层: 多头注意力机制、基于位置前馈神经网络
每个子层之间均使用残差连接和Layer ...
【Transformer】Residual and LayerNorm
【Transformer】Residual and
LayerNorm
Layer Normal
Layer Normalization
的作用是把神经网络中隐藏层归一为标准正态分布,也就是$ i.i.d
$独立同分布,以起到加快训练速度,加速收敛的作用
其中\(\mu_j\)表示均值,\(\sigma^2_j\)为方差,加 \(\epsilon\)是为了防止分母为 0 \[
LayerNorm(x)=\frac{x_{ij}-\mu _j}{\sqrt{\sigma^2_j+\epsilon}}
\]
层规范化和批量规范化的目标相同,但Layer
Normal是基于特征维度进行规范化。
对于Batch Normal来说,样本长度对计算方差影响比较大。 而Layer
Normal针对每个样本计算方差
对于两个维度的情况,Batch Normal对于每个feature来做normal,Layer
Normal则以样本为单位做normal
image-20240805143242244
对于三个维度的情况,在自然语言处理任务中,句子的长度往往 ...
【Transformer】Position-wise FFN
Position-wise FFN
Transformer的每个子层的注意力机制之间都包含一个前馈神经网络
image-20240805142347660
对序列中的所有位置的表示进行变换时使用的是同一个多层感知机(MLP),因此该前馈网络是“Position-wise”
并且使用Relu作为激活函数 \[
FFN(x)=max(0,xW_1+b_1)W_2+b_2
\]
实现PositionWiseFFN类,
输入X通过三层的MLP计算得到输入(python默认对最后一个维度进行推理)
1234567891011class PositionWiseFFN(nn.Module): """基于位置的前馈网络""" def __init__(self, ffn_num_input, ffn_num_hiddens, ffn_num_outputs, **kwargs): super(PositionWiseFFN, self).__init__ ...
【Transformer】Attention
【Transformer】Attention
注意力机制简单来说就是已知一个Query,以及一些Key-Value对
通过计算Query与每个Key之间的关联度,并通过Softmax计算得到每个Key对应Value的权重
利用权重计算Value的加权和作为Query的输出
如下图,Q1与K2之间的关联度比较高,从而对应V2在计算输出时会给出更大的权重。
与K5关联度比较小,从而V5的权重也会小一些
image-20240805113648793
Masked Softmax Operation
注意力机制通过计算关联度的Softmax值得到一个概率分布作为注意力权重。
但是在Transformer训练过程时,Decoder可以获得对应的所有输出,例如推理“I
love you”中的love词时不应该将"love
you"放入到注意力的计算中。因此在某些情况下,并非所有的值都应该被放入到注意力计算中。
首先定义sequence_mask函数,传入2Dtensor以及对应valid_len(1D)将超过指定范围的元素设置为指定的value
123456 ...
【Transformer】Positional Encoding
【Transformer】Positional
Encoding
在处理词元序列时,循环神经网络是逐个的重复地处理词元的通过中间状态保存顺序信息,
但是Transformer中使用自注意力并行计算而无法保存序列的顺序信息。
因此在Transformer中为了使用序列的顺序信息,通过在输入表示中添加
位置编码(positional
encoding)来在输入中加入位置信息。
位置编码可以通过学习得到也可以直接固定得到。
Transformer中使用基于正弦函数和余弦函数的固定位置编码。
Bert通过学习的方式获得位置编码
假设输入表示\(X∈R^{n×d}\)
包含一个序列中n个词元的d维嵌入表示。
位置编码使用相同形状的位置嵌入矩阵 \(P∈R^{n×d}\) 输出\(X+P\),
矩阵第i行、第2j列和2j+1列上的元素为: \[
\begin{align}
p_{i,2j}&=sin(\frac{i}{10000^{2j/d}})\\
p_{i,2j+1}&=cos(\frac{i}{10000^{2j/d}})
\end{ ...
【Transformer】模型总结
【Transformer】模型总结
模型架构
采用encoder-decoder的架构
encoder将输入\((x_1,,x_n)\)映射到连续的中间表达\((z_1,,z_n)\)
decoder再采用自回归的方式输出序列\((y_1,,y_n)\)
(将前一个生成的符号添加到输入,接着生成下一个(类似RNN))
image-20240724172359971
解码器
Transformer编码器由N个DecoderBlock堆叠而成,每个DecoderBlock有三个子层:
Masked Multi-Head Attention (Self-Attention)
Add (残差连接)
Norm (层归一化)
Multi-Head Attention (Co-Attention)
Add (残差连接)
Norm (层归一化)
Positionwise Feed Forward Network
Add (残差连接)
Norm (层归一化)
\(DecoderBlock_i\)的输出给到下一层,作为\(De ...
数学知识
数学知识
模运算
两个数之和对m取余
定义 \(a = k_1m+r_1\), \(b=k_2m+r1\)
计算两数相加对m取余的结果
\[
\begin{aligned}
(a+b)\%m&=(k_1m+r_1+k_2m+r_2)\%m\\
&=(r_1+r_2)\%m\\
&=(a\%m+b\%m)\%m
\end{aligned}
\]
可以避免计算两数之和的结果,对于大数有效果
2575.
找出字符串的可整除数组 - 力扣(LeetCode)
交叉熵损失函数
交叉熵损失函数
1234567891011121314151617import torchimport numpy as npimport torch.nn as nn# dim=0 按列进行计算,dim=1 按行进行计算# softmax ——> log_softmax --> NLLLOSS--> cross_entropyx = torch.randn(3, 5, requires_grad=True)"""tensor([[ 1.3962, -0.2568, -0.7142, 1.1941, 0.5695], [-0.7136, -1.0663, 1.7642, 0.5170, -0.1858], [ 0.0424, -0.3354, -0.9049, 0.6952, 1.3032]], requires_grad=True)"""y = torch.empty(3, dtype=torch.long).random_(5)""" ...
【RL】Multi-Agent Learning
【RL】Multi-Agent Learning
一个系统中存在多个决策者
面临的困难
环境非平稳变化(马尔科夫特性不再满足),每个智能体所对应的环境包含了其他智能体的策略,其他智能体策略的变化导致环境变化的非平稳性。
局部可观,智能体只能观测到环境的部分状态
集中式学习不可行,需要一个集中式控制中心与智能体之间进行大量的信息交互,神经网络的输入输出维度会随智能体数目指数增大,难以收敛。
基本概念
Agent的关系
Fully
cooperative,两个Agent需要相互配合才能完成任务(工业机器人)
Fully
competitive,一方的收益是另一方的损失(捕食者和猎物)
Mixed Cooperative &
competitive,既有竞争又有合作(足球机器人,队伍内是合作,队伍间是博弈)
Self-interested,利己主义,只想最大化自己的利益,动作可能让别人获益or损失,不关心别人的利益(股票的期货交易系统、无人车)
State & Action
There are \(n\) agents.
Le ...