¡Esta es una revisión vieja del documento!


4 - Aprendizaje automático (machine learning)

Hoy en día, el machine learning se utiliza en multitud de aplicaciones que utilizamos cada día, como un sistema de recomendaciones, traducción automática de textos, reconocimiento de voz…

Dentro de los tipos de machine learning, uno de lo más populares hoy en día (y que es en parte responsable del auge de la IA) son las redes neuronales (Neural Nets) y el aprendizaje profundo (Deep Learning).

  • Inteligencia artificial (AI): Rama de la informática que intenta simular diferentes comportamientos humanos por parte de las máquinas.
  • Aprendizaje automático (ML): Es una parte de la inteligencia artificial (pero no la única) que permite a las máquinas aprender a partir de los datos sin ser programadas.
  • Redes neuronales (NN): Uno de los tipos de aprendizaje automático (hoy en día, uno de los más populares)
  • Aprendizaje profundo (DL): Método para construir, entrenar y usar redes neuronales.


En el aprendizaje supervisado, el conjunto de entrenamiento incluye las soluciones deseadas, denominadas “etiquetas”.

Por el contrario, en el aprendizaje no supervisado los datos de entrenamiento no incluyen las soluciones (no están etiquetados). El modelo es capaz de aprender de forma totalmente autónoma.

Las dos tareas típicas del aprendizaje supervisado son la regresión y la clasificación. En las tareas de regresión el algoritmo intenta predecir un valor numérico “objetivo” si se da un conjunto de características, denominados “predictores”.

En los problemas de clasificación, el modelo intenta clasificar las nuevas instancias según sus características. En este caso, la etiqueta de los datos de entrenamiento será la clase a la que pertenece cada instancia.

Puesto que etiquetar datos suele llevar mucho tiempo y supone un gasto importante, a menudo tendremos un montón de instancias sin etiquetar y unas pocas etiquetadas. Algunos algoritmos pueden ocuparse de datos que están etiquetados en parte. Esto se llama aprendizaje semisupervisado.

El aprendizaje por refuerzo es algo totalmente diferente. En este caso, la máquina aprende recibiendo “recompensas” (o “castigos”) según las acciones que tome.


En el aprendizaje por lotes el sistema no puede aprender de forma gradual; tiene que entrenarse usando todos los datos disponibles en ese momento. Una vez se entrena el modelo se lanza a producción, y si entran nuevos datos tenemos que volver a entrenar al modelo con todos los datos disponibles (los nuevos y los viejos). Esto se llama aprendizaje offline.

Uno de los problemas con este tipo de aprendizaje es que entrenar un modelo completo puede tardar varias horas, con lo que normalmente se hace cada 24 horas o cada semana. Si necesitamos actualizar el sistema con datos que cambian con rapidez, necesitamos otras soluciones.

En el aprendizaje online el sistema es capaz de aprender de forma gradual, ya sea con datos individuales o en grupos pequeños de datos llamados minilotes.

También se pueden utilizar este tipo de sistemas cuando el volumen de datos para entrenar es enorme. El algoritmo carga parte de los datos, ejecuta un paso de entrenamiento con esos datos y repite el proceso hasta que ha procesado todos los datos.

Un parámetro importante en este tipo de sistemas es la tasa de aprendizaje: la rapidez con la que debe adaptarse el sistema a los datos cambiantes. Si la tasa de aprendizaje es muy alta, el sistema se adaptará con rapidez a los datos nuevos, pero también tenderá a olvidar rápido los datos antiguos (por ejemplo, en un filtro de spam no nos interesa que el sistema olvide los tipos de spam que ya ha aprendido). Por el contrario, con una tasa de aprendizaje muy baja, el sistema aprenderá más despacio, pero será menos sensible al ruido de los datos nuevos.

En el aprendizaje basado en instancias, el sistema aprende los ejemplos de memoria y, después, generaliza a nuevos casos utilizando una medida de similitud para compararlos con los ejemplos aprendidos.

Otra forma de generalizar es crear un modelo a partir de un conjunto de ejemplos y, después, utilizarlo para hacer predicciones. Esto se denomina aprendizaje basado en modelos.



Ejemplos de problemas con los datos:

  • Cantidad insuficiente de datos de entrenamiento: La mayoría de modelos de machine learning necesitan miles (o millones en el caso de imágenes, por ejemplo) de datos para aprender.

  • Datos de entrenamiento no representativos: Para poder generalizar bien, es crucial que los datos de entrenamiento sean representativos de los casos nuevos que queremos generalizar. Si utilizamos un conjunto de entrenamiento no representativo, entrenaremos un modelo con pocas probabilidades de hacer predicciones exactas. Esto se llama sesgo muestral.

  • Datos de mala calidad: Si nuestros datos de entrenamiento están repletos de errores, valores atípicos y ruido, será más difícil que el sistema detecte patrones subyacentes y tendrá menos probabilidad de funcionar bien.

  • Características no relevantes: El sistema solo podrá aprender si los datos de entrenamiento contienen suficientes características relevantes y no demasiadas irrelevantes.

Ejemplo de problemas con los algoritmos:

  • Sobreajustar los datos de entrenamiento: El modelo tiene un buen rendimiento con los datos de entrenamiento, pero no generaliza bien.

  • Subajustar los datos de entrenamiento: El modelo es demasiado simple para aprender la estructura subyacente de los datos.

Normalmente, se dividen los datos en tres conjuntos:

  • Datos de entrenamiento: Los datos que utilizamos para entrenar nuestro modelo. Como veremos más adelante, es habitual dividir este conjunto en otro dos: entrenamiento y validación.

  • Datos de prueba: Los datos que utilizamos para comprobar si nuestro modelo generaliza bien.
Es habitual utilizar el 80% de los datos para el entrenamiento y el 20% para las pruebas (sin embargo, esto depende del tamaño del conjunto de datos)
  • clase/ia/saa/1_introduccion_ia/ml.1626332264.txt.gz
  • Última modificación: 2021/07/15 08:57
  • por cesguiro