You are on page 1of 10

1

APUNTES REDES NEURONALES (Continuacin) Por: Miguel Angel Montilla G. RED NEURONAL PERCEPTRN: Este fue el primer modelo de RNA presentado a la comunidad cientfica por el psiclogo Frank Rosenblatt en 1958. Como es natural de spert un en orme i nters e n la d cada de los a os 60, de bido a su ca pacidad pa ra a prender a re conocer patrones sencillos con una superficie de separacin lineal, razn por la cual tambin fue objeto de severas crticas que terminaron por dejar en el olvido la propuesta de Rosenblatt. La estructura del Perceptrn es supremamente sencilla, en su entrada posee varias neuronas lineales que se encargan de recibir el estimulo externo de la red y a la salida presenta una nica capa de neuronas, con funcin de activacin umbral, lo cual trae como consecuencia que la salida de cada neurona est entre dos posibles valores.

ENTRENAMIENTO DEL PERCEPTRN: Para entre nar un P erceptrn se presentan a la red patrones de entrada y se c omparan la s salidas con l os valores i deales esperados. Este tipo de entrenamiento se conoce como Aprendizaje supervisado. ALGORITMO DE ENTRENAMIENTO: 1. 2. 3. 4. Se inicializa la matriz de pesos(w) y el valor de la ganancia (b) de forma aleatoria. Se presenta a la red los patrones de entrenamiento en forma de pares de entrada/salida-deseada (t). Se calcula la salida real (a). a= hardlim(w*p+b) o a= hardlims(w*p+b). Se calcula el error y se recalculan los pesos y la ganancia a. e = t a b. wi = wiant + e*pT c. b = bant + e 5. Si el error es diferente de cero para cada uno de los patrones, se vuelve al paso 2.

2
Ejemplo: Disear un Perceptrn que permita solucionar el problema de clasificacin de patrones que se plantea en el espacio de entrada siguiente:

Del diagrama anterior, se deducen los siguientes patrones de entrenamiento:

Red que se deber implementar:

Entrenamiento: De forma aleatoria se asignan inicialmente los siguientes valores:

Iteracin 1:

3
Iteracin 2:

Iteracin 3:

Iteracin 4:

Iteracin 5:

4
Ejercicio: Disear un Perceptrn que se comporte como una compuerta lgica OR.

LIMITACIN DEL PERCEPTRN: Sirve para resolver nicamente problemas linealmente separables, es decir, problemas cuyas salidas estn clasificadas en dos clases diferentes y que permitan que su espacio de entrada sea dividido en estas dos regiones por medio de un hiperplano de caractersticas similares a la ecuacin del perceptrn, esto es: w*p + b = 0 Ej:

Espacio de entrada Funcin AND

Espac

io de entrada Funcin XOR

5
Para ms de 2 dimensiones, se plantean condiciones de desigualdad, teniendo en cuenta que:

Para el caso de la XOR, tenemos:

Si no hay contradiccin en las desigualdades anteriores, el problema es linealmente separable. En nuestro caso, supongamos que en las desigualdades k= -b. De modo que: 1. 2. 3. 4. b<0 0<k k>0

Se concluye entonces que no se pueden cumplir todas las ecuaciones y, por tanto el problema no es linealmente separable. La solucin ante este problema es un Perceptrn Multicapa: P1 P2 0 0 0 1 1 0 1 1 a1 1 1 1 0 a2 0 1 1 1 a 0 1 1 0

Espac

io de entrada Neurona de salida

6
Y el diagrama detallado de la red es:

UTILIDAD DEL PERCEPTRN: Dada su naturaleza, una a plicacin directa de l fu ncionamiento de l P erceptrn a nteriormente descrito e s cla sificacin de patrones. Por ejemplo, si tenemos dos grupos de crculos negros y blancos en un plano y queremos separarlos, una alternativa es usar un Perceptrn para tal fin. Cuando se dispone un Perceptrn a resolver esta tarea, este genera una lnea que separa los crculos negros de los blancos.

PASOS PARA CREAR Y ENTRENAR LA RED PERCEPTRN EN MATLAB: 1. Presentar en una sola matriz los vectores concurrentes de entrada.

2. 3.

Presentar en una matriz los vectores concurrentes de salida deseada. Una fila por cada salida y una columna por cada valor de salida deseado, asociado a las entradas. Se crea la red de la siguiente forma: net = newp(minmax(p), S)

7
net: minmax(p): S: 4. Variable - Nombre de la red. Valor mnimo y mximo de las entradas. Nmero de neuronas.

Se establecen los parmetros de entrenamiento: net.trainParam.epochs : Nmero de pocas. Determina el nmero mximo de iteraciones que se desea realizar para obtener pesos y bias. net.trainParam.show: Especifica cada cuantas pocas se desea visualizar el progreso del entrenamiento. net.trainParam.goal: Especifica el mximo error deseado.

5.

Se inicia el entrenamiento, de la siguiente forma: net=train(net,p,t) net: Nombre de la red creada. p: Matriz de valores de entrada (vectores concurrentes) t: Matriz de valores deseados de salida. (vectores concurrentes)

