Google Cree Que Los Frameworks De Machine Learning Necesitan Cinco Cosas Clave Para Llegar A Todos Los Desarrolladores

Jesus Rodriguez
Apr 28, 2020

Contents Outline

Google Cree Que Los Frameworks De Machine Learning Necesitan Cinco Cosas Clave Para Llegar A Todos Los Desarrolladores

Apr 28, 2020 7 minutes read

Google Research realizó una encuesta detallada dentro de los desarrolladores de TensorFlow.js para determinar los elementos clave que racionalizan la adopción de los frameworks de Machine Learning.




El aprendizaje automático (Machine Learning) podría ser el elemento más importante de la próxima generación de aplicaciones informáticas y, sin embargo, su uso está limitado a desarrolladores altamente cualificados.

A diferencia de las tendencias tecnológicas anteriores, el aprendizaje automático no muestra un camino claro de transición hacia la adopción por parte de los desarrolladores en general.

Parte de esa fricción se debe al hecho de que la mayoría de los frameworks de machine learning siguen requiriendo un punto de entrada muy alto en términos de conocimientos informáticos.

Recientemente, Google Research publicó un documento en el que se esbozaban cinco principios clave para romper ese punto de fricción y diseñar frameworks de aprendizaje automático que puedan ser adoptados por una gama más amplia de desarrolladores.

Tinkers vs. Científicos: El síndrome del impostor en el aprendizaje automático

En un famoso artículo publicado en 1978, la Dra. Pauline R. Clance describió un fenómeno en el que los individuos consumados experimentan una falsedad intelectual autopercibida o la sensación de ser un fraude. 

La Dra. Clance se refirió a este fenómeno como el "síndrome del impostor" que se ha convertido en un término común en la psicología moderna. 

El síndrome impostor está presente en todo tipo de áreas de la sociedad moderna, pero definitivamente prevalece en escenarios que requieren una gran capacidad intelectual. 

Creo que una versión de ese fenómeno está influyendo negativamente en la adopción de tecnologías de aprendizaje automático, ya que muchos desarrolladores creen que no tienen los conocimientos matemáticos e informáticos necesarios para saltar a este espacio.

La industria de las tecnologías de desarrollo de software ha sido una búsqueda constante para amarrar el punto de entrada para aumentar la adopción. Desde los primeros lenguajes de programación hasta movimientos recientes como los desarrollos móviles, las tecnologías de desarrollo de software se someten a varios ciclos de simplificación para atraer a grupos más amplios de desarrolladores. 

Desde los primeros días de los lenguajes de programación y las interfaces gráficas, la mayoría de los stacks de desarrollo de programas informáticos han creado capas y capas de abstracciones que ocultan los detalles informáticos subyacentes. 

Parte de la adopción masiva de los desarrolladores experimentada por las tecnologías móviles y de la web se basó en atraer a desarrolladores, muchos de los cuales son "thinkers" y hacedores sin conocimientos de informática. Ese camino hacia la simplificación no parece muy obvio en el caso del aprendizaje automático.

La investigación de Google descubrió correctamente que muchos desarrolladores temen entrar en las tecnologías de aprendizaje automático porque carecen que los conocimientos matemáticos son necesarios. 

A pesar de la abundante evidencia de hackers autodidactas que juegan con modelos de aprendizaje automático, la mayoría de los desarrolladores ven a los especialistas en aprendizaje automático como personas con profundos conocimientos de álgebra lineal y estadística; una definición de libro de texto del síndrome del impostor. 

