Welcome! Wikis are websites that everyone can build together. It's easy!

Novedades en Redes Neuronales

El suspenso despierta y se desvanece de inmediato. Casi no dura nada, porque el sistema toma múltiples fotografías por segundo a personas en movimiento y las coteja de inmediato con bases de datos de sospechosos o prófugos de la ley. Enseguida, a la velocidad de los visores de las máquinas tragamonedas, la computadora confirma o desmiente si se trata de alguien buscado. Son mecanismos que cuentan con la última tecnología mundial y ya están en la Argentina. El Gobierno los implemen tará en diciembre para controlar las migraciones en Ezeiza y, el año que viene, el acceso a la Casa Rosada.

Apenas se produce la captura visual del rostro del que ingresa, comienzan a accionarse motores de búsqueda en las listas del registro nacional de reincidentes, Interpol o el FBI. Si hay coincidencia con las caras archivadas, sonarán alarmas, se cerrarán las puertas y los zapatos de los policías crujirán en rápida sinfonía.

La anterior es el escenario de aplicación más novedoso usado en el Instituto de Tecnología de Santa Fé, Argentina, en donde expertos como la doctora Georgina Stegmayer están trabajando en el desarrollo de sistemas de reconocimiento facial que permitan proteger instalaciones físicas mediante la aplicación de algoritmos de redes neuronales.


EL PROBLEMA

Se plantea implementar una red neuronal de retropropagación para reconocer rostros. En retrospectiva, se pretendió desarrollar un trabajo empírico para exponer las debilidades de este tipo de red neuronal y mejorar progresivamente su desempeño mediante técnicas especializadas de preproceso y compactación.
10 fotos del mismo individuo
La base de datos (ORL Face Database) fue elaborada en Olivetti Research Lab, Cambridge entre 1992 y 1994 con imágenes tomadas sobre un fondo homogéneo obscuro (ver Fig 1). La rotación máxima es de 20º y la variación máxima de escala es de 10%. La diversidad también involucra tomas con y sin anteojos y cambios en el peinado.

Como datos de entrenamiento se utilizaron las primeras 5 fotos de cada uno de los individuos, la mitad de las imágenes. La prueba consistió en presentar a la red para identificación la otra mitad, las 5 fotos restantes de cada uno de los individuos.

Esta tarea, eventualmente ejecutada con nuestra maquinaria biológica, no es trivial. En efecto, corresponde aproximadamente a observar la audiencia de un curso numeroso durante un tiempo equivalente al necesario para tener 5 ‘tomas’ y luego reconocer a cada uno de los integrantes, incorporando algunas variaciones.


Modelo Utilizado

El ‘conocer’ un rostro, actividad imprescindible para re-conocer, equivale a asignar una identidad única a un número relativamente pequeño de imágenes prototípicas de una persona. La identidad misma es probablemente un agregado complejo de vivencias y evocaciones; en este trabajo se le asignará sólo la característica de ser única. A su vez, el set de prototipos se almacena de forma tal que sea claramente separable. Parece ser que los recursos utilizados para almacenamiento son considerables; la capacidad de reconocer rostros es limitada en cuanto a número. En consecuencia, reconocer un rostro puede asimilarse a un proceso de búsqueda en el espacio de almacenamiento que, de ser exitoso, rescata con mayor o menor seguridad la identidad (y atributos vivenciales) asociada durante el conocer.

Para modelar el proceso hipotético antes enunciado, se postula una característica cuantitativa que tiene dos parámetros:
· k correspondiente al número de individuos, y,
· m correspondiente al número de fotos de cada uno de ellos.

Llevando estas consideraciones al ámbito de redes neuronales y al contexto del trabajo a efectuar, se plantea una arquitectura con dos capas ocultas. La capa de input tiene 10304 nodos, la primera capa oculta tiene 2*(k+2) neuronas, la segunda k+m neuronas y la de output k neuronas. El razonamiento de soporte para esta elección (salvo la condición de que la capa de output debe ser de dimensión k) es esencialmente intuitivo y se expone a continuación.

