El Proceso de IA

AI Process

Jason Leung en Unsplash

La IA todavía se considera un campo relativamente nuevo, por lo que realmente no existen guías o estándares como SWEBOK. De hecho, los libros de texto de posgrado de IA/ML no proporcionan una descripción clara y consistente del proceso de ingeniería de software de IA. Por lo tanto, pensé que sería útil dar una descripción completa del proceso de ingeniería de IA o Proceso de IA, que se describe en la mayoría de los libros de texto de IA/ML [5][6].

El 85% o más de los proyectos de IA fracasan [1][2].

El 34% de los científicos e investigadores admiten prácticas de investigación cuestionables [3].

En general, los resultados de los artículos de revistas actuales sobre IA (incluso revisados por pares) no son reproducibles.

¿Qué es la IA?

La inteligencia artificial (IA) se enfoca en el diseño e implementación de sistemas inteligentes que perciben, actúan y aprenden en respuesta a su entorno.

En la IA, un agente es algo que actúa [6]. Todos los programas de computadora se consideran que hacen algo, pero se espera que los agentes de computadora realicen tareas más complejas: operar de manera autónoma, percibir su entorno, persistir durante un período prolongado de tiempo, adaptarse al cambio y crear y perseguir objetivos. De hecho, un agente racional es aquel que actúa de manera que logra el mejor resultado o el mejor resultado esperado cuando hay incertidumbre.

En pocas palabras, la IA se enfoca en el estudio y construcción de agentes que actúan de manera racional o hacen lo correcto según lo definido por el objetivo dado al agente. De hecho, el modelo estándar se define en términos de agentes racionales [6]. Sin embargo, existen limitaciones en este modelo, como el problema de la racionalidad limitada y el problema de alineación de valores, lo que lleva al concepto de agentes que son beneficiosos de manera comprobable para los humanos, pero el modelo estándar es un buen punto de referencia para el análisis teórico [6].

Figura 1: Un agente interactúa con su entorno a través de sus sensores y actuadores. Gungor Basa Technology of Me

A menudo hay confusión entre los términos inteligencia artificial y aprendizaje automático. Un agente está aprendiendo si mejora su rendimiento en función de la experiencia previa. Cuando el agente es una computadora, el proceso de aprendizaje se llama aprendizaje automático (ML) [6, p. 651]. Por lo tanto, el aprendizaje automático es un subcampo de la IA. Algunos sistemas de IA utilizan métodos de aprendizaje automático y otros no lo hacen [6].

Ingeniería de IA es la disciplina enfocada en el desarrollo de herramientas, sistemas y procesos para permitir la aplicación de inteligencia artificial en contextos del mundo real, que combina los principios de la ingeniería de sistemas, la ingeniería de software y la ciencia de la computación para crear sistemas de IA.

Modelo centrado vs Datos centrados

Actualmente hay dos enfoques de IA/ML (modelo centrado vs datos centrados) que son mutuamente excluyentes. O bien dejas que el conjunto de datos determine la selección del modelo (datos centrados) o no lo haces (modelo centrado). Podemos aplicar un enfoque centrado en los datos utilizando AutoML o codificando un conjunto de pruebas personalizado para evaluar muchos algoritmos (digamos 20-30) en el conjunto de datos y luego elegir los mejores resultados (quizás los 3 mejores) para un estudio más detallado, asegurándonos de dar preferencia a los algoritmos más simples (Navaja de Occam).

Por lo tanto, elegiríamos algoritmos más complejos del estado del arte solo si todos los algoritmos más simples fallaran miserablemente. En un proyecto de investigación, probablemente estaríamos utilizando un enfoque centrado en el modelo para evaluar nuevos algoritmos y comparar los resultados con los resultados anteriores en el mismo conjunto de datos de prueba, asumiendo que la investigación previa ya ha obtenido líneas de base para modelos más simples. En aplicaciones del mundo real, el enfoque debe ser centrado en los datos.

El Proceso de IA

