UNet介绍及其相关思考

简介: UNet介绍及其相关思考

众所周知,在语义分割领域,最经典的网络框架之一就是UNet,简洁的结构,出众的性能,使其不仅在当时取得了骄人的成绩,更对后来的语义分割领域产生了极其深远的影响(尤其是医学图像)。我们先来简单地看看UNet的基本情况。

1.UNet网络简介

这张图就是网上最常见的那张图,也是原文中的网络结构图。

  1. 主体部分:显示输入一张572*572的图片,然后通过两个步长为13*3卷积(没有padding),得到了568*568分辨率的特征图,然后再通过2*2的最大池化下采样,以此类推,总共经过了4次的下采样。采样之后通过两个3*3的卷积,然后再上采样,上采样的方式采用的是转置卷积(或成为反卷积,其实我觉得反卷积这样的表达容易让人误解,毕竟反卷积并不是严格意义上的反向卷积操作)。经过相同次数的上采样。然后再通过两次卷积,一个1*1的卷积操作调节通道数,输出。
  2. 短连接部分(灰色箭头部分):同一个stage的第二次卷积操作输出,然后经过裁剪,再与右侧特征图concat起来。等待卷积核的采样。

2.UNet的优点及其思考

  1. 数据增强(数据扩张等称呼皆可),医学图像的一大特点是数据量匮乏,而面对深度学习这样的任务,显然训练样本是不够的,这个时候就需要数据增强,作者不仅仅采用了常见的平移旋转变换来实现这样的需求,更是采用了随机弹性变形进一步扩充了训练的数据。随机弹性形变如下图所示:

    随机弹性形变并不是在所有的任务中都适用的,这种弹性形变可以很好地模拟生物细胞的动态变化。所以大大扩充了训练数据。
  2. 数据数理方法,本文中并没有将整个医学影像全部放入神经网络中进行处理,而是一部分一部分地进行处理,这样大大增加了网络处理的效率,也减轻了网络训练和推理的负担。而输入图片的padding操作也是相当讲究,直接采用的镜面翻转的方式,这样做的好处,是既没有引入“信号噪声”,又保证了网络对训练图片尺寸的需求。其他论文中的实现方式,要么使用整张图片的平均像素进行填充,要么使用某个数值进行填充,仔细想想,都不如这种方式好。 如下图所示:

  3. 网络结构方面,并没有在特征图上进行padding操作,而是在输入图像上进行了padding,保证了信息的“纯净度”。还有个值得探讨的问题,下采样的时候为什么是2*2的最大池化,而没有采用步长2*2的卷积,个人以为,卷积的步长就代表了采样的精度,因为语义分割任务是像素级的任务,所以在采样的同时,需要保留尽可能多的空间结构,而2*2的最大池化也不会对图像的空间结构做尽可能多的保留。上采样的方法中,常见的有转置卷积和双线性差值,为什么作者采用了前者,个人以为,这样做在上采样的过程中也会学到参数,网络才会取得更好的效果,本身网络的参数量横向比较已经算是非常非常少了。
  4. 损失函数的优化(改进),对于医学影像来说,即使采用了数据增强,训练数据相对来说还是比较吃紧的,于是作者就采用了加权损失来让网络更加倾向于学习边缘区域的像素,因为对该任务来说,细胞的边缘是非常重要的。所以作者对不同位置采用了不同的权重,公式如下:

这个公式其实并不好理解,其中的第一项是平衡类频率的权重,因为背景在全图中的占比较小,所以为了平衡,就这个权重就比较大,文章中没有给具体数值,大概可以这样计算,比方说每张图片总共有100个像素,前景有71个像素,背景有29个像素,那么前景区域的像素权重就可以按照29计算,背景区域按照71计算(大概是这样的原理)。

第二项中用采用了距离之和的方法,d1和d2是理解公式的关键,也非常微妙。

