Deep Learning en #XDS3

A finales de agosto se celebró en París (concretamente en Palaiseau) la Data Science Summer School 2017 (DS^3), organizada por el Laboratoire de Informatique (LIX) de la prestigiosa École Polytechnique francesa. Aunque era su primera edición, el evento fue todo un éxito, con más de 400 inscritos, incluyendo estudiantes, investigadores, profesores y profesionales de industria y empresa del sector. Sin duda, estos números confirman el auge que estamos viendo en los temas relacionados con la ciencia de datos, machine learning, análisis de datos, Big data y otros temas relacionados. Durante los cinco días que duró el acto, se dieron diversas ponencias y tutoriales de muchos temas relacionados con la ciencia de datos: por ejemplo, se habló extensamente de graphical models, randomized optimization methods o bayesian optimization. Pero sin duda, el “rey de la fiesta” fue el deep learning. Cerca del 40% de la programación del evento estaba relacionado con las redes neuronales y deep learning. Uno de los grandes atractivos de este evento fueron las clases magistrales que ofreció Yoshua Bengio sobre redes neuronales artificiales y deep learning. Las redes neuronales artificiales (ANN, artificial neural networks) están formadas por un conjunto de neuronas distribuidas en distintas capas. Cada una de estas neuronas realiza un cálculo u operación sencilla sobre el conjunto de valores de entrada de la neurona, que en esencia son entradas de datos o las salidas de las neuronas de la capa anterior, y calcula un único valor de salida que, a su vez, será un valor de entrada para las neuronas de la siguiente capa o bien formará parte de la salida final de la red. La siguiente figura presenta un esquema básico de una red neuronal con la capa de...

Computación distribuida y de alto rendimiento para potenciar la educación online

Los entornos de aprendizaje online actuales o sistemas de gestión de aprendizaje (LMS, en sus siglas en inglés) evolucionan muy rápidamente, y con requisitos tanto pedagógicos como tecnológicos cada vez más exigentes. Ciertamente, estos entornos ya no dependen de los contenidos y recursos estáticos del pasado, con grupos de alumnos homogéneos y modelos de aprendizaje únicos, sino que cada vez es más necesaria una alta flexibilidad y personalización en todos los frentes. Actualmente, se desarrollan complejos recursos e innovadoras estrategias de aprendizaje, como los juegos serios, los laboratorios virtuales, las analíticas del aprendizaje y la gamificación, que potencian fuertemente la interacción, colaboración y personalización del aprendizaje y, en conjunto, redundan en incrementar la motivación e implicación de los alumnos en su proceso de aprendizaje. Analíticas del aprendizaje (fuente: proyecto ICT-FLAG, Ref. TIN2013-45303-P) Sin embargo, al escalar estos recursos y estrategias de aprendizaje desde pequeños tests controlados a su puesta en producción masiva en entornos reales, nos encontramos con importantes barreras computacionales que impiden su despliegue y ejecución efectiva, limitando a su vez los beneficios pedagógicos esperados. Además, las organizaciones educativas actuales necesitan dar soporte a la distribución de actividades de aprendizaje y funcionalidades de los LMS con independencia de la localización tanto de los alumnos y profesores como de los recursos, y así facilitar la experiencia de aprendizaje en entornos abiertos, dinámicos, heterogéneos y masivos. Resumiendo, la mayoría de desarrollos tecnológicos en los LMS tienden a aproximarse a la parte visible (funcional) de estos sistemas, desmereciendo la parte invisible (no funcional), como el rendimiento, la escalabilidad, la interoperabilidad, etc, que finalmente son requisitos cruciales para el correcto funcionamiento del sistema. Esta decisión de...

Portafolio y beneficios de TI

