Pruebas de AI en la fase off line

En el campo de la #ai debemos realizar pruebas sobre los sistemas AI-ML (Artificial Intelligence – Machine Learning) en dos fases conocidas por todo software tester: pruebas fuera de línea (off line) y pruebas en línea (on line). Ahora bien, en este caso de estudio el sistema sujeto a prueba es un modelo entrenado, y tal como define nuestra práctica, debemos verificar el resultado obtenido a partir de ciertos parámetros que nos permitan evaluar determinadas características de salida.

Objetivo

Probar el modelo entrenado.

El objetivo de estas pruebas es evaluar el comportamiento funcional del modelo entrenado  antes de implementarlo en un entorno de producción.

Deben ser realizadas de manera rigurosa y sistemática para garantizar la calidad del modelo implementado.

Evaluación

Para verificar el resultado esperado, se deben utilizar métricas para aplicar parámetros de evaluación al modelo entrenado.

Parámetros

Teniendo en cuenta que tenemos dos tipos de aprendizajes: aprendizaje supervisado y aprendizaje no supervisado, deberemos considerar varios tipos de parámetros para poder conducir la evaluación en base a métricas.

SUT

Se prueba el comportamiento funcional del modelo.

Sus características no funcionales no se prueban ya que el modelo se implementa en un entorno diferente al de la formación (p.e. pruebas de rendimiento).

Algunos parámetros que se aplican

  • El tiempo de entrenamiento del modelo es un parámetro no funcional que se prueba.
  • La frecuencia de reentrenamiento de modelos es otro parámetro que se prueba.

Estos parámetros son importantes ya que pueden afectar el comportamiento del modelo y su capacidad para generalizar a nuevas situaciones.

Aspecto importante a considerar

Intentar explicar el comportamiento del modelo aplicando diferentes métodos y algoritmos.

Ejemplos de prueba en fase off line

Supongamos que se ha entrenado un modelo de clasificación de imágenes para identificar distintos tipos de frutas. Antes de implementar este modelo en un entorno de producción, es necesario realizar pruebas de fase off line para evaluar su comportamiento funcional. En este caso, se pueden aplicar métricas como la precisión y la exhaustividad para evaluar la calidad del modelo. Además, se pueden probar diferentes parámetros, como el número de capas ocultas o la tasa de aprendizaje, para ver cómo afectan al comportamiento del modelo.

Imagina que se ha desarrollado un modelo de detección de fraudes en transacciones financieras. Antes de poner este modelo en producción, es necesario realizar pruebas de fase off line para evaluar su comportamiento funcional. En este caso, se pueden aplicar métricas como la tasa de falsos positivos y la tasa de falsos negativos para evaluar la calidad del modelo. 

En la fase off line, se prueba el comportamiento funcional del modelo porque se está evaluando el modelo entrenado utilizando un conjunto de datos de prueba para determinar si puede realizar correctamente las tareas que se le asignan. El comportamiento funcional se refiere a la capacidad del modelo para producir resultados precisos y coherentes en la tarea que se le asigna, mientras que el comportamiento no funcional se refiere a cómo funciona el modelo en términos de su rendimiento, capacidad de respuesta y escalabilidad.

Sobre las métricas

Las métricas específicas para aplicar parámetros de evaluación del modelo entrenado son herramientas que se utilizan para evaluar la calidad del modelo de inteligencia artificial (IA) después de que ha sido entrenado. Estas métricas se utilizan para medir el desempeño del modelo y determinar si es adecuado para su implementación en un entorno de producción.

Las métricas específicas se seleccionan en función del tipo de modelo y del problema que se está resolviendo. Por ejemplo, para un modelo de clasificación de imágenes, las métricas comunes pueden incluir la precisión, la exhaustividad y la tasa de falsos positivos. Para un modelo de regresión, las métricas comunes pueden incluir el error medio absoluto y el coeficiente de determinación.Estas métricas se utilizan para comparar los resultados del modelo con los resultados esperados. Si los resultados del modelo no cumplen con los requisitos esperados, se pueden ajustar los parámetros del modelo y volver a entrenarlo. De esta manera, se pueden optimizar los parámetros del modelo y mejorar su rendimiento.

Sobre el modelo entrenado

El modelo entrenado es el resultado final de un proceso de aprendizaje automático (#machinelearning – ML) en el que se utiliza un conjunto de datos de entrenamiento para ajustar los parámetros del modelo. Es decir, parte del proceso de aprendizaje automático es un algoritmo matemático que se entrena con un conjunto de datos de entrada para obtener predicciones o tomar decisiones basadas en esos datos.

Durante el proceso de entrenamiento, el modelo ajusta sus parámetros para que pueda hacer predicciones precisas y útiles. Una vez que el modelo ha sido entrenado, se utiliza para hacer predicciones o tomar decisiones con nuevos datos de entrada. Por ejemplo, si se ha entrenado un modelo de clasificación de imágenes con miles de imágenes de rodillas de niños de 9 años con una cierta característica médica, el modelo puede ser utilizado para clasificar nuevas imágenes relacionadas con rodillas de niños de 9 años que presenten dicha característica definida.

Un poco sobre Aprendizaje Supervisado y no Supervisado

El aprendizaje supervisado y el aprendizaje no supervisado son dos tipos principales de algoritmos de aprendizaje de máquina.

El aprendizaje supervisado es un tipo de aprendizaje de máquina en el que el modelo se entrena utilizando un conjunto de datos etiquetados. Los datos etiquetados son aquellos en los que cada ejemplo de entrenamiento tiene una etiqueta o respuesta conocida que el modelo debe aprender a predecir. Durante el entrenamiento, el modelo aprende a hacer predicciones a partir de los datos de entrada y las etiquetas correspondientes, lo que le permite hacer predicciones precisas en nuevos datos de entrada.

Por otro lado, el aprendizaje no supervisado es un tipo de aprendizaje de máquina en el que el modelo se entrena utilizando un conjunto de datos no etiquetados. En este caso, el modelo debe encontrar patrones y estructuras en los datos sin tener una respuesta conocida para cada ejemplo de entrenamiento. Durante el entrenamiento, el modelo aprende a agrupar y clasificar los datos sin etiquetar, lo que puede ayudar a identificar relaciones y tendencias en los datos.

Fuente de consulta e inspiración: 

Programa de estudio AiU Certified Tester in AI (CTAI) – Versión 1.01R 2019

Gus Terrera

Apasionado por el agile testing y la ia.