6.

Si todo sali bien, el diseo de la red ha terminado. Para determinar esto, se proc ede a simular la red ya e ntrenada, para determinar su desempeo: a = sim(net,p) a: Salida obtenida. Finalmente, se buscan los valores de pesos y bias obtenidos, dando por concluido el diseo de la red neuronal. bias: bias = net.b{1} Pesos: W1= net.iw{1,1}

7.

REDES ADALINE:

a= w11*p1+w12*p2+ +w1R*pR

En general, para mltiples capas:

8
Para Entrenamiento: Se presentan patrones de entrada/salida a la red y se actualizan los pesos y ganancias, de la siguiente forma:

: Constante que controla la velocidad de entrenamiento y la estabilidad del mismo. Si es muy pequeo, entrenamiento lento. Si es muy grande, el algoritmo oscila. En la prctica, 0.1< < 1
La principal aplicacin de estas redes, est en el procesamiento de sealas, especialmente filtros.

REDES MULTICAPA: CAPA DE NEURONAS: NOTACIN SIMPLIFICADA

MLTIPLES CAPAS:

9
NOTACIN SIMPLIFICADA:

ALGORITMO DE ENTRENAMIENTO BACKPROPAGATION: Se usa para entrenar redes multicapa. Primero se aplica un patrn de entrada y se obtiene un valor de salida. La salida se compara con la salida deseada y se obtiene una seal de error para cada salida. Las se ales d e erro r se propagan hacia a trs (d esde l a cap a de salida hacia l a de entrada), entregando a cad a capa, una fraccin del error total, basndose en la contribucin de cada neurona a la salida original. Con lo anterior, se actualizan los pesos y bias. El proceso se repite hasta hacer que la red converja hacia un estado que permita clasificar correctamente los patrones de entrenamiento. La arquitectura ms usada con el algoritmo backpropagation es la de alimentacin directa (feedforward). Las funciones de transferencia ms comunes con este algoritmo son sigmoidales y lineales (tansig, logsig, purelin).

Para definir la topologa de la red, no existe una tcnica especfica para determinar el nmero de capas ocultas, ni el nmero de neuronas de c ada c apa. S i e l n mero de neuronas e s muy pequeo, l a r ed q ueda sub-compensada y s i dicho nmero es excesivo, la red queda sobre-compensada. En cualquier caso, la respuesta de la red no ser ptima. Para seleccionar las funciones de transferencia: Normalmente, la capa de entrada y las ocultas son logsig o aprendizaje de relaciones lineales y no lineales entre entradas y salidas. tansig para permitir el

La capa de salida se acostumbra purelin

para permitir cualquier valor de salida.

Si se requiere una salida entre 0 y 1, normalmente se usa en la salida logsig.

PASOS PARA CREAR Y ENTRENAR UNA RED MULTICAPA EN MATLAB: 1. Presentar en una sola matriz los vectores concurrentes de entrada.

10
2. 3. Presentar en una matriz los vectores concurrentes de salida deseada. Una fila por cada salida y una columna por cada valor de salida deseado, asociado a las entradas. Se crea la red de la siguiente forma: net = newff(minmax(p),[S1 S2...SNl],{TF1 TF2...TFNl},BTF) net: minmax(p): [S1 S2...SNl]: {TF1 TF2...TFNl}: BTF: Variable - Nombre de la red. minmax es una funcin de Matlab que calcula el valor mnimo y mximo de las entradas. Nmero de neuronas en cada capa. Funcin de transferencia cada capa. (logsig, tansig, purelin) Funcin de entrenamiento. (trainlm, traingd, traingdm)

Normalmente se usa trainlm (Le venberg-Marquardt backpropagation), debi do a que es rpido y efic iente. S u desventaja es que consume bastante memoria durante el entrenamiento. Ej; 4. net= newff(minmax(p),[2,1],{'tansig','logsig'},'trainlm'); Se establecen los parmetros de entrenamiento: net.trainParam.epochs : Nmero de pocas. Determina el nmero mximo de iteraciones que se desea realizar para obtener pesos y bias. net.trainParam.show: Especifica cada cuantas pocas se desea visualizar el progreso del entrenamiento. net.trainParam.goal: Especifica el mximo error deseado. 5. Se inicia el entrenamiento, de la siguiente forma: net=train(net,p,t) net: Nombre de la red creada. p: Matriz de valores de entrada (vectores concurrentes) t: Matriz de valores deseados de salida. (vectores concurrentes) 6. Si todo sali bien, el diseo de la red ha terminado. Para determinar esto, se proc ede a simular la red ya e ntrenada, para establecer su desempeo: a = sim(net,p) a: Salida obtenida. 7. Finalmente, se buscan los valores de pesos y bias obtenidos, dando por concluido el diseo de la red neuronal. bias: biasi = net.b{i,1} i: nmero de la capa Pesos de la capa de entrada: Pesos de las dems capas: W1= net.iw{1,1} Wi= net.lw{destino, origen}

You might also like