You are on page 1of 6

Ingeniera Electronica Control Inteligente Perceptron Multicapa

Se expone una gua detallada para crear una red Perceptron Multicapa con Retropropagacion para resolver el pro-
blema de identificacion de cancer cerebral, combinados con tecnicas de agrupamiento difuso como Fuzzy C-mean. El
documento contiene toda la formulacion matematica, graficos por etapa y codigo en Matlab.

Red Neuronal Perceptron Multicapa

1. La siguiente red neuronal esta disenada para resolver el problema de clasificacion de la com-
puerta XOR. Como mnimo necesitamos dos neurodos en la capa oculta hidden layer, una
neurona en la capa de salida output layer, y evidentemente dos entradas. La funcion de acti-
vacion es una funcion sigmoidea (ver Figura 1).

Figura 1: Modelo base de Red Neuronal Perceptron Multicapa. a)Red Perceptron multicapa. b)
Funcion sigmoidea

Diseno de la red

2. Para cada entrada de la red neuronal (ver Figura 2). hay asociado un peso, este peso conecta la
entrada con la capa oculta y es denominado Wh (j, i) sus dimensiones corresponden al numero
de neurodos por fila y al numero de entradas por columna. Para cada neurona de la capa
oculta hay un Bias y un peso asociado denominado W bh (j, 1) sus dimensiones corresponden
al numero de neurodos de la capa oculta por fila y una sola columna. Para cada neurona de la

Fundacion universitaria los libertadores


Ingeniera Electronica Control Inteligente Perceptron Multicapa

capa de salida existe un peso asociado denominado Wo (t, j) donde t es el numero de neurodos
en la capa de salida. Finalmente hay un Bias y un peso asociado denominado W bo (t, 1) sus
dimensiones corresponden al numero de neurodos de salida por fila y una sola columna. (ver
Figura 3).

Figura 2: Red a disenar.

Figura 3: Asignacion de pesos

3. La salida de cada neurona de la capa oculta In H cuyas dimensiones en fila corresponden al


numero de neuronas y solo tiene una columna esta definida por:

No X
salidas
In H(j) = W hji Entradai + BiasW bhj (1)
i=1

Y se obtiene la entrada a la capa de salida denominada I, basando el resultado en la evaluacion


de la salida de la capa oculta In H en la funcion de activacion sigmoidea como sigue:

Fundacion universitaria los libertadores


Ingeniera Electronica Control Inteligente Perceptron Multicapa

1
I(j) = (2)
1 + eIn H(j)
El codigo en Matlab que se encarga de realizar esta operacion se muestra en la Figura 4

Figura 4: Codigo en Matlab para determinar el valor de salida despues de la capa oculta

4. Realice el mismo desarrollo para la neurona de salida teniendo en cuenta que:

N eurodos
X
In O(k) = W hkj Ij + BiasW bok (3)
j=1

Y se obtiene la entrada a la capa de salida denominada I, basando el resultado en la evaluacion


de la salida de la capa oculta In H en la funcion de activacion sigmoidea como sigue:

1
O(k) = (4)
1+ eIn O(k)

Calculo del error: Capa de salida

5. El error entre el resultado esperado y lo que obtuvimos con los pesos iniciales de la red se
define por el error cuadratico medio como sigue:

No X
Salidas
1
E= (Out(k) O(k))2 (5)
2
k=1

El objetivo es actualizar los pesos de la capa de salida y la capa oculta respecto al error medio
cuadratico, por esta razon se deriva el error respecto a los pesos de salida W o:

E O(k)
= (Out(k) O(k))( ) (6)
W o W o
Donde

O 1
= ( ) (7)
Wo W o 1 + eIn O(k)

Fundacion universitaria los libertadores


Ingeniera Electronica Control Inteligente Perceptron Multicapa

La derivada de la funcion sigmoidea corresponde a:

1 eIn O(k)
( ) = (8)
W o 1 + eIn O(k) (1 + eIn O(k)) )2

Que puede ser expresada como:

eIn O(k) 1 1
= (1 ) (9)
(1 + eIn O(k) )2 1 + eIn O(k) 1 + eIn O(k)

En conclusion tenemos que:

E
= (Out(k) O(k))(O(k)(1 O(k))) I(j) (10)
W o

o (K) = (Out(k) O(k))(O(k)(1 O(k))) (11)

Figura 5: Codigo en Matlab para determinar el valor de sigma Salida

Calculo del error: Capa de oculta

se deriva el error respecto a los pesos de salida W h:

No X
salidas
E
= (I(j)(1I(j)))Entrada(i) (Out(k)O(k))(O(k)(1O(k)))W o(j) (12)
W h
k=1

simplificando

No X
salidas
E
= (I(j)(1 I(j))) Entrada(i) o (K) W o(j) (13)
W h
k=1

No X
salidas
h (j) = (I(j)(1 I(j))) o (K) W o(j) (14)
k=1

Fundacion universitaria los libertadores


Ingeniera Electronica Control Inteligente Perceptron Multicapa

Figura 6: Codigo en Matlab para determinar el valor de sigma Oculta

Actualizacion de pesos

6. Para actualizar los pesos realizamos el siguiente calculo:

Wo N uevo(k, j) = Wo Actual(k, j) + o (k)I(j) (15)

Wb o N uevo(k, 1) = Wb o Actual(k, 1) + o (k) bias (16)

Wh N uevo(j, i) = Wh Actual(j, i) + h (j)Entrada(i) (17)

Wb o N uevo(j, 1) = Wb o Actual(j, 1) + h (j) bias (18)

Figura 7: Codigo en Matlab para actualizar los pesos

Consideraciones importantes

Fundacion universitaria los libertadores


Ingeniera Electronica Control Inteligente Perceptron Multicapa

7. Se deben crear dos funciones, la primera funcion se usa para el calculo de los pesos de la red,
denominada entrenamiento tiene los siguientes parametros:
f unction [Wh Wb h Wo Wb o] = P erceptroT raining(Entrada, Salida, N eurodos, Epocas, Bias)
Recuerde realizar
La segunda funcion sirve para probar con un dato de entrada y los pesos precalculados, la
salida esperada, la estructura es:
f unction Y = P erceptronT esting(In, W h, W bh, W o, W bo, bias)
La funcion de pruebas completa se muestra en la figura 8.

Figura 8: Codigo en Matlab para aprueba

Fundacion universitaria los libertadores

You might also like