模型评估

  1. 1. 模型评估
    1. 1.1. AUC&ROC
    2. 1.2. Latency
    3. 1.3. PSNR峰值信噪比
    4. 1.4. SSIM结构相似性
    5. 1.5. FID距离得分
    6. 1.6. IoU交并比
  2. 2. 参考材料

模型评估

模型评估主要是针对已经训练好的模型,评判模型的泛化能力。对不同的超参设置,得到不同的训练好的模型参数。通过评估模型在未知的数据上性能,得到最佳的模型参数。

AUC&ROC

AUC是指ROC曲线下方的区域(the area under ROC curve),衡量一个模型能够区分类别的概率。

x轴:错误预测/负样本数 (给的负样本,但是预测成了正类)

y轴:正确预测/正样本数(给的正样本,预测成了正类)

选择一个θ值,对于预测的概率判断 yhat >= θ?,这样就知道预测正确与否。取不同的θ值就会得到ROC曲线。

Latency

模型计算时间。eg.广告应该与其他广告同时呈现给用户

PSNR峰值信噪比

PSNR(Peak signal to noise ratio)为峰值信噪比。通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序能否令人满意。它是原图像与被处理图像之间的均方误差相对于(2^n-1)^2的对数值(信号最大值的平方,n是每个采样值的比特数),它的单位是dB。

均方误差

X为当前图像,Y为参考图像,按照以上公式即可得到均方误差。

PSNR

n为每像素的比特数,一般是8,因为阶数一般是256个(0 ~ 255),可以看出主要影响PSNR数值的是MSE这个均方误差。PSNR越大表示失真越小,MSE越小,两张图片越靠近。

SSIM结构相似性

SSIM(Structural similarity index)基于样本X和Y之间三个比较衡量:亮度 (luminance)、对比度 (contrast) 、结构 (structure)

为x的均值 为y的均值
为x的方差 为y的方差
为x和y的协方差

c1,c2,c3为常数避免除零,k1=0.01, k2 = 0.03为常用取值。ssim公式如下

= / 2时为

ssim一般使用一个N*N的窗口,分别求出对应的分数之后做平均值作为全局评分

协方差

有X,Y两个变量,每个时刻的 “X值与其均值之差”乘以 ”Y值与其均值之差“得到一个乘积,然后对每个时刻的成绩求和并求期望。主要目的是判断两个变量在变化过程中是同向变化还是反向变化。同向的话协方差是正的,反向的话协方差是负数,协方差数值越大同向程度越大,反之亦然。公式如下:

FID距离得分

FID(Fréchet Inception Distance score),FID计算了真实图像和假图片在特征层面的距离。公式如下:

μ:经验均值 Σ:经验协方差 Tr:矩阵的迹 r:真实数据集 g:生成数据集

对目标数据集的N张图片用InceptionV3生成 N*2048向量,取平均值获得μr

对生成数据集的M张图片用InceptionV3生成M*2048向量,取平均值获得μg

通过μr和μg获得Σr和Σg计算FID

IoU交并比

IoU(Intersection over Union)交并比,顾名思义,交集和并集的比例,即:

对于分割领域。二值化图像的样子,设定黑色部分为0,白色部分为1。

1
2
3
4
5
# 交集
intersection = (A * B).sum()
# 并集
union = A.sum() + B.sum() - intersection
IOU = intersection / union

对于多类语义分割领域

1
2
3
4
5
6
7
8
def getIoUScore(input: torch.Tensor, target: torch.Tensor, class_num: int):
ones = torch.ones_like(target)
intersection = ones * (input == target)
intersection[target == 0] = 0 # 剔除背景
union = ones * (input != target) + intersection

iou = torch.sum(intersection) / torch.sum(union)
return iou.item()

参考材料

PSNR百度百科

图像质量评价指标之PSNR和SSIM——知乎

图像质量评估中的PSNR和SSIM的定义,公式和含义

GAN 的六种衡量方法——知乎