Mis primeras inmersiones en Tensorflow y su aplicación al aprendizaje de máquina

Mis primeras inmersiones en Tensorflow y su aplicación al aprendizaje de máquina

Esta semana tuve tiempo de dedicar un par de días a un curso sobre los principios básicos del machine learning y su aplicación a través de TensorFlow.

Dada mi poca experiencia en la materia, no tenía grandes expectativas en lo que podía encontrar en el curso, más allá de la descripción generalista que pude revisar de manera previa al registro.

Había leído mucho sobre el tema, sobre cómo los algoritmos mueven el mundo e influyen en mayor o menor medida en cada paso que damos en nuestro día. Recibir un email o no en la bandeja de entrada, pasar el primer filtro o criba de un proceso de selección, elegir la ruta más optima o rápida para llegar al trabajo, el contenido que se muestra en tu timeline de Twitter y así un largo etcétera de situaciones, donde a día de hoy podemos estar siendo parte de un algoritmo en nuestro día a día.

Phyton como lenguaje de programación de referencia

La verdad es que no esperaba que el lenguaje de programación de referencia para este curso fuese Python, aunque luego leyendo más en detalle es uno de los más usados por los programadores a la hora de implementar sus algoritmos de machine learning.

Según GeeksforGeeks, Python encabeza el listado de los cinco mejores lenguajes de programación para el campo d ela inteligencia atificial. Una de las razones principales para la adopción de Python en este tipo de proyectos, es la misma por la que hace unos meses empecé yo mismo a bichear con el, y reside en su sencillez y facilidad de adopción, la curva de aprendizaje es poco pronunciada por lo que permite centrarte en el algoritmo y no tanto en el código.

Si os pica la curiosidad el resto de los lenguajes más utilizados son R, Lisp, Prolog y Java. Aunque podéis leer el argumentario completo en el enlace que os he dejado un poco más arriba.

Una vez derribado el cuello de botella una nueva era tecnológica

Muchos de los ejemplos y aplicaciones que he podido ver sobre el uso de los algoritmos aplicados al machine learning, no difirieran en su etapa más inicial y en cuanto a la sencillez de proyectos a los que se enfrenta que los que se podían ver en los campos de la ingeniería allá por el final del siglo pasado. El tratamiento de señales digitales, ya fuese de audio o video, sus convoluciones y transformadas de Fourier tenían dos principales cuellos de botella, la inmadurez tecnológica de los equipos de instrumentación de la época, más detalle en el siguiente epígrafe y la limitaciones para este tipo de procesamiento que la arquitectura actual en ese momento de computadores, no proporcionaba el rendimiento suficiente para dar respuesta a las operaciones de cálculos demandadas por esta clase de proyectos.

Para muestra un botón, en las siguientes imágenes se puede ver la evolución de la capacidad de proceso en los últimos años, así como la generación de nuevas arquitecturas de computo como las GPUs.

Librery as a service, como la piedra angular de los algoritmos

Como os comentaba anteriormente, una de las barreras que se han derribado en los últimos años y que ha permitido la adopción generalizada de este tipo de proyectos y tecnologías, es la amplitud de librerías disponibles en Python para acelerar los ciclos de desarrollo de esta serie de proyectos. A continuación, podéis encontrar un listado de las más interesantes a la hora de tener una primera aproximación al machine learning de la mano de Python.

  • Numpy, librería para la gestión de vectores y matrices
  • Matplotlib, un indispensable para la visualización de datos. Dentro la cual podemos encontrar:
  • Pandas. Librería muy útil para el análisis de datos y gestión de datos estructurados
  • Seaborn,cuya librería dispone de cientos de variantes de representación gráfica pasa usar en tus proyectos
  • Scikit-learn, es una librería que dispone de herramientas simples y eficientes para la minería y el análisis de datos, mediante el uso de algoritmos de clasificación, regresión, clustering,…
  • Keras y Tensorflow, como dos de los frameworks más populares para el desarrollo de redes neuronales, lo más curioso de todo es que para nada son excluyentes, sino que uno complementa perfectamente al otro.

Juniper notebook la interfaz que controla a todos

Y que sería de un buen programador sin un entorno o interfaz de desarrollo, en este caso Juniper notebook cubre a la perfección esa necesidad para los entornos de Python. Juniper es un proyecto open source que puedes descargar e instalar allá donde quieras, pero mi recomendación es que si quieres disponer de un entorno en cualquiera de tus exploradores a golpe de clic, echa un vistazo al servicio Colaboratory de Google, listo para usar y con entorno de ejecución sobre GPU en la nube, y lo smás importante para iniciarte en cualquier aventura tecnológica, gratuito para desarrolladores.

Buenos espero que como introducción os haya gustado, creo que son unas buenas bases sobre las que empezar a cimentar cualquier proyecto de machine learning. Y lo mejor de todo en mi opinión, es que la mayoría son cien por cien open source, lo cual ayudara y estimulara el desarrollo de este tipo de proyectos en todo tipo de ámbitos, tanto académicos como empresariales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *