• 【深度学习】医学图像分割损失函数简介


            在医学图像分割中,选取合适的损失函数是十分有必要的。已有的文献中提出了许多的损失函数,但只有少部分的文章对提出的损失函数进行了具体的研究。

            损失函数主要是用于评估模型的预测值和真实标签的匹配程度的重要指标。在过去的几年,不同的损失函数被提出并应用到医学图像分割上。一般形式上,损失函数 $ L $ 采用期望风险最小化的形式表示:

    egin{align}
    L=E(G,S)
    end{align}

    其中, $ G=left { g_{i} ight },S=left { s_{i} ight } $ 分别表示真实标签和预测的分割图像。

     1.基于分布的损失函数

            基于分布的损失函数旨在最小化两种分布的差异。这一类中最基本的是交叉熵,其他的都是基于交叉熵变换来的。

    • cross entropy(CE)

            交叉熵是从Kullback-Leibler(KL)散度推导出来的,它是衡量两种分布之间不同的度量。对于一般的机器学习任务,数据的分布是由训练集给出的。因此最小化KL散度等价于最小化交叉熵。交叉熵被定义为:

    egin{align}
    L_{CE}=-frac{1}{N}sum_{i=1}^{N}sum_{c=1}^{C}g_{i}^{c}logs_{i}^{c}
    end{align}

     其中, 如果标签 $ c $ 是像素 $ i $ 的正确分类,则 $ g_{i}^{c} $ 是二值指标; $ s_{i}^{c} $ 是对应的预测概率。

    • weighted cross entropy(WCE)

            加权交叉熵是交叉熵的一般扩展形式:

    egin{align}
    L_{WCE}=-frac{1}{N}sum_{i=1}^{N}sum_{c=1}^{C}w_{c}g_{i}^{c}logs_{i}^{c}
    end{align}

    其中, $ w_{c} $ 是每类分类的权重;一般情况下, $ w_{c} $ 是和类别频率呈反比的。

    • TopK loss

            TopK loss损失函数旨在强迫网络在训练过程中关注硬样本。

    egin{align}
    L_{TopK}=-frac{1}{sum_{i=1}^{N}sum_{c=1}^{C}1left { g_{i}=c extrm{ and }p_{ic}<t ight }}(sum_{i=1}^{N}sum_{c=1}^{C}1left { y_{i}=c extrm{ and }s_{i}^{c}<t ight }logs_{i}^{c})
    end{align}

    其中, $ tin (0,1] $ 是一个阈值, $ 1left { ... ight } $ 是一个二元指示函数。

    • Focal loss

            Focal loss是采用标注的CE处理图像中前景和背景分布不均匀,可以减小正确分类类别的损失值。

    egin{align}
    L_{FL}=-frac{1}{N}sum_{i}^{N}sum_{c}^{C}(1-s_{i}^{c})^{gamma }g_{i}^{c}logs_{i}^{c}
    end{align}

    • Distance map penalized cross entorpy loss(DPCE)

            DPCE损失旨在引导网络将重点放在难以识别的图像边缘部分。

    egin{align}
    L_{DPCE}=-frac{1}{N}(1+D)circ sum_{i=1}^{N}sum_{c=1}^{C}g_{i}^{c}logs_{i}^{c}
    end{align}

    其中 $ D $ 是惩罚距离, $ circ $ 为哈达玛积(Hadamard product)。具体来说, $ D $ 是通过计算ground truth的距离变换,然后将其还原得到的。

    2.基于区域的损失函数

            基于区域的损失函数旨在最小化ground truth  $ G $ 和预测分割区域 $ S $ 二者不匹配的区域,或者最大化 $ G $ 和 $ S $ 重叠区域。主要代表由Dice loss。

    • sensitivity-specificity loss

            sensitivity-specificity loss通过提高特异性的权重来解决类别不平衡的问题。

    egin{align}
    L_{SS}=wfrac{sum_{i=1}^{N}sum_{c}^{C}(g_{i}^{c}-s_{i}^{c})^{2}g_{i}^{c}}{sum_{i=1}^{N}sum_{c}^{C}g_{i}^{c}+epsilon }+(1-w)frac{sum_{i=1}^{N}sum_{c}^{C}(g_{i}^{c}-s_{i}^{c})^{2}(1-g_{i}^{c})}{sum_{i=1}^{N}sum_{c}^{C}(1-g_{i}^{c})+epsilon }
    end{align}

    其中参数 $ w $ 控制这第一项个第二项之间的平衡。

    • dice loss

            dice loss损失可以直接优化dice coefficient,是最常用的分割指标之一。与交叉熵不同,它不需要对不平衡分割任务重新加权。

    egin{align}
    L_{Dice}=1-frac{2sum_{i=1}^{N}sum_{c=1}^{C}g_{i}^{c}s_{i}^{c}}{sum_{i=1}^{N}sum_{c=1}^{C}g_{i}^{c2}+sum_{i=1}^{N}sum_{c=1}^{C}s_{i}^{c2}}
    end{align}

    • IoU loss

            IoU loss和dice loss类似,是直接优化目标类别的分割指标。

    egin{align}
    L_{IoU}=1-frac{sum_{i=1}^{N}sum_{c=1}^{C}g_{i}^{c}s_{i}^{c}}{sum_{i=1}^{N}sum_{c=1}^{C}(g_{i}^{c}+s_{i}^{c}-g_{i}^{c}s_{i}^{c})}
    end{align}

    • Tversky loss

            为了在精确度和召回率之间取得更好的平衡,Tversky损失重塑了dice loss并强调了错误的否定。

    egin{align}
    L_{Tversky}&=T(alpha ,eta )\ onumber
    &=frac{sum_{i=1}^{N}sum_{c}^{C}g_{i}^{c}s_{i}^{c}}{sum_{i=1}^{N}sum_{c}^{C}g_{i}^{c}s_{i}^{c}+alpha sum_{i=1}^{N}sum_{c}^{C}(1-g_{i}^{c})s_{i}^{c}+eta sum_{i=1}^{N}sum_{c}^{C}g_{i}^{c}(1-s_{i}^{c})}
    end{align}

    其中, $ alpha $ 和 $ eta $ 是超参数,控制着假阴性(false negatives)和假阳性(false positives)的平衡。

    • generalized dice loss

            generalized dice loss是dice loss多分类的扩展。

    egin{align}
    L_{GD}=1-2frac{sum_{c=1}^{C}w_{c}sum_{i=1}^{N}g_{i}^{c}s_{i}^{c}}{sum_{c=1}^{C}w_{c}sum_{i=1}^{N}(g_{i}^{c}+s_{i}^{c})}
    end{align}

    其中, $ w_{c}=frac{1}{(sum_{i=1}^{N}g_{i}^{c})^{2}} $ 用于提供不同标签集的属性不变性。

    • Focal Tversky loss

    egin{align}
    L_{FTL}=(1-L_{Tversky})^{frac{1}{gamma }}
    end{align}

    其中, $ gamma in [1, 3] $。

     3.基于边界的损失函数

            基于边界的损失函数是一种新的损失函数类型,旨在最小化ground truth和predicated segmentation的边界距离。

    • boundary(BD)loss

             为了以可微的形式计算两个边界间的距离 $ (partial G,partial S) $ ,边界损失使用边界上的损失而不是使用区域内的不平衡积分来减轻高度不平衡分割的困难。

    egin{align}
    Dist(partial G,partial S)&=int_{partial G}left | qpartial S(p)-p ight |^{2}dp \ onumber
    &approx 2int_{Delta S}D_{G}(p)dp \ onumber
    &=2(int_{Omega }phi_{G}(p)s(p)dp-int_{Omega }phi_{G}(p)g(p)dp)
    end{align}

    其中, $ Delta M=(S/G)cup (G/S) $ 为ground ttruth G和分割区域S的不匹配部分; $ D_{G}(p) $ 为ground truth 的距离图; $ s(p) $ 和 $ g(p) $ 为二元指标函数。 $ phi_{G} $ 为边界水平集表示:如果 $ qin G $ , $ phi _{G}=-D_{G}(q) $ ,否则 $ phi _{G}=-D_{G}(q) $ 。 $ s(p) $ 表示网络的softmax概率输出 $ s_{ heta }(p) $ ,最后一项与网络参数无关。最终得到的边界损失函数为:

    egin{align}
    L_{BD}=int_{Omega }phi _{G}(p)s_{ heta }(p)dp
    end{align}

    • hausdorff distance(HD)loss

            直接最小化HD是十分困难的。Karimi等人提出的了估计ground truth 和prediction segmentation的HD方法。用以下HD损失函数可以减小HD,并用于训练:

    egin{align}
    L_{HD_{DT}}=frac{1}{N}sum_{i=1}^{N}[(s_{i})-g_{i}cdot (d_{Gi}^{2}+d_{Si}^{2})]
    end{align}

    其中, $ d_{G} $ 和 $ d_{S} $ 为ground truth和segmentation的距离转换。

    4.复合损失函数

    • combo loss

            combo loss 是CE和dice loss 的加权和。

    egin{align}
    L_{Conbo}= alpha (-frac{1}{N}sum_{N}^{i=1}eta (g_{i}logs_{i})+(1-eta )[1-g_{i}log(1-s_{i})])-(1-alpha )(frac{2sum_{i=1}^{N}s_{i}g_{i}+epsilon }{sum_{i=1}^{N}s_{i}+sum_{i=1}^{N}g_{i}+epsilon })
    end{align}

    • exponential logarithmic loss

            Wong等人提出了对CE和dice loss进行指数和对数变换。这样网络就可以被迫的关注预测不准的部分。

    egin{align}
    L_{ELL}= w_{Dice}E[(-log(Dice_{c}))^{gamma Dice}]+w_{CE}E[w_{c}(-log(s_{i}^{c}))^{gamma CE}]
    end{align}

    其中, $ Dice_{c}=frac{2sum_{i=1}^{N}g_{i}^{c}s_{i}^{c}+epsilon }{sum_{i=1}(g_{i}^{c}+s_{i}^{c})+epsilon } $ 

  • 相关阅读:
    [Android Studio 权威教程]Windows下安装Android Studio
    iOS:获取图片Alpha图片
    MFC 直线 虚线 折线 圆 椭圆 矩形 弧形
    大北农董事长夫人莫云为何在美国被逮捕?
    【源代码】LinkedHashMap源代码剖析
    前端那些事儿——中文乱码,网页中文乱码,网页乱码,块元素,内联元素
    Struts2通过自己定义拦截器实现登录之后跳转到原页面
    unity3d ngui-TweenRotation-TweenPosition-TweenScale
    分析函数在数据分析中的应用
    Java Collection
  • 原文地址:https://www.cnblogs.com/zhangchao162/p/13541643.html
Copyright © 2020-2023  润新知