我直接在论文原图中进行了标注,x1和x2分别是前景和背景的两个点。对于x1而言,d1就是粉色箭头,d2就是蓝色箭头,对于x2而言,d1就是黄色箭头,d2就是绿色箭头。这样就可以看到,x2的两个距离之和明显要小于x1,所以在损失函数中的占比较大(仅个人想法,不同意见的可以评论区留言)。

毕竟作者本人没有看过论文源码,所以在一些深入的细节方面还是有所疏漏,有更好的想法大家可以一起讨论。谢谢。

------------------------------------------------------------------------------------------END-------------------------------------

相关文章
|
机器学习/深度学习 自然语言处理 数据可视化
UNet家族最强系列 | UNet、UNet++、TransUNet与SWin-UNet究竟哪个更强!!!
UNet家族最强系列 | UNet、UNet++、TransUNet与SWin-UNet究竟哪个更强!!!
3388 0
|
NoSQL 网络协议 数据库
为什么 Lettuce 会带来更长的故障时间
本文详述了阿里云数据库 Tair/Redis 将使用长连接客户端在非预期故障宕机切换场景下的恢复时间从最初的 900s 降到 120s 再到 30s的优化过程,涉及产品优化,开源产品问题修复等诸多方面。
69713 11
为什么 Lettuce 会带来更长的故障时间
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
1549 0
|
消息中间件 大数据 关系型数据库
大数据框架NiFi
NiFi 是一个易于使用,功能强大,可靠的处理和分发数据框架。主要用于数据的同步传输,支持灵活的数据格式转换,同时可以设置定时调度任务,他是一个数据同步框架,类似于 kettle。
896 0
|
机器学习/深度学习 算法 Ubuntu
dlib
【6月更文挑战第13天】
321 4
|
安全
静态IP代理的最佳实践如何选择合适的方法
在信息化时代,网络成为生活的重要部分,为保护个人信息安全,使用静态IP代理变得越来越普遍。本文介绍了五种实现静态IP代理的方法:租用服务、自建服务器、云服务、ISP提供及转发代理,帮助用户根据需求选择最合适的方式。
550 2
WK
|
机器学习/深度学习 算法 PyTorch
如何计算损失函数关于参数的梯度
计算损失函数关于参数的梯度是深度学习优化的关键,涉及前向传播、损失计算、反向传播及参数更新等多个步骤。首先,输入数据经由模型各层前向传播生成预测结果;其次,利用损失函数评估预测与实际标签间的差距;再次,采用反向传播算法自输出层逐层向前计算梯度;过程中需考虑激活函数、输入数据及相邻层梯度影响。针对不同层类型,如线性层或非线性层(ReLU、Sigmoid),梯度计算方式各异。最终,借助梯度下降法或其他优化算法更新模型参数,直至满足特定停止条件。实际应用中还需解决梯度消失与爆炸问题,确保模型稳定训练。
WK
672 0
|
人工智能 搜索推荐 语音技术
AI赋能视频剪辑师:人工智能时代,视频剪辑师该如何剪辑?
在AI时代,视频剪辑师借助智能素材整理、自动化剪辑、语音识别及创意辅助技术,提升效率和创新空间。他们应拥抱AI,结合AI优化剪辑流程,如高效预筛选素材、减少手动操作,同时借助AI激发创意。保持主观能动性和创造力至关重要,通过学习,如获取Adobe国际认证,提升专业技能,适应行业发展,打造个人品牌,以在行业中保持竞争力。
|
Java 开发工具 C++
(2023版本)GraalVM+native-image+Visual Studio 在Win10上全流程安装,避坑+实操
(2023版本)GraalVM+native-image+Visual Studio 在Win10上全流程安装,避坑+实操
1173 1
(2023版本)GraalVM+native-image+Visual Studio 在Win10上全流程安装,避坑+实操
|
开发者
关于Win11系统PC连上WiFi后能正常使用各大App,但浏览器无法正常上网访问之详细解决办法
我个人近期遇到了一个问题,正如标题所说“关于Win11系统PC连上WiFi后能正常使用各大App,但浏览器无法正常上网访问”,这个bug困扰过不少开发者,今天来简单分享一下解决办法
1999 1