¿Puede la IA impulsar la tradición?
Tradición, del latín tradere, transmitir, es el acto de compartir una conducta o creencia de generación en generación. Y como tal, este patrimonio pasa a formar parte de nosotros mismos, de nuestra identidad. La innovación, por el contrario, es...
Proyecto de aprendizaje compartido por la comunidad. El artículo documenta el equipo, el método y los resultados; no acredita que el prototipo esté listo para su uso fuera del entorno de aprendizaje.

Este archivo incluye traducciones automáticas. El audio, el vídeo y el texto de las imágenes conservan su idioma original.
Tradición, del latín. tradere, transmitir, es el acto de compartir una conducta o creencia de generación en generación. Y como tal, este patrimonio pasa a formar parte de nosotros mismos, de nuestra identidad.
La innovación, por el contrario, es la introducción de nuevas ideas, de nuevas formas o enfoques que cambian la forma en que se hacían las cosas antes. Estos nuevos enfoques suelen verse como una amenaza a la tradición, ya que la adopción de nuevos métodos o comportamientos tiende a cambiar la forma en que se hacían las cosas, la tradición.
Sin embargo, ¿las cosas tienen que ser siempre así? ¿Se puede utilizar la innovación para aprovechar y difundir la tradición entre la sociedad?
Donostia. 2021
Bertso, doinu y neurri un vistazo a la tradición vasca
Entre los diversos tesoros que la cultura vasca ha sabido mantener vivos se encuentran bertsoak, versos improvisados con rima que se cantan siguiendo un hacer, una melodía, que tiene que coincidir con ciertos neurri, o longitud del verso.
Estos bertsos suelen cantarse delante de un público y, bertsolaris, los cantantes de rimas vascas, cantan sobre diferentes temas que son proporcionados por el moderador, gaijartzaile, mientras interactúan con el resto de bertsolaris (de forma bastante ácida) en pos del aplauso del público.
¿Cómo se ve esto? Bueno, echemos un vistazo a cómo es un bertso saio moderno, echemos un vistazo al siguiente vídeo.

¿Te has fijado en que la base que utilizan ambos bertsolari es la misma? Esta base se llama doinu(a). Los doinus se transmiten de generación en generación, y es muy importante que los bertsolaris los conozcan bien, porque necesitan utilizar el doinu sugerido por el gaijartzaile (moderador) o los demás bertsolaris a cantar su bertsoz.
¿Podemos improvisar sobre la improvisación?
Los bertsos son como el rap, y las batallas de rap se suceden sobre la marcha, no hay un guión a seguir. Esto significa que la capacidad del bertsolari para improvisar se convierte en la piedra angular del bertso. Sin embargo, la base, el doinu, ya es conocida por todos, es algo fijo, rígido.
Lo cual es una lástima, ¿no? Si la improvisación forma parte del gran arte del bertsolari… ¿Por qué no ofrecer un doinu improvisado para que la experiencia del bertso sea aún más desafiante y única?
Con estas ideas en mente y con el conjunto de habilidades de aprendizaje profundo recién adquirido, @jperezvisaires y @klopetx Teníamos una coincidencia instantánea en nuestra mente. Si hubiera algo que pudiera crear doinus por sí solo… eso sería una Red Generativa Adversaria.
¿Se podría revolucionar el bertsolarismo con el uso de la IA?
Bueno... tal vez no tanto, pero valió la pena intentarlo.
GANS donde la tecnología y la tradición (podrían) encontrarse
Con los interesantes cursos que tuvimos durante nuestras lecciones de SaturdayAI, aprendimos sobre las últimas innovaciones en el campo del Deep Learning, como las diferentes arquitecturas (convolucional, recurrente, codificador automático…), así como los diferentes usos, como el aprendizaje por refuerzo y las redes generativas adversarias. La pregunta en este punto era: ¿podría utilizarse la magia de las redes generativas de confrontación para crear nuevos doinus? Si es así, ¿qué necesitábamos para ese propósito?
¡Datos! Por supuesto.
Recopilando los datos
Afortunadamente para nosotros (y para la cultura vasca) existe una entidad, Bertsozale Elkartea, que tiene una página web que incluye todos los doinus conocidos, unos 3000, con sus metadatos incluidos. Está en euskera, pero por si quieres echarle un vistazo.
Y bueno… sabes lo que dicen ¿no?
Es más fácil pedir perdón que obtener permiso...
Entonces… Desechamos la web (gracias bertsozale por tu trabajo, y perdón por sobrecargar tus servidores y sacar tus datos sin pedirte permiso formalmente).
Primero descargamos los metadatos del doinus. Hicimos una selección de los más utilizados teniendo en cuenta el número de sílabas y el tipo, y descargamos los ‘Zortziko/Txiki’ que tenían 7 sílabas en el primer berse seguidas de 6 en el segundo, lo que redujo la lista de doinus a unos 200.
formato midi
«Pero espera un momento, ¿descargar qué exactamente?»
Afortunadamente para nosotros, tuvimos la oportunidad de descargar el doinus en formato mp3 o midi.
«¿Midi? ¿Qué es eso? Sé de mp3 pero midi me recuerda cómo los franceses nombran el mediodía…»
MIDI (Musical Instrument Digital Interface) es un estándar tecnológico que se utiliza para transferir hasta 16 canales de información. Transfiere mensajes de eventos que incluyen notación musical, tono y velocidad entre otras cosas. Básicamente, estos archivos explican qué notas se tocan, cuándo, durante cuánto tiempo y con qué volumen.

