假设我有一个神经网络的输出向量 { y1, y2, … , yi },对应于某个输入 x,其中输出的第 i 个元素表示 x 被分类为第 i 类的概率。同时,我知道 x 的正确分类,由向量 y = { 0, 0, …, 1, …, 0 } 表示,该向量填充了零,并且在第 j 个位置有一个 1,表示 x 应该被分类为第 j 类。
如何判断神经网络是否正确分类了输入?我是选择输出向量中概率最高的元素,并确定这种分类是否与正确分类相同?还是将所有输出概率转换为最接近的整数值,并将新向量与向量 y 进行比较(如果存在不匹配,我会认为网络未能正确分类输入)?另外,我应该如何计算网络的准确性?准确性 = 正确分类 / 所有分类?
回答:
你只需将概率最高的输出作为结果,其余的输出被丢弃(假设只有一个正确的类)。当你根据正确标签检查准确性时,你会得到有时被称为 top-1 的结果。使用 top-5 时,你会选择五个最高分数,并检查这些类别中是否有任何一个与标签匹配。