引入:机器学习中的precision和recall

GT\pred positve negative
positive true positive false negative
negative false positive true negative

precision=TPTP+FPprecision = \frac{TP}{TP + FP}recall=sensitivity=TPTP+FNrecall = sensitivity = \frac{TP}{TP + FN}specificity=TNTN+FPspecificity=\frac{TN}{TN+FP}
precision和recall的分子都是被正确分类(挑选)的部分,分别用挑选为正类的总数(TP+FP)和正类总数(TP+FN)来评估正确的比例。
F1 score便是以相同权重的调和平均去整合在这两个指标:
1F1=1Precision+1Recall    F1=2PRP+R    F1=2TP2TP+FP+FN\frac{1}{F^1} = \frac{1}{Precision}+\frac{1}{Recall}\implies F^1=\frac{2*P*R}{P+R}\implies F^1=\frac{2*TP}{2*TP+FP+FN}

dice loss

dice系数 s=2XYX+Y=2TP2TP+FP+FNs = \frac{2|X\bigcap Y|}{|X|+|Y|}=\frac{2*TP}{2*TP+FP+FN}
XY|X\bigcap Y|是指X和Y之间的交集,|X|和|Y|分别表示X和Y的元素个数。分子的系数为2,因为分母存在重复计算X和Y之间共同元素。直观上是计算X与Y的相似性,本质上这是同时隐含precision和recall两个指标。
X :分割图像的ground truth
Y:分割图像的predict分割结果
dice系数差异函数为dice loss
diceloss=1dice=12XYX+Ydice loss =1-dice = 1-\frac{2|X\bigcap Y|}{|X|+|Y|}训练网络求得极小值
网络最后一层输出为sigmoid

cross-entropy交叉熵损失函数

网络最后一层**函数为softmax(如果是二分类问题,最后一层用softmax与sigmoid的效果是相同的),softmax适用于二分类多分类,经过softmax之后,各个类别加和为1。
二分类:
第i个神经元的交叉熵为
tilog(yi)+(1ti)log(1yi)={log(yi)ti=1log(1yi)ti=0t_ilog(y_i)+(1-t_i)log(1-y_i)=\begin{cases} -log(y_i) & \quad t_i=1\\ -log(1-y_i) & \quad t_i=0 \end{cases}
最后一层总的交叉熵损失函数是itilog(yi)+(1ti)log(1yi)-\sum_it_ilog(y_i)+(1-t_i)log(1-y_i)

focal loss

focal loss主要是为了解决one stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重
focal loss是对交叉熵损失函数的改进
Lfl={(1yi)γlog(yi)ti=1(yi)γlog(1yi)y=0L_{fl}=\begin{cases} -(1-y_i)^\gamma log(y_i) & \quad t_i = 1\\ -(y_i)^\gamma log(1-y_i) & \quad y=0 \end{cases}
loss function 损失函数
在原有的基础上加上一个因子,其中γ>0\gamma >0使得减少易分类样本的损失,更关注对于困难的、错分的样本
一般γ\gamma取值为2。
此外,加入平衡因子α\alpha,用来平衡正负样本本身比例不均。注意,α\alpha不关注难分样本。
一般α\alpha取值为0.25。
Lfl={α(1yi)γlog(yi)ti=1(1α)(yi)γlog(1yi)y=0L_{fl}=\begin{cases} -\alpha(1-y_i)^\gamma log(y_i) & \quad t_i = 1\\ -(1-\alpha)(y_i)^\gamma log(1-y_i) & \quad y=0 \end{cases}

相关文章: