Introducción al Machine Learning
En esta sección se introducen los conceptos relacionados con la Inteligencia Artificial, Machine Learning y las redes neuronales artificiales, que servirán de base para poder comprender el entrenamiento de las mismas y su implementación en las redes neuronales de grafos que se utilizan en el modelo imperante a día de hoy.
Muchos conceptos que se utilizan cuando hablamos de la inteligencia artificial, como pueden ser el Machine learning, las redes neuronales, el Big Data o el Deep learning1, normalmente se solapan y resultan confusos.
Por ello, es necesario comenzar dando las definiciones y contexto claros, que permitan su correcta interpretación. Dar una definición exacta de lo que es la inteligencia artificial depende de la propia definición de “inteligencia”, que sigue teniendo m´ultiples aceptaciones. De todas las definiciones que se han dado se extraer una idea com´un de lo que es la inteligencia artificial: Inteligencia artificial, IA2: subdisciplina del campo de la informática, que busca la creación de máquinas que puedan imitar comportamientos inteligentes. Dentro del campo de la IA hay subcategorías que responden a diferentes comportamientos inteligentes. Si hay una capacidad que de verdad nos define como agentes inteligentes es la capacidad de aprender, es decir el Machine learning.
Machine learning (ML) o aprendizaje automáico: es la rama de la inteligencia artificial que busca cómo dotar a las máquinas de capacidad de aprendizaje. Entendido este como la generalización del conocimiento a partir de un conjunto de experiencias.
Los paradigmas de aprendizaje del ML pueden dividirse en tres grupos diferentes: supervisado, no supervisado y reforzado.
• Aprendizaje supervisado: es la tarea de aprender una función que asigna una entrada a una salida basándose en ejemplos de parejas de entrada y salida. Deduce una función a partir de datos de entrenamiento3 “etiquetados” que consisten en un conjunto de ejemplos de entrenamiento. En el aprendizaje supervisado, cada ejemplo es un par que consta de un objeto de entrada (típicamente un vector) y un valor de salida deseado. Un algoritmo de aprendizaje supervisado analiza los datos de entrenamiento y genera una función, que puede usarse para asignar valores de salida a nuevos ejemplos. Se requiere que el algoritmo generalice, a partir de los datos de entrenamiento, las situaciones que todavía no ha visto de una manera “razonable”.
• Aprendizaje no supervisado: es el paradigma que consigue producir conocimiento únicamente de los datos que se proporcionan como entrada, sin necesidad de explicarle al sistema qué resultado se quiere obtener.
• Aprendizaje reforzado: en el entrenamiento de estos algoritmos no se cuenta con una salida óptima para cada entrada, pero se puede contabilizar si las salidas que genera, consiguen el objetivo y se acercan a la solución óptima, lo que se conoce como función de recompensa. Algún ejemplo donde se puede implementar este tipo de aprendizaje es en el entrenamiento de sistemas de navegación de coches, aviones, drones, etc.
1. Es un subconjunto de machine learning, que es básicamente una red neuronal con tres o más capas.
2. Artificial Itelligence, AI.
3. Conjunto de entrenamiento: D = {(xi, yi)}N i=1, donde xi representa las variables de cada observación (vector de cualquier dimensión), e yi es la salida esperada para cada xi
1. Introducción al Machine Learning
Algunas definciones:
• Machine Learning es la ciencia (y el arte) de programar un computador para que pueda aprender a partir de los datos.
Machine Learning es el campo de estudio que da a los computadores la capacidad de aprender sin ser programados explícitamente. Arthur Samuel, 1959.
Se dice que un programa computacional aprende de la experiencia E con respecto a alguna tarea T y alguna medida de rendimiento P, si su rendimiento en T, medido por P, mejora con la experiencia E. Tom Mitchell, 1997.
Machine Learning y su variante más popular “Deep Learning” son las áreas de mayor impacto en la Inteligencia Artificial.
¿Cuándo Aplicar ML?
• ML es muy útil para problemas que son demasiado complejos para ser resueltos algorítmicamente.
Ejemplo: reconocimiento de voz, procesar texto, procesar imágenes.
Consideremos el problema de reconocimiento de voz. Supongamos que queremos escribir un programa capaz de distinguir las palabras “one” y “two” en inglés.
Sabemos que la palabra “two” comienza con un sonido de tono alto (“T”). Entonces nuestro algoritmo podría medir la intensidad del sonido para distinguir entre “one” y“two”. Obviamente, esta técnica no escalaría a miles de palabras habladas por millones de personas en ambientes ruidosos y en varios de idiomas.
La mejor solución (al menos hoy en día) para este tipo de problemas es escribir un algoritmo que aprenda a partir de los datos. En este caso los datos serían muchas grabaciones de entrenamiento por cada palabra.
Machine Learning puede ayudar a los humanos a aprender sobre problemas complejos.
• Algunos algoritmos de ML como los árboles de decisión o los modelos lineales pueden ser inspeccionados para ver lo que han aprendido.
• Otras técnicas como las redes neuronales son muy difíciles de interpretar.
• Una vez que el filtro de spam ha sido entrenado (con un método interpretable), éste nos puede revelar la lista de palabras y frases que mejor predicen el spam.
• Esto nos puede indicar correlaciones insospechadas o nuevas tendencias que nos ayudarán a comprender mejor problema.
¿Cómo Funciona el Machine Learning?
El Machine Learning se basa en algoritmos que procesan datos, identifican patrones y hacen predicciones. Su funcionamiento se puede resumir en los siguientes pasos:
-
Recolección de Datos
- Se recopilan grandes volúmenes de datos estructurados y no estructurados.
- Ejemplo: Imágenes, texto, transacciones bancarias, datos de sensores, etc.
-
Preprocesamiento de Datos
- Se limpian los datos, eliminando información irrelevante o errores.
- Se convierten los datos en formatos utilizables para los algoritmos.
-
Selección del Modelo y Entrenamiento
- Se elige un algoritmo adecuado dependiendo del problema (supervisado, no supervisado, etc.).
- Se «entrena» el modelo con datos históricos para que aprenda patrones.
-
Evaluación del Modelo
- Se mide la precisión y el rendimiento del modelo con datos de prueba.
- Se ajustan parámetros para mejorar la precisión.
-
Predicción y Uso del Modelo
- Una vez entrenado, el modelo puede hacer predicciones con datos nuevos.
Tipos de Machine Learning
1. Aprendizaje Supervisado
El modelo aprende con datos etiquetados (entrada y salida conocida).
- Ejemplo: Clasificación de correos electrónicos en spam o no spam.
- Algoritmos comunes:
- Regresión Lineal
- Árboles de Decisión
- Redes Neuronales
2. Aprendizaje No Supervisado
El modelo encuentra patrones en datos sin etiquetas ni categorías predefinidas.
- Ejemplo: Agrupación de clientes según comportamiento de compra.
- Algoritmos comunes:
- Clustering (K-means, DBSCAN)
- Análisis de Componentes Principales (PCA)
3. Aprendizaje por Refuerzo
El modelo aprende mediante prueba y error, recibiendo recompensas o castigos.
- Ejemplo: Un robot que aprende a caminar.
- Algoritmos comunes:
- Q-Learning
- Deep Q Networks (DQN)