
Inteligencia Artificial aplicada a determinar la salubridad de plantas de tomates II
Segundo lanzamiento. Febrero 2020.
Tal como habíamos planificado decidimos incorporar un segundo dataset para poner así en jaque al modelo que con 11.000 imágenes funcionaba casi perfecto (un 98% de accuracy es casi perfecto para ser la primera versión).
Entonces tomamos un dataset público, repleto de imágenes de internet. Pensamos: si logramos meter en el modelo todas las imágenes que hay dando vueltas en internet, a todo el que pruebe el modelo con imágenes de Google lo vamos a sorprender.
¿Cómo lo hicimos? Le transferimos al nuevo dataset lo que habíamos aprendido trabajando con el otro. Realizando dos procesos claves: el transfer learning y el fine-tunning
¿Qué pasó cuando lo hicimos? Bajó la presión a un 30% y luego de algunas mejoras lo subimos al 68%. Porcentaje en el que se encuentra hoy día. Respetable, pero muy mejorable aún.
¿Qué significa esto? Que si le damos 10 fotos el modelo va a saber clasificar bien a casi 7 y en 3-4 imágenes va a tener errores.
¿Qué opciones tenemos para mejorar el 68%? En primer lugar analizar bien la “confusion matrix”. La misma permite analizar el poder de predicción del modelo detallado por clase y de esa forma poder calcular otras métricas (aparte del accuracy) como el “precisión” por clase.
Lo que se ve en ésta matriz es que las precisiones por clases son malas (están dadas por la escala de colores, la diagonal tendría que ser azul oscuro, que representa un 100%) es decir, que la precisión macro-promediada (que es la precisión de cada clase, dividida por el total de clases) no da un buen número y es eso marca que es un mal predictor a pesar de tener un 68% de accuracy.
¿Entonces? bueno, estamos revisando las fotos mal clasificadas para seguir mejorando el modelo manualmente, bajo un proceso de “error analysis”
Por otro lado, continuamente estamos en proceso de incorporar nuevas fotos. Esto tiene que ser constante para la iteración del modelo con la realidad.
Y ahora viene lo más divertido de las mejoras: vamos a incorporar un nuevo algoritmo de identificación de hojas.
De esta forma van a trabajar dos algoritmos en simultáneo:
El primero se va a ocupar de identificar en cada foto a las hojas. En este caso trabajamos con un modelo ya entrenado que identifica hojas de las principales especies vegetales comestibles.
Y el segundo algoritmo va a clasificar a las hojas detectadas según los criterios que definimos para salubridad de plantas (las clases). En este caso vamos a reutilizar el actual algoritmo clasificador que ya tenemos funcionando .
Por lo que estuvimos investigado en papers publicados al respecto esto aumentaría la precisión del modelo en considerablemente.
En resumen, se nos presentan dos desafíos importantes:
1- Subir por encima del 68% de precisión
2- Subir la precisión de cada clase en particular.
Implementamos los dos algoritmos y luego volvemos a publicar los resultados…