Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Curioso Lo De Pandora

Iniciado por Daemon, 30 de Marzo de 2006, 01:11:31 AM

« anterior - próximo »

Daemon

 Pues eso, que viendo el sistema que tiene para ir afinando las estaciones de radio al gusto musical del oyente, me parece que podria usar un algoritmo ID3 o similar para descubrir las reglas que hacen a una cancion perteneciente a esa estacion.

De hecho, las caracteristicas de las canciones que ofrece las describe cada vez que pulsais lo de "Guide us" y "Why is this song playing?" Es curioso ver como cambian cuando dices que no te gusta alguna de las canciones que te presenta, manteniendo otras caracteristicas que estaban presentes en las canciones que si...

Podria ser que cada vez que le dices que no forma un ejemplo que no perteneceria al "concepto" o "clase" de la estacion de radio, y al contrario cada vez que si. De esta forma el ID3 podria tener una base de casos sobre la que lanzarse. Pero bueno, sistemas de clasificacion en IA hay a patadas, tambien podria ser una RNA...  (seguro que esto crea polemica... :lol:)

Esta muy bien, a mi me ha ajustado una emisora de Heavy y rock duro bastante apaña en poco tiempo :P  
Imagina todo lo que puedes hacer. Despues hazlo.

Vicente

 La verdad que a mi también me ha sorprendido mucho esa página :) Hacía tiempo que buscaba algo como eso. Sobre todo supongo que el mayor curro se lo han pegado analizando las diferentes canciones para asignales los atributos, luego ya un clasificador sobre eso es trivial.

Una cosa curiosa es que os pongáis a escuchar una canción y corteis internet, a mi me sigue sonando la canción enterita :P

Pero vamos, la página es una sopresa muy agradable :)

Un saludo!

Vicente

Mars Attacks

 Hace no demasiado, dieron una charla en la UJI acerca de IA aplicada al reconocimiento musical. Hay redes neuronales capaces de distinguir con una elevada tasa de acierto a qué tipo de música pertenece una determinada canción (la charla iba de que se estaba mejorando el sistema para llegar al punto de que, silbando una melodía, un sistema fuera capaz de reconocer de qué canción se trataba. Telita, ¿eh?).

Vicente

 Hola,

en mi universidad (UAM) se dedican a investigar la producción de música automática, y habían conseguido más o menos música que sonaba "bien". Decían que con trabajo era más o menos posible conseguir sonidos que fueran agradables para la gente, pero que conseguir combinar eso con el "ritmo" era complicadísimo (vamos, que no lo habían conseguido :P).

Utilizaban genéticos para esto si no recuerdo mal (lo que no sé es si era evolución gramátical o evolución normal...). Un saludo!

Vicente

Daemon

 Hola,

Vicente:
No soy musico ni nada parecido, pero un genetico. no se..., me resulta complicado verlo para generar musica aceptable. Desde luego ni me imagino como sera la funcion de fitness de los cromosomas que usan los de tu universidad.
Sin embargo es curioso por que los de pandora en su FAQ dicen que no tienen musica clasica, por que no saben como tratarla, vamos que no saben que caracteristicas sacarles, o que las han sacado y el clasificador no se comporta bien. Yo creo que ese tipo de musica si que seria mas aceptable para tratar mediante un genetico, pues parece haber cierto orden y estructuras que se repiten en la misma. Una partitura de musica clasica quizas pudiese componerse de esta forma (no se, es solo una conjetura sin mucha base, no soy musico)

Mars:

Si, el tema de las RNA es bastante interesante. Una vez me comentaron que en un experimento habian estado entrenado a una RNA para aparcar un camion de 15 toneladas marcha atras, y recorriendo un pasillo curvo de 9 metros. Curiosamente la RNA no necesito mas de 9 neuronas para hacerlo.
O sea que si alguien os dice que le resulta muy dificil aparcar el coche....

:lol:
Imagina todo lo que puedes hacer. Despues hazlo.

Vicente

 Hola,

no se como lo hacían la verdad, pero si se que nos comentaron que cada ejecución del genético eran unas 30 horas más o menos, y además que no toda la canción tenía porque sonar bien, podía sonar bien a trozos si, trozos no, etc etc. A ver si veo a mi tutor y me informo un poco del tema ;)

Un saludo!

Vicente

gdl

 
Cita de: "Daemon"Si, el tema de las RNA es bastante interesante. Una vez me comentaron que en un experimento habian estado entrenado a una RNA para aparcar un camion de 15 toneladas marcha atras, y recorriendo un pasillo curvo de 9 metros. Curiosamente la RNA no necesito mas de 9 neuronas para hacerlo.
O sea que si alguien os dice que le resulta muy dificil aparcar el coche....

:lol:
No te agobies, Daemon.

Seguro que le daban a las neuronas información exacta del tipo "hay 33.245m hasta el borde, el ángulo es de 12.24º" y cosas así. Tú tendrás que aparcar como yo: a ojo de buen cubero y ya no es tan fácil. Tratando con RNA es más importante la información que se le proporciona a la red que luego la clasificación que hace la red. Vamos que si la información no es separable, no hay nada que hacer.

