Como ya sabemos, los ordenadores obtienen información del mundo que les rodea a través de sus sensores y la utilizan para almacenar una representación del mismo. Pero, ¿cómo usan esa representación para poder razonar? En el video de esta entrega hablaremos de todo esto, analizando en detalle qué son y cómo funcionan los algoritmos de árbol de decisión.
En el vídeo se incluye una mención a los mapas y las búsquedas de rutas. Esta mención no es casual, ya que el uso de mapas hace que los conceptos de representación y razonamiento sean muy accesibles incluso en los primeros cursos de primaria. El alumnado comprende que el mapa no es una representación exacta del territorio, ya que se abstraen muchos detalles, y que para crear un mapa hay que seguir ciertas convenciones. Y además permite comprender que usar un mapa para planificar una ruta es un tipo de razonamiento; un razonamiento que debe parecerse al que utilizan las aplicaciones de mapas que han visto miles de veces en los navegadores del coche o en teléfonos.
Con el alumnado de cursos más iniciales se pueden utilizar proyectos y visualizaciones que permiten entender el tipo de algoritmos que usan los ordenadores para calcular rutas en mapas. Uno de los algoritmos clásicos más conocidos es el de Dijkstra, que puede verse en acción en esta visualización de Wikipedia:
A continuación compartimos un par de proyectos Scratch que hacen uso del algoritmo de Dijkstra para calcular rutas entre puntos. Con el primero se puede poner a prueba la capacidad del alumnado para calcular sus propias rutas. Por ejemplo, pide al alumnado que calcule la ruta más corta entre los puntos A y C rápidamente y que compruebe si coincide con la propuesta por el proyecto. En la imagen, el número que aparece sobre la línea que conecta dos puntos es la distancia entre ellos.
Con el segundo proyecto se puede ver cómo se va aplicando el algoritmo para recalcular nuevas rutas entre el punto 1 y el punto 2 según van apareciendo nuevos obstáculos (para poner un obstáculo simplemente hay que hacer click sobre un punto de color gris claro). Este proyecto puede servir de inspiración para entender cómo recalculan las rutas las aplicaciones de navegación cuando se forma tráfico en el itinerario original, por ejemplo.
Alumnado de secundaria y bachillerato podría incluso programar sus propios proyectos en los que hiciera uso del algoritmo de Dijkstra, o de otros algoritmos de grafos, para cálculo de rutas y distancias.
Como se discute en el vídeo, los árboles de decisión son herramientas esenciales en el campo de la IA. Imagina un árbol cuyas ramas representan decisiones y cuyas hojas indican resultados. Cada nodo del árbol es una pregunta que el algoritmo formula sobre los datos. Dependiendo de la respuesta, el algoritmo sigue una rama específica del árbol u otra.
En el video se presenta un ejemplo práctico de aplicación de un árbol de decisión: Akinator, un sistema que es capaz de «adivinar» el personaje o animal en el que estás pensando al realizarte una serie de preguntas.
¿Te apetece echar una partida?
Veamos un ejemplo más simple de cómo funcionan los árboles de decisión.
Imaginemos que queremos construir un mini Akinator, pero solamente con tres animales: una morsa, una oveja y una jirafa. Para ello, tendríamos que buscar ciertas características de cada uno de los animales que nos permitan ir haciendo preguntas que sean eliminatorias y que podamos, en función de las respuestas, deducir claramente cuál es el animal seleccionado.
Una posible solución se muestra en la siguiente imagen:
Aunque parezcan muy simples, los árboles de decisión se usan en multitud de sistemas en la actualidad, ya que ofrecen la ventaja de ser transparentes y fácilmente interpretables.
Una forma de trabajar los árboles de decisión en nuestras clases es mediante actividades desenchufadas. Así, podemos hacer uso de cualquier material que tengamos en el aula, como cartulinas, vasos, cuerdas, etc. para poder representarlos. Aquí te mostramos un par de ejemplo de árboles de decisión construidos por docentes de un curso de verano que organizamos en 2019 junto al INTEF y la UIMP, con los que clasificaban diferentes personajes ficticios.
Y con estudiantes que ya tengan nociones de programación, el siguiente paso sería construir una aplicación que haga uso de este árbol de decisión. A continuación te compartimos un proyecto programado en Scratch que implementa el árbol de decisión anterior:
https://scratch.mit.edu/projects/917654454/
Pero imaginemos que, como Akinator, queremos que nuestro sistema vaya aprendiendo con cada partida y que no esté limitado a estos tres animales, sino que el usuario pueda pensar en cualquier animal. ¿Qué ocurre si llegamos a la hoja -el nodo final- de la oveja, por ejemplo, y el usuario nos dice que no estaba pensando en una oveja sino en una cabra? En ese momento tendríamos que encontrar una pregunta que distinga a la oveja de la cabra y también cuál es la respuesta correcta para la cabra. Así, el árbol de decisión podría ser actualizado reemplazando la hoja «¡Es una oveja!» por el nodo con la nueva pregunta, que tendría dos hojas como sus hijas: «¡Es una oveja!» y «¡Es una cabra!».
Precisamente en la próxima entrega nos centraremos en entender cómo los ordenadores aprenden a partir de datos y empezaremos a dar los primeros pasos en el mundo del aprendizaje automático. Estaremos trabajando durante varias sesiones sobre aprendizaje automático, ya que son las técnicas que han protagonizado los grandes avances en el campo de la IA que hemos visto en los últimos años.
¡Y hasta aquí con la sesión de hoy! 🙂 Recuerda que puedes acceder a todas las entregas ya publicadas, así como echar un ojo a lo que ya tenemos preparado para las próximas semanas:
Si tienes cualquier duda o quieres compartir alguna idea con nosotros, puedes dejarnos un comentario aquí en el blog o en Twitter con el hashtag #ProgramamosIA.
Y, de acuerdo a la nueva planificación, la semana que viene publicaremos un reto asociado a esta sesión, mientras que la próxima entrega ya se publicará la siguiente semana.
Se debe diseñar un programa donde uno vaya ejecutando la creación del diseño de la inteligencia artificial cómo herramienta para la comprensión lectora a nivel general en el contexto educativo, con audios donde se vaya corrigiendo nuestro lenguaje!