深度学习基础系列| 常见的Top-1和Top-5有什么区别?

Posted hutao722

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习基础系列| 常见的Top-1和Top-5有什么区别?相关的知识,希望对你有一定的参考价值。

  在深度学习过程中,会经常看见各成熟网络模型在ImageNet上的Top-1准确率和Top-5准确率的介绍,如下图所示:

技术分享图片

 

  那Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪呢?我们知道ImageNet有大概1000个分类,而模型预测某张图片时,会给出1000个按概率从高到低的类别排名,

  所谓的Top-1 Accuracy是指排名第一的类别与实际结果相符的准确率,

  而Top-5 Accuracy是指排名前五的类别包含实际结果的准确率。

  下面的代码可更为直观地说明其中的区别:

import numpy as np
import tensorflow.keras.backend as K

# 随机输出数字0~9的概率分布
output = K.random_uniform_variable(shape=(1, 10), low=0, high=1)
# 实际结果假设为数字1
actual_pos = K.variable(np.array([1]), dtype=int32)
print("数字0~9的预测概率分布为:", K.eval(output))
print("实际结果为数字:", K.eval(actual_pos))
print("实际结果是否in top 1: ", K.eval(K.in_top_k(output, actual_pos, 1)))
print("实际结果是否in top 5: ", K.eval(K.in_top_k(output, actual_pos, 5)))

  运行后再看看结果为:

数字0~9的预测概率分布为: [[0.301023   0.8182187  0.71007144 0.80164504 0.7268218  0.58599055 0.19250274 0.9076816  0.8101771  0.49439466]]
实际结果为数字: [1]
实际结果是否in top 1:  [False]
实际结果是否in top 5:  [ True]

  从结果上看,output中排名最高的值为0.9076816,其对应的数字为7,而实际数字为1,故不在Top1,而数字1对应的值为0.8182187,排名第二,故在Top5内。

  

以上是关于深度学习基础系列| 常见的Top-1和Top-5有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

Top-1错误率Top-5错误率等常见的模型算法评估指标解析

评估和计算 Top-N 准确度:Top 1 和 Top 5

[人工智能-深度学习-15]:神经网络基础 - 常见优化器Optimizer及其算法 - 梯度下降法系列

关于Top-1错误率Top-1准确率Top-5错误率Top-5准确率的实例辨析

关于Top-1错误率Top-1准确率Top-5错误率Top-5准确率的实例辨析

关于Top-1错误率Top-1准确率Top-5错误率Top-5准确率的实例辨析