Ahora bien, llegados a este punto. ¿Qué tipo de información usarán para clasificar la música? Porque pasar los megas y megas de samples no es realista.

Vicente

 Hola,

yo supongo que en esto de Pandora tienen gente que asigna atributos a las canciones, no creo que eso lo hagan de forma automática (eso si que sería impresionante). Una vez han asignado los atributos ya es bastante fácil aplicar cualquier tipo de clasificador. Vamos, yo creo que lo harán así...

Respecto a lo de la música: pues tenías razón Daemon, era con música clásica. Evolucionaban piezas que sonaban parecidas a otras piezas de música. Para ello, intentaban minimizar la distancia de Kolmogorov de su nueva pieza a varias piezas diferentes. Por lo poco que me ha contado mi tutor, la distancia de Kolmogorov mide lo mucho que se parecen dos cosas. Tiene varias propiedades:

- no hay ninguna forma mejor de decir lo mucho que se parecen dos cosas que la distancia de Kolmogorov.
- es imposible de calcular (o casi imposible) :P

Con lo cual se tiene que aproximar, y una aproximación muy buena y bastante fácil es usando compresión (comprimiendo las cosas que quieres comparar y haciendo unos cálculos muy sencillos). Lo malo que no todos los compresores valen según el tamaño que tenga la pieza ;)

Un saludo!

Vicente

Mars Attacks

 No recuerdo cuáles eran todos los "ítems" que tenían en cuenta con la música, pero sí que iba la cosa de hacerle pasar teras y teras de samples. A ver, de los que recuerdo eraaaaaa el ritmo de la percusión (relativamente fácil de analizar fijándose en la amplitud de las ondas que se repita secuencialmente), el timbre de los instrumentos que participaban de él (éste se basaba más en ataques y formas de la onda), y qué rabia, no recuerdo los demás marcadores, y eso que había muchos.

En fin, no recuerdo si cogí documentación de aquella charla, pero si la encuentro por ahí, extenderé el tema.

Daemon

 
Cita de: "gdl"No te agobies, Daemon.

Seguro que le daban a las neuronas información exacta del tipo "hay 33.245m hasta el borde, el ángulo es de 12.24º" y cosas así. Tú tendrás que aparcar como yo: a ojo de buen cubero y ya no es tan fácil. Tratando con RNA es más importante la información que se le proporciona a la red que luego la clasificación que hace la red. Vamos que si la información no es separable, no hay nada que hacer.

Ahora bien, llegados a este punto. ¿Qué tipo de información usarán para clasificar la música? Porque pasar los megas y megas de samples no es realista.
pues si, ciertamente a veces no me vendria mal tener esas 9 neuronas... :lol: :P

Indudablemente el tipo de informacion que se proporcione a la red es muy importante, pero intentar proporcionar informacion exacta para una tarea de tipo senso-motora y sobreentrenar a la red con la misma no es demasiado bueno, pues las condiciones variaran muy facilmente, pues con un simple error de unas centisimas en el giro del volante, la red puede dejar de responder de forma adecuada a la situacion que se le presente. Ademas estos errores pueden ser inherentes, pues los sensores siempre tienen un error al medir y los mecanismos  motores tambien. Lo mas importante de todo esto es que no se pueden tener datos para medir todas las minimas situaciones posibles en un recorrido como el que se describe, y que la red debe ser capaz de generalizar adecuadamente con el conjunto de datos que se le ofrece.

Sobre lo de Pandora..., pues la verdad que no se que es peor, si pegarse el trabajazo de sacar a mano los distintos atributos a las canciones (aunque estoy con Vicente en que me parece que es la forma en que lo hacen) o tener algun mecanismo automatico para sacarlo. Como comentaba mars en RNA hay trabajos sobre reconocimiento de sonido y tambien se pueden emplear tecnicas como los mapas de Kohonen para descubrir de forma automatica las caracteristicas que posee el conjunto de datos de entrenamiento. A veces el tratamiento de la informacion mediante RNA requiere un preprocesamiento para adaptarlo al formato de la entrada, de hecho en el tema de la musica se podria extractar determinadas partes (aplicando un flitrado)  donde se identificaran las caracteristicas que se desean categorizar con la RNA (al estilo de lo que comenta mars). Pero todo esto se puede hacer de forma automatica. Y la gente de Pandora dice que acepta sugerencias de nuevas canciones a incluir en su biblioteca... desde luego como se les vaya el/los que sacan los atributos a las canciones...  (uoh)

[EDIT]

Acabo de recordar que una vez lei algo en un libro de psicologia de formacion de conceptos sobre la distancia de Kolmogorov, y o me estoy equivocando y tengo alucinaciones o era una forma muy estrambotica de definir si dos conceptos eran parecidos. Creo que se basaba en la minima longitud que tiene que tener un programa que sirve para describir un concepto  :blink:

