数据预处理
对于图像:
一个pixel可以看做一个三维向量,这样就转成了vector
Self Attention
原理:
Self attention的input是一串的vector,而每一个输出都会考虑到所有的输入,以b1为例,要想计算b1,首先要计算每一个input向量与a1的关联程度阿尔法,关联越强也就是说这个向量对输出b1是有关系的,计算阿尔法可以通过很多方法,例如点积来计算,把输入的两个向量,乘上两个不同的矩阵,得到q和k这两个向量,再把q和k这两个向量做点积就得到了阿尔法,
1.输入多少vector就输出多少vector,箭头只是表示每一个输出都考虑到了整个input sequence
2.第一步,考虑单个输入向量与其他输入向量之间的关联程度
3.如何计算上图中的阿尔法?
注意自己与自己也要算。
4.根据attention分数抽取重要资讯
如果某个关联系越强,得到的阿尔法分数就越高,最后加权求和后就越接近某个vi
5.添加位置信息
矩阵表示法
1.计算QKV
W是network 的参数,是被learn的
2.计算阿尔法
k转置的原因:
3.算出b
4.总结
MutiHead self attention
给多个初始W,分组个算各的
Seq2Seq
输出不知道多少个就是seq2seq问题
1.Encoder
Encoder展开
在Transfomer中实际上
CNN与自注意力的区别
BERT
1.pre-train和fine tune
2.为什么work
3.BERT结构
参考资料:
https://www.youtube.com/watch?v=hYdO9CscNes&list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index=10