Para reconocer una imagen que representa un rostro será necesario mapearla en el ‘espacio de rostros’, llevar a cada uno de sus elementos a un espacio instrumental para el reconocimiento de rostros. En efecto, el contexto perceptual de esta actividad se ‘siente’ distinto al que se utiliza para reconocer objetos en general, una hipótesis derivada de la relevancia evolutiva del reconocimiento de rostros en la estructura gregaria de nuestra especie. Ahora bien, en este espacio debe haber lugar para más de una versión del rostro para poder reconocer expresiones y variaciones; esto explica k+2 que entrega un mínimo de tres prototipos. Adicionalmente, el número de ejemplares almacenable debe ser superior a k; en realidad una función monótamente creciente con k, la más sencillaNovedades en Redes Neuronales - Inteligencia artificial en EAFIT, en concordancia con la navaja de Occam. La segunda capa oculta debe ser capaz de ‘transmitir’ una síntesis del ‘espacio de rostros’ con una fidelidad suficiente para una actividad de asociación binaria (en realidad, bastante ‘fuzzy’) de identificación ejecutada por la capa de output. En consecuencia, se necesita al menos una neurona por individuo y una por variante; un total de k+m.

Las funciones de activación de las capas ocultas es tanh, concordante con la naturaleza positiva o negativa de la señal sináptica (reforzamiento o inhibición); la de la capa de output debe llevar a un conjunto de alternativas sí/no representables en forma compacta por una sigmoide en el intervalo [0,1]. En efecto, la instrospección de nuestra actividad de ‘identificar rostros’ la hace aparecer como difusa, existe un continuo de la fidelidad de la identificación que se manifiesta en expresiones en este contexto tales como ‘se parece...’, ‘no estoy seguro, pero ...’, ‘lo he visto en alguna parte ...’, ‘ podría jurar que es ...’, etc.

En consecuencia con los principios expuestos, se especificó una red con dos capas ocultas para trabajar con datos que se presentan como un set de k vectores de 10304 componentes que deben asociarse con una ficha binaria de identidad de k bits construida de modo que el AND sea nulo para dos individuos diferentes. Esta forma de asociación permite un interesante análisis de resultados. En efecto, proporciona una medida del nivel de ‘confusión’ entre los ejemplares, circunstancia análoga a la que se presenta en el proceso de reconocimiento de rostros para los seres humanos, dado que todos los rostros presentan características comunes tales como una boca, dos ojos, dos orejas, etc.

Para la aplicación misma se procesan Novedades en Redes Neuronales - Inteligencia artificial en EAFITejemplares, tanto para el input como para probar la red entrenada. Los datos fueron normalizados, esto es, fueron llevados a una media nula y varianza unitaria, transformación esencialmente reversible que entrega un mapa biyectivo más compacto aprovechando la circunstancia de que cada componente de input puede tener sólo 256 valores distintos. En efecto, se construye una representación analógica en un intervalo continuo [-4,+4] para estos valores, acercándose así al rango de la función tanh utilizada para transmitir la señal de input. A continuación se transcribe el script de Matlab con el cual se hizo el trabajo.