(no me hagais mucho caso, quizas sean fabulaciones de mi memoria...)

[/EDIT]
Imagina todo lo que puedes hacer. Despues hazlo.

Mars Attacks

 Qué gustito da escucharte  :lol:  

gdl

 Jeje, lo de la distancia de Kolmogorov es medio de risa. Después que se mencionara lo he buscado. Se basa en comprimir las cosas usando zip y comparar las longitudes de los ficheros resultantes intercambiando los diccionarios de compresión. Lo mismo sí era lo que mencionas de la psicología ya que un zip es como definir un concepto de la manera más sucinta posible. Parece estar relacionada con la cantidad de información común.

No creo que para audio sea muy adecuado ya que el zip se basa en buscar repeticiones exactas. En audio si tocas dos veces la misma nota con un instrumento real y la grabas digitalmente, los datos son muy distintos aunque suenen igual. Quizás usando otro método de compresión. B)

Me parece muy fuerte que los de Pandora estén analizando las canciones a mano. Huele a contrato basura.  <_<

Sobre lo de las RNA no estoy diciendo que vayamos a sobreentrenar, es que como no le demos datos separables es como decir "A ver, red bonita. Clasifícame los rubios y los morenos con estos datos que te voy a dar: altura y peso". Puede que haya alguna correlación entre el color del pelo y la altura y el peso, pero creo que la red esa lo tiene chungo. Suponte que al camión (o al clasificador de Pandora) le damos los píxeles de una cámara (o a Pandora las muestras de una canción). La dificultad aumenta muchísimo. Aunque los datos están separados, el procesamiento requerido es fortísimo.

Lo mismo se puede hacer, pero lo veo muy difícil. Pandora dice cosas como "Te he puesto esta canción porque hay una voz femenina principal, hay piano en la introducción, hay un fondo de cuerdas, la tonalidad es mayor y otras características similares" (Me puso Enya). Cada una de las características por separado es de por sí difícil de extraer.



Vicente

 gdl, si no estoy equivocado, lo que comentas de la compresión es una aproximación a la distancia de Kolmogorov (bastante buena dependiendo del método de compresión). No he podido escuchar resultados del trabajo ese, pero vamos, uno de los profesores que participa es un genio, y si dice que han conseguido música que a veces suena bien me lo creo. Intentaré ver si puedo ojear el paper que prepararón o si me dejan una muestra de audio que hayan conseguido.

Un saludo!

Vicente

Daemon

Cita de: "gdl"... Puede que haya alguna correlación entre el color del pelo y la altura y el peso, pero creo que la red esa lo tiene chungo. Suponte que al camión (o al clasificador de Pandora) le damos los píxeles de una cámara (o a Pandora las muestras de una canción). La dificultad aumenta muchísimo. Aunque los datos están separados, el procesamiento requerido es fortísimo.

Lo mismo se puede hacer, pero lo veo muy difícil. Pandora dice cosas como "Te he puesto esta canción porque hay una voz femenina principal, hay piano en la introducción, hay un fondo de cuerdas, la tonalidad es mayor y otras características similares" (Me puso Enya). Cada una de las características por separado es de por sí difícil de extraer.
Como ya dije coincido contigo plenamente en que la informacion con la que se provea a la red es muy importante. Sobre lo de este ejemplo concreto del camion, creo que la información que se usaba eran mediciones de sensores del tipo que tu decias: giro de 3 grados a la izquierda del volante, parte trasera a 20.3 cm del borde, acelerador a 30 grados, etc..., no era de tipo visual. Sin embargo también existen trabajos con RNA en las que la informacion se le presenta a la red mediante una camara de video y la tarea a desempeñar es la conduccion de un automovil, de hecho con trafico y a una velocidad bastante aceptable. En el libro "Inteligencia Artificial un enfoque moderno" de Russell vienen algunos ejemplos de estos trabajos, de hecho no recuerdo si el del camion esta descrito ahi.
Por otro lado, y tambien como dije antes, una tarea de analisis muy complicada puede simplificarse realizando un preprocesamiento de la informacion a tratar. Aunque no soy musico, y si alguien sabe algo de esto que me corrija, lo que tu decias de las caracteristicas de una voz, un piano y el tono, puede que sean facilmente identificables en el dominio de la frecuencia, o sea que quizas pasando a la red distintas bandas de frecuencias de la cancion, pueda categorizar que es lo que se esta escuchando en las mismas, si una voz femenina o masculina, un piano, un violin o una guitarra electrica.
Esto es solo un ejemplo, que no tiene por que ser real, pero es solo para ilustrar que un dominio que a priori puede parecer complicado de procesar, con unas trasformaciones puede ser asequible para su tratamiento mediante la tecnica que se desee.
Imagina todo lo que puedes hacer. Despues hazlo.

gdl

 
@Vicente: Sería genial si encontrases un link del artículo por ahí  :rolleyes:

@Daemon: Siento haberme puesto tan pesado.. es que lo de las nueve neuronas del camión me ha calado hondo.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.