Podemos definir un Proceso de Ingeniería de IA o Proceso de IA (AIP) que se puede utilizar para resolver casi cualquier problema de IA [5][6][7][9]:

  1. Definir el problema: Esta etapa incluye las siguientes tareas: definir el alcance, definición del valor, cronogramas, gobernabilidad y recursos asociados con el entregable.
  2. Selección del conjunto de datos: Esta etapa puede llevar algunas horas o varios meses, dependiendo del proyecto. Es crucial obtener el conjunto de datos correcto y confiable para un proyecto de IA/ML.
  3. Descripción de los datos: Esta etapa incluye las siguientes tareas: describir el conjunto de datos, incluyendo las características de entrada y las características objetivo; incluir estadísticas resumidas de los datos y recuentos de cualquier característica discreta o categórica, incluyendo la característica objetivo.
  4. Preparación de los datos: Esta etapa incluye las siguientes tareas: preprocesamiento de datos, limpieza de datos y análisis exploratorio de datos (EDA). Para datos de imagen, redimensionaríamos las imágenes a una dimensión más baja, como (299 x 299), para permitir el aprendizaje en mini lotes y también para mantener las limitaciones de cómputo. Para datos de texto, eliminaríamos saltos de línea y tabulaciones; eliminaríamos etiquetas HTML; eliminaríamos enlaces; eliminaríamos espacios en blanco y otros pasos posibles enumerados en el Preprocesamiento de Texto en Procesamiento de Lenguaje Natural (NLP) en mi repositorio de GitHub.
  5. Ingeniería de características: Esta etapa incluye las siguientes tareas: cuantización o agrupación; transformaciones matemáticas; escalado y normalización; modificar y/o crear nuevas características. Para datos de imagen, realizaríamos aumentación de imágenes, que se describe en Aumentación de Imágenes en mi repositorio de GitHub. Para datos de texto, convertiríamos características de datos de texto en vectores y realizaríamos la tokenización, el truncamiento y la lematización, así como otros pasos posibles descritos en Procesamiento de Lenguaje Natural en mi repositorio de GitHub.
  6. Diseño: Esta etapa incluye las siguientes tareas: selección de características, descomposición del problema y construcción y evaluación de modelos. Podemos utilizar AutoML o crear un conjunto de pruebas personalizado para construir y evaluar muchos modelos para determinar qué algoritmos y vistas de los datos deben elegirse para un estudio más detallado.
  7. Entrenamiento: Esta etapa incluye la construcción del modelo, que puede incluir validación cruzada.
  8. Evaluación: Esta etapa incluye la evaluación de modelos que tienen un buen rendimiento en un conjunto de datos de prueba y la selección del modelo.
  9. Ajuste: Esta etapa implica la optimización de algoritmos de los pocos modelos seleccionados que tienen un buen rendimiento, lo que puede incluir la evaluación de conjuntos de modelos para obtener una mayor mejora en la precisión.
  10. Finalización: Esta etapa consiste en finalizar el modelo elegido mediante el entrenamiento utilizando todo el conjunto de datos y asegurándose de que la solución final cumpla con los requisitos comerciales originales en términos de precisión del modelo y otras métricas de rendimiento.
  11. Implementación: Ahora el modelo está listo para su implementación. Hay dos enfoques comunes para la implementación de modelos de ML en producción: incrustar modelos en un servidor web o externalizar el modelo a un servicio externo. Ambos enfoques tienen ventajas y desventajas.
  12. Monitoreo: Esta es la fase posterior a la implementación que implica observar el modelo y los flujos de trabajo, actualizar el modelo con nuevos datos y realizar un seguimiento de las métricas de éxito en el contexto del problema original.

Más detalles sobre cada paso se dan a continuación; también puedes consultar la Lista de verificación de IA, la Lista de verificación de ML aplicada, la Preparación de datos y la Ingeniería de características en mi repositorio de LearnAI en GitHub.

Definir el problema

El primer paso en un proyecto de IA es definir el problema [6]. En pocas frases, describe lo siguiente:

  1. Describe el problema a resolver.
  2. Describe la(s) parte(s) del problema que pueden resolverse mediante aprendizaje automático.
  3. Describe el objetivo del proyecto.
  4. Describe el objetivo del modelo: clasificar, predecir, detectar, traducir, etc.
  5. Define la función de pérdida y/o las métricas de rendimiento y error para el proyecto.