k=40;
m=5;
% k individuos, m fotos de cada uno de ellos
for n=1:m;
for i =1:k;
the_file=['D:\face\face_files\s' int2str(i) '\' int2str(n) '.pgm'];
foto=fopen(the_file,'r');
[B,header]=fread(foto,14,'char=>char');
% el encabezado no interesa, hay que saltarlo
[p(:,k*(n-1)+i),pix]=fread(foto,10304,'int8=>double');
% la imagen se guarda como vector columna de la matriz de datos p
j=fclose(foto);
end
end
% listo los datos, m*k fotos como vectores columna de la matriz de datos p
% los normalizamos
[pn,meanp,stdp]=prestd(p);
% ahora el output
t=eye(k);
for n=1:m-1;
t=[t,eye(k)];
end
% el output 't' se compone de 'm' matrices eye(k)
% lista la ficha binaria de identidad, el AND es nulo
net=newff(minmax(pn),[2*(k+2),k+m,k],{'tansig','tansig','logsig'},'trainrp');
net.trainParam.show=10;
net.trainParam.goal=0.001;
% ahora a entrenar...
[net,tr]=train(net,pn,t);
% ahora se ve como quedamos, probamos el input
for i=1:m*k
a(:,i)=sim(net,pn(:,i));
end
% si esta matriz se parece a [eye(k),eye(k)...] estamos bien
% ahora vamos a probar otro set de 'm' fotos de los mismos individuos...
for n=m+1:m+m;
for i=1:k;
the_file=['D:\face\face_files\s' int2str(i) '\' int2str(n) '.pgm'];
foto=fopen(the_file,'r');
[B,header]=fread(foto,14,'char=>char');
[p(:,k*(n-1)+i),pix]=fread(foto,10304,'int8=>double');
j=fclose(foto);
end
end
[pn,meanp,stdp]=prestd(p);
% listos los datos de prueba
for i=1:m*k
b(:,i)=sim(net,pn(:,i));
end
b-a
% los vectores columna no nulos de esta matriz 'miden' la fidelidad de la identificacion


Los Resultados

4 Los resultados.

1 Entrenamiento.

Puede observarse que el entrenamiento tomó 70 épocas, lográndose la meta prefijada de error. El entrenamiento utilizó la variante ‘resilient backpropagation’ [2] en modo batch. Esta variante observa los cambios de signo en el gradiente, intensificando el descenso en forma monotónica en la misma dirección si es que el signo no cambió. Si hay cambio, se vuelve a una tasa de aprendizaje pequeña. El método tiene muy buena convergencia; BP tradicional, BP con momentum, BP con tasa de aprendizaje variable y BP con tasa y momentum variables no lograron la meta en 100 épocas, en realidad con evolución plana del error a partir de la época 40.
Log del proceso de entrenamiento

TRAINRP, Epoch 0/100, MSE 0.371922/0.001, Gradient 0.389574/1e-006
TRAINRP, Epoch 10/100, MSE 0.0183699/0.001, Gradient 0.0120647/1e-006
TRAINRP, Epoch 20/100, MSE 0.00686645/0.001, Gradient 0.00241339/1e-006
TRAINRP, Epoch 30/100, MSE 0.00319294/0.001, Gradient 0.00116063/1e-006
TRAINRP, Epoch 40/100, MSE 0.00210703/0.001, Gradient 0.00165312/1e-006
TRAINRP, Epoch 50/100, MSE 0.00152078/0.001, Gradient 6.16599e-005/1e-006
TRAINRP, Epoch 60/100, MSE 0.0012267/0.001, Gradient 0.000784313/1e-006
TRAINRP, Epoch 70/100, MSE 0.000993673/0.001, Gradient 0.000253889/1e-006
TRAINRP, Performance goal met.

Se observa que aún queda gradiente; se podía haber llegado a un error más bajo.

El proceso, hasta la etapa de fin de entrenamiento, tomó algo más de seis minutos. Incluido en este tiempo, adicionalmente al entrenamiento mismo, está el abrir, leer y cerrar 200 archivos y el preproceso de normalización.

2 Prueba.

Se simuló la red con los datos de entrenamiento, el resultado se almacenó en la matriz a. A continuación se leyó y normalizó la información correspondiente a las fotos 5 a 10 de cada uno de los 40 individuos, procediéndose a entregarla a la red para identificación. El resultado se almacenó en la matriz b. Finalmente se calculó b-a, matriz que mide el grado de confusión en la identificación. Esta fase del proceso tomó cerca de dos minutos.

3Análisis de los resultados.

En la Figura 2 puede verse el despliegue gráfico de la matriz b-a. Se observa que la identificación es casi perfecta. Los escasos ‘spikes’ que aparecen, con un valor máximo de 0.5, indican algún grado de confusión. Sin embargo, para todas las fotos el valor de respuesta para el bit asociado a su ficha de identificación es cercano a 1.
Resultados de la prueba, despliegue de la matriz b-a.


Conclusiones

Los principios de diseño utilizados para especificar la red de retropropagación dieron excelentes resultados en reconocimiento de rostros, tanto en tiempo de proceso como en fidelidad de identificación. En efecto, los datos presentados están contenidos en más de 4 MB y la tarea que se entrega a los más de 800,000 pesos de la red es aprender como están organizados. El sobre-aprendizaje, asimilable a privilegiar la memorización de los valores de los datos, no se produjo; la evidencia está dada por el procedimiento de prueba que involucró imágenes distintas a las del entrenamiento. En efecto, los resultados muestran que no sólo se capturó la configuración particular de cada rostro sino que con la presentación de otro ejemplar se asimiló características generales que permitieron asociar la identidad correcta durante la prueba.

La normalización de los datos probó ser un método muy eficiente de compactación sin el cual la identificación no funciona. En efecto, sin este procedimiento la convergencia no se alcanza en menos de 100 épocas como puede notarse en la gráfica de entrenamiento en la Figura 3.
Entrenamiento con datos no normalizados

Este resultado muestra que es imprescindible preprocesar los datos a la vez que el tipo de preproceso no necesita ser muy complicado. En efecto, la extracción de características relevantes es efectuada por la red de retropropagación en forma satisfactoria sin necesidad de tener que incorporar hipótesis acerca de la jerarquización de las mismas. Se reencuentra así una hipótesis de trabajo referente a un mecanismo plausible de percepción conducente al reconocimiento de rostros en una escala de tiempo que sugiere un proceso muy eficiente de compresión de datos. En efecto, considerando el ancho de banda del ‘hardware’ biológico involucrado, el flujo neto de señales debe ser bastante reducido. Adicionalmente, el algoritmo de compresión nos es transparente; debe ser relativamente simple, probablemente subordinado al proceso de identificación de modo de modular la captura y compresión de acuerdo al avance de la identificación, en forma similar a la retropropagación del error. Se concluye que el canal de comunicación entre la parte cognoscitiva y la parte perceptual debe ser bidireccional; la percepción no puede ser pasiva.



Referencias Bibliográficas

1) Valentin, D., Abdi, H., O'Toole, A.J., and Cottrell, G.W. (1994). Connectionist Models of Face Processing: A Survey. Pattern Recognition, 27(9):1209-1230.
2) Hancock, P.J.B., Bruce, V., and Burton, A.M. (1999). A comparison of two computer-based face recognition systems with human perceptions of faces. Vision Research
3) Burton, A.M., Bruce, V., and Hancock, P.J.B. (January 1999). From pixels to people: A model of familiar face recognition. Cognitive Science, 23(1).
4) Lawrence, Giles, Tsoi, Back 1996 citeseer.nj.nec.com/lawrence96what.html What Size Neural Network Gives Optimal Generalization? Convergence Properties of Backpropagation (UMIACS-TR-96-22) 5) Lawrence, Giles, Tsoi, Back (1997) Face Recognition: A Convolutional Neural Network Approach - http://citeseer.nj.nec.com/update/25947 citeseer.


Latest page update: made by drmayhem , Oct 31 2007, 5:17 PM EDT (about this update About This Update drmayhem Novedades en Redes Neuronales - drmayhem

2157 words added
5 images added

view changes

- complete history)
More Info: links to this page

There are no threads for this page. 

Anonymous  (Get credit for your thread)


Top Contributors