junio 21, 2022 10:00 am

Jesús

Actualmente, la inteligencia artificial es una de las tecnologías que están revolucionando la industria en general. Consecuentemente, inteligencia artificial es un área de conocimiento con crecimiento constante, con muchas aplicaciones prácticas y temas de investigación activos. Sin embargo, la inteligencia artificial aun tiene el desafío de resolver problemas que los humanos resuelven intuitivamente a través de su experiencia.

Figura 1: Clasificación de los campos de conocimiento de inteligencia artificial 

Estudiar todos los campos de conocimiento de la inteligencia artificial puede ser una tarea interminable, debido a que existe una gran variedad y combinación entre estas. Los 6 principales campos de conocimiento de inteligencia artificial son: Machine Learning,Natural Language Processing, Knowledge Representation and Reasoning, Automated Planning,Intelligent Robots y Machine Perception. Asu vez, cada campo de conocimiento se puede seguir ramificando como se muestra en la siguiente figura. Como indica el título, en este artículo solo me enfoco en analizar los algoritmos de Machine Learning.

Sobre Machine Learning

Machine Learning es un subcampo de la inteligencia artificial que busca construir algoritmos basados en un conjunto de datos de un determinado fenómeno. Estos datos pueden tener origen en la naturaleza, de actividad humana o generada por otro algoritmo. Es así que los algoritmos de Machine Learning, tienen la capacidad de adquirir conocimientos propios mediante la extracción de características y/o patrones de los datos.

El rendimiento de los algoritmos de Machine Learning dependen de la representación de los datos que se proporcionan. Cada pieza de información que se incluye en la representación de nuestro problema se conoce como características. Estas características pueden ser números, vectores, matrices o tensores. En las siguientes figuras se muestran ejemplos de la representación de datos.

Dado que estas características en su representación más básica terminan siendo números, se puede ir deduciendo que es necesario tener un conocimiento de matemáticas. Es así, que los tópicos básicos que se recomiendan conocer antes de entender algoritmos de Machine Learning son los siguientes:

  • Algebra lineal, básicamente hay que entender lo relacionado a vectores, matrices y tensores. Pues es de este modo en cómo se llega a representar los datos.
  • Estadística, es necesario conocer sobre medidas de tendencia central, distribuciones de probabilidad, análisis de correlación, pruebas de hipótesis, entre otros temas.
  • Optimización, hay que entender cómo encontrar mínimos y/o máximos de una función objetivo.
  • Programación, pues hay que conocer como implementar estos algoritmos. Actualmente, entre los lenguajes de programación que están siendo empleados con mayor frecuencia son Python y R.

Diferencias clave en los algoritmos de Machine Learning

Los algoritmos de Machine Learning se pueden diferenciar en base a lo siguiente:


Clasificación vs Regresión

Clasificar es un problema donde se busca etiquetar a cada observación de un conjunto de datos. En este caso el algoritmo busca clasificar los datos, sobre la cual se tomará una decisión. El ejemplo más difundido es el de clasificar un correo entrante, la pregunta que se hace el algoritmo es ¿debe ir a la “bandeja de entrada” o “spam”? Otro ejemplo, suponiendo que recibimos una gran cantidad de datos de una máquina industrial, la pregunta que resolvería el algoritmo es ¿esta máquina opera en “condición normal” o “podría fallar”? Los ejemplos anteriores corresponden a una clasificación binomial, sin embargo, se pueden hacer clasificaciones de 3 o más categorías.

Figura 3: Clasificación mediante el algoritmo de Support Vector Machine (SVM)

Por otra parte, el problema de regresión busca determinar un valor numérico en base a un conjunto reglas y/o patrones existentes en los datos. Para ello se construye un modelo que permita establecer la relación entre 2 o más variables. El ejemplo más conocido es el de estimar el precio de una casa basado en sus características: zona, área, habitaciones, cochera, etc. Dentro de la industria son múltiples las aplicaciones, como, por ejemplo: pronosticar la demanda eléctrica en función de la hora, fecha, condiciones ambientales, estación, etc. Otro ejemplo es hace el ejercicio de predecir la falla de una máquina industrial en base al último análisis de aceite, vibración y/o ultrasonido.

Figura 4: Predicción mediante el algoritmo de regresión no lineal


Basado en modelos vs basado en instancias

