Herramientas de inteligencia artificial para la toma de decisiones
El aprendizaje automático es un tipo de inteligencia artificial basada en datos e incluye un conjunto de técnicas que permiten que los ordenadores y los microcontroladores aprendan a realizar unas tareas determinadas. La integración de estas técnicas en sistemas hardware-software enriquece las reglas informáticas y libera a los programadores de escribir la lógica de un programa que haga que a una determinada entrada x le corresponda la respuesta 8. Estos métodos actúan como cajas negras que reciben una entrada x y devuelven una salida y. Estos métodos pueden guiar algunas de las acciones del sistema al introducir una cierta inteligencia en él.
Suponemos que nuestro sistema hardware-software tiene un vector de variables de entrada x, por ejemplo, recogidos por un conjunto de sensores, y el sistema tiene que decidir una variable respuesta y. Esta variable puede recoger la respuesta para un conjunto de actuadores o un dato interno necesario para seguir procesando. La clasificación de los problemas de aprendizaje automático se basa en dos criterios: I) la posibilidad o no de conocer la variable respuesta (y), y II) la tipología de esta variable. Se distingue la siguiente tipología de las variables:
- Variables cuantitativas. Los datos toman valores numéricos. A su vez se distingue entre variables continuas que toman valores en un intervalo de números reales o variables discretas, que toman un número finito de valores numéricos.
- Variables ordinales. Los datos expresan relación de orden entre las observaciones. Por ejemplo, podemos considerar un ranking.
- Variables cualitativas. En este caso se expresa una cualidad de un objeto. Estas variables solo pueden tomar un conjunto de valores que no miden ninguna magnitud determinada. Un ejemplo son las variables binarias en las que solo se pueden tomar dos valores y expresan la presencia/ausencia de una característica.
Una taxonomía de los algoritmos de aprendizaje automático se basa en la naturaleza de las variables del sistema x e y. Se distingue entre aprendizaje supervisado en el cual partimos de un conjunto de datos etiquetado previamente, es decir, conocemos un conjunto de datos (xi,yi). El aprendizaje no supervisado parte de datos no etiquetados previamente, esto es, exclusivamente se dispone de la información (xi). Dentro del aprendizaje no supervisado aparecen los problemas de clustering, reducción de la dimensionalidad y detección de outliers. El primero determina patrones del sistema. El segundo reduce el tamaño de los datos x generados, intentando perder el mínimo de información. Por ejemplo, si los sensores realizan mediciones en tiempo real pueden generar grandes cantidades datos que tiene que ser transmitidos. Un ejemplo notable es la transmisión de imágenes por los satélites. Si los dispositivos tienen una capacidad de comunicación reducida es entonces recomendable aplicar estas técnicas. La detección de outliers permiten reconocer que el estado del sistema software-hardware está en un estado (patrón) diferente a los a priori planificados para su funcionamiento y por tanto algún tipo de alarma o notificación se debe enviar.
En aprendizaje automático aparecen tres tipos de problemas básicos:
1 | Clustering. En este problema se buscan patrones dentro de los datos. Esto es, encontrar subconjuntos de observaciones que son similares entre sí. Matemáticamente se formularía como determinar las etiquetas y de los datos de modo que si dos observaciones i y j son similares le asociemos la misma etiqueta, Yi=Yj. Una dificultad de este problema es que no se parte de un conjunto previo de etiquetas del cual aprender. Un ejemplo de este tipo de problemas es la agrupación de datos. Esto permite identificar un conjunto finito de patrones en el que se puede encontrar el sistema.
2 | Regresión. En este problema se predice el valor de una variable continua y conocida el valor de la variable x. En los contextos de regresión la variable x se le denomina regresor o variable explicativa. Estos sistemas estiman funciones de regresión y=f(x) y permitirían por ejemplo dar el valor y de cierto actuador para el estado actual del sistema x.
3 | Clasificación. En este problema se debe predecir el valor de la variable cualitativa y a partir de la variable x. En clasificación la variable x se denomina características o atributos mientras que y se denomina etiqueta o clase. Por ejemplo, en el coche autónomo se basa en tres pilares: IoT, técnicas de aprendizaje automático aplicado a Big Data y conexión a internet en tiempo real. En la construcción de los ojos del vehículo se requiere resolver el problema de clasificar las imágenes que rodean al vehículo y poder así determinar qué tipo de objeto está delante, detrás o a los lados del vehículo.
La Figura 1 resume esta clasificación de los modelos de aprendizaje automático. Para cada tipo de problemas se han propuesto multitud de algoritmos. No existe un método que sea mejor que otro para todas las circunstancias. Por lo tanto, es necesario disponer de una caja de herramientas con las que poder ensayar diferentes soluciones. Por ejemplo, el algoritmo K-means es rápido y funciona bien para problemas de clustering en los que los patrones se pueden separar linealmente (mediante hiperplanos). En otras situaciones este algoritmo puede no funcionar bien y por tanto habría que recurrir a técnicas alternativas como algoritmos basados en densidad (DBSCAN). Otro ejemplo son las redes neuronales profundas que muestran un alto rendimiento en todos estos problemas. Sin embargo, para ciertos dispositivos, pese a su eficacia, el coste computacional las puede hacer inaplicables.

Figura 1. Clasificación de problemas de aprendizaje automático.
Estas técnicas emplean un aprendizaje inductivo, ya que a partir de la observación y el análisis de ejemplos concretos se desarrollan modelos que explican dichos datos y que permiten llevar a cabo una generalización. El modelador debe entrenar los modelos sobre un conjunto de datos disponibles y los modelos entrenados son introducidos en los sistemas.
La Tabla 1 muestra algunas de las herramientas más populares para implementar modelos de aprendizaje automático. La elección de la herramienta depende de las necesidades y preferencias del proyecto.
Tabla 1. HERRAMIENTAS PARA CONSTRUCCIÓN DE MODELOS DE APRENDIZAJE AUTOMÁTICO
Nombre | Características | Desarrollador |
---|---|---|
TensorFlow | Colección herramientas para la creación, entrenamiento e implementación de modelos de aprendizaje automático. Emplea como lenguaje de programación Python y C++. |
|
scikit-learn | Es una biblioteca de aprendizaje automático de código abierto para Python. | |
PyTorch | Framework popular de aprendizaje profundo. Ofrece una interfaz más flexible que TensorFlow. | |
Keras | Keras es una biblioteca de Redes Neuronales de código abierto escrita en Python. Es capaz de ejecutarse sobre TensorFlow. Microsoft Azure ML |
|
Microsoft Azure ML | Plataforma en la nube para el ciclo completo de preparación de datos, implementación modelos de aprendizaje automático y monitorización en producción. | Microsoft |
Saber más
Un libro excelente para integrar en Python estas técnicas es Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. e.digitall.org.es/hands-on