Este paso debe incluir una revisión bibliográfica exhaustiva de los mismos problemas de IA o problemas muy similares. Si no encuentras estudios de investigación académica sobre el problema, entonces realmente tienes un proyecto de investigación en lugar de un proyecto de IA. Ten en cuenta que la IA no es un buen campo para el enfoque de Star Trek.

Descripción de PEAS

Cuando se diseña un agente, uno de los primeros pasos es especificar el entorno de la tarea, que se llama descripción de PEAS (Rendimiento, Entorno, Actuadores, Sensores) [6]. En pocas palabras, el entorno de la tarea es el “problema” y el(los) agente(s) racional(es) son la “solución”.

Descripción de PEAS para una aspiradora robot

Considera el clásico ejemplo de juguete de una aspiradora robot simple.

  • ¿Cuál es la medida de rendimiento? limpieza, eficiencia: distancia recorrida para limpiar, duración de la batería, seguridad
  • ¿Qué se sabe sobre el entorno? habitación, mesa, suelo de madera, alfombra, diferentes obstáculos
  • ¿Qué actuadores tiene el agente? ruedas, diferentes cepillos, extractor de aspiradora
  • ¿Qué sensores tiene el agente? cámara, sensor de detección de suciedad, sensor de precipicio, sensor de golpes, sensores infrarrojos de pared

Además, podemos definir siete dimensiones a lo largo de las cuales se pueden categorizar los entornos de tareas [6][18]:

  • Completamente observable vs. Parcialmente observable
  • Un solo agente vs. Multiagente
  • Determinista vs. No determinista
  • Episódico vs. Secuencial
  • Estático vs. Dinámico
  • Discreto vs. Continuo
  • Conocido vs. Desconocido

Después de descomponer el problema en partes (subproblemas), puede haber varios componentes que se pueden manejar utilizando ingeniería de software tradicional en lugar de aprendizaje automático. Podríamos desarrollar el sistema general y luego volver más tarde y optimizarlo, reemplazando algunos componentes con modelos de aprendizaje automático más sofisticados.

Parte de la formulación del problema es decidir si estamos tratando con aprendizaje supervisado, no supervisado o por refuerzo. Sin embargo, las distinciones no siempre son tan definidas.

Preparación de datos

La etapa de preparación de datos implica en realidad tres pasos que pueden superponerse.

  1. Preprocesamiento de datos: ajustes de formato, corrección de inconsistencias, manejo de errores en variables.
  2. Análisis exploratorio de datos y visualización: verificar si los datos tienen una distribución normal o de colas pesadas; buscar valores atípicos; verificar si el agrupamiento de los datos ayudará; buscar datos desequilibrados.
  3. Limpieza de datos: verificar tipos de datos; manejar valores faltantes o inválidos; manejar valores atípicos; manejar valores categóricos; codificar etiquetas de clase; analizar fechas; codificación de caracteres; manejar datos desequilibrados.

Preprocesamiento de datos

Dividir primero y normalizar después, lo que significa que debemos realizar la división de entrenamiento-prueba primero y luego normalizar los conjuntos de datos.

Ajustes de formato

  • Eliminar espacios iniciales y finales
  • Estandarizar tipos (separadores decimales, formatos de fecha o unidades de medida)
  • Reemplazar caracteres no reconocibles o corruptos
  • Verificar entradas truncadas (entradas de datos que se cortan en una cierta posición)

Corregir inconsistencias Manejar errores en variables

  • Verificar valores inválidos (edad es 200 o negativa)
  • Verificar categorías incorrectas en datos categóricos (productos similares no deben colocarse en categorías diferentes)

Manejo de errores en variables.

  • Alta cardinalidad: el número de etiquetas diferentes en datos categóricos es muy alto, lo que causa problemas para que el modelo aprenda.
  • Valores atípicos: los casos extremos que pueden deberse a errores, pero no en todos los casos.

Cómo elegir un modelo de IA