En mi opinión, hay varios factores que no ayudan a mitigar este desafío:

  1. La terminología matemática en la documentación de los frameworks de Machine Learning: Hoy en día, la documentación de la mayoría de los frameworks de aprendizaje de máquinas se lee como una clase de matemáticas en lugar de un framework de desarrollo.
  2. Aceleración de la investigación de la inteligencia artificial (IA): El rápido crecimiento de la investigación de la IA es algo fascinante. Sin embargo, muy regularmente los frameworks de aprendizaje de máquinas se ven obligados a adaptar nuevas técnicas de investigación que carecen de una experiencia adecuada de los desarrolladores.
  3. Falta de herramientas de gestión del ciclo de vida de Machine Learning: El proceso de depuración o prueba de los modelos de aprendizaje automático se siente como un ejercicio interminable de ajuste de cientos de parámetros oscuros que no son comprendidos por los desarrolladores. El conjunto de herramientas existentes en el espacio de aprendizaje automático es todavía demasiado limitado para su adopción por la corriente principal.

Los cinco principios de Google para mejorar los frameworks de machine learning

El diseño de mejores frameworks de aprendizaje automático para racionalizar la adopción por parte de los desarrolladores es uno de los retos fundamentales de la próxima década del espacio de la IA. Basándose en su investigación, Google identificó cinco aspectos clave que los diseñadores de frameworks de aprendizaje automático deben considerar para reducir los puntos de entrada para los desarrolladores:




1) Desmitificar los conceptos matemáticos y algorítmicos
A pesar de los esfuerzos en curso para reducir las barreras del aprendizaje automático, y a pesar de la preponderancia de los recién llegados al ML que aspiran a aprender, sorprendentemente muchos desarrolladores percibieron que los recursos actuales están destinados a públicos más avanzados. Los nuevos frameworks de aprendizaje de máquinas deberían abstraer estos modelos matemáticos en conceptos prácticos y digeribles. Por ejemplo, la mayoría de los desarrolladores no tienen idea de lo que es un gradiente-descendiente, pero sin duda pueden entender el ajuste del ritmo de aprendizaje de un modelo.

2) Apoyar el aprendizaje práctico
Hoy en día, la mayoría de los tutoriales que destacan las mejores prácticas en el aprendizaje de las máquinas requieren un número de líneas de código sustanciales. Abstraer las mejores prácticas en pequeños bloques de código que puedan ser utilizados por los desarrolladores principiantes es esencial para ayudar a los desarrolladores que prefieren un enfoque de "aprender haciendo" para materializar una nueva tecnología.

3) Apoyar la reutilización y modificación de modelos Machine Learning prefabricados
Complementando el punto anterior, parece importante incluir modelos canónicos que podrían ayudar a los desarrolladores a tomar conciencia de las idiosincrasias del aprendizaje de máquina desde dentro de su flujo de trabajo de programación existente. Además de reducir el punto de entrada para los desarrolladores, también puede ayudar a reforzar la coherencia entre los programas.

4) Sintetizar las mejores prácticas de Machine Learning en consejos justo a tiempo
Decisiones tales como qué parámetro afinar primero o cuántas capas utilizar en un modelo pueden requerir años de experiencia en el desarrollo del aprendizaje de máquinas. La creación de mejores herramientas de visualización e interpretación que utilicen indicadores estratégicos puede ayudar a los desarrolladores a superar este desafío.

5) Destacar y apoyar la naturaleza experimental del Machine Learning
El ciclo de vida de las aplicaciones de aprendizaje de máquina es diferente de las tendencias tecnológicas anteriores. Específicamente, las aplicaciones de aprendizaje de máquinas requieren una gran experimentación, ensayo y error. A pesar de utilizar el mejor modelo para un escenario específico, se requiere llevar a cabo docenas y docenas de experimentos para asegurar su óptimo rendimiento. La facilitación del proceso de experimentación debería ser otro punto clave en los futuros frameworks de aprendizaje automático.

Estas son algunas de las recomendaciones que Google Research considera necesarias para agilizar la adopción de frameworks de aprendizaje automático. En última instancia, los nuevos stacks para desarrolladores deben equilibrar la incorporación de nuevos métodos de investigación con una experiencia sencilla de desarrollo que facilite la adopción por una gama más amplia de desarrolladores.
Join our private community in Discord

Keep up to date by participating in our global community of data scientists and AI enthusiasts. We discuss the latest developments in data science competitions, new techniques for solving complex challenges, AI and machine learning models, and much more!