Esta publicación forma parte de una serie de posts creados para introducir programadores al campo del Machine Learning. Para ver todos los post, haz clic aquí.

Como ya hemos mencionado antes, el Machine Learning (ML) está en todas partes y sólo seguirá expandiéndose. Programar ya es considerada la mejor habilidadad a aprender en el siglo XXI, y la necesitaremos para crear nuestro proyectos de ML.

Lenguajes de programación

Python

Python es un lenguaje de alto nivel, interpretado, multiplataforma y de tipada dinámico. Es uno de los lenguajes más fáciles de aprender debido a su sintáxis sencilla y su filosofía de programar de forma flexible, siendo un opuesto a lenguajes como C o C++ (que ofrecen mayor rendimiento a costa de legibilidad del código).

Python es utilizado en ciberseguridad, desarrollo web y sistemas embebidos, pero recientemente el interés de la comunidad en este lenguaje ha estallado por su uso en las áreas de ML. Según los resultados del Developer Survey 2019 de Stack Overflow, Python es el lenguaje que más personas quieren aprender.

Y no es sólo casualidad, porque Python tiene el ecosistema más grande de herramientas de desarrollo de IA: Numpy, Pandas, Matplotlib e incluso Tensorflow, la librería dorada de Google para hacer Deep Learning están diseñados para su uso con Python.

Cualquier cosa que quieres realizar en ML, Python tiene una herramienta para ello

Tampoco carece de recursos para aprender. Personalmente recomiendo los siguientes:

R

R es un lenguaje de programación orientado a la estadística, que elevó su popularidad debido al alzamiento de la ciencia de datos (Data Science) como campo principal en muchas empresas, principalmente en la áreas de Analytics y Growth.

Es poco usado por otros campos del desarrollo de software, pero manejar R además de Python es una ventaja si vas a dedicarte de lleno al área de Machine Learning.

No me he enfocado a aprender este lenguaje, pero conozco del lugar perfecto para aprenderlo:

Otros

Tengamos algo en claro: Machine Learning es, en esencia, matemáticas. Teóricamente se puede hacer ML en cualquier lenguaje de programación, pero los lenguajes reconocidos aparte de Python y R son:

  • MATLAB (un lenguaje diseñado para su uso matemático y de investigación)
  • C++ (todo se puede hacer en C++, jaja)
  • Java (por favor, no. Te lo ruego. Anímate a aprender más lenguajes que sólo este)

Librerías

Numpy

Por dentro, los algoritmos y modelos de ML hacen operaciones con los componentes básicos del álgebra lineal: matrices y vectores. Debido a que no nos interesa enfocarnos de lleno a programar estas operaciones manualmente, utilizamos Numpy, una librería de Python que nos sirve para hacer cualquier cosa matemática en el lenguaje. Además su filosofía de programación con matrices se comparte en muchas librerías, por lo  que es muy recomendable darle un vistazo.

Pandas

Previo a la etapa de ML, necesitamos procesar los datos con los que entrenaremos nuestro modelo. Pandas es una librería de Python con un repertorio brutal dde operaciones para manejar datos: cargado y guardado de archivos, limpieza, agregaciones, etcétera. Esta librería es un estándar en proyectos de Data Science, y no podía faltar en esta lista.

Scikit Learn

Antes de la subida de popularidad de ML, Python ya contaba con una librería en esta área. Scikit Learn utiliza Numpy para realizar proyectos de ML y, aunque no esté optimizada para diseñar redes neuronales y otros modelos de Deep Learning (DL) según el estado del arte, sigue siendo más que excelente para entrenar modelos como Regresiónes, SVMs, etcétera.

Tensorflow

Estoy seguro que has escuchado este nombre. Esta librería de Google es la más utilizada para trabajos de Deep Learning tanto en las áreas de desarrollo como en investigación. Su sintáxis permite crear arquitecturas de redes neuronales de forma fácil, y ha sido la herramienta utilizada para propulsar el DL estos últimos años. En definitiva, una librería que debemos dominar.

PyTorch

Desarrollada por Facebook, esta librería/framework de Deep Learning es una muy buena alternativa a Tensorflow. Posee todas las características de su contrincante, salvo la integración con GCP (el servicio de cómputo en la nube de Google), pero los modelos hechos con este framework funcionan tan bien como los hechos en Tensorflow.

Cierre

Me ha faltado mencionar un montón de tecnologías para hacer ML: librerías de visualización de datos, servicios web, etcétera. Sin embargo, estas son cosas que aprenderemos en futuros posts.

Se despide de ustedes, Esteban Brito.

Y recuerden: Believe in AI