Cada nuevo ingeniero de IA encuentra que necesita decidir qué modelo usar para un problema. Hay muchos modelos para elegir, pero generalmente solo se necesitan pequeñas modificaciones para cambiar un modelo de regresión a un modelo de clasificación y viceversa.

Primero, recuerde adoptar un enfoque centrado en los datos, evite preguntar: “¿Qué modelo debo usar?”. Por lo tanto, el primer paso en el proceso de IA/ML sería realizar un análisis exploratorio de datos (EDA) para comprender las propiedades de su modelo, como equilibrado (clasificación) o gaussiano (regresión).

Hay dos enfoques para la selección de modelos: centrado en los datos y centrado en el modelo. O bien permite que los datos impulsen la selección del modelo (centrado en los datos), o no lo permite (centrado en el modelo).

En un enfoque centrado en el modelo, básicamente estás probando modelos en el conjunto de datos y esperando que algo funcione. Similar a lanzar mortadela a la pared esperando que se pegue, el enfoque centrado en el modelo es un enfoque no científico con una baja probabilidad de éxito.

El segundo paso para resolver un problema de IA es probar algoritmos simples (como Regresión Lineal o Logística) como modelos de referencia, que se utilizarán posteriormente para evaluar su(s) elección(es) de modelo, que deben funcionar mejor que todos los modelos de referencia.

Hay muchos modelos para elegir, así que considere comenzar con modelos de clasificación/regresión, que se pueden hacer fácilmente con scikit-learn.

10 cosas simples para probar antes de las redes neuronales

A continuación, la mejor práctica es evaluar muchos algoritmos (digamos 10-20) utilizando una herramienta de AutoML como Orange, PyCaret o AutoGluon y reducir las opciones a algunos modelos en función de la precisión y las métricas de error. Luego, cree un conjunto de pruebas [10] para explorar completamente los candidatos.

En general, debería haber evaluado muchos modelos antes de intentar evaluar modelos más complejos, como las redes neuronales. Un enfoque similar se utiliza para evaluar y comparar algoritmos en matemáticas, ingeniería y otros campos.

La regla general es que un modelo de aprendizaje profundo debe ser su última opción (Navaja de Occam).

Tenga en cuenta que una precisión del 50% es equivalente a adivinar al azar (lanzar una moneda). Por lo tanto, sus modelos deben tener una precisión de al menos el 80-90% o mejor antes de la sintonización hiper. De lo contrario, debe seleccionar un modelo diferente y/o dedicar más tiempo a la preparación de datos e ingeniería de características.

Una discusión más detallada del proceso de ingeniería de IA se puede encontrar en [5][6].

Diseño Experimental

El objetivo del ML es realizar experimentos y analizar los resultados para poder eliminar el efecto del azar y obtener conclusiones que podamos considerar estadísticamente significativas [5].

Por lo tanto, queremos encontrar un aprendiz con la mayor precisión de generalización y una complejidad mínima (la implementación es económica en tiempo y espacio) y es robusta (inmune a fuentes externas de variabilidad) [5].

Existen tres principios básicos del diseño experimental [5]:

  1. Aleatorización requiere que el orden en que se realicen las ejecuciones se determine al azar para que los resultados sean independientes. Sin embargo, el orden generalmente no es un problema en experimentos de software.
  2. Replicación implica que, para la misma configuración de factores (controlables), el experimento debe ejecutarse varias veces para promediar el efecto de los factores incontrolables.

En aprendizaje automático, la replicación se realiza típicamente ejecutando el mismo algoritmo en varias versiones de muestreo del mismo conjunto de datos, lo que se denomina validación cruzada.

3. Bloqueo se utiliza para reducir o eliminar la variabilidad debido a factores no deseados que influyen en la respuesta pero en los que no estamos interesados.

Cuando estamos comparando algoritmos de aprendizaje, debemos asegurarnos de que todos los algoritmos utilicen los mismos subconjuntos de datos de muestreo. Por lo tanto, los diferentes conjuntos de entrenamiento en ejecuciones replicadas deben ser idénticos, que es lo que queremos decir con bloqueo [7]. En estadística, si hay dos poblaciones, este enfoque se llama emparejamiento, que se utiliza en pruebas emparejadas.

