El aprendizaje automático es el proceso de extraer conocimiento de los datos automáticamente, normalmente con la meta de hacer predicciones sobre datos nuevos desconocidos. Un ejemplo clásico es el de un filtro de spam, para el que el usuario etiqueta los correos que le llegan como Spam
o No Spam
. Un algoritmo de aprendizaje automático entonces "aprende" un modelo predictivo de los datos que distingue el spam de los correos normales, un modelo que puede predecir si los nuevos correos son spam o no.
Uno de los elementos centrales del aprendizaje automático es el concepto de toma de decisiones automáticas a partir de los datos sin que el usuario especifique reglas acerca de cómo esas decisiones deben ser tomadas.
Para el caso de los correos, el usuario no proporciona una lista de las palabras o características de un correo spam. En lugar de eso, el usuario proporciona ejemplos de correos que son y no son spam.
El segundo concepto central es el de la generalización. La meta de un modelo de aprendizaje automático es predecir en nuevos ejemplos nunca antes vistos. En una aplicación del mundo real, no estamos interesados en clasificar correos que ya han sido etiquetados o no como spam. Queremos hacer la vida del usuario más sencilla mediante la clasificación automática de los correos que vayan llegando.
Los datos suelen presentarse al algoritmo como un array de dos dimensiones (o matriz) con números. Cada punto (también conocido como ejemplo o instancia de entrenamiento) sobre el cual queremos aprender o tomar una decisión se representa mediante una lista de números, también llamado vector de características, y contiene las características que representan las propiedades de ese punto.
Más tarde, trabajaremos en conjunto de datos (dataset) muy popular, llamado Iris. Iris, un dataset clásico de prueba en aprendizaje automático, contiene las medidas de 150 flores de tipo iris con 3 especies distintas: Iris-Setosa
, Iris-Versicolor
e Iris-Virginica
.
Iris Setosa
Iris Versicolor
Iris Virginica
Representamos cada ejemplo de flor como una fila en nuestra matriz de datos, y las columnas (características) representan las medidas de la flor en centímetros. Por ejemplo, podemos representar el dataset Iris, que consiste en 150 ejemplos y 4 características, como un array de dos dimensiones o matriz en $\mathbb{R}^{150 \times 4}$ con el siguiente formato: $$\mathbf{X} = \begin{bmatrix} x_{1}^{(1)} & x_{2}^{(1)} & x_{3}^{(1)} & \dots & x_{4}^{(1)} \\ x_{1}^{(2)} & x_{2}^{(2)} & x_{3}^{(2)} & \dots & x_{4}^{(2)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ x_{1}^{(150)} & x_{2}^{(150)} & x_{3}^{(150)} & \dots & x_{4}^{(150)} \end{bmatrix}. $$
(el superíndice denota la iésima columna, y el subíndice denota la $j$ésima característica, respectivamente.
Hay dos tipos de aprendizaje automático, de los cuáles hablaremos hoy: aprendizaje supervisado y aprendizaje no supervisado.
En aprendizaje supervisado, tenemos un dataset que contiene tanto características de entrada como una salida deseada, como en el ejemplo de clasificación de spam. La tarea a realizar es construir un modelo que sea capaz de predecir la salida deseada de un nuevo objeto dadas las características de entrada.
Algunos ejemplos más complejos son:
Lo que tienen en común todas estas tareas es que tenemos una o más cantidades no determinadas sobre un objeto que deben ser predichas usando otras cantidades.
El aprendizaje supervisado se divide a su vez en dos categorías, clasificación y regresión:
Spam
y No Spam
. En otras palabras, se proporciona una distinción clara entre las categorías. Es más, es importante indicar que estas categorías son nominales y no ordinales. Las variables nominales y ordinales son ambas subcategorías de las variables categóricas. Las variables ordinales tienen asociado un orden, por ejemplo, las tallas de las camisetas "XL > L > M > S". Por el contrario, las variables nominales no implican un orden, por ejemplo, no podemos asumir (en general) "naranja > azul > verde".En aprendizaje supervisado siempre hay una distinción entre el conjunto de entrenamiento o training para el cual se nos proporciona la etiqueta, y el conjunto de test para el cual la etiqueta debe ser inferida. El algoritmo de aprendizaje debe ajustar el modelo predictivo al dataset de entrenamiento y usamos el conjunto de test para evaluar la capacidad de generalización.
En aprendizaje no supervisado no hay una salida deseada asociada a los datos. En su lugar, estamos interesados en extraer algún tipo de conocimiento o modelo a partir de los datos. En cierto sentido, se podría pensar que el aprendizaje no supervisado es una forma de descubrir etiquetas a partir de los propios datos. Este tipo de aprendizaje suele ser más difícil de entender y evaluar.
El aprendizaje no supervisado engloba tareas tales como reducción de la dimensionalidad, clustering y estimación de densidades. Por ejemplo, en el dataset iris que discutimos anteriormente, podríamos aplicar métodos de aprendizaje no supervisado para determinar combinaciones de características que muestran la estructura de los datos de la mejor forma posible. Como veremos después, estas combinaciones se pueden usar como métodos de proyección para visualizar los datos originales (que estaban en 4 dimensiones) utilizando solo 2 dimensiones. Algunos ejemplos de problemas no supervisados son:
Algunas veces los dos tipos de aprendizaje se combinan: por ejemplo, el aprendizaje no supervisado puede ser utilizado para encontrar características útiles en datos heterogéneos y luego usar estas características en un framework de aprendizaje supervisado.