La tecnología de IA está revolucionando sectores y transformando cómo trabajamos y vivimos. A medida que los sistemas de IA se integran en sectores de seguridad crítica, como aeroespacio, automoción y atención médica (Figura 1), van tomando decisiones que afectan directamente a la seguridad y bienestar de las personas. Esto ha desembocado en una necesidad creciente de procesos de verificación y validación rigurosos para explicar, verificar y validar el comportamiento de modelos.
En cuanto a la certificación en IA, las técnicas de verificación y validación (V+V) ayudan a identificar y mitigar riesgos, así como demostrar que los modelos de IA y sistemas basados en IA cumplen con normativas y con estándares de la industria.
En ocasiones, los flujos de trabajo de V+V tradicionales, como el ciclo en V, no son suficientes para garantizar la precisión y fiabilidad de modelos de IA. Por ello, se han desarrollado adaptaciones más adecuadas para aplicaciones de IA, como el proceso de desarrollo en forma de W (Figura 2).
Figura 2. Proceso de desarrollo en forma de W basado en un diagrama original publicado por la Agencia de la Unión Europea para la Seguridad Aérea (EASA). (Imagen cortesía de EASA)
Figura 2. Proceso de desarrollo en forma de W basado en un diagrama original publicado por la Agencia de la Unión Europea para la Seguridad Aérea (EASA). (Imagen cortesía de EASA)
Las siguientes secciones presentan las etapas de V+V del proceso de desarrollo en forma de W. Para examinar más de cerca este proceso, consulte los siguientes recursos.
Más información
Para ilustrar un caso práctico de este proceso, este white paper describe paso a paso el desarrollo de un sistema de IA médico diseñado para detectar neumonía a partir de radiografías de tórax. Este caso clínico destaca las fortalezas y desafíos de la IA en aplicaciones de seguridad crítica, y muestra por qué el modelo de clasificación de imágenes debe ser preciso y robusto para evitar diagnósticos erróneos perjudiciales.
La primera mitad del proceso de desarrollo en forma de W garantiza que los modelos de IA cumplen con los estándares requeridos y funcionan de modo fiable en aplicaciones del mundo real.
Gestión de requisitos asignados al componente de ML
La primera etapa del ciclo en W consiste en recopilar requisitos específicos del componente de Machine Learning. Entre las consideraciones clave se encuentran implementación, pruebas y explicabilidad del modelo. Requirements Toolbox™ facilita la creación, vinculación y validación de requisitos (Figura 3).
Figura 3. La app Requirements Editor captura requisitos para el componente de Machine Learning.
Gestión de datos
La siguiente etapa del ciclo en W es la gestión de datos, que resulta crucial para el aprendizaje supervisado, ya que requiere datos etiquetados. MATLAB® ofrece las apps de etiquetado interactivo y automatizado Image Labeler y Signal Labeler. Sirviéndose de imageDatastore, que estructura archivos de imagen para escalabilidad, puede gestionar conjuntos de datos de imagen de gran tamaño, como los utilizados para entrenar el modelo de detección de neumonía:
trainingDataFolder = "pneumoniamnist\Train"; imdsTrain = imageDatastore(trainingDataFolder,IncludeSubfolders=true,LabelSource="foldernames"); countEachLabel(imdsTrain)
Gestión del proceso de aprendizaje
Antes del entrenamiento, es esencial definir la arquitectura de la red y las opciones de entrenamiento, como el algoritmo, la función de pérdida y los hiperparámetros. La app Deep Network Designer permite diseñar y visualizar redes de manera interactiva. El siguiente código define la arquitectura de una red neuronal convolucional (CNN) para clasificación de imágenes:
numClasses = numel(classNames);
layers = [
imageInputLayer(imageSize,Normalization="none")
convolution2dLayer(7,64,Padding=0)
batchNormalizationLayer()
reluLayer()
dropoutLayer(0.5)
averagePooling2dLayer(2,Stride=2)
convolution2dLayer(7,128,Padding=0)
batchNormalizationLayer()
reluLayer()
dropoutLayer(0.5)
averagePooling2dLayer(2,Stride=2)
fullyConnectedLayer(numClasses)
softmaxLayer];
Buscar hiperparámetros óptimos puede resultar complejo, pero la app Experiment Manager ofrece ayuda explorando distintos valores mediante barrido u optimización bayesiana (Figura 4). Se pueden probar múltiples configuraciones de entrenamiento en paralelo, aprovechando el hardware disponible para agilizar el proceso.
Figura 4. Configuración del problema en la app Experiment Manager para encontrar un conjunto de hiperparámetros óptimo a partir de la arquitectura exportada en Deep Network Designer.
Figura 4. Configuración del problema en la app Experiment Manager para encontrar un conjunto de hiperparámetros óptimo a partir de la arquitectura exportada en Deep Network Designer.
Entrenamiento del modelo y validación inicial
La fase de entrenamiento comienza con experimentos en la app Experiment Manager, que generan un modelo inicial con una precisión aproximada del 96% en el conjunto de validación. No obstante, no cumple el requisito predefinido de solidez. Dado que el ciclo en W es iterativo, se necesitan más ajustes.
Más información
Verificación del proceso de aprendizaje
Garantizar que los modelos de IA cumplen con los requisitos especificados es importante, especialmente en aplicaciones de seguridad crítica. En las siguientes etapas del proceso de desarrollo en forma de W se implementan técnicas de verificación para confirmar que el rendimiento del modelo responde a las expectativas.
Pruebas y análisis del rendimiento del modelo
El modelo se entrenó con el método de signo de gradiente rápido (FGSM) para reforzar la robustez ante ejemplos antagónicos. Alcanzó una precisión de más del 90%, superando los requisitos y puntos de referencia predefinidos. Para comprender mejor su rendimiento, se utilizó una matriz de confusión para analizar patrones de error. Técnicas de explicabilidad como Grad-CAM (Figura 6) ofrecieron perspectivas visuales que mejoran la interpretabilidad y confianza en las decisiones.
Ejemplos antagónicos
Los ejemplos antagónicos son cambios pequeños e imperceptibles en las entradas que pueden provocar errores de clasificación, lo que plantea dudas sobre su robustez en tareas de seguridad crítica como la captura de imágenes médicas (Figura 7).
Norma L-infinito
La norma L-infinito se utiliza para comprender y cuantificar perturbaciones antagónicas (Figura 8). Define un rango dentro del que pueden alterarse los valores de píxeles. Esto genera innumerables combinaciones posibles para probar, lo que dificulta evaluar todos los escenarios.
Verificación formal de la robustez
Los métodos de verificación formal ofrecen un enfoque matemático que proporciona una forma sistemática de evaluar y garantizar la robustez de redes neuronales frente a una amplia gama de posibles ejemplos antagónicos. Deep Learning Toolbox™ Verification Library ofrece métodos de verificación formal, como la interpretación abstracta. A partir de una imagen del conjunto de prueba, puede seleccionar una perturbación que defina una amplia colección de imágenes alteradas para una imagen concreta (Figura 9).
Existen tres salidas posibles para cada una de las imágenes:
- Verificada: La etiqueta de salida permanece coherente.
- Infringida: La etiqueta de salida cambia.
- No comprobada: Se necesita más verificación o mejorar el modelo.
Detección de datos fuera de distribución
Un sistema de IA fiable debe generar predicciones precisas en un contexto conocido. Pero también debe identificar ejemplos desconocidos para el modelo, y rechazarlos o derivarlos a una persona experta para una gestión segura. Con Deep Learning Toolbox Verification Library, puede crear un discriminador de datos fuera de distribución (OOD) para asignar un nivel de confianza a las predicciones de una red calculando una puntuación de confianza de distribución para cada observación (Figura 10). El discriminador también proporciona un umbral para separar los datos dentro y fuera de la distribución.
Más información
Una vez verificado el proceso de aprendizaje, la atención se centra en adaptar los modelos de IA a aplicaciones del mundo real. En estas últimas etapas del proceso de desarrollo en forma de W, se prepara el modelo para su despliegue y se garantiza que cumple con los requisitos de funcionamiento.
Implementación del modelo y generación de código
La transición desde la verificación del proceso de aprendizaje hasta la implementación del modelo en el flujo de trabajo de desarrollo en forma de W marca el momento en que un modelo de IA pasa de la fase de optimización a la aplicación en el mundo real. La generación de código con MATLAB y Simulink® automatiza la conversión de modelos entrenados en código desplegable, por ejemplo, C/C++ o CUDA® (Figura 11), lo que reduce errores y esfuerzo de codificación manual.
Puede utilizar la función analyzeNetworkForCodegen en MATLAB para verificar si un modelo de Deep Learning está listo para la generación de código. Esto garantiza la compatibilidad con librerías objetivo y, en aplicaciones de seguridad crítica, permite generar código sin dependencias de terceros. La generación automática de código simplifica la certificación, mejora la portabilidad y permite un despliegue fiable en diferentes plataformas.
analyzeNetworkForCodegen(net) Supported _________ none "Yes" arm-compute "Yes" mkldnn "Yes" cudnn "Yes" tensorrt "Yes"
Deep Learning Toolbox Model Quantization Library resulta muy eficaz cuando el despliegue requiere optimizar memoria, aritmética de punto fijo o eficiencia computacional. Técnicas de cuantización y poda pueden reducir significativamente el tamaño del modelo y la carga computacional, como por ejemplo, comprimir un modelo hasta 4 veces con una disminución de solo 0,7% en la precisión al convertir de punto flotante a int8 con la app Deep Network Quantizer (Figura 12).
Con MATLAB Coder™ y GPU Coder™, puede generar código C++ y CUDA para desplegar modelos de IA en sistemas en tiempo real donde velocidad y baja latencia son críticas. Esto implica configurar el lenguaje objetivo y los ajustes de Deep Learning, como el uso de cuDNN para aceleración por GPU.
cfg = coder.gpuConfig("mex"); cfg.TargetLang = "C++"; cfg.GpuConfig.ComputeCapability = "6.1"; cfg.DeepLearningConfig = coder.DeepLearningConfig("cudnn"); cfg.DeepLearningConfig.AutoTuning = true; cfg.DeepLearningConfig.CalibrationResultFile = "quantObj.mat"; cfg.DeepLearningConfig.DataType = "int8"; input = ones(inputSize,"int8"); codegen -config cfg -args input predictCodegen -report
Verificación e integración del modelo de inferencia
La fase de verificación e integración del modelo de inferencia garantiza que un modelo de IA, como el utilizado para detección de neumonía, funciona de modo fiable con datos nuevos y no vistos, y que se integra adecuadamente en un sistema de atención médica más amplio.
Después de convertir el modelo a C++ y CUDA, esta fase verifica su precisión y lo incorpora en un sistema integral, junto con componentes de supervisión en tiempo de ejecución, captura de datos y visualización. Simular el sistema en Simulink permite verificar que el modelo funciona eficazmente en tiempo real y mantiene su rendimiento dentro del sistema general (Figura 13).
El monitor en tiempo de ejecución puede ayudar a distinguir entre entradas conocidas y desconocidas (Figura 14). Destaca en verde las predicciones de confianza cuando los datos coinciden con la distribución de entrenamiento, y en rojo las posibles anomalías para casos de OOD. Esta prestación mejora la seguridad y fiabilidad del sistema de IA, ya que no solo garantiza que realiza predicciones exactas, sino que también identifica y gestiona adecuadamente datos desconocidos.
En esta etapa, es esencial implementar una estrategia de pruebas integral. Con MATLAB Test™ o Simulink Test™, puede crear pruebas automatizadas para validar a fondo la precisión, rendimiento e integración en el sistema general del modelo de IA.
Verificación independiente de datos y aprendizaje
La fase de verificación independiente de datos y aprendizaje garantiza que los conjuntos de datos de entrenamiento, validación y prueba se gestionan correctamente, y que son completos y representativos del espacio de entrada de la aplicación. Incluye una revisión independiente después de verificar el modelo de inferencia en la plataforma objetivo. Además, esta fase confirma que la verificación del aprendizaje y el análisis de cobertura se han completado satisfactoriamente.
Verificación de requisitos
La fase de verificación de requisitos concluye el proceso de desarrollo en forma de W, y garantiza que todos los requisitos estén completamente implementados y probados. Con Requirements Toolbox™, las funciones y pruebas se enlazan a sus requisitos correspondientes, lo que cierra el ciclo de desarrollo. La ejecución de estas pruebas desde Requirements Editor verifica que todos los requisitos se han cumplido con éxito (Figura 15).
Después de la verificación de requisitos, el proceso de desarrollo en forma de W se considera completo. En este ejemplo de dispositivo médico, las etapas exhaustivas y minuciosas de este proceso han garantizado que el modelo de IA para detección de neumonía sea preciso y robusto, y que esté preparado para desplegarse. Enlazar requisitos a funciones y pruebas concretas establece una trazabilidad clara y verifica sistemáticamente cada requisito, lo que confirma que el modelo cumple con los estrictos estándares de las aplicaciones de atención médica. Ahora se puede desplegar una herramienta fiable que contribuye a mejorar la atención a pacientes.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)