本文只是记录个人阅读论文的感想与思考!难免存在错误!如若理解有误还请各位大佬指出!感谢!
目录
相关概念
欧式距离
L2范数
L1损失函数
L1损失函数的优缺点
L2损失函数
L2损失函数的优缺点
论文:SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation
摘要
Introduction
方法
多尺度L1损失定义
SegAn仍然存在的缺点
首先明确理解一些概念。
假设X和Y都是一个n维的向量,即X=(x1,x2......xn),Y=(y1,y2.....yn),则欧式距离定义为
假设X是n维特征X=(x1,x2,....xn),则L2范数等于
L1损失函数也被称为平均绝对误差(MSE),设标签为Y=(y1,y2,...ym)1×m,样本
Xij(n×m)经过模型处理得到预测f(X)=Y^。L1损失函数记为预测结果和真实标签的平均误差。则L1损失函数的定义为
缺点:1)梯度恒定,不论预测值是否接近真实值,这很容易导致发散,或者错过极值点
2)导数不连续,导致求解困难。这也是L1损失函数不广泛使用的主要原因
优点:1)收敛速度要比L2损失函数要快
2)对异常的离群点有更好的鲁棒性。
L2损失函数又被称作平均平方损失函数(MSE),其公式为
缺点:1)收敛速度要比L1慢 2)对异常数据要比L1损失敏感
优点:1)训练更容易,不会错过局部最优解 2其导数具有封闭性,求导容易
本文提出了新的端到端对抗神经网络SegAN.
解决的问题:1)图像分割需要密集的像素级标记,经典GAN鉴别器的单标量输出可能无法给网络产生稳定和足够的梯度反馈。本文提出的方法可以解决,同时还可以有效缓解类别不平衡问题。
2)以往的分割网络很难解决类不平衡问题,也有人提出使用加权交叉熵来缓解类不平衡问题,但是本文作者认为加权交叉熵损失是具有任务特定性的并且这个具体的权值不好确定所以并不能很好的解决。因此作者提出了多尺度L1损失来缓解这一问题
基本思路
使用全卷积神经网络生成分割标签图,提出了一种具有多尺度L1损失的对抗Critic网络。以迫使Critic(鉴别器)和分割网络学习全局和局部特征,从而捕捉像素之间长程和短程空间关系。在整体架构中Critic网络和分割网络在最小-最大博弈中交替训练。
Critic网络将一对图像作为输入(原始图像&预测标签图,原始图像&真实标签图),然后通过最大化多尺度损失函数进行训练。这个分割网络仅仅使用Critic传递的梯度进行训练。其目的是最小化多尺度损失函数。
以前使用CNN进行分割存在的局限性是所有的CNN方法都在网络的最后一层利用像素级损失比如softmax-但是这不足以学习像素之间局部和全局上下文关系。
SegAan与经典GAN的区别:1)本文提出的一种新的分割网络和Critic网络的多尺度损失函数。Critic网络训练的目标是最大化一个新的多尺度L1损失函数,这个损失函数考虑了在多尺度条件下预测分割和真实分割结果之间的特征差异。
2)SegAn是一个在整个图像上进行训练的端到端架构。
提出的网络架构如下图所示
可以看出整体的网络架构由两部分组成即分割网络S和Critic网络C。分割网络是一个完全卷积的编码器解码器结构,其生成最终的分割概率图。而Critic网络有两个输入。即原始图像和预测分割结果的乘积作为第一个输入。真实分割标签图和原始图像的乘积作为第二个输入。
具体来说:
Segmentor为普通的UNet架构,编码器部分为4层stride=2的卷积,解码器部分为4层上采样,输出为模型预测的肿瘤二值图像。
Critic网络共用分割网络编码器的前3层,分别向critic部分输入经预测的肿瘤二值图掩膜的原始输入图像,以及经真值肿瘤二值图掩膜的原始输入图像,最后的loss计算两个不同输出之间的MAE值(L1 loss)。其中Multi-scale体现在对critic部分每一个卷积层输出的特征图像都计算MAE值,最后的总loss取平均。
S和C以对抗的方式交替训练,网络S的目标是最小化多尺度L1损失,而网络C的目标在于最大化这个损失。
其中Lmae是L1距离,具体的L1损失函数的定义为:
网络训练的方式类似于GAN的min-max对抗学习。首先固定S,对C进行一轮训练,再固定C对S进行一轮训练。如此反复,对Critic的训练想要使得多尺度L1损失变大,而对分割网络的训练想要使得多尺度损失变小。
1)对于小的分割区域的分割性能相比于使用小的像素级损失还存在差距
2)对于多类别分割任务而言。模型过于臃肿了!
参考理解论文解读