Machine Learning o Aprendizaje Automático es una rama de la Inteligencia Artificial que se ocupa de que las computadoras "aprendan".
¿Qué es aprender? Se dice que hay un aprendizaje cuando la performance mejora con la experiencia.
El core de Machine Learning es un modelo matemático que intenta ajustar los datos que le damos como input con un output conocido, por ejemplo, intentar estimar el precio de un inmueble en función de ubicación, año de construcción, superficie construida y del terreno, cantidad de ambientes, baños, cantidad de pisos, cocheras, si tiene o no jardín, pileta, orientación, etc. Es un aprendizaje a través de ejemplos, no se dan reglas fijas y duras sino que es un modelo que se va ajustando a los ejemplos que se le presentan.
Machine Learning es una herramienta súmamente útil para detectar patrones en los datos. Si bien esto era posible hacerlo con estadística inferencial, la gran ventaja es que fácilmente se puede analizar millones de datos y encontrar patrones no lineales, no obvios.
¿Qué datos debemos brindarle a un algoritmo?
En principio cuantas más características (inputs distintos) se le pueda dar a un algoritmo, mejor. Existen técnicas para elegir las mejores características y eliminar las que no son relevantes, pero no se pueden conocer a priori. Las ventajas de un modelo con menor cantidad de características que que requiere menor tiempo de entrenamiento y necesita menores recursos computacionales.
¿Cuántos datos son necesarios para que un algoritmo aprenda?
Si bien la respuesta es "depende", existen métricas que permiten medir la evolución del aprendizaje de un algoritmo y la cantidad de datos debe ser la suficiente y necesaria para lograr que aprenda razonablemente bien.
El entrenamiento (o aprendizaje) es un proceso iterativo:
- Se propone un modelo (algoritmo=serie de pasos computacionales finitos) que inicialmente no está entrenado
- Se alimenta el modelo con datos
- Se mide el output del modelo con el output real de los datos. La diferencia es el error del modelo.
- Se realizan ajustes en los parámetros del modelo para disminuir el error en la próxima iteración con los mismos datos.
- Se vuelve al paso 3.
Cuando el error es suficientemente bajo y/o cuando el error no puede descender más, el modelo está entrenado. Si se eligió un buen modelo, el momento en que el error no puede descender más coincide con un error bajo. Si el error es alto se deben analizar las causas: el modelo puede que haya sido alimentado con datos insuficientes para poder aprender. En este caso es necesario o bien simplificar el modelo, alimentarlo con más datos (datos nuevos) o introducir nuevas características (más variables al modelo). Otra posibilidad es el modelo elegido no sea el adecuado para el set de datos. La experiencia es importante para poder elegir un buen modelo inicial.
Se podría pensar que cuantos más datos mejor, pero no es así. Existe un riesgo de sobre-ajuste ("overfitting") que se presenta cuando el modelo explica perfectamente los ejemplos con los cuales fue entrenado pero no puede generalizar cuando se le presentan casos nuevos, casos nunca vistos por el modelo.
En Common Sense utilizamos Marchine Learning para variadas soluciones, como por ejemplo desde el scoring de un dato, hasta el desarrollo de un modelo de redes neuronales para resolver captchas..