Reflexiones día 1 de la Starsconf 2018

Nicolás Ignacio Gómez Espejo
9 min readDec 4, 2018

--

“Los programas deben ser escritos para que los lean otras personas”

En otras palabras, programar es comunicar.

Esta reflexión surge de una de las charlas presentes en la Starsconf 2018 (día 2), realizada por Riva Quiroga y titulada “Cómo hacer cosas con palabras: aprender a programar con un enfoque comunicativo”.

El evento este año estuvo cargado con con muchos temas relacionados al mundo de la tecnología (UX, programación, Big Data, IA, etc etc) y al igual que el año pasado, este post tendrá las reflexiones de las charlas a las cuales asistí (“You learn when you teach”, right? 😉)

1) Keynote: Avances recientes en AI y Machine Learning

Natasha Jaques en esta keynote nos invita a sumarnos al HYPE de IA!

En esta keynote, Natasha Jaques nos presenta los últimos avances que hay en IA. PD: Sorry, todavía no hemos creado a Terminator 😂.

Cuando hablamos de últimos avances, hablamos de técnicas nuevas que se están utilizando. De algunas de las que habló Natasha son:

Creative AI

¿Te ha pasado que le dices algo a un asistente virtual (Alexa) y te responde con algo nada que ver?

Sí, es algo frustrante. Lo bueno es que existe una técnica que permite incluir feedback humano en el aprendizaje, haciendo que estos sean “social aware”.

No me quedó claro si Alexa u otros asistentes usan estas técnicas, pero si es así, gracias a esta técnica podríamos decir que una terapia de shock cada vez que se equivoca ayudará a que sea más inteligente 😂 (OJO! hablamos de una IA).

Recurrent neutral network (RNN)

Cuando los humanos leemos una oración, generalmente vamos juntando palabra a palabra para darle un significado. Lo mismo pasa en una película: imagina que comienzas a ver una película que nunca has visto desde la mitad, ¿entenderías a la totalidad lo que sigue? En una película como Predestination, es muy probable que no.

Tanto en lectura como para ver películas, necesitamos tener contexto de lo que ha ocurrido previamente.

Recurrent Neutral Network (RNN) busca agregar esta capacidad de “recordar” a las redes neuronales, haciendo que sean capaces de tener un contexto de lo que ha pasado anteriormente para poder predecir de mejor forma lo que viene a continuación.

Esta técnica al parecer funciona bastante bien en inputs sequenciales, tales como reconocimiento de voz, generadores de música o texto, etc.

Image result for Recurrent neural network
Izquierda: RNN, derecha: RN, tomada de aquí

El problema que tienen es que para algunas problemas particulares, producen resultados “genéricos y aburridos” . Natasha ejemplificó esto con un modelo que generaba notas musicales para componer una canción:

Para generar mejores resultados, pensaron primero en qué hacemos los humanos cuando aprendemos a tocar música.

Los primeros pasos es simplemente tocar, intentar tocar canciones que nos gusta a pulso (tocamos, analizamos, mejoramos, al estilo RNN). Pero llega un punto en el cual si queremos mejorar o incluso componer nuestras propias canciones, necesitamos estudiar reglas musicales.

Y así fue que mejoraron los resultados: le enseñaron al modelo reglas musicales y cada vez que las cumplía lo premiaban. Esta técnica se conoce como Reinforcement Learning (RL). Aquí el resultado:

Uno de los problemas de RL es que muchas veces escribir funciones de reward es un poco complejo.

Reinforcing Learning

Natasha nos menciona una técnica basada también en como los humanos interactuamos. Parte de como aprendemos está influenciado por nuestro entorno y por nuestros pares (existe una componente social en el aprendizaje).

La técnica propuesta busca lograr eso pero en Machine Learning (cuando usamos múltiples agentes, MARL — Multi-Agent Reinforcement Learning). Y funciona más o menos así: tienes múltiples agentes (“IA”) interactuando “en un entorno”, donde cada agente tiene una función de reward basada en “cómo afectará mi comportamiento al resto de los agentes”. Puedes leer el paper aquí.

Usos interesantes de IA

Natasha presentó otros, pero me llamó mucho la atención este en particular: predecir la salud y el stress de las personas.

Crearon un modelo que, en base a las acciones de las personas, predecía si ellas se “encontraban bien”. Los resultados iniciales no fueron muy buenos: 70% de predicción.

Se dieron cuenta que lo que hace feliz a algunas personas, hacen mal a otras. Por ejemplo: extrovertidos vs introvertidos. Los extrovertidos reaccionan positivamente a una exposición de interacciones sociales (por ejemplo, ir al campus de la universidad). Mientras que los introvertidos reaccionan positivamente a interactuar mediante texto.

Así que, todas las personas son diferentes, y reaccionan de distinta forma. Para mejorar el modelo, aplicaron una técnica de clustering para agrupar personas en base a comportamientos similares, lo cual mejoró la presición a 82%.

2) The heart of agile

Volvamos a la simplicidad que nos ofrecía las metodologías ágiles! https://heartofagile.com/

Esta charla fue dada por Alistair Cockburn quien es uno de los capos que aparece en el Manifiesto Ágil. Las slides las puedes ver aquí: https://heartofagile.com/charla-mas-reciente-de-alistair-del-corazon-de-la-agilidad/

Para volver a la simplicidad, Alistar nos da un framework de 4 simples cosas:

©Alistair Cockburn 2018
  • Colabora: todos saben colaborar :) es intrínsico a los humanos (podemos encontrar las mejores ideas mediante la colaboración)
  • Entrega: centrarse en entregar algo pequeño para ver como esto interactúa con el mundo.
  • Reflexiona: parar para reflexionar sobre lo que ha ocurrido.
  • Mejora: corregir/mejorar las desiciones tomadas lo más rápido posible

Eso y ya.

Mi reflexión: en el mundo ágil hay mucho humo. Certificaciones de “scrum masters”, técnicas fancies, etc 🤦🤦🤦. Todos buscando la última técnica, la tendencia, la fórmula mágica. Cuando en verdad, los principios están, y en lo que hay prolijos es en esos principios, las bases. No la técnica de moda. Volvamos al corazón de la agilidad.

3) Diseñando las proteínas del mañana

Reflexión

Muchas veces es difícil optar por financiamiento para proyectos científicos.

¿Cómo podemos financiar la investigación para la creación de proteínas sintéticas, que podrían ser los antibióticos del futuro (considerando que día a día las bacterias son más resistentes y los antibióticos actuales dejan de funcionar)?

Bueno… Leonardo Álvarez (Geaenzymes) en vez de seguir por la ruta “convencional” (“toc toc.. gobierno, finánciame”) pensaron en ofrecer servicios que generaran ingresos usando esta tecnología.

Un ejemplo: una proteína que mate hongos en los alimentos y sin generar trans. Mucho mejor que las soluciones actuales, y empresas estarían dispuestas a pagar por ello. BUM! 💥

¿Y podemos patentar proteínas? Si ellas no existen naturalmente en el ecosistema: sí. También podemos patentar los procesos para obtener proteínas.

4) Inteligencia Artificial, Deep Learning y Medicina

Reflexión

Para encontrar soluciones efectivas a los problemas, debemos partir por ellos y no por las soluciones tecnológicas existentes. Es decir, primero miras el problema y luego ves que solución tecnológica podría ayudar a solucionarlo 💪

¿Cuántas aplicaciones incorrectas de Blockchain hemos visto en el último año? ¿Cuántos concursos de “aplica x” para “solucionar lo que sea” existen? De verdad, vamos por la vida con un martillo clavando todo, incluso lo que no son clavos. Despabilémosnos 😂

¿Y cuáles son los principales problemas de aplicar IA en el mundo de la Medicina?

  • Los datos no están pensados para ML: muchas veces cada complicación en salud puede llevar su propia simbología y depende netamente de la persona que la escribe. Incluso entre los mismos profesionales de la salud cuesta entender lo que el colega quiso decir. En otras palabras, el lenguaje clínico es muy difícil, incluso para los mismos médicos. Imagina crear una solución con procesamiento de lenguaje natural para algo así.
  • Medicina no es simulación ni un juego: no existen reglas estándares para todo, y muchas veces el feedback que recogemos puede tardar AÑOS en llegar.
  • Privacidad: tenemos que ser MUY cuidadosos con la privacidad de la información en medicina.

¿Próximos pasos? Informática Médica! Mejorar los datos para poder aplicar algoritmos de ML correctamente.

5) Dime que emoji eres y te diré que sientes

Slides

Reflexión:

La presentación en sí fue sobre estudios (Ley de aborto, opinión pública sobre TranSantiago) que han hecho analizando los datos de Twitter.

Si bien uno podría decir “pero twitter no es una toma representativa de la población Chile” , tu puedes hacer análisis de estos datos y compararlos con los datos tradicionales de encuestas. Al hacer esto, en el caso de la Ley de aborto, coincidió el hecho de que los hombres tienden a estar más en oposición (6%) que las mujeres 🤷‍♂️

Lo importante al hacer este tipo de estudios, es tener en cuenta los distintos sesgos que podrían existir. Así que… sí, podemos aprender sobre comportamiento humano al analizar estos datos, aunque no sean 100% representativos.

Otro take away importante que se mencionó en la presentación: lo difícil es hacer las preguntas correctas. Los datos están, los algoritmos existen, ¿qué nos falta? Las preguntas correctas.

¿Y de dónde sacamos las preguntas correctas? Bueno… acercándonos a otras disciplinas.

6) Diseño y desarrollo: un solo mundo

Reflexión:

Si eres un desarrollador o un diseñador que siente que se enfrenta contra un muro al hablar con la otra disciplina… esta charla es para ti (cuando esté la grabación, míralo!)

Ambas disciplinas apuntan a un mismo objetivo pero cada una desde sus propias perspectivas. La diferencias que hayan deben ser superadas con empatía y comunicación 👍

7) 7 lecciones del Punk Rock para el mundo UX

Reflexión:

El conocimiento técnico todos lo pueden adquirir. Lo realmente importante es tu actitud, tus habilidades esenciales / blandas son lo que hacen la diferencia.

8) Blockchain: Un vistazo más allá de las nubes de humo

Reflexión:

¿Cómo identificar cuando te están vendiendo humo en una solución que usa blockchain?

Respuesta: Si es una solución q puede pensarse de forma centralizada y hace sentido… entonces es humo 😂

9) Behind the Software: DART, el 1er sistema nacional de IA para prevenir la ceguera

Reflexión:

Ok… ha pasado tiempo desde el evento, y la verdad es que no tengo reflexión para esta en particular 😢 una reflexión de esta situación puede ser que la mayoría de las otras charlas tenían un call to action, alguna invitación o consejos. Quizás esta no…

10) Keynote: La agilidad más allá de los equipos de desarrollo: La agilidad empresarial

Reflexión:

Uno de los grandes problemas que las empresas se enfrentan cuando quieren implementar metodologías ágiles es que cambian lo que hacen y no lo que son. Por ejemplo, contratan JIRA/Trello y le colocan las tareas que estaban en su Gantt, y listo! Se creen ágiles 😂

¿Pero qué pasa si dichas herramientas dificultan el trabajo y comunicación del equipo? ¿Qué ocurre con el “personas e interacciones primero” del manifiesto ágil?

Volvemos a lo mismo: hay que preocuparse de las bases, las herramientas van después.

Hay un problema más grave de fondo: estamos en una cultura que se exige que las personas rindan un 100% el 100% del tiempo. ¿Cómo respondemos al cambio así? ¿En horas extras? En cambio, con una distribución de tiempo “80% trabajo, 20% ocioso” tendrás más oportunidad de responder ante el cambio.

… Pero anda a decirle eso al típico jefe / manager… (luego quizás a qué culpan cuando no funciona su implementación de ágil 🤦‍♀️)

Palabras finales

Nuevamente muchas gracias a StarsConf por organizar este evento que nos entregó tanto valor a la comunidad de tecnología en Chile! 😄 y también al esfuerzo de los speakers por transmitirnos aquellos conceptos que han aprendido con esfuerzo, estudio y sudor.

Para finalizar, un listado de los consejos accionables del día 1 del evento:

  • Súbete al tren del HYPE de la IA. Quizás puedes partir con el curso de ML en coursera.
  • Volvamos a la simplicidad de ágil. Aprendamos los principios que están detrás y construyamos a partir de ellos.
  • Busquemos problemas y veamos cuáles pueden ser solucionados con la tecnología actual. No partamos con la tecnología!
  • ¿No se te ocurre que problemas solucionar? Acércate a otras disciplinas para que ellos te cuenten sobre sus desafíos.
  • Habilidades blandas hacen la diferencia (Daniel Goleman tiene algunos libros que podrían interesarte). Las habilidades técnicas cualquiera ls puede saber.
  • Aplicar agile requiere más que contratar JIRA. Debe haber un cambio en la cultura de la empresa que lo está adoptando.

El día 2 WIP!

--

--