Introducción a Machine Learning

Machine Learning (ML o Aprendizaje de Máquinas) es una de las tecnologías más impactantes que han (re)surgido en los últimos 10 años. Impulsada principalmente por el crecimiento exponencial de los datos producidos por las personas que hacen uso de muchas tecnologías relacionadas a internet y más recientemente por objetos que interactúan con nuestro entorno (el internet de las cosas) los cuales constantemente están recopilado y enviando datos a centros masivos de almacenamiento, que cabe destacar,han sido una parte fundamental en la expansión que ha tenido ML en años recientes. Después de todo, hoy en día disponemos de suficiente poder de cómputo a un precio accesible para extraer patrones de conjuntos masivos de datos (Big Data) y obtener valiosa información de los mismos.

Simplificando las cosas podemos decir que ML es un término que hace referencia a un conjunto de algoritmos que aprenden usando datos pasados para crear predicciones, simulaciones o análisis. Éstos algoritmos una vez programados se representan a manera de árboles de decisiones, redes neuronales, etc. Ok, esa definición no fue muy académica que digamos, así que a continuación agrego otras dos más acertadas.

Arthur Samuel (1954) Machine Learning: Área de estudio que les da a las computadoras la abilidad de aprender sin necesidad de ser explicitamente programadas.

Si, esa definición no es muy nueva, pero en el ámbito de las ciencias de la computación ¿qué lo es?. Constantemente nos venden ideas como novedosas, cuando en realidad fueron inventadas o teorizadas hace mucho. Pero para una definición un tanto más moderna (y más técnica también), te dejo ésta a continuación:

Tom Mitchell (1998) Well-posed Learning Problem: a un programa de computadora se le indica aprender de la experiencia E con respecto a alguna tarea T y alguna medida de desempeño P, si su rendimiento sobre T, medido por P, mejora con la experiencia de E.

Lo sé. Suena a acertijo, pero espera, antes que dejes éste post y digas que ésto de Machine Learning sólo es para geeks, nerds o gente loca con mucho tiempo libre. Te puedo garantizar que con un poco de conocimiento del tema te hará sentido y a continuación detallaré el porque y el uso de ML en el mundo real.

Uso de Machine Learning

Las aplicaciones de ML desde ya nos afectan a todos de una manera u otra. Desde el buscador que usamos, hasta el reconocimiento facial de nuestras modernas cámaras, y sin mencionar las recomendaciones hechas a medida que muchos servicios de comercio electrónico como Amazon nos hacen cada día. ML está en todos lados. Y la tendencia es que en el futuro se encuentren incluso más aplicaciones de las ya conocidas en la actualidad.

¿Cómo y dónde aprendo sobre Machine Learning?

Lo primero es realmente tener la motivación de aprender más sobre el tema. El presente post lo quiero dejar breve, pero no quedo contento con lo poco que he profundizado sobre las beneficios que conlleva aprender un poco de ML, sin embargo éste no será el último post sobre el tema. Así que puedes estar seguro que semana a semana encontrarás algo nuevo en el blog relacionado a ML y sobretodo ejemplos, guías y tutoriales prácticos que te muestren el verdadero potencial de ML. Pero, por supuesto, te dejaré antes con una lista de los que para mí mejores recursos para aprender y profundizar sobre el tema, y lo mejor de todo es que son recursos completamente gratuitos, pero de enorme calidad.

  • Con seguridad necesitarás repasar o aprender un poco de matemáticas, sobretodo Algrebra lineal y algo de integrales y derivadas. Para ello recomiento una seríe de cursos de la Universidad Politécnica de Valencia que abarca todo lo que necesitas y lo puedes encontrar acá.
  • Mi primera recomendación y uno de los mejores cursos que puedes llevar sobre el tema es el curso de Andrew Ng de la Universidad de Stanford, disponible en Coursera. Puedes acceder aquí. La ventaja del curso en cuestión es que tiene subtítulos disponibles en Español, pero siendo francos, sino tienes un buen nivel de lectura y comprensión del inglés y quieres avanzar en ésta área, se te hará más difícil.
  • Siguiendo con Andrew Ng, hay un playlist completo sobre el tema en YouTube, donde se le ha grabado durante sus clases en Stanford y contiene mucha de la base teórica aqui
  • Otro de mis cursos favoritos en línea y uno de los mejores para introducirte a éste mundo es The Analytics Edge creado por el MIT. Lo recomiendo para iniciar sino tienes una base previa.
  • A cómo irás viendo en la medida que avances, la estadística es algo requerible cuando se trabaja con ML, y en ese sentido éste libro de Stanford nunca viene mal The Elements of Statistical Learning: Data Mining, Inference, and Prediction.

Con el tiempo iré añadiendo más recursos a éste post, por ahora me parece un buen inicio con los recursos que he publicado.