Lección 4
Máquinas que leen y escuchan (II)
¿Codificación o aprendizaje?

¿Codificación o aprendizaje?

Los ordenadores no hacen nada que no les hayamos enseñado nosotros previamente. ¿Cómo les enseñamos? La manera tradicional de comunicarnos con ellos es a través de la programación. Durante muchos años, los desarrolladores de software han sido los encargados de escribir lo que querían que hicieran los ordenadores mediante programas, que especifican una serie de pasos (instrucciones de programa) que el ordenador luego va siguiendo (ejecutando) para realizar la tarea.

Antes era un poco más difícil, pero ahora tenemos lenguajes de programación más fáciles de entender, como es el caso de Scratch, que utiliza bloques de código de colores y permite crear el programa como si se tratara de un puzle.

Scratch es un lenguaje de programación por bloques. Para crear nuestros programas, vamos apilando bloques de instrucciones que luego ejecutará el ordenador.

Sin embargo, las máquinas de hoy en día son muy complicadas y necesitan más que solo programación. Por ejemplo, un coche nuevo tiene… ¡más de 100 millones de líneas de código! ¡Imaginad tened que escribirlas una a una!  Como ves, hay algunas tareas tan complicadas que nos llevaría muchísimo tiempo escribir instrucciones paso a paso para que las máquinas las ejecutaran. Es más, ¡a veces ni siquiera sabemos cómo describir los pasos!

Pero no te preocupes, porque ahí es donde entra en juego el aprendizaje automático. El aprendizaje automático es una súper ayuda para tareas con muchos pasos difíciles de escribir o de entender, ya que hace que el ordenador deduzca por sí mismo lo que tiene que hacer a partir de ejemplos. Es decir, que en lugar de decirle a la máquina los pasos exactos de una tarea, ¡le mostramos ejemplos una y otra vez hasta que la máquina aprende cómo hacerlo! Si tienes hermanos pequeños, habrás visto que es así como aprenden ellos… les enseñamos fotos de perros con distintas características hasta que, un día, ellos aprenden a identificar cuándo el animal que les enseñamos es un perro. ¡Es asombroso!

¿Cómo crees que será más fácil crear nuestra aplicación para identificar sentimientos? ¿Programando o mediante aprendizaje automático?

Para programar la aplicación, tendríamos que pensar todas las posibles frases bonitas (y sus variaciones) y ponerlas todas dentro de una enorme estructura condicional (si… si no…) dentro del código. ¡Bufff! Seguro que, como yo, te estás cansando solo de pensarlo.

Por otro lado, podemos optar por entrenar un modelo de lenguaje con frases que representan sentimientos bonitos y feos. Iremos introduciendo frases y le diremos al ordenador de qué tipo es cada una. Para ello definiremos dos etiquetas (clases): bonita y fea. Por ejemplo, podemos decirle al sistema que la frase “eres muy amable” pertenece a la clase “bonita”, y que la frase “me tienes harta” pertenece a la clase “fea”.  Es muy complicado explicar a una computadora qué rasgos del texto hacen que un mensaje transmita un sentimiento positivo (como alegría) o negativo (como enfado), pero sin embargo es fácil mostrarle muchos mensajes que transmitan alegría y muchos que transmitan enfado. Con suficientes mensajes, es posible entrenar un modelo de IA que identifique la emoción o tono en un nuevo mensaje con base a los patrones de gramática y vocabulario que el ordenador ha aprendido a reconocer.

¿Y cómo podemos hacer esto? Pues, por ejemplo, podemos utilizar la herramienta Machine Learning for Kids, que es gratuita y se encuentra disponible en Internet. Vamos a verla en la siguiente sección.