自回归模型:过去某个时刻的输出,也会作为当前的时刻的输入。(例如encoder-decoder类的模型,再输出y2的时候需要依赖y0和y1)
Transform 也是一个encoder-decoder结构。
LayerNorm和BatchNorm区别:
BatchNorm:训练时,把当前batch内的样本的某列特征进行处理,处理成均值0方差为1(减这个batch内这一列的均值,再除以方差即可)。预测时,算一个全局的均值的方差做为使用。此外还可以通过学习λ、β参数来变换到任意均值和反查。
LayerNorm:对每个样本做处理,处理成均值0方差为1。
Attention:
三个角色:一个Query和n个Key-Value对。
计算规则:输出时所有value的加权求和,其中每个value的权重w是key和query的相似度。
举例:针对不同的Query返回使用不同value权重。
Query:[0.1,0.2]
Key1:[0.1,0.2] Value1:[0.5,0.6]
Key2:[0.2,0.4] Value2:[0.7,0.8]
那最终返回为
=Query*Key1*Value1+Query*Key2*Value2
=(0.01+0.04)*[0.5,0.6] +(0.02+0.08)*[0.7,0.8]
=[0.025,0.03]+[0.07,0.08]
=[0.095,0.11]
常见两种实现:scaled dot-product Attention【默认】,multi-head Attention。
公式:
流程图:(Scale:除以根号dk Mask:是为了避免在t时刻看到t时刻以后的东西,是对t以后乘以特别大的负数)
MultiHead-Attention
简介:Attention默认是scaled dot-product Attention。但也在此基础上的变种multi-head Attention。就是把QKW使用n个W映射到n个低位空间,再做Attention,把多个空间结果拼接。
Transformer:
参考资料:Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili