最近在肝肿瘤分割的任务上卡住了挺久,找不到提升的方法,看完这篇论文学到了很多,一个是文中提出的损失函数可以直接拿来使用,然后文中简化网络参数的设置以及辅助监督的方式也可以借鉴。
本文主要解决的问题是训练数据不平衡。
首先对当前解决这些问题的函数进行了分析。
如图,黄色那条线可以理解为普通的交叉熵loss,红色那条线可以理解为dice loss,紫色那条线可以理解为focal loss的损失。针对数据不平衡问题,交叉熵loss的做法是进行标签加权。而只使用dice loss则会对难易程度不同的样本产生没有区分的梯度。作者将focal loss 用在语义分割任务中,性能不升反降,作者认为该损失是其在高精度预测处梯度太小。所以作者提出了黑色那条线的损失函数(y=0.3),它拥有focal loss的有优点同时在高精度处又保有较大的梯度。
其次是网络部分
作者对于3D分割简化了3D VNet,削减了通道数,同时改进了卷积块增加了一个类似残差的结构(但不完全是),增加了解码器端的辅助监督。削减了高分辨率层的卷积层数(对于这点改进持怀疑),加入了高斯噪声和0.5 dropout
数据增扩:
最后的实验效果对比
从上图可以看出,只用Dice loss的效果的确有限,所以可以期待改进了Loss后分割性能会有明显提升