Self-Attention GAN的一些理解

本文探讨Self-Attention GAN的工作原理,它通过重新分配权重来增强feature map的全局信息,弥补小卷积核的局限。通过1x1卷积、softmax等操作,生成attention map,实现特征点之间的相互影响,类似于全连接层在卷积网络中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实那么多的attention机制,说白了就是一句话,重新分配权重,比如说现在有一个n维向量[x1, x2, x3..., xn],我觉得x1的值不足以代表其真实情况,所以希望利用x2,...xn的值来对其进行“修补”, 然后就是要找到一组权重w1, w2, w3...wn, 对其求加权平均(也不一定是加权平均,看实际需求)来得到x1的最终值(当然,实际应用中会涉及到一些维度映射,Query-Key-Value等内容,但大体框架都基于此)。

而Self-Attention GAN与之前的non local neural network极为相似(换了个皮?),以下为一些理解。

对于当前得到的feature map X(shape=[C, N],C为channel, N为特征点数,例如在12*12图像中,将其展平,就得到144个特征点),我希望其能够得到更加全局的信息来弥补小卷积核信息获取不足的缺陷。

SAGAN

 

根据上图,对于feature map X,上面两路是获取attention map, 下面一列是一个线性变换,最后相乘得到最终结果。

对于第一路(f(X)那一行),首先X经过一个1x1 卷积,得到f(x) (shape=[C/8, N],C/8是文中的参数,可自由替换,个人理解是为了减少计算量设置的), 而第二路(g(x)一行),也是一个1x1卷积,得到g(x) (shape=[C/8, N]),然后对f(x)进行转置后与g(x)进行矩阵乘法,得到A2(shape=[N, N]),然后对其每一行进行softmax,即可得到所有特征点对某一个特征点的权重,即attention map A中的每一行相加为1, 第i行的N个数分别代表在第i个点上其余所有点对其的贡献,这样通过每一行就能得到其他所有点对这个点的贡献值,而每一列则可以得到某一个点对其他所有点的贡献值。然后最后一行1x1卷积

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值