La gran mayoría de algoritmos de machine learning son basados en modelos. En un aprendizaje basado en modelos, los datos se separan en datos de entrenamiento y datos de testeo. Con los datos de entrenamiento se construye el algoritmo (aprendizaje de IA), mientras que con el resto de datos se verifica la consistencia del algoritmo. En la siguiente figura se muestra el flujo de trabajo que siguen este tipo de algoritmos.

Figura 5: Flujo de trabajo en algoritmos basados en modelos.

En cambio, los algoritmos basados en instancias emplean todo el conjunto de datos para su aprendizaje. Es decir, no es necesario separar el conjunto de datos para aprendizaje y testeo. Un algoritmo frecuentemente empleado es k-Nearest Neighbors (kNN).


Aprendizaje superficial vs profundo (Deep learning)

Actualmente, la gran mayoría de algoritmos son de aprendizaje superficial. En un aprendizaje superficial, el algoritmo aprende directamente de las características de los datos. Mientras que en un aprendizaje profundo (Deep Learning), el algoritmo aprende de características abstractas provenientes de los datos. Es así que Deep Learning, es un subcampo de Machine Learning, en donde se incluye varias capas de representación de datos. En la siguiente figura se muestra esta diferencia.

Figura 6: Diferencias entre diferentes disciplinas de Machine Learning. Los cuadros grises representan el aprendizaje de la data anterior

Es preciso mencionar que los algoritmos de Deep Learning está en constante crecimiento, siendo tal vez el área donde se esta investigando con mayor fuerza. Por contraparte, la limitación que tienen estos algoritmos es la capacidad computacional. Pues en la mayoría de casos, es necesario contar con servidores dedicados para poder entrenar estos algoritmos.

Figura 7: Esquema general de la representación de características en Deep Learning


Aprendizaje supervisado, no supervisado o semi-supervisado

La gran mayoría de algoritmos de machine learning son supervisados. El aprendizaje supervisado es en donde tenemos variables de entrada (X) y una variable de salida (Y), de modo que Y es una función de X. El objetivo es aproximar esta función, de modo que al tener un nuevo conjunto de observaciones X se pueda predecir el valor de Y. Los algoritmos populares que están en esta categoría son: regresión lineal, random forest y support vector machine.

Figura 8: Esquema de aprendizaje supervisado

En cambio, en el aprendizaje no supervisado solo se tienen variables de entrada (X). El objetivo del aprendizaje no supervisado es modelar la estructura o distribución subyacente en los datos para obtener más información sobre los datos. Los algoritmos que se encuentran en esta categoría son los de clustering y asociación.

Figura 9: Esquema de aprendizaje no supervisado

Finalmente, el aprendizaje semi-supervisado es un intermedio de las anteriores. En este caso se tiene una gran cantidad de observaciones de las variables de entrada (X), y solo algunas tienen una variable de salida (Y). Por ejemplo, en el caso de archivar fotos, solo algunas de estas imágenes tendrán las etiquetas correspondientes (nombre persona, evento, lugar, etc). La gran mayoría de las aplicaciones funcionales de machine learning se encuentran en esta área.


Clasificando los algoritmos de Machine Learning

Clasificar, explicar y aprender todos los algoritmos de machine learning podría ser una tarea interminable. Pues existen algoritmos básicos, avanzados, combinación entre dos o más algoritmos, e incluso los que integran métodos estadísticos (denominados híbridos). En este artículo muestro diferentes propuestas para clasificar estos algoritmos.


Recursos para aprender algoritmos de Machine Learning

Existen diferentes recursos para el aprendizaje de los algoritmos de Machine Learning. Pues en los últimos años se aparecieron una infinidad de artículos, libros y cursos virtuales. De esta gran cantidad de recursos en la web, en la siguiente lista  recomiendo los más interesantes.


Libros

Conclusiones

Machine Learning en general es una de las áreas de conocimiento que esta presente en la cuarta revolución industrial. Posiblemente de aquí 5 a 10 años sea un conocimiento básico para la mayoría de ingenieros (como hoy en día lo es la programación). Pues esta teniendo un crecimiento explosivo en investigación, software y sobre todo aplicaciones industriales.

Los algoritmos de Machine Learning actualmente son varios, y además siguen apareciendo nuevos algoritmos, pues es uno de los campos con bastante investigación. Aprender todos estos algoritmos puede ser una tarea interminable, pero si es factible aprender los algoritmos básicos y/o populares. Lo importante es conocer la función principal de cada algoritmo antes de estudiarlo profundamente.

Espero que te haya gustado el artículo. 

¡Hasta pronto! 

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.