Proceso de Selección de Modelo

En la selección de modelo, nos preocupan dos preguntas sobre los algoritmos de aprendizaje [5]:

  1. ¿Cómo podemos evaluar el error esperado de un algoritmo de aprendizaje en un problema?
  2. ¿Cómo podemos decir que un modelo tiene menos error que otro para una aplicación dada?

La tasa de error en el conjunto de entrenamiento siempre es más baja (por definición) que la tasa de error en un conjunto de prueba que contiene instancias no vistas durante el entrenamiento. Por lo tanto, no podemos elegir entre algoritmos basados en los errores del conjunto de entrenamiento. Por lo tanto, necesitamos un conjunto de validación que sea distinto del conjunto de entrenamiento.

También necesitamos realizar varias ejecuciones en el conjunto de validación para calcular las tasas de error promedio, ya que el ruido, los valores atípicos y otros factores aleatorios afectarán la generalización. Luego, basamos nuestra evaluación del algoritmo de aprendizaje en la distribución de estos errores de validación para evaluar el error esperado del algoritmo de aprendizaje para el problema dado o compararlo con la distribución de la tasa de error de otro algoritmo de aprendizaje.

Durante la selección del modelo, es importante tener en cuenta varios puntos importantes [5]:

1. Cualquier conclusión que saquemos de nuestro análisis está condicionada al conjunto de datos que se nos ha dado.

Como afirma el Teorema de No Almuerzo Gratis, no existe tal cosa como el mejor algoritmo de aprendizaje. Para cualquier algoritmo de aprendizaje, hay un conjunto de datos donde es muy preciso y otro conjunto de datos donde es muy deficiente.

2. La división de un conjunto de datos dado en varios pares de conjuntos de entrenamiento y validación es solo para fines de prueba.

Una vez que todas las pruebas estén completas y hayamos tomado nuestra decisión sobre el método o los hiperparámetros finales, podemos usar todos los datos etiquetados que hemos utilizado previamente para el entrenamiento o la validación para entrenar al aprendiz final, lo cual se llama finalizar el modelo.

3. Dado que también usamos el conjunto de validación(es) con fines de prueba (como elegir el mejor de dos algoritmos de aprendizaje o decidir dónde detener el aprendizaje), se convierte en parte de los datos que usamos.

Por lo tanto, dado un conjunto de datos, primero debemos dejar una parte de él como el conjunto de prueba y luego usar el resto para el entrenamiento y la validación.

4. En general, comparamos los algoritmos de aprendizaje según sus tasas de error, pero debemos tener en cuenta que en la vida real, el error es solo uno de los criterios que afectarán nuestra decisión.

Algunos otros criterios para comparar algoritmos de aprendizaje [5]:

  • riesgos cuando los errores se generalizan utilizando funciones de pérdida, en lugar de pérdida 0/1
  • tiempo de entrenamiento y complejidad espacial
  • tiempo de prueba y complejidad espacial
  • interpretabilidad, lo cual significa si el método permite la extracción de conocimiento que puede ser verificado y validado por expertos
  • fácil programabilidad

Sin embargo, la importancia relativa de estos factores cambia según la aplicación.

Cuando entrenamos a un aprendiz en un conjunto de datos utilizando un conjunto de entrenamiento y probamos su precisión en un conjunto de validación y tratamos de sacar conclusiones, lo que estamos haciendo es experimentación. La estadística define una metodología para diseñar experimentos correctamente y analizar los datos recopilados de manera que podamos extraer conclusiones significativas [5].

Criterios de Selección de Modelo

Los siguientes siete criterios pueden ayudar en la selección de un modelo [11]:

1. Explicabilidad

Existe un equilibrio entre la explicabilidad y el rendimiento del modelo.

El uso de un modelo más complejo a menudo aumentará el rendimiento, pero será más difícil de interpretar.

Si no es necesario explicar el modelo y su salida a una audiencia no técnica, se pueden usar modelos más complejos, como aprendices de conjunto y redes neuronales profundas.

2. En memoria vs. fuera de memoria

