[dsp-l] Redes Neuronales: varias preguntitas

Mario Falcao mfalcao en adinet.com.uy
Dom Ene 20 05:03:18 GMT 2002


Nacho,

Paso a contarte lo que hemos hecho y las dudas que han surgido.

Sobre la red MLP para implementar la función XOR: hicimos un programa con el
algoritmo de back-propagation y lo verificamos con otro que hace las cuentas
paso a paso y neurona por neurona como si fuera a mano. Los resultados
coincidieron para la red particular que nos tomamos (2 entradas, 2 neuronas
en la capa oculta y 2 neuronas en la capa de salida). Luego adaptamos ese
programa a la red para el xor (2 ent. 2 neuronas en capa oculta y 1 neurona
en capa de salida). Como función de activación usamos la tangente
hiperbólica. Codificamos el '0' como '-1' y el '1' como '1'. Tomamos 16
patrones de entrenamiento, 4 puntos alrededor de c/u de los vértices del
cuadrado. Para entrenar la red le presentamos esos patrones en forma
aleatoria 1500 veces. En la mayoría de los casos el algoritmo converge
aprox. despues de las 500. Para probar la red le aplicamos los 4 patrones
del xor (los 4 vértices) y la salida fue correcta.
Duda 1) En c/u de esos casos el resultado final para los pesos es distinto.
Está bien que sea así? Hay muchas soluciones posibles entonces?
Duda2) Para valores iguales de 'eta' (la tasa de aprendizaje) , de 'alfa'
(el momento)  y mismos patrones de entrenamiento, a veces el algoritmo
converge y a veces no. Eso puede ser así? (lo único que cambia de una
corrida a otra son los valores de los pesos iniciales, que los tomamos como
dice el Haykin: uniformemente distribuidos en el intervalo -2.4/Fi y 2.4/Fi
donde Fi es el fan-in de la neurona en cuestión).

Sobre la red MLP para reconocer las vocales:
Duda 3) Sobre el número de salidas a tomar, cual de las siguientes
posibilidades te parece la mejor:
i) 1 salida: que dice si la entrada es una vocal determinada o no y por lo
tanto hacer 5 redes de esa forma en paralelo (una por vocal)
ii) 5 salidas: una por vocal y por lo tanto la salida es un 'don't care'
cuando las 5 salidas estan bajas.
iii)6 salidas: una por vocal y una para el 'don't care'
Duda 4) En caso de tener una neurona de salida para el caso 'don't care',
como entrenamos a la red para esa salida? Qué patrones tomamos como 'don't
care'? Todas las consonantes? Puede la red aprender que la saida 'don't
care' debe estar alta siempre que el patrón de entrada sea algo distinto de
una vocal? Sea este una 'n', una 's' o una 'v'?
Duda 5) Las salidas para las vocales las entrenamos con los patrones de
estas en régimen, con los patrones de estas durante el transitorio o con
ambos? Te pregunto esto porque hicimos la prueba de grabar una 'e' durante
varios segundos y efectivamente tanto la señal en el tiempo como los
coeficiente Cepstrum se mantienen constantes luego de pasado el transitorio
inicial. Ahora cuando grabamos un número dado, los transitorios "ocupan"
bastante. Por poner un ejemplo, supongamos que tomamos un solo coef.
Cepstrum por ventana de 30ms. La 'e' en régimen tiene un coef. que varía muy
poco alrededor del valor 8. Pero la 'e' del número toma los siguientes
valores: -4 1 3 7 9. Entonces al -4 del transitorio de la 'e' lo tomamos
como un patrón de la 'e' y por lo tanto le pedimos que la salida para ese
patrón sea 'e', le pedimos que la salida sea un 'don't care o no lo usamos
como patrón de entrenamiento?
Duda 6) Que valores conviene usar para 'eta' y para 'alfa'? 'alfa' debe ser
mas bien cercano a 1, no?
Duda 7) Para la capa oculta de la red, empezamos con pocas neuronas y vamos
aumentando el número hasta que funcione?
Duda 8) Por algún lado (no me acuerdo donde) leí que había una regla
aproximada para el número de patrones de entrenamiento que hay que usar para
entrenar la red en función del número de neuronas de la red o del número de
entradas o de ambos. Te suena? Si no, como sabes con cuantos patrones de
entrenamiento el algoritmo debe converger si la topología de la red es la
correcta?

Saludos
Cecilia y Mario



--- dsp-l en iie.edu.uy ------------------------------
por altas y bajas de la lista dirijase al formulario en
la pagina web del curso: http://www.iie.edu.uy/ense/asign/sisdsp/



Más información sobre la lista de distribución dsp-l