Aprendizaje Automático para niños. Una introducción.
Artículo de Dale Lane, traducido y adaptado por Emergentes. Reproducido con permiso del autor. Puedes ver la versión original en inglés aquí.
Hoy he colaborado en una escuela de verano de informática para profesores en Londres. Como parte de esta actividad, he hecho una presentación sobre el aprendizaje automático a una sala llena de profesores: qué es, por qué creo que deberíamos introducirlo en las aulas y cómo creo que podríamos hacerlo.
Hablaremos entonces del aprendizaje automático en el contexto de la educación y de cómo podría introducirse en las aulas.
Voy a tratar de cubrir tres puntos principales.
En primer lugar, un rápido vistazo a lo que se entiende por aprendizaje automático.
Después, me gustaría hablar de por qué creo que es importante que lo hagamos.
Por último, quiero hablar de los aspectos prácticos de cómo podríamos introducir eficazmente el aprendizaje automático de una manera sencilla para los niños.
Empecemos por el qué.
Aprendizaje automático es un término muy amplio que abarca diversas técnicas y tecnologías. Para nuestros objetivos haremos un acercamiento simplificado.
Esto es lenguaje Scratch. Los profesores probablemente estéis familiarizados con él.
Scratch pretende explicar la idea que hay detrás de la programación. Enseña que la programación consiste en tomar una tarea compleja que quieres que haga un ordenador, y describirla como una serie de pasos.
El objetivo de elegir entre un conjunto de bloques sencillos y encajarlos es ofrecer a los niños una metáfora visual accesible del concepto de programación.
El aprendizaje automático es un poco diferente. Con el aprendizaje automático, para conseguir que el ordenador realice una tarea compleja, se recopila un conjunto de ejemplos de esa tarea. El ordenador aprende a realizar esa tarea a partir de los ejemplos que se le dan.
Por ejemplo, supongamos que quiero enseñarte a chutar un balón. En un enfoque de programación tradicional, te daría una serie de instrucciones detalladas.
Te diría hasta dónde tienes que levantar el pie. Te diría en qué ángulo poner el tobillo. Te diría cuánto doblar la rodilla. A qué velocidad mover la pierna. Te diría exactamente lo que querría que hicieras, cómo querría que lo hicieras, con qué rapidez querría que lo hicieras y el orden exacto.
En un enfoque de aprendizaje automático, te mostraría muchos ejemplos de cómo patear una pelota. Tal vez ejemplos de diferentes personas pateando una pelota. Quizá incluso de diferentes tipos de pelota.
En lugar de decirte lo que tienes que hacer, haría que aprendieras de los ejemplos recopilados cuidadosamente de muchas personas que ya saben dar patadas a un balón.
Un pequeño inciso. En este campo utilizamos muchas metáforas. Utilizamos palabras como aprender, entrenar y enseñar. Pero no son máquinas con emociones o conciencia. Y no aprenden ni piensan como nosotros. Lo que quiero decir es que está muy bien utilizar las metáforas mientras sean útiles, pero no es exactamente lo mismo, y es importante no dejarse engañar por las palabras.
Con esto en mente, probemos con un ejemplo más técnico. Imagina que quieres hacer tu propio filtro de correo basura para la escuela.
Decides programarlo. Descompones el reconocimiento de correos basura en una serie de pasos que un ordenador puede seguir: lo que describiríamos como un enfoque basado en reglas. Supongamos que recibes un correo electrónico como éste con una estafa nigeriana. Así que añades una regla a tu programa que diga que cualquier correo que mencione Nigeria es spam.
Pero eso acaba eliminando el correo electrónico de tu colega sobre un posible proyecto de Geografía sobre Nigeria. Así que vuelves a tus reglas y las cambias para que sólo los correos electrónicos que mencionen Nigeria y dinero sean spam. Los correos de tus colegas están a salvo.
Pero ahora eso bloquea los correos electrónicos de tu red de telefonía móvil sobre cuánto cuestan las llamadas en el extranjero. Lo cual, de cara al verano, habría sido muy útil. La cuestión es que intentar hacer esto identificando manualmente el conjunto adecuado de reglas es difícil. Y lento. Y doloroso. Y a medida que el conjunto de reglas se hace más y más y más grande con el tiempo, se vuelve realmente difícil de gestionar. Las nuevas reglas que se añaden contradicen o rompen las reglas que se añadieron hace un mes.
Se empieza de nuevo, y esta vez se utiliza el aprendizaje automático. Recoge un conjunto de ejemplos del tipo de correos electrónicos que recibe. Los lee y los clasifica en dos montones.
Los correos electrónicos basura en un montón. En el otro, los correos legítimos que no son spam. Se utilizan estos ejemplos para entrenar al ordenador para que sea capaz de reconocer el aspecto de un correo spam. Esto no quiere decir que el ordenador no cometa los mismos errores que he mostrado antes.
Si todos los mensajes de spam de la pila de spam fueran de estafas nigerianas y no hubiera mensajes en la pila de mensajes no spam que incluyeran una referencia a Nigeria, existe una posibilidad razonable de que el ordenador aprenda que las referencias a Nigeria significan que un mensaje es spam.
Teniendo en cuenta las experiencias de las que habría tenido que aprender, ¿por qué no iba a hacerlo?
Pero si incluyes una variedad de tipos de spam, incluyendo algunos que no mencionan Nigeria, en la pila de spam…
Y si incluyeras una variedad de correos que no son spam, incluyendo algunos que mencionan Nigeria, entonces…
Entonces el ordenador tendría más posibilidades de aprender a hacerlo bien.
Esto se está convirtiendo en omnipresente. El aprendizaje automático nos rodea. Usamos sistemas de aprendizaje automático todos los días. Los filtros de spam son un buen ejemplo. También los asistentes como Siri, Google Now y Alexa.
Sistemas que traducen de un idioma a otro, entrenados con ejemplos de documentos que han sido traducidos manualmente. La escritura predictiva del teclado de mi teléfono, que me sugiere qué palabra quiero escribir a continuación, se basa en ejemplos de lo que he escrito antes. Detección de fraudes con tarjetas de crédito: se basa en mis hábitos de compra para reconocer una compra que podría no ser mía. Y muchas más. Y esto sólo en el ámbito del consumo.
En el ámbito empresarial, el aprendizaje automático está en todas partes. Casi todos los proyectos que realizamos para nuestros clientes incluyen algún elemento de aprendizaje automático. Ya no se trata del dominio exclusivo de doctores con batas blancas: esta tecnología está al alcance de cualquiera con algunos conocimientos técnicos básicos. Si puedes crear una aplicación para iPhone, puedes utilizar el aprendizaje automático. Y se está convirtiendo cada vez más en la forma más eficaz y eficiente de realizar una gran variedad de tareas.
Pero, ¿por qué deberíamos presentar estas cosas a los niños?
En primer lugar, es divertido. No sé hasta qué punto es un argumento convincente, pero debería serlo. Es divertido entrenar a un ordenador, ver cómo aprende, intentar averiguar en qué se equivoca y cómo enseñarle a mejorar, y ver cómo cambia. Pero suponiendo que esto no sea razón suficiente, quiero intentar desglosarlo.
Los niños a los que enseñamos hoy desempeñarán una gran variedad de funciones, y creo que introducirlos ahora en el aprendizaje automático es beneficioso para todos ellos, no sólo para los más obvios, como los desarrolladores o los técnicos.
Permitidme dar algunos ejemplos.
Algunos de ellos se convertirán en los inventores de la próxima generación de tecnología.
Inventarán el siguiente tipo de sistemas de aprendizaje automático que puedan resolver problemas mayores a los que hoy ni siquiera podemos acercarnos. Los necesitamos para que la tecnología siga avanzando, y quizá presentarles hoy el aprendizaje automático, dejar que jueguen con él, que lo experimenten, que lo entiendan… quizá sea eso lo que encienda su imaginación y dé comienzo a toda una vida de invención y creatividad.
Algunos de ellos se convertirán en programadores, desarrolladores, creadores y constructores.
Ya he mencionado antes que este material es cada vez más fácil de usar. Esto aumentará con el tiempo.
Los creadores de las aplicaciones del mañana necesitarán saber cómo aplicar el aprendizaje automático, así que tal vez presentárselo hoy y pensar en lo que hace posible sea lo que les haga empezar a construir aplicaciones y sistemas que harán nuestras vidas más fáciles.
Solucionadores de problemas.
La programación no es la única forma de utilizar el aprendizaje automático. No sólo los desarrolladores van a utilizarlo. Algunas de las herramientas que se están construyendo ahora, incluyendo un par de IBM como SPSS y Watson Analytics, se parecen más a hojas de cálculo. Pero hojas de cálculo que aprenden de los patrones de los datos que se introducen.
No creo que esto haya que enseñárselo sólo a los supertecnólogos del futuro. Se trata de introducirles en un tipo de herramienta que tendrán en su futura caja de herramientas y que necesitarán utilizar para resolver los problemas del mañana. Y, lo que es más importante, enseñarles a pensar en la resolución de problemas de esta manera.
Pero no se trata sólo de las personas que inventen o construyan con la tecnología. Algunos de ellos se convertirán en responsables políticos. Algunos de ellos serán legisladores, y como el aprendizaje automático afecta cada vez más a todas nuestras vidas, necesitaremos que nuestros legisladores entiendan cómo funciona esta tecnología, de qué es capaz y cuáles son sus implicaciones. Necesitan entender esto para asegurarse de que se pueden establecer las protecciones adecuadas al tiempo que se apoya la innovación y el desarrollo.
Pero no son sólo los legisladores. Entre los responsables políticos se encuentran los consejos de administración de hospitales, los directores de empresas, los fideicomisarios de organizaciones benéficas, los directores de colegios y muchos más.
A medida que el aprendizaje automático se convierte en una herramienta que utilizamos cada vez para más cosas en la vida cotidiana, necesitamos que las personas que toman las decisiones comprendan cómo puede y debe utilizarse.
Y esto afecta a todos los que formarán el público de mañana. La próxima generación de nuestra comunidad. Es importante que tengamos un mayor nivel de comprensión del aprendizaje automático entre el público, precisamente porque está a nuestro alrededor. Nos afecta a todos, y todos necesitamos al menos ser conscientes de ello.
En parte se trata simplemente de reconocerlo. Me encantó cuando un estudiante de uno de los grupos escolares con los que estaba trabajando me preguntó si cuando calificaban algo en Netflix estaban entrenando a un sistema de aprendizaje automático para que pudiera recomendarles programas. No utilizaron exactamente esas palabras -olvidé cómo lo preguntó-, pero en esencia era lo esencial. Empezaron a darse cuenta de que todo esto les rodea. Fue increíble.
En parte se trata de informar al debate público. Esto ocurrió hace un par de años. Un sistema de aprendizaje automático de Google, que etiqueta automáticamente tus fotos basándose en lo que reconoce en ellas, etiquetó a un par de personas como gorilas. Me da un poco de reparo señalar a Google como ejemplo, porque seamos claros, todos hemos cometido este tipo de errores y más de una vez.
Pero esto se hizo viral. Hubo una reacción airada en las redes sociales, y lo siguiente que se sabe es que se acusa a Google de ser racista. Esto fue realmente desafortunado por muchas razones. En primer lugar, la ira dirigida contra el equipo y la empresa responsables de la herramienta fue injusta. Hubo muchas acusaciones bastante ridículas de que habían programado la herramienta para hacer esto. Se les acusó de haberle dicho que llamara gorilas a los negros.
No conozco a nadie que trabaje en Google Fotos, pero estoy bastante seguro de que es improbable que sean racistas. Si hubiera un mayor nivel de comprensión del aprendizaje automático en el público en general, no creo que la reacción hubiera sido tan airada. Pero más que eso, la reacción airada ahogó el potencial de un debate racional sensato sobre lo que esto demostraba. Porque aunque no creo que fueran racistas, sí creo que hay un debate válido sobre cómo entrenaron a sus sistemas.
Por ejemplo, si todas o incluso la mayoría de las fotos de ejemplo que utilizaron para entrenar su sistema de reconocimiento de rostros eran blancas, es posible que el sistema no fuera tan eficaz a la hora de reconocer a personas con piel de distinto color. Si los algoritmos están siendo escritos por hombres blancos, utilizando características seleccionadas por hombres blancos, con un conjunto de ejemplos recogidos por hombres blancos… entonces puede que este tipo de cosas sean el resultado.
No he trabajado en este sistema. Esto es pura conjetura. Estoy absolutamente diciendo “tal vez” aquí.
Pero un debate sobre cómo el comportamiento de nuestros sistemas de aprendizaje automático refleja la cultura y la composición de las personas que los han creado y entrenado – que habría sido un debate que vale la pena. Gritarles “racistas”, no. Pero no tenemos suficiente alfabetización básica en la población general para permitir ese tipo de debate.
Y ese es un ejemplo relativamente trivial.
Hay debates más importantes que debemos mantener. Los coches autónomos. ¿Estamos de acuerdo en que los sistemas de aprendizaje automático conduzcan por nosotros? ¿Cuáles son los juicios de valor que se inculcarán a estos sistemas por la forma en que se les entrena? Hay un montón de cuestiones éticas en torno a esto que son muy difíciles de abordar adecuadamente.
O la atención sanitaria. El aprendizaje automático se utiliza cada vez más en el diagnóstico y tratamiento de enfermedades graves. Llevamos años trabajando en sistemas de aprendizaje automático para oncólogos. Tenemos que facilitar un debate público informado al respecto. En parte se trata de educar a los futuros legisladores y responsables políticos, como he dicho antes. Pero también se trata de facilitar un debate público más amplio.
Por ejemplo, cuando el sistema está capacitado para identificar los tratamientos adecuados, ¿qué ocurre si los ejemplos son seleccionados por un fabricante farmacéutico? ¿Qué pasaría si pusieran sus propios medicamentos en el conjunto de ejemplos de buenos tratamientos para recomendar, y los medicamentos de sus competidores en el conjunto de ejemplos de tratamientos ineficaces? El aprendizaje automático no es magia. No es una fuente definitiva de la verdad. Estos sistemas reflejarán los prejuicios de las personas que los construyen y entrenan. Deberíamos exigir transparencia. Deberíamos querer que los sistemas que utilizan nuestros médicos hicieran evidente por qué han elegido un tratamiento en lugar de otro, y poder ver cómo han sido entrenados. Pero la población en general no tiene los conocimientos básicos sobre las implicaciones de esta tecnología para poder exigirlo de forma eficaz.
Es importante que presentemos el aprendizaje automático a los niños. No sólo a los que lo inventarán o construirán con él (aunque eso es muy importante). Sino también a los que lo utilizarán y se verán afectados por él. Y esos son todos.
Ahora viene lo divertido: cómo podemos hacerlo.
Daré algunos ejemplos del tipo de proyectos que hemos llevado a cabo con algunas de las escuelas cercanas a nuestro laboratorio, proyectos que me gustaría difundir más ampliamente y el tipo de cosas que creo que todas vuestras escuelas podrían hacer.
La mejor manera de que los niños aprendan sobre el aprendizaje automático es que tengan experiencias prácticas de primera mano.
Si pueden entrenar a un ordenador para que haga algo, lo entenderán.
Si ven qué es lo que hace que aprenda más eficazmente, o qué tipo de entrenamiento hace que lo haga todo mal, lo entenderán.
Si se presentan de la forma adecuada, los principios básicos pueden ser totalmente accesibles.
Necesitamos un equivalente a Scratch. Una herramienta fácil de usar, que proporcione una metáfora visual del concepto de aprendizaje automático. Algo que les permita crear unos cuantos cubos y, a continuación, recopilar ejemplos de texto, imágenes o números para entrenar a un ordenador a reconocerlos.
Hice una demostración en directo de este proyecto: una demostración superrápida del entrenamiento de un clasificador de texto de análisis de sentimientos mediante la recopilación de ejemplos de mensajes “amables” y mensajes “mezquinos”.
Lo utilicé para crear un juego en Scratch en el que envías un mensaje al personaje, que reacciona en función de si le dices algo amable (y sonríe) o malo (y llora).
Podemos utilizar el entrenamiento desde Scratch, así que no tenemos que enseñar a los niños una forma totalmente nueva de utilizar o aplicar los modelos de aprendizaje automático que crean. Pueden basarse en lo que ya saben, por lo que esto se convierte en un siguiente paso incremental en lo que ya aprenden acerca de programación.
O este proyecto – donde pueden hacer un Sombrero Seleccionador de Harry Potter en Scratch.
Hice una demostración de este proyecto: recopilé ejemplos de citas de distintos personajes de los libros de Harry Potter y los clasifiqué por casas escolares.
Y luego crear un personaje del Sombrero Seleccionador en Scratch que te diga en qué casa deberías estar.
Me puso en Hufflepuff. ¿Te parece bien?
Los juegos son una buena manera de introducir el aprendizaje automático. Los niños pueden entrenar al ordenador para que sea capaz de hacer un trabajo que conocen muy bien -jugar a un juego- que sería difícil de hacer utilizando el enfoque basado en reglas de codificación que utilizan normalmente.
Mostré una demostración del proyecto Adivina quién que hice el año pasado: entrenar a un sistema para que reconociera preguntas como “¿Lleva sombrero?” y fuera capaz de reconocer características en fotos de caras lo suficientemente bien como para poder responderlas.
Un vídeo similar al que mostré está en YouTube.
La creación de bots de chat es otro gran proyecto que hemos llevado a cabo con escuelas.
También es una buena manera de hacer que esto forme parte de un proyecto o plan de estudios ya existente.
Si los niños ya están investigando un tema concreto, en lugar de preparar una presentación sobre él, otra forma de presentar esa investigación puede ser entrenar a un bot para que sea capaz de responder a preguntas sobre él.
Hice una demostración en directo del chat bot que Faith entrenó para responder a preguntas sobre búhos; está aquí por si quieres probarlo. Afortunadamente, respondió correctamente a todas las preguntas de los profesores.
Por ejemplo, si los niños están haciendo un proyecto de historia sobre los vikingos, podrían entrenar a un bot para que fuera capaz de responder a preguntas sobre cómo era vivir como un vikingo. Podrían preguntarle qué tipo de comida comían o cómo vestían. Sigue siendo un proyecto de historia, pero al mismo tiempo aprenden a aplicar el aprendizaje automático.
Este es un gran ejemplo. En realidad no fue entrenado por niños (que yo sepa), pero me encanta, así que quiero mencionarlo de todos modos.
Se trata de un chatbot de National Geographic que responde a preguntas como si fuera un Tiranosaurio Rex. Y los niños pueden hacer preguntas sobre cómo vivían. Es una forma estupenda de hacer que la información sea interactiva.
Una escuela con la que estoy trabajando ahora está utilizando este tipo de cosas para hacer un folleto escolar interactivo. Están entrenando a un chatbot para que responda a preguntas sobre su escuela.
Pero no todo es texto.
También podemos hacerlo con números. Este es un proyecto que realizamos en un evento escolar llamado ThinkIT, en el que los niños enseñaron al ordenador a jugar al juego de cartas Top Trumps.
Ya he escrito sobre este proyecto en otras ocasiones. El juego sigue funcionando si quieres probarlo.
Las imágenes son otra forma divertida de hacer que el aprendizaje automático cobre vida.
Este proyecto consistía en entrenar a un ordenador para jugar a piedra, papel o tijera. Tuvieron que utilizar una cámara web para tomar fotos de sus manos haciendo las formas de piedra, papel y tijeras. Una vez entrenado un modelo de aprendizaje automático capaz de reconocer las formas de las manos, podían jugar contra él utilizando la webcam.
Ya he escrito antes sobre este proyecto. El juego sigue disponible si quieres probarlo.
Lo mejor de todos estos proyectos no es el resultado final, sino la forma en que los niños lo han conseguido.
Por ejemplo, con este proyecto, una de las veces que lo llevé a cabo tenía a un niño muy entusiasmado. Les había dicho a todos que más entrenamiento era mejor, así que levantó la mano hacia la webcam en forma de puño de “roca” y rápidamente golpeó el botón de “hacer foto” 15 veces en un segundo. Y luego lo mismo para “papel” y “tijeras”.
Entrenaron a un modelo, y estaban súper contentos de haber sido los primeros en terminar y tan rápido.
Pero su modelo era terrible. Se equivocaba en casi todo.
Habían recogido 15 ejemplos casi idénticos de cada forma. La falta de variedad de los ejemplos que habían recogido era un problema.
Así que les sugerí que lo intentaran de nuevo, pero esta vez moviendo la mano a una posición diferente cada vez que hicieran clic en “tomar foto”. Recogieron el mismo número de ejemplos que antes, pero esta vez una variedad de fotos de manos en diferentes ángulos.
Esta vez funcionó mucho mejor.
Ese niño tuvo un momento de sorpresa que me encantó.
Le hablé de cómo y por qué la variedad de ejemplos de entrenamiento hace que el sistema aprenda mejor a reconocer la forma de una mano, pero, para ser sincero, fue verlo por sí mismo lo que le dio sentido.
Y eso es lo que he intentado conseguir en todos los proyectos que he dirigido.
Así que, para recapitular – He tratado de introducir el aprendizaje automático como un tipo de enfoque para trabajar con ordenadores en el que se utilizan ejemplos para entrenar a un ordenador para que sea capaz de hacer algo.
He hablado de por qué creo que es importante que introduzcamos esto a los niños en el aula. No sólo a los frikis. No sólo a los que disfrutan codificando. Sino a todos ellos, al menos para darles la alfabetización básica suficiente para poder entender y apreciar cómo funciona el mundo que les rodea.
Y he intentado demostrarte que esto es totalmente factible. Si se presenta de la forma adecuada, estoy convencido de que los niños -incluso en edad de primaria- son capaces de entender los principios básicos y utilizar esta tecnología para construir proyectos realmente divertidos.
Me encantaría trabajar con todos vosotros para intentar llevar las ideas más lejos. Ya estoy trabajando con algunas escuelas, pero me encantaría añadir más, así que si queréis participar, poneos en contacto conmigo.
Muchas gracias por escucharme.
Respuestas