Es importante considerar el tamaño de sus datos y la cantidad de RAM disponible en la computadora donde ocurrirá el entrenamiento.

Si la RAM puede manejar todos los datos de entrenamiento, puede elegir entre una amplia variedad de algoritmos de aprendizaje automático.

Si la RAM no puede manejar los datos de entrenamiento, puede explorar algoritmos de aprendizaje incremental que pueden mejorar el modelo al agregar gradualmente más datos de entrenamiento.

3. Número de características y ejemplos

El número de ejemplos de entrenamiento y el número de características por ejemplo también es importante en la selección de modelos.

Si tiene un pequeño número de ejemplos y características, una aprendiz simple sería una excelente opción, como un árbol de decisiones o vecinos más cercanos.

Si tienes un pequeño número de ejemplos y un gran número de características, SVM y los procesos Gaussianos serían una buena opción ya que pueden manejar un gran número de características pero requieren menos recursos.

Si tienes un gran número de ejemplos, entonces las redes neuronales profundas y los algoritmos de boosting serían una buena opción ya que pueden manejar millones de muestras y características.

4. Características categóricas vs numéricas

El tipo de características es importante al elegir un modelo.

Algunos algoritmos de aprendizaje automático no pueden manejar características categóricas como la regresión lineal, por lo que debes convertirlas en características numéricas, mientras que otros algoritmos pueden manejar características categóricas, como los árboles de decisión y los bosques aleatorios.

5. Normalidad de los datos

Si tus datos siguen una distribución normal, se podría utilizar SVM con un kernel lineal, regresión logística o regresión lineal.

Si tus datos no siguen una distribución normal, las redes neuronales profundas o los algoritmos de ensamble serían una buena opción.

6. Velocidad de entrenamiento

El tiempo disponible para el entrenamiento es importante al elegir un modelo.

Algoritmos simples como la regresión logística/lineal o los árboles de decisión pueden ser entrenados en poco tiempo.

Algoritmos complejos como las redes neuronales y los algoritmos de ensamble son lentos para entrenar.

Si tienes acceso a una máquina de múltiples núcleos, esto podría reducir significativamente el tiempo de entrenamiento de los algoritmos más complejos.

7. Velocidad de predicción

La rapidez con la que se generan los resultados es otro criterio importante al elegir un modelo.

Si tu modelo se utilizará en un entorno en tiempo real o de producción, debe ser capaz de generar los resultados con una latencia muy baja.

Algoritmos como las SVM, la regresión lineal/logística y algunos tipos de redes neuronales son extremadamente rápidos en el momento de la predicción.

También debes considerar dónde implementarás tu modelo. Si estás utilizando los modelos para análisis o fines teóricos, el tiempo de predicción puede ser más largo, lo que significa que podrías utilizar algoritmos de ensamble y redes neuronales muy profundas.

Por qué modelos simples

Los dos algoritmos de regresión más comunes son:

Deberías comenzar con estos modelos simples porque [12]:

  • Es probable que tu problema no requiera un algoritmo complejo.
  • Estos dos modelos han sido estudiados a fondo y son algunos de los modelos más comprendidos en el aprendizaje automático.
  • Son fáciles de implementar y probar.
  • Son fácilmente interpretables ya que son modelos lineales.

Para convertir un problema de regresión en un problema de clasificación, existen dos soluciones comunes:

De hecho, recientemente he trabajado en muchos proyectos en los que los desarrolladores pasaron semanas o meses tratando de implementar algoritmos de DL de vanguardia de artículos de investigación solo para que yo les mostrara cómo la Regresión Lineal y/o XGBoost superaron a todos sus modelos complejos (en muchos casos logrando una precisión del 95-98% en el conjunto de datos de prueba). Debes evaluar muchos algoritmos para obtener líneas de base para comparar y justificar tu selección final de modelo, por lo que siempre debes saber cómo se desempeñan los modelos más simples en tu conjunto de datos.

