TensorFlowPost

 

Hoy, en esta octava entrega de la introducción práctica al Deep Learning con TensorFlow de Google (primera,  segunda , tercera, cuarta, quinta, sexta, séptima) finalizo con esta serie de posts.

Hoy, para acabar, añadiré una breve reflexión sobre la necesidad que al lado de cualquier científico de datos (Data Scientist) se requiere un buen ingeniero de computadores (Computer Engineer) y otro ingeniero de datos (Data Enginyeer), en todo este proceso de extracción de valor del Big Data mediante analíticas avanzadas.

18. Frameworks Big Data

Hasta aquí hemos hablado de las herramientas de analítica avanzada, poniendo un ejemplo de código en TensorFlow. Sin duda son herramientas fundamentales y la clave de la nueva era de computación que se avecina: Computación Cognitiva (o Cognitive Computing). Pero como ya hemos dejado claro, sin unos sistemas de computación de altas prestaciones que permitan ejecutar estos potentes algoritmos nada seria posible.  Sin duda los conocimientos de los ingenieros de computadores son esenciales, (y especialmente los formados en Barcelona), para poder crear y manejar estos nuevos sistemas de computación que presentábamos en la entrega 2.

Pero falta comentar una pieza importante en este puzle: los frameworks de Big Data  que permiten simplificar la manipulación y el procesado de los datos en procesos de análisis, sin ellos sería totalmente imposible aplicar la analítica avanzada a las ingentes cantidades de datos que se analizan hoy en día.

En los últimos años hemos sido testigos de la llegada de una oleada de nuevos frameworks Big Data alrededor de los dos entornos de procesamiento distribuido más populares en estos momentos, Hadoop y Spark, acompañados de una amplia variedad de bases de datos NoSQL. Cada herramienta tiene sus propias fortalezas y debilidades, y no hay una solución de “talla única para todos” para cada caso de uso.

La comprensión de estas tecnologías y cómo encajan juntas puede ser uno de los mayores retos para alguien nuevo en el campo de datos. Adjunto pueden encontrar un esquema que uso en mis clases en la UPC (cada semestre se tiene que actualizar! ) donde se enumero (intentando agrupar por categorías) las diferentes alternativas que tenemos (las más conocidas, hay más, ¡no, muchas más!) cuando montamos un sistema completo para tratar un problema Big Data real.

Screen Shot 2015-12-08 at 11.12.44

 

El lector puede intuir la complejidad de una buena elección, incluso para un ingeniero de datos.

19. High-Performance Big-Data Analytics: ¡Un trabajo en equipo!

El lector se habrá dado cuenta que no es “trivial” decidir cual es el mejor entorno para un problema concreto, y que tampoco es fácil lidiar con cada una de sus piezas al juntarlas todas juntas.  Supongo que a estas alturas a nadie le queda la menor duda de la necesidad de disponer de ingenieros de datos  (Data Engineer) en el equipo al lado de científicos de datos (Data Scientist) expertos en algoritmos de analítica avanzada y ingenieros de computadores (Computer Engineer) para conseguir un alto rendimiento de los sistemas tanto a nivel hardware como software.

Para poner un nombre que lo englobe todo se usa el término de High-Performance Big-Data Analytics  para referirnos a la integración de lo más avanzado en conocimiento de Analítica, con los nuevos frameworks Big Data y con la impresionante potencia que presenta el hardware de los nuevos sistemas de computación. Este trabajo conjunto será la clave que nos permita sacar valor de grandes volúmenes de datos con una gran variedad de tipos a una velocidad sin precedentes hasta ahora.

Estamos ante un reto que requiere un conocimiento multidisciplinar. Los que me conocen ya me habrán visto dibujar en la pizarra o sobre un papel este esquema que resume de lo que estamos hablando:

High-Performance_Big-Data_Analytics.Knowledge


Desgraciadamente la mayoría de nosotros no podemos ser un Messi en este  campo de juego de tres disciplinas, como mucho podemos aspirar a serlo en una de ellas. Porque no se trata de ser un triatleta, se trata de ser un ironman, o incluso más, de ser un ultramaratoniano si queremos estar en la zona que se dominen las tres disciplinas con absoluta competencia.

TriatloAiguaLa mejor aproximación a mi entender es intentar crear un equipo donde cada uno de los componentes sea muy bueno en una de las tres especialidades, pero a la vez saber un poco de las otras dos (importante para comprender a los otros miembros del equipo y poder tener una comunicación fluida).

Una buena opción es que cada uno de los miembros del equipo pudiera hacer una marathon sprint  por su cuenta y a la vez poder conseguir un buen resultado en una (solo una) de las tres disciplinas en una ironman.  ¡Yo lo he conseguido! Para mi el Data Scientist es el nadador, el Data Engineer el corredor y el Computer Engineer el ciclista . ¿Y para ustedes, lo han probado? ¡Se lo recomiendo!

Con este pequeño tutorial de ocho entregas espero haber contribuido con mi granito de arena a que los Data Engineers entendamos un poquito más a los Data Scientists, tipos que hablan un poco raro para un ingeniero de computación como yo, al menos mis amigos científicos de datos!

 

20. ¿Por donde continuar para seguir aprendiendo sobre TensorFlow?

Si el lector  quiere avanzar un poco más, aprendidas estas ideas básicas aquí expuestas, les propongo que continúen con el tutorial de TensorFlow website con estos apartados:

En estos momentos existe muy escasa información de TensorFlow y creo que esta es la mejor material de consulta disponible en este momento (si alguien encuentra una información más útil e interesante le agradecería muchísimo que me lo indicara). Si están interesados en detalles de implementación de TensorFlow les propongo que miren el artículo  Large-Scale Machine Learning on Heterogeneous Distributed System.

 

A partir dglobal_444576879.jpegel próximo febrero empezarán las actividades de un nuevo meetup en Barcelona dedicado a TensorFlow a través del cual pueden seguir los avances de esta tecnología: http://w
ww.meetup.com/Barcelona-TensorFlow-Meetup/

 

 

 

Finalmente comentar que estoy pensando poner en orden varias de mis notas sobre el tema.  El escribir esta serie de posts me ha sido muy útil y me gustaría hacerlo con el resto de notas que tengo. Les iré informando!

Espero que les parezca interesante esta última entrega de la Introducción práctica al Deep Learning con TensorFlow de Google.

  Cualquier consulta o sugerencia pueden contactar a través de DeepLearningBarcelona@gmail.com