Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 eleccin (salvo la condicin de que la capa de output debe ser de dimensin k) es esencialmente intuitivo
y se expone a continuacin.
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 hiptesis 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 ms de una versin del rostro para poder
reconocer expresiones y variaciones; esto explica k+2 que entrega un mnimo de tres prototipos.
Adicionalmente, el nmero de ejemplares almacenable debe ser superior a k; en realidad una funcin
montamente creciente con k, la ms sencilla, en concordancia con la navaja de Occam. La segunda capa
oculta debe ser capaz de transmitir una sntesis del espacio de rostros con una fidelidad suficiente para una
actividad de asociacin binaria (en realidad, bastante fuzzy) de identificacin 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 activacin de las capas ocultas es tanh, concordante con la naturaleza positiva o negativa
de la seal sinptica (reforzamiento o inhibicin); 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
instrospeccin de nuestra actividad de identificar rostros la hace aparecer como difusa, existe un continuo de
la fidelidad de la identificacin que se manifiesta en expresiones en este contexto tales como se parece,
no estoy seguro, pero , lo he visto en alguna parte , podra 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 asociacin permite un interesante anlisis de resultados. En efecto, proporciona una medida del
nivel de confusin entre los ejemplares, circunstancia anloga a la que se presenta en el proceso de
reconocimiento de rostros para los seres humanos, dado que todos los rostros presentan caractersticas
comunes tales como una boca, dos ojos, dos orejas, etc.
Para la aplicacin misma se procesan ejemplares, 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, transformacin
esencialmente reversible que entrega un mapa biyectivo ms compacto aprovechando la circunstancia de que
cada componente de input puede tener slo 256 valores distintos. En efecto, se construye una representacin
analgica en un intervalo continuo [-4,+4] para estos valores, acercndose as al rango de la
funcintanh utilizada para transmitir la seal de input. A continuacin 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)