Ejemplo de midi.
Alimentando a nuestro pequeño monstruo generativo
Una vez que los datos estuvieron listos, solo necesitábamos alimentar la GAN.
Y nuestra experiencia de usar midi directamente para GAN se resume perfectamente en el siguiente poema:
Usamos el midi como entrada.
Bueno, al menos lo intentamos.
enfrentamos algunos problemas
y por eso se rindió.
Ya sabes, todo el mundo utiliza el Deep Learning con imágenes, ¿por qué deberíamos hacer lo contrario?
Entonces, en lugar de usar midis directamente, creamos imágenes con ellos, porque, debido a la naturaleza de los archivos midi, es bastante sencillo visualizarlos/representarlos como imágenes.
Una vez en el dominio de imágenes más cómodo, fue más fácil trabajar con el problema, ya que hay mucho más contenido relacionado con imágenes y redes neuronales convolucionales.
estructura GAN
Respiremos por un segundo. Comenzamos a hablar sobre qué tan bien se supone que funcionan las GAN en la creación de nuevos sonidos no escuchados, pero ¿qué son exactamente las GAN?
Las GAN fueron introducidas por Goodfellow et. Alabama. y son esencialmente dos modelos separados que se entrenan juntos con un propósito opuesto. Uno de los modelos, el generador, genera nuevas muestras de datos a partir de una semilla aleatoria; el segundo modelo, el discriminador, intenta decir si los datos son originales (reales) o si fueron creados por el modelo generativo (falso). Debido a su comportamiento, normalmente se les compara con un falsificador y un policía. El falsificador sigue mejorando la calidad de las obras mientras el policía mejora en detectar cuáles son reales o falsas.

La estructura de una GAN alimentada con doinus.
Básicamente, durante el proceso de capacitación, el falsificador debería mejorar mucho en la creación de nuevos datos (en este caso, imágenes de nuevos posibles doinus), mientras que el policía debería mejorar en la detección de doinus falsos, lo que obligaría a mejorar al falsificador. En algún momento, el modelo generativo debería ser lo suficientemente bueno para crear doinus que sería absolutamente imposible para el modelo discriminativo discernir entre doinus reales o falsos, lo que significa que tenemos un modelo capaz de crear doinus suficientemente buenos.

MiliaGAN, la parte generadora de GAN.
Fácil exprimido de limón, ¿no?
SPOILER: Nada salió como se esperaba.
Ronda 1: Si lo que uno tiene que decir no es mejor que el silencio…
Empezamos a alimentar a nuestro monstruo (bueno, monstruos en realidad).
Esperamos hasta que el entrenamiento convergiera.
Y flipamos con el doinus resultante.

