当前位置:网站首页>【医学分割】attention-unet
【医学分割】attention-unet
2022-07-07 14:17:00 【可乐大牛】
概述
attention-unet主要的贡献就是提出了attention gate,它即插即用,可以直接集成到unet模型当中,作用在于抑制输入图像中的不相关区域,同时突出特定局部区域的显著特征,并且它用soft-attention 代替hard-attention,所以attention权重可以由网络学习,并且不需要额外的label,只增加少量的计算量。
细节
结构
核心还是unet的结构,但是在做skip-connection的时候,中间加了一个attention gate,经过这个ag之后,再进行concat操作。因为encoder中的细粒度信息相对多一点,但是很多是不需要的冗余的,ag相当于是对encoder的当前层进行了一个过滤,抑制图像中的无关信息,突出局部的重要特征。
attention gate
两个输入分别是encoder的当前层 x l x^l xl和decoder的下一层 g g g,他们经过1x1的卷积(将通道数变为一致之后),再做逐元素的相加,然后经过relu,1x1的卷积(将通道数降为1)和sigmoid得到注意力系数,然后再经过一个resample模块将尺寸还原回来,最后就可以使用注意力系数对特征图进行加权了。
注:这里是3D的,2D理解的话,直接去掉最后一个维度就好了。
一些解释
:为什么要两个输入做加法而不是直接根据encoder的当前层得到注意力系数呢?
可能是因为,首先处理完成之后的两张相同尺寸和通道数的特征图,提取的特征是不同的。那么这么操作能够使相同的感兴趣区域的信号加强,同时各自不同的区域也能作为辅助,两份加起来辅助信息也会更多。或者说是对核心信息的进一步强调,同时又不忽视那些细节信息。为什么需要resample呢?
因为 x l 与 g x^l与g xl与g的尺寸是不相同的,显然 g g g的尺寸是 x l x^l xl的一半,他们不可能进行逐元素的相加,所以需要将两个尺寸变得一致,要么大的下采样要么小的上采样,实验出来是大的下采样效果好。但是这个操作之后得到的就是注意力系数了,要和 x l x^l xl做加权肯定要尺寸相同的,所以还得重新上采样。
attention
Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射
在计算attention时主要分为三步:
- 第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;
- 第二步一般是使用一个softmax函数对这些权重进行归一化;
- 最后将权重和相应的键值value进行加权求和得到最后的attention。
hard-attention
:一次选择一个图像的一个区域作为注意力,设成1,其他设为0。他是不能微分的,无法进行标准的反向传播,因此需要蒙特卡洛采样来计算各个反向传播阶段的精度。 考虑到精度取决于采样的完成程度,因此需要其 他技术(例如强化学习)。
soft-attention
:加权图像的每个像素。 高相关性区域乘以较大的权重,而低相关性区域标记为较小的权重。权重范围是(0-1)。他是可微的,可以正常进行反向传播。
边栏推荐
- PHP has its own filtering and escape functions
- Record the migration process of a project
- 【HCSD大咖直播】亲授大厂面试秘诀-简要笔记
- TiDB For PostgreSQL和YugabyteDB在Sysbench上的性能对比
- Odoo integrated plausible embedded code monitoring platform
- laravel中将session由文件保存改为数据库保存
- 分步式監控平臺zabbix
- Logback logging framework third-party jar package is available for free
- spark调优(三):持久化减少二次查询
- Laravel constructor and middleware execution order
猜你喜欢
Mysql database basic operation DQL basic query
spark调优(三):持久化减少二次查询
Continuous creation depends on it!
Record the migration process of a project
平衡二叉树(AVL)
Strengthen real-time data management, and the British software helps the security construction of the medical insurance platform
Balanced binary tree (AVL)
Leetcode-231-2的幂
SPI master RX time out interrupt
[vulnhub range] thales:1
随机推荐
Talk about the cloud deployment of local projects created by SAP IRPA studio
How can laravel get the public path
What are compiled languages and interpreted languages?
无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
What about the pointer in neural network C language
ThinkPHP URL 路由简介
"The" "PIP" "entry cannot be recognized as the name of a cmdlet, function, script file, or runnable program."
【C 语言】 题集 of Ⅹ
PHP实现执行定时任务的几种思路详解
Have fun | latest progress of "spacecraft program" activities
Multiplication in pytorch: mul (), multiply (), matmul (), mm (), MV (), dot ()
[flower carving experience] 15 try to build the Arduino development environment of beetle esp32 C3
laravel中将session由文件保存改为数据库保存
Cesium (4): the reason why gltf model is very dark after loading
Detailed explanation of several ideas for implementing timed tasks in PHP
Laravel5.1 路由 -路由分组
JS中null NaN undefined这三个值有什么区别
Shandong old age Expo, 2022 China smart elderly care exhibition, smart elderly care and aging technology exhibition
Leetcode-231-2的幂
Notification uses full resolution