perceptrón multicapa
DESCRIPTION
fTRANSCRIPT
-
Algoritmos en redes neuronales
Perceptrn multicapa
Conocer el problema
Entradas
Salidas
Patrones
Tipos de datos (E/S)
Binario
Bipolar
Real
Algoritmos de entrenamientos
Regla Delta
Regla Delta Modificada
-
Funcin de Activacin (afectan la salida)
Esta funcin de activacin debe ser la misma para cada capa, pero a la vez
cada capa independiente de la otra puede utilizar una distinta, es decir que si la
capa 1 utiliza la funcin sigmoide, la capa 2 puede utilizar Gaussiana.
Capas Ocultas Capa de Salida
Sigmoide
Tangente Hiperblica
Gaussiana
Sigmoide
Tangente Hiperblica
Gaussiana
Lineal
Inicializacin de pesos y umbrales
Estos se hacen aleatoriamente al iniciar por primera vez nuestro entrenamiento
en caso de que nuestro problema no los tenga. Por lo general estos pesos y
umbrales estn dentro del rango de -1 y 1.
Parmetros de entrenamientos
Numero de iteraciones: indica la cantidad de iteraciones que har
internamente la red.
Error mximo permitido: es el parmetro hasta con que error vamos a
entrenar la red neuronal. Es el maestro.
Rata de aprendizaje (): es la que le da la velocidad al entrenamiento y
por lo general est dentro del rango de cero y uno (0 y 1).
Si utilizamos el algoritmo de entrenamiento Regla Delta Modificada la rata de
aprendizaje debe ser Dinmica.
-
Entrenamiento de una red Perceptrn multicapa
Funciones de activacin ()
Sigmoide
=1
1 +
=
1 + 2
Tangente Hiperblica
=1
1 +
=
1 + +
1
1 + 2
Lineal
=
= 1
Gaussiana
= 2
= 2 2
-
Salidas de las neuronas de la primera capa oculta
1 = 1
=1
=1
Salidas de las neuronas de la segunda capa oculta
2 = 1 2
=1
=1
Salida de la red neuronal
= 2 3
=1
=1
Errores Lineales producidos a la Salida de la red neuronal
=
Error por patrn
Cuando hay una salida
=
Cuando hay ms de una salida
=
Teniendo todos estos datos poder modificar los pesos y umbrales
Para Regla Delta
Pesos
+1 =
+
+1 =
+ 1
+1 =
+ 2
-
Umbrales
1+1 = 1
+
2+1 = 2
+
3+1 = 3
+
Para Regla Delta Modificada
Pesos
+1 =
+ + &(
1)
+1 =
+ 1 + &(
1)
+1 =
+ 2 + &(
1)
Umbrales
1+1 = 1
+ + &(1 1
1)
2+1 = 2
+ + &(2 2
1)
3+1 = 3
+ + &(3 3
1)
Hallamos el error Erms
=
#
Hay que validar siempre que
< max
-
Como interpretar y realizar un algoritmo para resolver
una red neuronal Perceptrn multicapa
Lo que primeramente debemos tener en cuenta para resolver este tipo de
problemas, es tener claro que tenemos y que deseamos obtener. Es muy
importante analizar la estructura de la red que deseamos implementar.
Si podemos darnos cuenta nuestra red neuronal est compuesta por:
4 entradas
2 capas ocultas
1 capa de salida
la primera capa oculta contiene 9 neuronas por lo tanto contiene 9
umbrales
la segunda capa oculta contiene 5 neuronas por lo tanto contiene 5
umbrales
la capa de salida contiene 2 neuronas por lo tanto contiene 2 umbrales
Por lo general este tipo de redes presentan los datos de entradas y las salidas
correspondientes, de lo nico que debemos preocuparnos en de cmo
configuramos nuestra red, de tal manera que sea mucho ms eficiente.
-
Para el caso de los pesos y umbrales de forma inicial son aleatorios los datos.
Por eso solo debemos elegir que valores queremos que tomen al principio. Por
ejemplo como estos valores no deben salir del rango de -1 y 1.
Para el caso de los pesos notamos que son en total 36 pesos que salen de las combinaciones posibles de las entradas con la primera capa
oculta (4x9).
Para el caso de los pesos L notamos que son en total 45 pesos que salen de las combinaciones posibles de la primera capa oculta con la
segunda capa oculta (9x5).
Para el caso de L notamos que son en total 10 pesos que salen de las combinaciones posibles de la segunda capa oculta con la capa de
salida (5x2).
Para el caso de notamos que hay tantos umbrales dependiendo de
la cantidad de neuronas que hayan en cada capa. 1 = 9 2 =
5 3 = 2
Como interpretar una ecuacin matemtica a un
lenguaje de programacin
Es muy comn que tengamos la lgica de programacin en nosotros, pero hay
muchos casos que eso no es suficiente ya que cuando tenemos un sistema de
ecuacin y lo deseamos llevar a un lenguaje de programacin nos es imposible
hacerlo.
Para realizar este tipo de abstraccin es indispensable tener una nocin clara
de algunos temas de programacin como: ciclos repetitivos, manejo de
vectores y matrices, manejo de funciones. No se necesita estrictamente un
lenguaje de programacin especfico sino que cualquiera puede funcionar, solo
basta que tengamos claro como es la sintaxis de cada lenguaje. Es por eso que
se recomienda que el programador realice sus avances en el lenguaje que
mejor domine.
-
Ejemplo
1 = 1
=1
=1
Si deseamos calcular las salidas de las neuronas de la primera capa oculta, la
cual se calcula con ecuacin anterior. Debemos saber que significa cada uno
de sus componentes:
Es la funcin de activacin que hayamos escogido y como se puede notar paro los que no lo han podido ver, esta funcin afecta al resultado final que se
produce dentro de los corchetes. Es decir que el valor que nos arroje la
solucin del sistema de ecuacin lo llevaremos a nuestra funcin de activacin.
Es el valor de la entrada a la red neuronal y j va tomando el valor de cada
entrada, es decir que el valor mximo de j depende de la cantidad de entradas
que haya. En nuestro caso tomara un valor mximo de cuatro.
Toma el valor mximo de entradas a la red
Son los valores de los pesos de la primera capa oculta con las entradas.
Los ndices indican que peso hay que tomar especficamente.
1 Indica el umbral y al igual que los pesos el ndice indica el umbral especfico. El primer nmero indica la capa a la que pertenece.
= 1 Tomara el valor mximo de neuronas por cada capa
Ahora bien la sumatoria dentro del sistema se puede representar dentro de un
ciclo repetitivo en el lenguaje de programacin. Par ello el subndice indica
donde inicia y el ndice superior indica donde termina.
Pero como podemos notar fuera de los corchetes hay otro subndice lo cual nos
indica inmediatamente que es necesario otro ciclo repetitivo que tiene como
limite el subndice de la capa siguiente.
Como en nuestro caso sabemos el tamao de los pesos y umbrales
vamos a realizar los procesos ajustndolo a este sistema propuesto.
Se puede ver lo siguiente:
4,9 9,5 5,2 2
-
1 9 2 5 3 (2)
Utilizaremos el lenguaje de programacin Visual Basic y lo primero que
debemos hacer es crear los vectores y matrices que componen nuestro
sistema. Recordemos que los vectores son de una dimensin mientras que las
matrices son de (nxm).
Si traemos este concepto de vectores y matrices a nuestro caso podemos ver
que los pesos corresponden a matrices mientras los umbrales son vectores.
Digamos que tenemos la siguiente tabla que representa una compuerta lgica
cualquiera
X1 X2 X3 X4 Yd1 Yd2
1 1 0 0 1 1
1 0 1 0 0 0
0 1 0 1 0 0
0 0 1 1 0 0
Declaramos primeramente nuestros vectores y matrices, esto lo hacemos de
forma global dentro del formulario para que puedan ser utilizados en cualquier
momento por el programa.
Como en Visual Basic los ndices comienzan desde la posicin cero entonces
debemos restar 1 a cada una de las posiciones que tenemos planteada en
nuestro sistema. Ejemplo como tenemos en la primera capa 9 neuronas al
momento de ser declaradas debemos poner 8, porque para visual basic seria
0,1,2,3,4,5,6,7,8 y en total tendra las 9 posiciones.
-
Como ya conocemos los valores de la entradas y las salidas, las
inicializamos directamente dentro de nuestro formulario de arranque
No es una camisa de fuerza realizarlo de esta forma ya que la programacin
tiene muchos caminos para llegar a una solucin, es muy probable que hayan
muchas formas mejores de realizar este sistema.
-
Como los primeros pesos y umbrales son aleatorios los generaremos
inicialmente.
Teniendo ya las entradas, las salidas, los pesos y los umbrales ya
podemos empezar a realizar el proceso interno que se presenta dentro
de los corchetes 1
-
Hemos adicionado al cdigo anterior lo que se seala con las flechas
Ahora aplicamos la funcin de activacin a cada uno de los valores de
salida de cada iteracin
-
Creamos una funcin que guarde en el ComboBox las funciones de activacin,
el ComboBox se llama FnActivacion
Debemos iniciar esta funcin al formulario de arranque para que las pueda
cargar al iniciar.
Lo que hemos adicionado es lo que esta seleccionado.
Hemos adicionado para que nos muestre los pesos y umbrales iniciales,
tambin al final hemos declarado para que nos presente los nuevos valores
que ha tomado las primera capa h1 dependiendo de la funcin de activacin
que hayamos elegido. Cabe recordar que no estamos validando todo ya que
-
solamente nos estamos enfocando en la forma de cmo se interpretan este tipo
de sistemas neuronales.
Este ltimo bloque lo hemos introducido dentro del ciclo mayor.
Como nos hemos dado cuenta el planteamiento para resolver el sistema para
las salidas de la primera capa oculta ha funcionado. Las dems salidas se
hacen de manera anloga a esta, solo basta con tener claro que ndices se
deben tomar.
-
Cdigo completo
-
God bless