Algunas cosas útiles que conocer sobre Machine Learning

5 minuto(s) de lectura

En los apuntes oficiales asociados a la segunda clase del curso CS231n: Convolutional Neural Networks for Visual Recognition nos recomiendan, como lectura opcional, consultar la sexta sección del artículo escrito por Pedro Domingos: “A Few Useful Things to Know about Machine Learning”. El acceso al texto, por fortuna, es libre a través de este enlace, característica siempre digna de destacar.

En mi opinión, el documento completo en sí es bastante accesible, por lo que no limitaría su estudio únicamente a la sección recomendada, sino que directamente invitaría a cualquier persona a disfrutar de las apenas nueve páginas que lo conforman.

El autor parte de la premisa de que muchos proyectos en esta disciplina se prolongan en el tiempo más de lo que debieran e, incluso, terminan produciendo resultados que distan de ser ideales. A continuación, comparte una serie de consejos, a la vez que intenta enterrar ciertas ideas erróneas, al parecer, bastante asentadas.

Entre otras, algunas de las perlas que me han resultado de interés son:

  • El aprendizaje de una función se produce al combinar, de manera adecuada, representación, evaluación y optimización. En la práctica los esfuerzos tienden a concentrarse en la primera parte, dejando un tanto de lado las otras dos.
  • El principal objetivo de los algoritmos que aporta el campo de Machine Learning es la generalización a ejemplos que no forman parte del conjunto de aprendizaje.
  • Es un grave error evaluar el rendimiento de un algoritmo utilizando para ello el conjunto de aprendizaje, puesto que así obtendremos seguramente cierta ilusión de éxito. Al principio de todo proyecto debemos dejar aparte un subconjunto de los datos para, en la última fase, evaluar la precisión del algoritmo finalmente escogido durante la etapa de aprendizaje.
  • Al hilo del punto anterior, de cara a llevar a cabo el ajuste de ciertos hiperparámetros necesarios para el correcto funcionamiento del algoritmo, tenemos que emplear, en la medida que el coste computacional nos lo permita, validación cruzada (cross-validation).
  • Teniendo en cuenta que la función objetivo que al final escojamos no es más que un sustituto aproximado de la verdadera, es posible que no sea necesario realizar una optimización completa de la misma.
  • Es muy difícil generar un buen modelo a partir de los datos únicamente, por elevada que sea la cantidad de estos a los que tengamos acceso. Cada algoritmo debe incorporar una serie de supuestos sobre el modelo en cuestión, más allá de la propia información que aporten los datos, para así poder llevar a cabo una buena generalización.
  • Por fortuna, las funciones que caracterizan el mundo real no provienen, de manera uniforme, del conjunto de todas las posibles funciones matemáticas. Es por ello que incorporar hipótesis generales a nuestros modelos suele funcionar bien en la práctica.
  • Una manera de analizar el problema del sobreajuste de un modelo (fenómeno comúnmente conocido como overfitting) consiste en descomponer el error de generalización en sesgo (bias) y varianza (variance).
  • Al hilo del punto anterior, técnicas como la validación cruzada o la regularización pueden ser útiles de cara a reducir el sobreajuste. No obstante, hemos de ser cautos con todas aquellas herramientas que clamen resolver el mencionado problema, puesto que es fácil evitar dicho sobreajuste en nuestros modelos cayendo en el extremo opuesto del espectro, de forma que presenten significativos sesgos (underfitting).
  • Tras el sobreajuste, el mayor problema al que se enfrentan los algoritmos en Machine Learning es la “maldición de la dimensión” (course of dimensionality). Generalizar, de manera acertada, se vuelve exponencialmente difícil a medida que el número de dimensiones (comúnmente conocido como atributos o features) se incrementa, ya que hemos de ser conscientes que un conjunto de tamaño fijo va a cubrir una ínfima fracción de un espacio de entrada si su dimensión es elevada.
  • Continuando con el punto anterior, la estrategia de búsqueda de similaridad en la que la mayoría de los algoritmos de Machine Learning se asientan (bien explícita o implícitamente) pierde validez, ya que si el número de dimensiones es muy elevado, todos los ejemplos del conjunto de aprendizaje se parecen. Además, nuestras intuiciones, que proceden de un mundo tridimensional, a menudo no son correctas en espacios de dimensiones elevadas.
  • Es por ello que, de manera un tanto quizá inocente, podríamos pensar que recoger más atributos nunca hace daño a nuestros modelos, puesto que, en el peor de los casos, no proporcionan información alguna. Sin embargo, los beneficios que esta manera de proceder incorpore pueden quedar sobrepasados por la maldición de la dimensión.
  • No obstante, la mencionada maldición de la dimensión viene acompañada, generalmente, por lo que el autor acuña como la “bendición de la no uniformidad”. Es decir, en muchas aplicaciones, los ejemplos no se reparten de manera uniforme por el espacio de entrada, sino que se suelen concentrar cerca de una variedad de dimensiones bajas.
  • Una de las principales claves para la construcción de buenos modelos consiste en llevar a cabo una acertada selección de atributos (features). Sin embargo, es un proceso complicado porque, generalmente, requiere buen conocimiento del dominio en el que el problema se encaja.
  • De manera contraria a la intuición, no hay necesariamente una conexión entre el número de parámetros de un modelo y la tendencia de este al sobreajuste. Es decir, dados dos modelos con el mismo error sobre el conjunto de entrenamiento, el más “simple” (en términos del número de parámetros que incorpora) no tiene por qué caracterizarse por un menor error de generalización.
  • Que una función pueda ser representada no implica que pueda ser aprendida.
  • Los algoritmos que habitualmente se emplean solo pueden aprender correlaciones, pero sus resultados en ocasiones se tratan como si representasen relaciones causales. Debemos tener en cuenta que las herramientas que aporta Machine Learning se aplican habitualmente sobre conjuntos de datos observacionales. Por otro lado, no obstante, una correlación es un signo de una potencial conexión causal, y podemos utilizarla entonces como guía para posteriores investigaciones.

En el tintero he dejado algunas de las perlas contenidas en el artículo, sobretodo aquellas de corte más teórico, ya que quedan mejor caracterizadas en su contexto completo que en este desordenado listado de ideas. Tampoco era plan de “spoilear” el texto completo, ¿verdad?

Comentar