100 likes | 368 Views
Universidad Autónoma del estado de hidalgo. REDES NEURONALES. Redes Competitivas. Facilitador : Dr. Joel Suarez Autor: Ing. Henry P . Paz Arias. Redes Competitivas. Una red neuronal competitiva consiste en una capa de neuronas en la que todas reciben la misma entrada .
E N D
Universidad Autónoma del estado de hidalgo REDES NEURONALES RedesCompetitivas Facilitador: Dr. Joel Suarez Autor: Ing. Henry P. Paz Arias
Redes Competitivas Una red neuronal competitiva consiste en una capa de neuronas en la que todas reciben la misma entrada. La neurona que presenta la mejor salida (la máxima o la mínima según el criterio) es declarada vencedora. Este sistema se denomina a menudo winner-take-all (el ganador lo consigue todo)
Arquitectura Las redes competitivas son usualmente bi-capa. La función de la primera capa es hacer de sensor, por ella entran los patrones a la red y por tanto debe tener el mismo tamaño que la longitud del patrón. Ambas capas están interconectadas, esto es todas las neuronas de la capa de sensores estarán interconectadas con todas las neuronas capa de salida.
Algoritmo de Aprendizaje • El algoritmo de aprendizaje comienza inicializando los pesos (wij) con valores aleatorios bajos. • A continuación se presenta a la red una información de entrada en forma de vector (x1, x2, ..., xn) que activará a una sola de las neuronas de la capa de salida. A la neurona activada se le denomina ganadora. • La neurona ganadora de la capa de salida es aquella cuyo vector de pesos sea más parecido al patrón de entrada (x1, x2, ..., xn). • Se modifican los pesos de la neurona ganadora Wnuevos = Wviejos + α(Xi-Wviejos) donde α = Tasa de aprendizaje. [0 a 1] • El proceso se repite hasta que la variación de los pesos sea insignificante.
Ejemplo x = (x1,x2) = (-1,0) The initial weight vectors: w1 = (1,0), w2 = (0,1) and w3 = (-0.707,-0.707). The outputs of the three neurons are calculated as follows: (w.x’) s1 = 1 * (-1) + 0 * 0 = -1 s2 = 0 * (-1) + 1 * 0 = 0 s3 = (-0.707) * (-1) + (-0.707) * 0 = 0.707 The winner is S3 Assuming learning α =0.3, the weight vector is updated as follows: w3 = (-0.707,-0.707) + 0.3 * [ (-1,0) - (-0.707,-0.707) ] = (-0.707,-0.707) + 0.3 * [ (-0.293,0.707) ] = (-0.795,-0.495) In other to continue training of the network the weight vector has to be normalized: c = 1.0 / sqrt( wg2 + wg2 ) = 1.0 / sqrt( (-0.795)2 + (-0.495)2 ) = 1.0 / 0.9365 = 1.0678 w'3 = c * w3 = ( 1.0678 * (-0.795), 1.0678 * (-0.495)) = (-0.849,-0.529)
MATLAB function w = ncom(x,w,n) tamx = size(x); tamw = size(w); for i = 1: tamx(1) for j = 1:tamw(1) s(j) = w(j,:)*x(i,:)'; end [val winner] = max(s); pes = w(winner,:)+n*(x(i,:)-w(winner,:)); nor = (1/sqrt(sum(pes.^2)))*pes; w(winner,:) = nor; end