En una entrada anterior abogamos por la realización de beneficios de la inversión en TI como un esfuerzo compartido entre el negocio y los departamentos de tecnología en el largo plazo. El examen de beneficios comienza antes del proyecto (con la realización de un caso de negocio) y acaba después (con la revisión de los beneficios obtenidos). La gestión estratégica del portafolio es, para algunos, el instrumento más crítico de la dirección estratégica de TI. No es un plan estratégico, que sólo algunas empresas abordan en momentos muy críticos, pero tampoco es un formulario de gestión de la demanda o una manera más guay de recoger los pedidos. La gestión del portolio de inversiones de TI según Joe Peppard Actualmente las inversiones en informática compiten por el favor de lo comités de inversiones de las empresas con cualquier otra clase de inversión: abrir una nueva línea de producción, desarrollar un servicio nuevo, comprar equipamiento o construir una nueva planta. Con frecuencia, cualquiera que lleva una inversión al comité tiene que completar el mismo cuestionario, presentar su caso y anticipar el retorno con evidencias e indicadores. El análisis de beneficios, en la teoría clásica, intenta relacionar, mapear cada tipo de inversión en informática con una clase de logro para la organización: inversiones estratégicas, o sea las que se consideran críticas para sostener o mejorar las ventajas para competir, según la propia estrategia definida por cada empresa. Hay ventajas que tienen que ver con la diferenciación (Apple) o con los costes (Ryanair) o con la defensa de la posición en un nicho de mercado concreto (Prada). Por ejemplo, las inversiones en...

Frameworks de JavaScript en el lado del cliente en 2017

En un post anterior ya hablamos sobre la evolución del desarrollo web del lado del cliente. Tal como anunciamos entonces, hoy es el turno de los frameworks del lado del cliente. Los frameworks no son nuevos en el desarrollo de aplicaciones de gran envergadura. De hecho, la mayoría de lenguajes consolidados tienen una gran variedad de frameworks. Por ejemplo en el mundo Java son ampliamente conocidos Java Server Faces (JSF), Struts o Spring; en PHP encontramos Laravel, Yii o Symfony. Las principales ventajas que aportan los frameworks son las siguientes: Desarrollo rápido. Crear un proyecto desde cero suele conllevar un elevado coste en tiempo. Por eso, los frameworks proporcionan la estructura del proyecto y un conjunto de bibliotecas preconfiguradas que ahorran tiempo en el comienzo de los nuevos proyectos. Muchas tareas son delegadas a los frameworks permitiendo a los desarrolladores centrarse exclusivamente en las funcionalidades de su software. Incorporación/Rotación de nuevos miembros a los equipos de desarrollo. Uno de los mayores problemas en el desarrollo de software es la rotación de miembros en los equipos de desarrollo, puesto que la incorporación de un nuevo miembro conlleva un coste en aprender la arquitectura del proyecto. Esto es minimizado utilizando un framework, ya que éste obliga a adaptarse a una arquitectura concreta, de modo que cualquier persona que conozca el framework podrá incorporarse rápidamente al desarrollo de cualquier aplicación basada en ella (puesto que conoce la manera de trabajar del framework), minimizando el coste para la empresa. Seguridad/Rendimiento. Los frameworks suelen ser creados y mantenidos por equipos de desarrollo diferentes y externos a nuestra organización. Esto permite que esta organización esté...

MOOC de Introducción a la gamificación a través de casos prácticos

L@s informátic@s nos movemos, a menudo, entre buzzwords y modas tecnológicas. Algunas vienen y se quedan, otras van y vuelven, y otras caen en el olvido. Yo (Dani) creo recordar hace ya algunos años, que la primera vez que oí hablar de gamificación (NOTA: El término correcto es ludificación) fue con el servicio Foursquare (?). Posteriormente, la he visto en Stackoverflow, Facebook, LinkedIn, Endomondo, y en un larguísimo etcétera de servicios y aplicaciones (Bueno, con Joan tendríamos una larga discusión sobre cuáles de estas incorporan gamificación y cuáles no). Joan y yo siempre insistimos en que la gamificación no es un recurso que implique desarrollo tecnológico. Se puede gamificar con papel, lapiz, piedras… y con lo que se nos ocurra. Y eso lo decimos porque, a parte de ser cierto, puede echar atrás a alguien que tenga buenas ideas pero no conocimientos de programación (o presupuesto para contratar a alguien). Por lo tanto, gamificación y tecnología (digital) no son dependientes… pero la gamificación puede ser una herramienta valiosísima para cualquier persona que pretenda desarrollar una aplicación, un portal, una tienda de comercio electrónico, etc. La gamificación os puede ayudar a dar a conocer vuestro “servicio”, a que tengan una entrada más suave, a mejorar la experiencia una vez dentro, etc. Y sabéis que podéis desarrollar el mejor servicio del mundo, y fracasar. Por lo que, un recurso extra nunca está de más. Es importante, eso sí, no ver la gamificación como una panacea. Es una herramienta que nos puede ayudar si se utiliza en la situación adecuada y de la manera correcta. Como ingenieros que somos, Joan y yo insistimos mucho...