
- Publicado el
Explorando el aprendizaje de máquinas y humanos: principios y procesos
¿Qué es lo que nos permite aprender como seres humanos? En general, adquirimos gran parte de nuestros conocimientos a través de nuestra experiencia con los objetos y el mundo que nos rodea. Esto significa que aprendemos a partir de la información y los datos que recopilamos sobre ellos, en lugar de depender de definiciones matemáticas abstractas.
Esta capacidad de aprender a través de la observación y el análisis de datos nos ha resultado muy útil a lo largo de la historia, ya que hay muchos problemas que no se pueden abordar de manera analítica o teórica. En estos casos, los datos nos permiten encontrar soluciones empíricas, aunque no necesariamente nos brinden una comprensión profunda del por qué de las cosas. Sin embargo, estas soluciones basadas en datos pueden ser muy útiles en la práctica. Por esta razón, la habilidad de aprender de los datos es fundamental para muchas profesiones y disciplinas científicas.
En esta oportunidad, queremos abordar brevemente los principales aspectos que conforman el problema del aprendizaje a partir de los datos. Luego, profundizaremos en cómo las máquinas también pueden aprender utilizando este enfoque.
El problema del aprendizaje
La capacidad de aprender a partir de los datos es un proceso que puede automatizarse mediante el uso de algoritmos diseñados específicamente para este fin. Estos algoritmos buscan encontrar la solución más precisa para predecir resultados, pero no necesariamente buscan entender el por qué de las cosas. En su lugar, se basan en los datos para construir una fórmula que ofrezca las mejores aplicaciones prácticas. Es importante tener en cuenta que estos algoritmos de aprendizaje de datos solo buscan mejorar su precisión a medida que obtienen más información, pero no siempre brindan una comprensión profunda del fenómeno subyacente.
Desde una perspectiva más matemática, el problema del aprendizaje puede formularse utilizando tres espacios medibles , y . El conjunto es un subconjunto de y representa una relación entre los datos de e . En este contexto, la tarea de aprendizaje consiste en intentar describir la relación a partir de una muestra de datos con y una función de pérdida definida sobre el producto cartesiano entre el conjunto de todas las funciones medibles de a y el conjunto , con imagen en los números reales. La función se utiliza principalmente para evaluar el rendimiento del aprendizaje en el algoritmo.
Para abordar esta tarea es necesario seleccionar un conjunto de hipótesis y desarrollar un algoritmo de aprendizaje, es decir, encontrar un mapeo:
El objetivo de un algoritmo de aprendizaje es, a partir de una muestra de datos de cierto tamaño , encontrar un modelo que tenga un buen rendimiento en la muestra de datos y también tenga la capacidad de generalizar ese rendimiento a datos desconocidos en . El rendimiento del modelo se evalúa mediante la función de pérdida , y se mide a través de la pérdida . La capacidad de generalizar implica que el modelo tendrá un comportamiento similar en el conjunto de datos desconocidos al que tiene en el conjunto de datos conocidos, .
En este punto podemos estar de acuerdo en que los términos buen rendimiento y capacidad de generalizar son bastante ambiguos. Sin embargo, podemos tratar de precisar estos conceptos examinando los conceptos de riesgo real y riesgo empírico, que veremos a continuación:
El riesgo real de una hipótesis con respecto una distribucción de probabilidad sobre , se define como:
En esta definición, la esperanza de la función de pérdida de se calcula sobre los datos muestreados aleatoriamente de acuerdo con la distribución . Cabe destacar que, en la práctica, la distribución es esencialmente desconocida.
Por otro lado, el riesgo empírico es la pérdida esperada sobre una muestra de datos , es decir:
Es deseable encontrar un modelo que tenga un riesgo real de cero, ya que significaría que el modelo no cometería errores en su tarea de predicción. Sin embargo, es raro encontrar un modelo con estas características en la práctica. Por lo tanto, en lugar de eso, se enfoca en encontrar un modelo que cumpla con la siguiente condición:
Aunque la condición mencionada garantiza el buen rendimiento del modelo en el conjunto de datos de entrenamiento , este enfoque tiene el peligro de llevar al sobreentrenamiento. En la práctica, es posible encontrar modelos que tienen un riesgo empírico de cero en el conjunto de entrenamiento , pero que tienen una pérdida significativa en datos no vistos previamente. Esto significa que el modelo no tiene la capacidad de generalizar bien a nuevos conjuntos de datos y, por lo tanto, carece de utilidad práctica. Para evitar el sobreentrenamiento, es común dividir el conjunto de datos de entrenamiento en dos subconjuntos: uno para entrenar el modelo y otro para evaluar su rendimiento. El subconjunto utilizado para el entrenamiento se denomina y el subconjunto utilizado para la evaluación se denomina . El objetivo es encontrar un modelo que tenga un rendimiento similar en ambos subconjuntos, , lo que indica una buena capacidad de generalización. Si el rendimiento del modelo es significativamente peor en el conjunto de pruebas que en el conjunto de entrenamiento, es probable que el modelo se haya sobreentrenado en el conjunto de entrenamiento.
¿Cómo asegurar que un modelo tiene una buena capacidad de generalización? Este es un problema complejo que, en primer lugar, implica elegir el conjunto de hipótesis adecuado . De esta manera, para cualquier valor de , debemos encontrar un conjunto de datos de entrenamiento que garantice que:
Una vez que hemos encontrado el conjunto de hipótesis que cumple con la ecuación (4), podemos proceder a encontrar la hipótesis en que cumple con la ecuación (3). Si logramos encontrar un conjunto de hipótesis y un modelo con estas características, podemos decir que nuestro modelo tiene una buena capacidad de generalización y, por lo tanto, tiene un buen rendimiento.
Tareas de predicción y clasificación
Aquí hay algunos ejemplos de problemas de aprendizaje basados en datos:
Clasificación multiclase. Imagina que quieres diseñar un programa para clasificar documentos en diferentes categorías, como noticias, deportes, biología y medicina. Un algoritmo de aprendizaje para esta tarea tendría acceso a un conjunto de documentos correctamente clasificados, denotado como , y utilizaría estos ejemplos para entrenar un modelo que pueda clasificar nuevos documentos que se le presenten. En este ejemplo, el dominio es el conjunto de todos los posibles documentos. Es importante tener en cuenta que los documentos deben representarse mediante un conjunto de características, como el número de palabras diferentes, el tamaño del documento, el autor y el origen. Las etiquetas son el conjunto de todos los posibles tópicos (en este caso, sería un conjunto finito). Una vez que hemos definido el dominio y las etiquetas, necesitamos determinar una función de pérdida adecuada para medir el rendimiento de nuestro algoritmo.
Para el problema de clasificación multiclase, podemos utilizar una variable aleatoria en el dominio y una función de pérdida de la siguiente forma:
Esta función se usa en general para problemas de clasificación binaria o multiclase.
En la tarea de regresión, se busca encontrar una relación funcional simple entre los componentes de los datos e . Por ejemplo, se puede tratar de predecir el peso de nacimiento de un bebé en función de las medidas obtenidas por ultrasonido del diámetro de su cabeza, el diámetro abdominal y la longitud de su fémur. En este caso, el dominio es un subconjunto de (las tres medidas obtenidas por el ultrasonido) y las etiquetas son números reales (el peso en gramos). El conjunto de entrenamiento es un subconjunto . La calidad de la hipótesis se puede evaluar utilizando el valor esperado del cuadrado de la diferencia entre las etiquetas correctas y la predicción de , es decir:
¿Cómo aprenden las maquinas?
Como se mencionó anteriormente, el problema del aprendizaje involucra la selección de un conjunto de hipótesis y la búsqueda de la hipótesis que cumpla con la siguiente condición:
En otras palabras, el problema del aprendizaje se reduce a optimizar el riesgo empírico . Hay una gran variedad de algoritmos de optimización disponibles para resolver este tipo de problemas, pero uno de los más populares es el algoritmo del descenso del gradiente. Este algoritmo se basa en iterar la siguiente operación:
para encontrar una hipótesis . Este es un proceso que puede ser automatizable en casi cualquier computadora. Por lo tanto, para que una computadora pueda aprender a clasificar y predecir a partir de datos, es necesario programarle una serie de instrucciones que le indiquen cómo optimizar las diferentes funciones de pérdida según la tarea de aprendizaje que deseamos que realice. Este proceso puede ser automatizado y ejecutado en casi cualquier computadora. Una vez que los algoritmos se hayan ejecutado, la computadora debería tener la capacidad de clasificar y predecir, aunque esto no es una tarea sencilla. Con el adecuado programado y configuración, cualquier máquina con la capacidad de ejecutar iteraciones de este tipo puede aprender a realizar tareas de aprendizaje.
Espero que hayas disfrutado este post y que hayas encontrado la información útil. Nos vemos en próximos contenidos. ¡Hasta luego!