Si estás haciendo investigación, un enfoque centrado en el modelo es aceptable, siempre y cuando alguien haya realizado una evaluación exhaustiva de varios modelos (incluyendo modelos más simples) en el mismo conjunto de datos de prueba. Cuando estás utilizando un conjunto de datos personalizado y/o resolviendo problemas del mundo real, entonces estás realizando Ingeniería de IA (no investigación), por lo que la regla general es la navaja de Occam (“lo más simple es mejor” o “no existe la perfección, solo lo suficientemente bueno”).

Regresión logística multinomial

La Regresión Logística Multinomial (MLR) es un algoritmo de clasificación utilizado para realizar clasificación multinomial, que es una extensión de la regresión logística que agrega soporte para problemas de clasificación multiclase.

Las suposiciones principales de la regresión lineal (múltiple y singular) son [13]:

  1. Linealidad: Existe una relación lineal entre el resultado y la(s) variable(s) predictora(s).
  2. Normalidad: Los residuos (error calculado al restar el valor predicho del valor real) siguen una distribución normal.
  3. Homocedasticidad: La variabilidad en la variable dependiente es igual para todos los valores de la(s) variable(s) independiente(s).

Con muchas variables independientes, a menudo nos encontramos con otros problemas como la multicolinealidad, donde las variables que se supone que son independientes varían entre sí, y la presencia de variables categóricas como la temperatura del océano que se clasifica como fría, cálida o caliente en lugar de cuantificarse en grados.

Aquí hay algunos consejos para trabajar con MLR [13]:

  • Cuando tus modelos de MLR se vuelvan complicados, evita tratar de usar coeficientes para interpretar cambios en el resultado versus cambios en predictores individuales.
  • Crea predicciones mientras varías un solo predictor y observa cómo cambia la predicción, y utiliza estos cambios para formar tus conclusiones.

Algunos buenos tutoriales sobre MLR se dan en [12] y [13].

Comprender los algoritmos de IA

Necesitas saber qué algoritmos están disponibles para un problema dado, cómo funcionan y cómo aprovechar al máximo. Sin embargo, esto no significa que necesites codificar los algoritmos desde cero.

Incluso si eres un ingeniero de IA/ML experimentado, debes conocer el rendimiento de modelos más simples en tu conjunto de datos/problema.

Aquí hay algunos temas más que se deben considerar para la selección de modelos:

  • Algoritmos paramétricos vs. no paramétricos
  • Algoritmos supervisados vs. no supervisados
  • La compensación sesgo-varianza
  • ¿Cómo diagnosticar/reparar el sobreajuste y el subajuste?
  • ¿Cómo crear un flujo de datos?
  • ¿Cómo manejar conjuntos de datos pequeños?
  • ¿Cómo manejar conjuntos de datos desequilibrados?
  • Detección de anomalías

Herramientas de ingeniería de características

La ingeniería de características (FE) es un tema fundamental en ML pero a menudo se pasa por alto o se considera engañosamente simple.

Existen muchas herramientas que te ayudarán a automatizar todo el proceso de FE y producir una gran cantidad de características en poco tiempo tanto para tareas de clasificación como de regresión.

Herramientas AutoML

El aprendizaje automático automatizado (AutoML) es un campo emergente en el que se automatiza el proceso de construcción de modelos de aprendizaje automático para modelar datos.

Un buen ejemplo completo utilizando PyCaret se encuentra en Una guía para principiantes sobre aprendizaje automático de principio a fin.

Existen una gran cantidad de herramientas AutoML y herramientas de ML, como Orange, AutoGluon y PyCaret, que se pueden utilizar para evaluar fácil y rápidamente muchos modelos en un conjunto de datos.

Conclusión

El proceso de IA discutido aquí se puede utilizar para resolver casi cualquier problema de IA con algunas modificaciones, por supuesto. Actualmente no parece haber un enfoque claramente definido para resolver problemas de IA, por lo que este artículo intenta presentar un enfoque consolidado a partir de varios libros de texto y artículos, así como discutir algunos de los problemas involucrados, como los criterios de selección de modelos y modelos más simples, y proporcionar orientación para comprender los algoritmos de IA. Planeo escribir algunos artículos de seguimiento con ejemplos de principio a fin utilizando el proceso de IA. También tengo un repositorio de GitHub llamado LearnAI que algunos estudiantes y profesionales de IA pueden encontrar útil.

