Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema07-apendices

7.h Apéndices

Top-N-Accuracy

En problemas de clasificación en los que hay muchísimos clases a clasificar , se puede usar otra métrica llamada Top-N Accuracy. Veamos en que consiste.

El problema de clasificación de ImageNet hay 1000 posibles clases a clasificar. En ese caso cuando decimos que un "gato" es un "gato" es que la clase gato tiene la mayor probabilidad. Veamos un ejemplo con 10 objetos.

Clase Probabilidad
Casa 0.06
Botella 0,04
Farola 0,15
Gato 0,34
Perro 0,28
Niño 0,04
Adulto 0,02
Bicicleta 0,03
Semáforo 0,001
Puente 0,039

Si la imagen es de un gato, en este caso diríamos que ha acertado ya que la probabilidad de ser gato es del 34% y es la mayor de todas. Y con eso calcularíamos el valor de Accuracy.

Sin embargo veamos este otro ejemplo:

Clase Probabilidad
Casa 0.06
Botella 0,04
Farola 0,15
Gato 0,28
Perro 0,34
Niño 0,04
Adulto 0,02
Bicicleta 0,03
Semáforo 0,001
Puente 0,039

En este nuevo ejemplo, también le hemos pasado una imagen de una gato pero la probabilidad de ser gato es del 28% mientras que la de ser perro es del 34%. Por ello diríamos que no ha acertado.

Sin embargo usando la métrica de Top-2 Accuracy, diríamos que ha acertado si el gato está entre las 2 que tiene mayor probabilidad. Y en este caso si que diríamos que ha acertado.

Esta métrica tiene sentido cuando hay muchísimas clases (En ImageNet hay 1000 clases). Y aunque la predicción correcta no sea la mejor al menos está entre las 2 primeras Top-2-Accuracy.

En el siguiente artículo Image classification with Vision Transformer se ve como se usa la métrica de Top-5-Accuracy.

Keras

en keras se puede usar esta métrica con tf.keras.metrics.SparseTopKCategoricalAccuracy.

Por defecto esta métrica calcula es top-5-Accuracy.Pero se puede cambiar con el parámetro k.

model.compile(optimizer='sgd',loss='sparse_categorical_crossentropy',metrics=[keras.metrics.SparseTopKCategoricalAccuracy()])

model.compile(optimizer='sgd',loss='sparse_categorical_crossentropy',metrics=[keras.metrics.SparseTopKCategoricalAccuracy(k=5, name='top-5-accuracy')])

Más información:

clase/iabd/pia/2eval/tema07-apendices.txt · Última modificación: 2024/11/06 13:09 por admin