Sí, esta no es una imagen erróneamente negra, es un midi "tímido" sin notas.
Sí, un midi vacío. Al parecer nuestra GAN era tan inteligente que prefirió permanecer en silencio en lugar de decir algo peor que el silencio… Se volvió completo Simon & Garfunkel y publicó su propia versión del Sonido del Silencio.
¿Por qué?
Las imágenes que intentábamos crear eran muy escasas, con muchos ceros y solo algunos unos en las notas que se tocaban. Inicialmente, el generador aprendió que apagando todos los píxeles, podía engañar al discriminador tonto al principio. Sin embargo, durante el entrenamiento, en algún momento, incluso el discriminador más tonto fue capaz de detectar que una imagen en blanco no era un doinu real, lo que significaba que todos los esfuerzos realizados por el generador para producir imágenes en blanco a partir del ruido ahora eran inútiles. El generador no pudo adaptarse lo suficientemente rápido para engañar al nuevo discriminador y el entrenamiento divergió.
Para resolver el problema de las imágenes dispersas, tomamos el argmax de todas las columnas, esencialmente convirtiendo una imagen de 128 × 1024 en un vector de 1 × 1024. Esto fue posible porque los doinus sólo tocan una nota a la vez.
Lección: asegúrese de sintetizar sus datos tanto como sea posible, facilite la vida a su red neuronal.
Ronda 2: ¡Maldita sea! ¿A quién le importa mezclar diferentes doinus?
Inicialmente, queríamos que el generador se centrara en crear un solo tipo de doinu; el doinu más popular: zortziko txikia. Solo teníamos alrededor de 180 muestras utilizables de este tipo de doinu, y pronto se hizo evidente que entrenar GAN requiere una cantidad sustancial de datos solo para obtener resultados apenas aceptables. Entonces, en lugar de centrarnos en una pequeña fracción de los doinus, decidimos tomar toda la base de datos al final. Esto significó mezclar todo tipo de doinus diferentes, pero obtuvimos un conjunto de datos de alrededor de 2700 muestras; Todavía es muy pequeño para el entrenamiento GAN, pero vale la pena intentarlo.
Sí, toda la base de datos con las diferentes neurris, rimas, etc.
Todo.
Va.
En.
Además, redujimos la resolución de las imágenes para que fueran menos escasas, para evitar el problema del shy gan.
Y redujimos aún más la resolución midi. Necesitábamos simplificar si queríamos lograr algún tipo de progreso.
Y, sorprendentemente, ocurrió la magia.
Lecciones aprendidas
Entonces, ¿qué hemos aprendido tras la creación de nuestro pequeño monstruo, MiliaGAN?
- La cantidad de datos necesarios para entrenar adecuadamente una GAN es mucho mayor de la que teníamos disponible; conjuntos de datos más grandes dan mejores resultados en este tipo de redes. El aprendizaje de pocas posibilidades en GAN es un punto clave en el que se está trabajando en la comunidad académica en este momento.
- El tiempo es clave en el entrenamiento de GAN, si el entrenamiento es estable y no hay divergencias, los resultados siguen mejorando con el tiempo de entrenamiento, a veces obteniendo resultados bastante buenos a medida que avanza el entrenamiento.
- Simplifique al máximo los datos que se generarán y alimentarán a las redes neuronales. Haz la vida más fácil para tus redes neuronales. Las matrices dispersas son el diablo y, si es posible, deben condensarse en un vector, ya que a las redes neuronales les encanta dar salidas llenas de ceros si están disponibles para ellas.
Observaciones finales
El proyecto MiliaGAN ha sido una gran oportunidad para aprender técnicas de DeepLearning y, en particular, las Redes Generativas Adversariales. Sólo ha sido posible gracias a la ayuda del AI Saturdays Crew, quienes han creado un entorno ideal para aprender sobre IA, impulsar la creación de una gran comunidad y el desarrollo de nuevos proyectos e ideas. Y, por supuesto, al resto de Fellows, que han ayudado y compartido sus pensamientos. Estamos muy agradecidos con todos ustedes por hacer posible MiliaGAN. ¡Gracias por crear esta gran comunidad!
En el aspecto personal, este proyecto ha sido a la vez desafiante y una gran fuente de diversión. Combina dos aspectos clave de nuestra identidad, nuestra cultura y nuestro geek. Es, además, la primera vez que jon y Kermán unir fuerzas en un proyecto tecnológico loco (no es la primera vez para proyectos locos, pero este no es el lugar para esta discusión).
¿MiliaGAN revolucionará el mundo del bertsolarismo? Francamente lo dudamos, pero bueno, si alguna vez alguien pregunta, nos divertimos y aprendimos.
¡Más inteligencia artificial!
La misión de Saturdays.ai es hacer la inteligencia artificial más accesible (#ai4all) a la vez que se realizan proyectos de impacto social (#ai4good). Si quieres aprender más sobre este proyecto (y otros) únete a nuestra comunidad en o aprende a crear los tuyos en nuestro programa AI Saturdays.
Infórmate de nuestro master sobre inteligencia artificial en https://saturdays.ai/master-ia-online/
Si quieres aprender más inteligencia artificial únete a nuestra comunidad en community.saturdays.ai o visítanos en nuestra web www.saturdays.ai ¡te esperamos!
Una historia de la comunidad Saturdays.AI. Publicado originalmente el 22 de noviembre de 2021.
← Más historias de la comunidad


