详细介绍Attention UNet中Attention gate运算过程
时间: 2024-05-30 18:10:13 浏览: 261
Attention UNet是基于UNet网络结构的一种图像分割方法,其中引入了注意力机制(Attention Mechanism)。在Attention UNet中,每个下采样层和上采样层之间都添加了一个Attention Gate,用于控制信息的传递和选择。
Attention Gate的运算过程如下:
1. 对于下采样层的特征图 $x$,进行全局池化(Global Average Pooling),得到其平均值 $\mu$ 和标准差 $\sigma$。即:
$$
\mu_x = \frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} x_{ij}
$$
$$
\sigma_x = \sqrt{\frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} (x_{ij} - \mu_x)^2}
$$
其中 $H$ 和 $W$ 分别表示特征图的高度和宽度。
2. 将 $\mu$ 和 $\sigma$ 通过两个全连接层(FC layer)映射到一个 $1 \times 1$ 的特征图,分别得到 $\theta_{\mu}$ 和 $\theta_{\sigma}$。即:
$$
\theta_{\mu} = FC(\mu)
$$
$$
\theta_{\sigma} = FC(\sigma)
$$
3. 对于上采样层的特征图 $y$,同样进行全局池化和特征映射,得到 $\phi_{\mu}$ 和 $\phi_{\sigma}$。
4. 将 $\theta_{\mu}$ 和 $\phi_{\mu}$ 以及 $\theta_{\sigma}$ 和 $\phi_{\sigma}$ 分别进行点乘运算,得到两个特征图。即:
$$
f_{\mu} = \theta_{\mu} \odot \phi_{\mu}
$$
$$
f_{\sigma} = \theta_{\sigma} \odot \phi_{\sigma}
$$
其中 $\odot$ 表示点乘运算。
5. 将 $f_{\mu}$ 和 $f_{\sigma}$ 通过一个全连接层映射到一个 $1 \times 1$ 的特征图,然后通过 sigmoid 函数进行归一化,得到注意力权重 $w$。即:
$$
w = sigmoid(FC(f_{\mu} + f_{\sigma}))
$$
6. 将 $y$ 和 $w$ 进行 Hadamard 乘积(element-wise multiplication),得到加权后的特征图 $y'$。即:
$$
y' = y \odot w
$$
7. 将 $y'$ 和下采样层的特征图 $x$ 拼接在一起,并通过一个 $3 \times 3$ 的卷积层进行特征融合,得到最终的特征图 $z$。即:
$$
z = Conv([y', x])
$$
Attention Gate的作用是通过对下采样层和上采样层的特征图进行全局池化和特征映射,得到两个特征向量,然后通过点乘运算计算两个向量的相似度,然后通过一个全连接层和 sigmoid 函数将相似度归一化为注意力权重,最后将权重与上采样层的特征图进行 Hadamard 乘积,得到加权后的特征图。这样可以使模型更加关注需要分割的目标区域,从而提高分割效果。
阅读全文