注意力机制新思路!频域+Attention,精度超SOTA22.6%

频域与注意力机制的结合是一种创新的网络设计方法,它利用频域分析来增强特征提取过程,并通过注意力机制进一步优化特征的利用效率。

这种策略有助于模型捕捉和利用信号中的关键频率成分,不仅能够提高模型的性能和精度,还能在一定程度上简化模型的设计和优化过程。

以浙大团队的FcaNet为例:

FcaNet是一种非常巧妙的通道注意力机制,从频域的角度出发,采用DCT对SE进行了扩展。这种方法简洁而高效,仅需对原有代码进行微小的改动,即能实现相较于SENet50模型1.8%的性能提升。

因此,频域与Attention的结合也是深度学习中的一个热门方向,并且由于我们以往对频域的关注较少,可挖掘的创新点很多。

本文分享频域+注意力机制9种融合创新方案,有最新的也有经典的,主要涉及自适应频域特征提取+attention、多尺度频域+attention等,方便各位获取灵感。

论文以及开源代码需要的同学看文末

SpectFormer

SpectFormer: Frequency and Attention is what you need in a Vision Transformer

方法:之前,transformer要么使用全注意力层,要么使用谱层。Spectformer结合了这两个方面,并且表现出比全注意力层或全谱层更好的性能。作者在特定任务中提出了参数化方法,为进一步的适应性提供了可能性。

### 频域注意力机制计算机视觉的应用 频域注意力机制作为一种创新性的方法,在处理图像和视频数据方面展现了独特的优势。传统上,注意力机制主要集中在空间域内操作,而频域自注意力则引入了频率分析的概念。 #### 1. 基本原理 频域注意力机制的核心在于将输入信号转换至频域进行处理后再映射回原始空间[^1]。这种变换允许模型捕捉到更深层次的空间结构特征,尤其是对于周期性和纹理模式敏感的任务而言尤为重要。具体来说: - **傅里叶变换**:首先利用快速傅立叶变换(FFT),把图像从像素表示转化为频率分量; - **自注意计算**:接着在网络层内部实施标准的多头自注意力机制;此时查询、键值对都是基于频率成分构建而成。 - **逆变换重构**:最后再经过一次反向傅里叶变换(IFFT), 将得到的结果变换成原来的图像形式用于后续任务如分类或检测等。 ```python import torch from torch import nn, fft class FreqDomainSelfAttention(nn.Module): def __init__(self, dim, num_heads=8): super().__init__() self.num_heads = num_heads head_dim = dim // num_heads # 定义线性投影层 self.qkv = nn.Linear(dim, dim * 3) def forward(self, x): B, N, C = x.shape # 进行二维离散傅里叶变换 freq_x = torch.fft.rfft2(x).real qkv = self.qkv(freq_x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) q, k, v = qkv[0], qkv[1], qkv[2] attn = (q @ k.transpose(-2, -1)) * ((C // self.num_heads) ** (-0.5)) attn = attn.softmax(dim=-1) out_freq = (attn @ v).transpose(1, 2).reshape(B, N, C) # 反向傅里叶变换恢复原图 output = torch.fft.irfft2(out_freq) return output ``` 此模块实现了基本框架下的频域自注意力功能,适用于多种CV应用场景中作为增强组件加入现有架构之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值