Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract
Esta gua contiene una introducci
on a los elementos b
asicos de los algoritmos geneticos y su adaptaci
on
a un problema simple de minimizaci
on de funciones de dos variables usando c
odigo en matlab. Se
describe el c
odigo con un instructivo b
asico de su sintaxis y funcionamiento. Se propone una serie
de pr
acticas numericas ejecutando variaciones del algoritmo. En la u
ltima secci
on se describe una
aplicaci
on de los algoritmos geneticos al ajuste de par
ametros en el modelado de la voz humana, junto
con algunas nociones de paralelizaci
on.
Algoritmos gen
eticos
Adaptaci
on a un problema de optimizaci
on de funciones
En esta seccion ilustraremos la adaptacion de un algoritmo genetico a un problema sencillo de minimizacion de funciones bidimensionales f (x, y). La interpretacion fsica del problema es, en este caso,
casi trivial: haciendo corresponder la funcion f a la energa E asociada al estado (x, y), la evolucion
del sistema tendera a minimizarla. A lo largo de esta gua nos referiremos mas o menos indistintamente,
a la funcion o al paisaje energetico.
12
9
8
10
7
8
6
5
6
4
4
3
2
2
1
0
2
0
2
2
1
1
1
1
0
1
0
1
1
2
1
2
Instructivo
Se propone realizar un estudio numerico del codigo que implementa un algoritmo genetico en la minimizacion de un paisaje energetico complejo. Para ello se sugieren los siguientes pasos:
3.1
Descripci
on del c
odigo en Matlab
3.1.1
Par
ametros
genes = 2 = posicion x, posicion y
largo = 4 = longitud del gen.
Ngen = cantidad de ciclos (generaciones) en el algoritmo.
Nind = cantidad de individuos en la poblacion.
cross = tasa de cruzamiento.
mut = tasa de mutacion.
Organizaci
on:
El codigo a utilizar se encuentra dividido en un codigo principal (genetico.m) que hace uso de subrutinas
o funciones definidas en archivos externos.
codigo principal genetico.m
1. se introducen los parametros del algoritmo
2. llamado a fun.m (define el paisaje de energa a estudiar)
3. se elige la poblacion inicial de manera aleatoria en ran.m
4. comienza ciclo principal: Para iter desde 1 hasta Ngen hacer
se calcula la funcion de fitness
llamado a subrutina fentogen.m (toma fenotipo y devuelve genotipo)
llamado a subrutina pareja.m: elige los dos individuos, efectua la mutacion y el cruzamiento de manera estocastica
llamado a subrutina gentofen.m (toma genotipo y devuelve fenotipo)
se grafica la poblacion de la generacion iter
5. se reproduce la evolucion completa de la poblacion
6. se grafica la evolucion de la funcion de fitness
3.2
Preguntas
Para tener en cuenta: Un estudio cuantitativo del problema numerico requiere el analisis de un conjunto
de evoluciones y no de un evento particular como el que se obtiene directamente del codigo. Sin
embargo creemos que de todas formas es posible realizar un analisis interesante. Por esto se proponen
las siguientes preguntas:
4
4.1
Adaptaci
on al problema de la producci
on de voz
Fsica de la voz - Teora de Fuente Filtro
El contenido espectral de los sonidos voceados es relativamente simple, mostrando una serie de picos
en ciertos armonicos de la frecuencia fundamental. La teora clasica que permite describir este comportamiento es conocida como fuente-filtro, y puede resumirse as: el flujo de aire desde los pulmones
a traves de la glotis genera oscilaciones de las cuerdas vocales. La perturbacion en la presion causada
por esta oscilacion viaja de ida y vuelta por el trato vocal y es filtrada, generando un sonido definido.
Aunque no exista un gran control sobre las oscilaciones de las cuerdas vocales, la geometra del tracto
puede ser modificada con los articuladores principales: la lengua y la mandbula.
En esencia, el filtrado representa el enfasis o la supresion de ciertos armonicos de la frecuencia fundamental de oscilacion de las cuerdas vocales. Las frecuencias enfatizadas son conocidas como las formantes,
y en el caso de las vocales, es el cociente entre las dos primeras lo que determina la identidad de cada
vocal. En el resto del espectro se codifica la informacion de la identidad del hablante.
El estudio de los sonidos voceados puede separarse en dos partes: la dinamica de las cuerdas vocales y
el filtrado de una seal sonora a traves de una compleja geometra. Mas aun, la dinamica puede resultar
extremadamente rica si se agregan los efectos de acople entre la fuente de sonido (las cuerdas vocales)
y el filtro.
4.2
Existen escencialmente dos modelos [1] para estudiar la dinamica de las cuerdas vocales. Ambos estan
basados en el mismo principio: las oscilaciones del tejido se inducen por el flujo de aire que pasa a traves
de ellas.
El modelo mas simple que da cuenta de este mecanismo es conocido como el modelo de una masa [1].
Cada cuerda vocal se asume como una masa sujeta al tejido principal, caracterizada por un coeficiente
de elasticidad y de disipacion, y sometida a la presion intraglotal. Para generar el comportamiento
oscilatorio, es necesario que la presion durante la apertura de las cuerdas no se compense en el semiciclo
de cierre, para que en un ciclo completo pueda entregarse energa a las cuerdas oscilantes. Este modelo constituye una buena aproximacion mientras que el aire en el tracto tenga propiedades inerciales.
Cuando las cuerdas se estan separando, el flujo aumenta y la columna de aire en el tracto se acelera, lo
cual tiende a abrir mas aun las cuerdas. En el semiciclo de cierre, por otra parte, la columna de aire en
movimiento tiende a cerrar las cuerdas, y en el ciclo completo se entrega energa al tejido.
Las ecuaciones de movimiento para este modelo de cuerdas vocales pueden ser escritas como
M x00 + Bx0 + Kx = Pg
(1)
(2)
con R2 e I2 la resistencia y la constante de inercia del aire en el tracto, y U el flujo. El sistema dinamico
queda cerrado, entonces, relacionando las ecuaciones 1 y 2 mediante
PL (R2 U + I2 U 0 ) = kt v 2
(3)
4.3
Tracto Vocal
Seg
un la teora fuente-filtro, las cuerdas vocales estan desacopladas ac
usticamente del tracto vocal, de
manera que la se
nal de voz se genera a traves del filtrado de la serie temporal de la presion P i a la
entrada del tracto.
El modelo mas simple consiste en aproximar el tracto por una serie de n tubos de distinta seccion a i y
longitud li para simular las distintas geometras. En cada interfaz, la onda de presion es parcialmente
reflejada y transmitida, de manera que a la salida del u
ltimo tubo se tiene la se
nal de la voz.
4.4
Biometra
Una vez construido el modelo completo para generar series temporales sinteticas de voz, naturalmente surge ponerlo a prueba como un metodo biometrico para reconocer la identidad de las personas, aprovechando que sus parametros estan relacionados con magnitudes anatomicas y fisiologicas
del sistema de produccion de la voz.
Sin embargo, dado que el espacio de parametros es multidimensional, la eleccion del metodo de ajuste es
delicada. La preferencia por un algoritmo genetico se ve justificada por dos razones: es de programacion
simple y es facilmente adaptable a la paralelizacion.
El problema de la voz es facilmente adaptable para ser resuelto por un algoritmo genetico. En primer
lugar, definimos un individuo como la cadena de n
umeros que corresponde a los parametros del modelo.
As, la cadena {M, K, B, R2 , I2 , a1 , ..., an , l1 , ..., ln } es un individuo. M ,K B, R2 e I2 son los parametros
de las cuerdas vocales (ecuaciones 1 y 2); ai y li la seccion y longitud del i-esimo tubo que aproxima
al tracto vocal. La expresion de este cromosoma (su fenotipo) es el espectro de potencias que genera.
El criterio de seleccion elegido es trivial: la probabilidad de seleccionar un cromosoma es inversamente
proporcional a la diferencia cuadratica entre los espectros de la se
nal experimental y la sintetizada por
el modelo. En la figura 2 se ve un ejemplo de ambos espectros una vez que el algoritmo encontro la
mejor solucion.
Los resultados obtenidos con el modelo de una masa para las cuerdas vocales y la aproximacion por
tubos del tracto vocal no son concluyentes. Por una parte, las geometras a las que converge el tracto
vocal corresponden a las de las vocales utilizadas citadas por la bibliografa [3]. Sin embargo, el modelo
de una masa parece demasiado simple para dar cuenta de la dinamica de las cuerdas vocales, lo que
resulta en una dispersion en los parametros del modelo que no permiten una distincion unvoca de la
identidad.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
10
20
30
40
50
60
70
Figura 2: Espectro experimental de una vocal [o] (barras verticales) y de las mejores series sinteticas (lneas)
generadas por el modelo usando un algoritmo genetico de 500 generaciones y 150 cromosomas, tasa de mutacion
de 8% y crossover de 40%. La frecuencia esta en unidades de 102 Hz y la potencia esta normalizada.
4.5
Paralelizaci
on del algoritmo gen
etico
Una posible implementacion en paralelo del algoritmo consiste en definir un nodo principal donde se
separa la poblacion inicial de cromosomas en sub-dominios a ser procesados en paralelo por el resto de
los nodos (esclavos). Cada uno de los nodos esclavos encuentra la adaptacion de cada subpoblacion,
y esta informacion es devuelta al nodo principal, que aplica los operadores geneticos a la poblacion
completa, generando una nueva poblacion que repetira el proceso.
El algoritmo en paralelo opera seg
un la siguiente secuencia:
Nodo principal
1. calcula espectro de la serie experimental
2. enva espectro a nodos esclavos
3. crea poblacion inicial de cromosomas
4. divide en dominios locales
Nodos esclavos
1. recibe espectro experimental del nodo principal
loop generaciones
Nodo principal
1. enva cromosomas locales a nodos esclavos
2. recibe diferencias cuadraticas de esclavos
3. operadores geneticos: seleccion, cross-over, mutacion
Nodos esclavos
1.
2.
3.
4.
5.
4.6
Performance del c
odigo en paralelo
600
500
400
300
200
100
0
2
10
12
14
16
18
20
22
24
26
28
30
32
numero de procesadores
Figura 3: Tiempo de ejecucion vs. cantidad de procesadores para el algoritmo genetico usando 500 generaciones,
150 cromosomas, tasa de crossing del 40% y tasa de mutaciones de 8%. Los valores usados resultan del promedio
de 2 o 3 corridas. A partir de n = 10 procesadores, la dispersion en los valores es despreciable. A la derecha,
detalle y ajuste con T (n) = 8.77 + 686.54/n + 0.05n, n es el n
umero de nodos slaves.
A primer orden, se espera que el tiempo de procesamiento Tp en funcion del n
umero de procesadores n
se comporte aproximadamente como Tp (n) 1/n, mientras que el tiempo de comunicacion Tc (n) n.
Ajustando los valores de la figura 3 para T (n) de la forma
(4)
T (n) = Tp (n) + Tc (n) = Tpmaster + Tpslaves (n) + Tc (n) = + + n
n
con n el n
umero de nodos slaves y = Tpslaves (1) el tiempo de procesamiento de 1 nodo slave. Se asume
ademas que el tiempo de procesamiento del master no cambia con la cantidad de slaves. Los valores
obtenidos implican una correccion lineal muy peque
na frente a .
Para estudiar el factor lineal se usaron logfiles (informacion de los tiempos de procesamiento de
cada procesador) generados para distinta cantidad procesadores. Lo que se observa, promediando la
dispersion de los tiempos de procesamiento Tpsl de los nodos slaves, es que
Tpsl (10)
(5)
2
es decir que al usar mas procesadores la dispersion de los tiempos de procesamiento aumenta. La
diferencia, acumulada a lo largo de la ejecucion del codigo, es del orden de 10 , que es la correccion
prevista por la ecuacion 4. Esto sugiere que la mayor parte del tiempo de comunicacion es el tiempo de
espera que proviene de la dispersion en los tiempos de procesamiento de las distintas computadoras
del cluster.
Tpsl (20) >
Referencias
[1] I. R. Titze, Principles of Voice Production (Prentice-Hall, Englewood Cliffs, NJ, 1993).
[2] D. E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, Addison
Wesley, 1989.
[3] Rabiner, L., Juang, B. (1993) in Fundamentals of speech recognition (Prentice Hall) pp. 24-256.
[4] Press, H. W. et al., Numerical Recipies in C: The art of scientific computing, Cambridge University,
1999.
[5] N. MacDonald et al., Writing Message-Passing Parallel Programs with MPI, Course Notes, Edinburgh Parallel Computing Centre, University of Edinburgh.
[6] Rothemberg, Vocal Fold Physiology, University of Tokyo Press, Tokyo, 1981, pp. 304-323.