Referencias

[1] Nedgu BM, “Por qué el 85% de los proyectos de IA fracasan”, Towards Data Science, 11 de noviembre de 2020.

[2] S. Reisner, “Por qué la mayoría de las implementaciones de IA fallan y qué pueden hacer las empresas para vencer las probabilidades”, Venture Beat, 28 de junio de 2021.

[3] J. F. DeFranco y J. Voas, “Reproducibilidad, fabricación y falsificación”, IEEE Computer, vol. 54 no. 12, 2021.

[4] T. Shin, “4 razones por las que no debes usar el aprendizaje automático”, Towards Data Science, 5 de octubre de 2021.

[5] E. Alpaydin, “Diseño y análisis de experimentos de aprendizaje automático”, en Introducción al aprendizaje automático, 3.ª ed., MIT Press, ISBN: 978–0262028189, 2014.

[6] S. Russell y P. Norvig, “Desarrollo de sistemas de aprendizaje automático”, en Inteligencia Artificial: Un enfoque moderno, 4.ª ed. Upper Saddle River, NJ: Prentice Hall, ISBN: 978–0–13–604259–4, 2021.

[7] S. Raschka y V. Mirjalili, Python Machine Learning, 2.ª ed. Packt, ISBN: 978–1787125933, 2017.

[8] W. McKinney, Python para el análisis de datos: Manipulación de datos con Pandas, NumPy y IPython, 2.ª ed., O’Reilly Media, ISBN: 978–1491957660, 2017.

[9] J. Brownlee, “Proceso de Aprendizaje Automático Aplicado”, Machine Learning Mastery, 12 de febrero de 2014.

[10] J. Brownlee, “Cómo Evaluar Algoritmos de Aprendizaje Automático”, Machine Learning Mastery, 16 de agosto de 2020.

[11] Y. Hosni, “Breve Guía para la Selección de Modelos de Aprendizaje Automático”, MLearning.ai, 4 de diciembre de 2021.

[12] Z. Warnes “Cómo Seleccionar un Modelo de Aprendizaje Automático”, KD Nuggets, agosto de 2021.

[13] M. LeGro, “Interpretando Resultados Confusos de Regresión Lineal Múltiple”, Towards Data Science, 12 de septiembre de 2021.

[14] J. Brownlee, “Regresión Logística Multinomial con Python”, Machine Learning Mastery, 1 de enero de 2021.

[15] W. Xie, “Regresión Logística Multinomial en pocas palabras”, Data Science Student Society @ UC San Diego, 8 de diciembre de 2020.

[16] P. Bourque y R. E. Fairley, Guía para el Cuerpo de Conocimientos de Ingeniería de Software, v. 3, IEEE, 2014.

[17] J. S. Damji y M. Galarnyk, “Consideraciones para Implementar Modelos de Aprendizaje Automático en Producción”, Towards Data Science, 19 de noviembre de 2021.

[18] J. Rodriguez, “7 Dimensiones para Evaluar un Entorno de IA”, Towards AI, 17 de mayo de 2022.

IEEE Dataport

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Aprendizaje Automático

SiMa.ai traerá el chip de inteligencia artificial más poderoso del mundo a la India.

En un emocionante avance, SiMa.ai, una startup estadounidense de chips de inteligencia artificial, ha anunciado la pr...

Inteligencia Artificial

Rompiendo barreras en la segmentación de instancias en 3D Un enfoque de mundo abierto con mejora de pseudo-etiquetado y escenarios realistas

Al proporcionar clasificación y etiquetado semántico a nivel de instancia de objeto, la segmentación semántica de ins...

Aprendizaje Automático

Más allá de NeRFs (Parte Dos)

En el ámbito de la representación y el renderizado de escenas 3D, los campos de radiance neural (NeRFs) proporcionaro...

Inteligencia Artificial

Conoce los Modelos de Difusión Compartimentados (CDM) Un enfoque de IA para entrenar diferentes modelos de difusión o indicaciones en distintas fuentes de datos.

Con los avances recientes en tecnología y en el campo de la Inteligencia Artificial, ha habido mucho progreso y mejor...