反向传播与 Transformer 学习笔记
以下为原始学习笔记,保留原文表述,内容尚未逐条核对。
反向传播算法
先预训练得到输出值,然后对于每一个样本,每一个输出层的激活值,考察与目标值的偏差的平方,然后要达到目标值的话,上一层每个激活值需要变大还是变小。平方就是需要变大变小的相对量,输出层所有激活值对其的影响加起来就这样改变上一层。以此类推直到第一层。
如果样本太多,可以用mini-batch方法,把样本拆成多个mini-batch,只用一个batch训练可能梯度下降没那么快,但结果是对的。
求c对w偏导,链式法则拆成三个
Generative Pre-trained Transformer
每个token对应一个向量
注意力模块 前馈层(多层感知器)
张量:三维以上数组
先把一句话切分,可认为一个单词一个token
embedding词嵌入,将token变成高维嵌入向量,方向可以对应语义
从语义的角度:男-女约等于国王=王后
另一种方式:识别器向量×词向量,越接近值越大
结合上下文信息,用上下文的特征在向量上再加减
每次只用最后的向量预测下一个token的概率,最后这个是解嵌入矩阵
softmax函数,让最大概率接近1,最小的接近0,即自然指数然后归一化。
温度T:让数据先除以T再求自然指数,可以调整
T小过拟合 T大欠拟合
词嵌入与注意力
词嵌入:最开始相同词的嵌入向量一样(如果位置相同的话,位置不同还是不一样的),在attention阶段把上下文信息嵌入进去修改。
经过多层attention过程
让一个查询矩阵和嵌入向量相乘得到一个query,得到一个低维向量
同理得到key
然后Q×K如果很大的话,就算是匹配了。这便是注意力模式。
另外后方token不能影响前方。(掩码)
“值矩阵”乘上用来修改的向量,再加上被修改的向量。
一般值矩阵数量等于Q+K,然后这个值矩阵还很大,一般分解成两个矩阵相乘
自注意
真正的transformer是多头注意力的,有多种注意力模式,然后把所有模式的结果求和
注意力机制本身还是让向量之间传递信息。
多层感知器
事实存储在多层感知器里,MLP
向量和表述特征的向量相乘,点积如果等于1就说明符合这一特征。
之后加上偏置向量。然后ReLU
先升维再relu最后降维。注意矩阵乘向量有两种理解方式:横向量每一项一个个乘上右边的向量,或者列向量和右边的向量做点积。
最后加上最初的项=向量。
这个过程就可以在向量中加上特征。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!


