Está en la página 1de 33

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

CENTRO UNIVERSITARIO UAEM ATLACOMULCO

“REPORTE FINAL DE LA RED BACKPROPAGATION”

REDES NEURONALES

INTEGRANTES DEL EQUIPO:

Jesús Barrios Crescencio


Diego Nicolás Martínez
Oscar Mondragón Alcántara

INGENIERIA EN COMPUTACIÓN

ICO 17 2014 B

28 de Noviembre de 2014

P á g i n a 1 | 33
INDICE

CAPITULO 1 RED BACKPROPAGATION.


Resumen ------------------------------------------------------------------------------- 3
Introducción ---------------------------------------------------------------------------- 4
1 Desarrollo ----------------- ---------------------------------------------------------- 5
1.1 Algoritmo de la Red Backpropagation ------------------------------------- 5
1.2 Estructura de la red Backpropagation--------------------------------------- 7
1.3 Gradiente descendiente. ------------------------------------------------ ------ 8
1.4 Derivada de la función sigmoidal. ------------------------------------------- 10
1.5 Demostración de reglas de actualización. -------------------------------- 11
1.6 Razón de aprendizaje. --------------------------------------------------------- 13
1.7 Momento en una red Backpropagation. ------------------------------------14
1.7.1 Los métodos de Watrous, Eaton-Oliver y Yu-------------------------15
1.8 Sesgo en una red Backpropagation. -----------------------------------------18
1.8.1 Manejo del Sesgo en una Red BackPropagation ------------------19
1.9 Control de convergencia. ------------------------------------------------------ 20
1.10 Condiciones de finalización. ------------------------------------------------- 21
CAPITULO 2 DESARROLLO DEL PROGRAMA.
2.1 Problema que resuelve. -------------------------------------------------------- 22
2.2 Diseño y desarrollo. ------------------------------------------------------------- 22
2.3 Funcionamiento. ------------------------------------------------------------------
2.4 Evidencias -------------------------------------------------------------------------
Conclusiones-----------------------------------------------------------------------------
Anexos-------------------------------------------------------------------------------------
Referencias -----------------------------------------------------------------------------

P á g i n a 2 | 33
CAPITULO 1
RESUMEN

Las redes neuronales como el Perceptron multicapa, la red Adaline y Madaline son
mecanismos que pretenden resolver la falta de captación no lineal de los
algoritmos seminales de entrenamiento, por tanto están limitados a resolver la
separabilidad en la clasificación de problemas típicamente lineales.es decir son
buenos clasificadores lineales y teóricamente también podrían resolver cualquier
problema pero no disponen de procedimientos y mucho menos de algoritmos
generales de entrenamiento para estos casos.

La red Backpropagation (retro propagación) surge como un método alternativo


para resolver la generalidad no alcanzada por las redes antes mencionadas.

La retropropagación, también conocida como método para calcular el gradiente del


error, básicamente pretende retropropagar el error y así tratar de optimizar los
procesos de tal manera que el error disminuya cada vez más. Entonces el
algoritmo Backpropagation se desarrolla como un mecanismo de aprendizaje para
perceptrones multicapa y es actualmente de alta popularidad para la solución de
problemas de clasificación y pronostico.

La backpropagation es un método de entrenamiento general para redes multicapa,


requiriendo diferenciabilidad en la capa de salida. Es decir la función debe ser
diferenciable (sigmoide).
El algoritmo de propagación hacia atrás, o retropropagación (Backpropagation), es
una regla de aprendizaje que se puede aplicar en modelos de redes con más de
dos capas. De forma simplificada, el funcionamiento de una red Backpropagation
consiste en el aprendizaje de un conjunto predefinido de pares de entradas-salidas
dados como ejemplo, empleando un ciclo propagación-adaptación de dos fases:
primero se aplica un patrón de entrada como estímulo para la primera capa de las
neuronas de la red, este estímulo se va propagando a través de todas las capas
superiores hasta generar una salida, el resultado obtenido en las neuronas de
salida se compara con la salida que se desea obtener y se calcula un valor del
error para cada neurona de salida. A continuación, estos errores se transmiten
hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa

P á g i n a 3 | 33
intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de
error aproximado a la participación de la neurona intermedia de la salida original.
Este proceso se repite capa por capa, hasta que todas las neuronas de la red
hayan recibido un error que describa su aportación relativa al error total.
Basándose en el valor del error recibido, se reajustan los pesos de conexión de
cada neurona, de manera que la siguiente vez que se presente el mismo patrón, la
salida esté más cercana a la deseada.

El proyecto realizado es un programa en java que utiliza el algoritmo


backpropagation para resolver la tabla lógica XOR, el programa utiliza una capa
de entrada, una capa oculta y una de salida, además se grafica el error de la red
según va aprendiendo.

INTRODUCCIÓN
El hombre se ha caracterizado por la búsqueda constante de nuevas vías para
mejorar sus condiciones de vida, esto le ha servido para reducir el trabajo en
aquellas operaciones en las que la fuerza juega un papel primordial. Los
progresos obtenidos han permitido dirigir sus esfuerzos a otros campos, como por
ejemplo, a la construcción de máquinas calculadoras que ayuden a resolver de
forma automática y rápida determinadas operaciones que resultan tediosas
cuando se realizan a mano.

Las redes neuronales son más que otra forma de emular ciertas características
propias de los humanos, como la capacidad de memorizar y de asociar hechos. Si
se examinan con atención aquellos problemas que no pueden expresarse a través
de un algoritmo, se observará que todos ellos tienen una característica en común:
la experiencia. El hombre es capaz de resolver estas situaciones acudiendo a la
experiencia acumulada. Así, parece claro que una forma de aproximarse al
problema consista en la construcción de sistemas que sean capaces de reproducir
esta característica humana.

En la siguiente investigación se presenta la investigación de un modelo de red la


cual lleva por nombre “Backpropagation”, esta investigación tiene como principal
objetivo visualizar cada uno de los componentes que conforma esta red así como
lo que puede afectar en esta misma, recordando un poco de su historia hasta su
misma elaboración en un programa destacando cada parte que esta investigación
toma en forma teórica y aplicándola en el proyecto.

P á g i n a 4 | 33
La importancia de la red Backpropagation consiste en su capacidad de auto
adaptar los pesos de las neuronas de las capas intermedias para aprender la
relación que existe entre un conjunto de patrones de entrada y sus salidas
correspondientes. Es importante la capacidad de generalización, facilidad de dar
salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de
entrenamiento. La red debe encontrar una representación interna que le permita
generar las salidas deseadas cuando se le dan entradas de entrenamiento, y que
pueda aplicar, además, a entradas no presentadas durante la etapa de
aprendizaje para clasificarlas. La Backpropagation sólo necesita ejemplos de
mapeo para aprender. La flexibilidad de esta red es aumentada con la posibilidad
de elegir número de capas, interconexiones, unidades procesadoras, constante de
aprendizaje y representación de datos. Como resultado de estas características la
red Backpropagation es capaz de participar con éxito en una amplia gama de
aplicaciones.
El mayor inconveniente es el tiempo de convergencia. Las aplicaciones reales
pueden llegar a tener miles de ejemplos en el conjunto de entrenamiento y ello
requiere días de tiempo de cálculo. Además la Backpropagation es susceptible de
fallar en el entrenamiento, es decir, la red puede que nunca llegue a converger.

1 DESARROLLO

1.1 1ALGORITMO DE LA RED BACKPROPAGATION

En una red Backpropagation existe una capa de entrada con n neuronas, una
capa de salida con m neuronas y al menos una capa oculta de neuronas internas.
Cada neurona de una capa (excepto las de entrada) recibe entrada de todas las
neuronas de la capa anterior y envía su salida a todas las neuronas de la capa
posterior (excepto las de salida). No hay conexiones hacia atrás (feedback) ni
conexiones laterales entre neuronas de la misma capa

Los pasos y fórmulas a utilizar para aplicar el algoritmo de entrenamiento en una


red Backpropagation son los siguientes:

1) Se inicializan los pesos de la red con valores pequeños aleatorios.

Para inicializar los pesos según Nuyen y Widrow su proceso distribuye los
pesos iniciales en las neuronas ocultas de manera que es más probable que
cada ejemplar de entrada causará una neurona oculta para aprender de
manera eficiente, además agregan que los pesos se deben inicializar d manera
P á g i n a 5 | 33
aleatoria en un rango de [-1:1] y esto ayuda a prevenir una saturación
prematura en los nodos ocultos y así hacer que la convergencia no se retarde.

2) Se presenta un patrón de entrada, Xp (xp1,xp2,...,xpn), y se especifica la salida


deseada que debe generar la red (d1,d2,...,dm). Si por ejemplo la red es utilizada
como un clasificador todas las salidas serán cero, salvo una, que será la de la
clase a la que pertenece el patrón de entrada.

3) Se calcula la salida actual de la red. Para ello se presentan las entradas a la red
y se va calculando la salida que presenta cada capa hasta llegar a la capa de
salida (y1,y2,...,ym). Los pasos serían los siguientes:

 se calculan las entradas netas para las neuronas ocultas procedentes de


las neuronas de entrada; para una neurona j oculta en donde el índice h se
refiere a magnitudes de la capa oculta (hidden), el subíndice p, al pésimo
vector de entrenamiento, j a la j-ésima neurona oculta, y q es el umbral de
activación de la neurona y puede ser opcional; el índice i se varía entre 1 y
el número de neuronas de la capa de entrada.


 Se calculan las salidas de las neuronas ocultas.

 Se realizan los mismos cálculos para obtener las salidas de las neuronas de
salida (output) donde el índice j varía entre 1 y el número de neuronas de la
capa oculta.

4) Se calculan los términos de error de las salidas de todas las neuronas. Si la


neurona k está en la capa de salida el error es

siendo f (net(o) )k la tasa de cambio o pendiente de la función de transferencia. Si


la neurona j no es de salida el error es

valor que depende de todos los términos de error de la capa de salida

P á g i n a 6 | 33
Los umbrales internos de las neuronas se adaptan de forma similar, considerando
que están conectados con pesos desde entradas auxiliares de valor constante.

5) Se actualizan los pesos. Para ello, se utiliza el algoritmo recursivo, comenzando


por las neuronas de salida y trabajando hacia atrás hasta llegar a la capa de
entrada, ajustando los pesos de la siguiente forma

 para los pesos de las neuronas de la capa de salida.

 para los pesos de las neuronas de una capa oculta

siendo la tasa de aprendizaje (amplitud de paso).

A mayor tasa de aprendizaje, mayor es la modificación de los pesos en cada


iteración, con lo que el aprendizaje será en general más rápido. Aunque, por otro
lado, puede dar lugar a oscilaciones. Para filtrar esas oscilaciones se añade en las
expresiones anteriores el término constante (momento) que determina el efecto
en t+1 del cambio de los pesos en el instante t

6) El proceso se repite hasta que el error

resulta aceptablemente pequeño para cada uno de los patrones aprendidos.

1.2 ESTRUCTURA DE UNA RED BACKPROPAGATION

En una red cuya arquitectura incluye capas ocultas con varias neuronas (nodos)
ocultas, podemos observar las siguientes características de diseño.la red
Backpropagation es una red multicapa que contiene la capa de entrada y puede

P á g i n a 7 | 33
tener una o más capas ocultas y a capa de salida y también distinto número de
neuronas por cada capa..

La figura 1.1 muestra la estructura de una red backpropagation básica, este


ejemplo en particular contiene una capa de entrada, dos capas ocultas y una capa
de salida y pueden contener diferente

1.1 Estructura de una red Backpropagation

Características de una red con esta estructura:


 Está conectada hacia delante.
 La capa de entrada sirve solamente como un punto de distribución.
 Una neurona está asociada con un conjunto de pesos que conecta a sus
entradas. Los pesos en la capa uno terminan en las neuronas de la capa
uno.
1.3 GRADIENTE DESCENDIENTE
La regla delta propuesta por Widrow en 1960 ha sido extendida a redes con capas
intermedias con conexiones hacia adelante (feedforward) y cuyas células tiene
funciones de activación continuas (lineales o sigmoidales), dando lugar al
algoritmo Backpropagation.
Estas funciones continuas son no decrecientes y derivables, a diferencia de la
función escalón que se utiliza en el Perceptrón, que no es derivable en el punto de
discontinuidad.
Este algoritmo utiliza también una función o superficie de error asociada a la red,
buscando el estado estable de mínima energía o de mínimo error a través del
camino descendente de la superficie del error. Por ello, realimenta el error del

P á g i n a 8 | 33
sistema para realizar la modificación de los pesos en un valor proporcional al
gradiente decreciente de dicha función de error.
El error es la diferencia cuadrática media entre las salidas de la red con los pesos
actuales y las salidas deseadas. El método que sigue la regla delta generalizada
para ajustar los pesos es actualizarlos de forma proporcional a la delta o diferencia
entre la salida deseada y la obtenida:

Dada una neurona Ui y la salida que produce yi el cambio que se produce en el


peso de la conexión que une la salida de dicha neurona con la unidad Uj (wji) para
un patrón de aprendizaje p determinado es:

En donde el subíndice p se refiere al patrón de aprendizaje concreto ya(alfa) es la


constante o tasa de aprendizaje.

Figura. Conexión entre una neurona de una capa oculta con una neurona de
salida. (Villanueva, 2002)

El punto en el que difieren la regla delta generalizada de la regla delta es en el


valor concreto de dpj. Por otro lado, en las redes multinivel a diferencia de las
redes sin neuronas ocultas, en principio no se puede conocer la salida deseada de
las neuronas de las capas ocultas para poder determinar los pesos en función del
error cometido. Sin embargo inicialmente si podemos conocer la salida deseada
de las neuronas de salida. Según esto, si consideramos la unidad Uj de salida,
entonces definimos

donde dpj es la salida deseada de la neurona j para el patrón p y netj es la entrada


neta que recibe la neurona j.
Esta fórmula es como la de la regla delta, excepto en lo que se refiere a la
derivada de la función de transferencia. Este término representa la modificación
que hay que realizar en la entrada que recibe la neurona j en el caso en que dicha

neurona no sea de salida, el error que se produce


Donde el rango k cubre todas aquellas neuronas a las que la red está conectada
con la salida de Uj. De esta forma, el error que se produce en una neurona oculta
es la suma de los errores que se producen en las neuronas a las que está
conectada la salida de ésta, multiplicando cada uno de ellos por el peso de la
conexión.
P á g i n a 9 | 33
Adición de un momento a la regla delta generalizada
El método de propagación de error, también conocido como del gradiente
descendiente, requiere un importante número de cálculos para lograr el ajuste de
los pesos en la red. En la implementación del algoritmo, se toma una amplitud de
paso que viene dada por la tasa de aprendizaje a(alfa). A mayor tasa de
aprendizaje, mayor es la modificación de los pesos en cada iteración, con lo que el
aprendizaje será más rápido, por otra parte, puede dar lugar a oscilaciones.
Rumelhart, Hinton y Williams sugirieron que para filtrar estas oscilaciones se
añada en la expresión del incremente de los pesos un término (momento)b (beta),
de manera que dicha expresión quede:

donde b(beta) es una constante (momento) que determina el efecto en t+1 del
cambio de pesos en el instante t (Rumelhart, Hinton, & Williams, 1986).
Con este momento se logra la convergencia de la red en menor número de
iteraciones, ya que si en t el incremento de un peso era positivo y en t+1 también,
entonces el descenso por la superficie del error en t+1 es mayor. Sin embargo, si
en t el incremento era positivo y en t+1 es negativo, el paso que se da en t+1 es
más pequeño, lo cual es adecuado, ya que esto significa que ha pasado por un
mínimo y que los pasos deben ser menores para poder alcanzarlo.
Resumiendo, el algoritmo queda como sigue:
donde:

si Uj es una neurona de salida, y

si Uj no es una neurona de salida

1.4 DERIVADA DE LA FUNCIÓN SIGMOIDAL.

P á g i n a 10 | 33
1.5 DEMOSTRACION DE LAS REGLAS DE ACTUALIZACIÓN

Backpropagation es un método gradiente descendente. Minimiza el cuadrado de


las diferencias entre los valores calculados y deseados de las salidas sumadas
sobre todas las unidades de salida y todos los pares, entradas y salidas, del
conjunto de entrenamiento.

 REGLAS DE ACTUALIZACION DEL ERROR RESPECTO A Wij

Si y

Si

P á g i n a 11 | 33
Si

 DERIVADA DEL ERROR RESPECTO A Wjk

P á g i n a 12 | 33
1.6 RAZÓN DE APRENDIZAJE DE LA RED BACKPROPAGATION:
Razón de Aprendizaje Variable
Incrementa la velocidad de convergencia al aumentar la velocidad de aprendizaje
α en superficies planas y disminuye esta razón cuando la pendiente aumenta.
3. Razón de Aprendizaje Adaptable 1
Una forma de incrementar la velocidad de convergencia hacia un mínimo del error
cuadrático medio (E) es variando la velocidad de aprendizaje.
si E disminuye constantemente, ᴧE es negativo para un número de pasos,
entonces se debe incrementar la α .

4. Razón de Aprendizaje Adaptable 2


Si E se ha incrementado( ᴧE>0) entonces se debe reducir la α .

Funcion de transferencia:
La función de transferencia o función de activación es la encargada de representar
las salidas en función de las entradas a cada neurona. Para el modelo de red
Backpropagation dicha función debe ser derivable. La sigmoidal han de ser
adaptada a las salidas, es decir, los datos de salida han de ser normalizados.

Es un método de entrenamiento general para redes multicapas, requiriendo


diferenciabilidad en la capa de salida. Es decir la función debe ser diferenciable
(sigmoide). En la figura 1.3 podemos observar una neurona básica en
backpropagation, con sus capas de entrada, oculta y de salida. La de salida
activada con una función sigmoidal que describe valores de z entre 0 y 1.

P á g i n a 13 | 33
Figura 1.3

si n >> 0 entonces z _ 1
si n << 0 entonces z _ 0

1. Las neuronas transforman una entrada no- restringida en una señal limitada z
2. La función sigmoidal restringe el rango de z entre 0 y 1.
3. Es diferenciable. Hay que tener presente que la no linealidad es una
característica resaltante de este algoritmo.
4. Las entradas a la unidad de procesamiento son ejemplos de entrada o
salidas de la capa previa

1.7 MOMENTO EN UNA RED BACKPROPAGATION


Después que el error es calculado sobre cada conjunto de entrenamiento (patrón),
cada peso es ajustado en proporción al gradiente del error calculado propagado
hacia atrás desde la salida hacia la entrada, tal como se vio en el algoritmo y el
ejemplo. Los cambios en los pesos reducen el error total de la red neuronal. Para
evitar que en la superficie del error los pesos estimen una minimización del error
con un óptimo local, se aplica el momento como un mecanismo alternativo para
cambiar la dirección de los pesos y eventualmente logre un mínimo global. En
consecuencia, mejora los tiempos de entrenamiento al algoritmo backpropagation.

En esta caso al aplicar momento, en lugar de calcular los pesos para un conjunto
de entrenamiento mediante
se afecta esta expresión mediante un término que indica la contribución
proporcional (término momento) a × de los pesos previos o anteriores. Es decir,

Con respecto a esta variación, se ha encontrado que en algunos casos puede


producir buenos resultados cuando en la superficie del error alcanza un área plana
o un mínimo local puntual (profundidad estrecha y bastante grande). En estos
casos valores cercano a uno (por ej.: 0.9) podrían ayudar a mejorar la solución
(permiten obviar este mínimo local). En otros casos, en la superficie del error, por
P á g i n a 14 | 33
ejemplo áreas ondulantes amplias y pocas profundas, no ayudarían en mayor
grado. De ahí que la solución pueda estar afectada por varios mínimos locales,
haciendo inalcanzable un mínimo global.

Suavizar la dirección del descendiente con momento


Para superar grandes oscilaciones en la dirección de descenso más
agudo con plazo adicional de primer orden (velocidad) a la que llamó momento. La
formulación de actualización de peso con el momento se convierte.

Donde es un componente del vector de peso en la tierra


pesan actualización (iteración) y es el parámetro de impulso (o coeficiente de
momento).
Esta suavización de la dirección ayuda a evitar oscilaciones, siempre que los
valores razonables para puede ser determinada. Esto añade el efecto de la
resistencia a la fricción que depende de la velocidad (la velocidad de cambio en
los pesos), que suaviza los incrementos de peso.
Un estudio realizado por Perantonis y Karras (1995) estudió los efectos de
momentum. They encontraron que sin un término momentum hubo descenso
oscilatorio y que el término impulso reducido sustancialmente el número de pasos
necesarios. Utilizaron los multiplicadores de Lagrange para desarrollar una fórmula
de actualización con dos parámetros extra que debe ser dada por el usuario. Esta
técnica produjo mejoras de 41% a 53% para los buenos valores de estos
parámetros. El aprendizaje era más rápido que el BP con ímpetu. QP
(quickpropagation) y los métodos delta-bar-delta sobre una variedad de
problemas. En el peor en una variedad de problemas. En el peor, que era
comparable a la QP.
1.7.1 MÉTODOS DE WATROUS, EATON-OLIVER Y YU

Según Fahlman (1998), muy poco, si alguno, la mejora se consigue mediante


términos impulso, mientras que Riedmiller y Braun (1993) afirman que aunque
puede ayudar en algunos en algunos casos, en realidad pueden obstaculizar la
convergencia en otros. Por otro lado con una buena selección de los parámetros
de la velocidad de convergencia se puede aumentar significativamente, de
acuerdo con Zurada.
Esto muestra la sensibilidad del valor de a los datos. Cuando los datos son

P á g i n a 15 | 33
ruidoso, así como para hacer que el nervioso, entonces el suavizado con
el término momento es muy deseable. El ruidoso los datos, mayor será el
coeficiente de momento debe ser ( )
También aparecen los ejemplares mas similares que no hay en cada clase,
entonces se requerirá la más suavizado que y el más grande debe ser. Algunos
investigadores utilizan valores tan bajos como 0,1, mientras que otros utilizan
valores tan altos como 0,9.
Tomamos nota de que Fahlman hizo muchas pruebas en conjuntos de datos de N-
M.N (véase el apéndice 1 bis) tales como los datos 10/05/10 y 20-10-20. Sus
datos eran "limpia" (determinista) en lugar de ruidoso Fahlman (1988) menciona la
estrategia de Paul et al (1986) que FIRTS conjuntos . A un valor pequeño y luego
aumenta por encima de las iteraciones.
Watrous considera la ecuación diferente (Watrous, 1987, p.624)
(5.6a)
y muestra que el impulso aplica una ganancia aproximada de a la
etapa después de que el filtro se asienta sobre muchas iteraciones ( ). La
ecuación (5.6a) es un sistema de entrada / salida recursiva que actúa como un
filtro de paso bajo cuya ganancia y de corte son ambas controladas por (Eaton y
Oliver, 1992) La ecuacion (5.6a) de la siguiente manera cuando escribimos.
(5.6b)

la transformada z de esta funcion de transferencia es:


(5.7a)
el punto de corte efectiva es entre | z | = 1 y | z | =. Tenga en cuenta que z = exp
(jw), de modo que w = 0 significa que z = exp (0) = 1. Así, la baja frecuencia
(corriente continua, o constantes) es
(5.7b)
Eaton ad Oliver utilizar la ganancia G = derivado de la ecuación (5.6b)
por las transformadas z de los lados izquierdo y derecho
(5.7c)
de modo que

(5.7d)
esto representa dos filtros en cascada donde los coquetea uno tiene ganancia n y
el segundo tiene ganancia 1/(1- Así que utilizan una ganancia de G
=

P á g i n a 16 | 33
Eaton y Oliver (1992) también utilizan la regla heurística

(5.7e)
donde Kp es el número de ejemplares de la clase de PTH (tipo de patrón) y
es una aproximación a la longitud media del gradiente. Se sacian
de que una ganancia de alrededor de G = 3.5 funciona bien en la práctica en
muchos conjuntos de datos. Es posible elegir el parámetro de impulso.
(5.7f)
a sub optimización la formación, sobre la resolución de las ecuaciones (5.7e) y
(5.7b). Entrenan en el modo por lotes. Ellos encontraron que un gran coeficiente
de impulso, decir , acelera la convergencia cuando hay un gran número de
tipos de patrones. Cuando hay pocos tipos de patrones, a continuación, un valor
inferior puede ofrecer una formación más rápida. Pizca un valor mayor de , la
sensibilidad de la de la formación a variaciones en se baja. El valor
óptimo de es esperimental, pero depende n.

Figura 5.6 muestra dos carreras y los datos que figuran en Digit12 Appendixx 1 la
al final del capítulo 11. En el FirstRun se muestra en la parte (a), el impulso se
establece en . En la segunda manga, que se fija en . Hubo 10
patrones y un vector de características ejemplos para cada patrón. Las diferencias
en la raíz del error cuadrático medio (RMSE) en el eje vertical frente a número de
iteración en el eje horizontal se debe únicamente al cambio en el valor de . De la
primera ejecución, no hubo fallos - es decir, reconocimiento incorrecto de los
vectores ejemplares en que se entrenó. En la segunda pasada, hubo cuatro fallos
de cada 10 vectores. Hemos visto oscilaciones similares causadas por un entorno
tan bajo como .
El método impulso adaptativo de Yu et al. (1993) utiliza un término impulso
cambiante que tiende a ortogonalizar los direcciones de búsqueda, y por lo tanto
constituye una metodología de direcciones conjugadas (ver Sección 5.9).
Ortogonalidad de gradiente direcciones consecutivas que requiere.

(5.8)

donde el superíndice T indica la transpuesta de la columna de gradiente de vector


(para que el vector resultante multiplicación fila por columna es el producto punto).
Al derivar un término impulso - a través de ortogonalización de Gram-Schmidt tal
que.

(5.9a)

(5.9b)

P á g i n a 17 | 33
donde es el gradiente encontrado partir de las ecuaciones de gradiente
(ver ecuaciones 4.2) y y son los gradientes calculados en las
iteraciones actuales y anteriores utilizando el método de impulso de adaptación de
las ecuaciones (5.9). Si BP con el impulso utiliza O (W) cálculos por iteración,
entonces esto lleva 0 (cW) cálculos por iteración, donde 0<c<3 y W es el número
de pesos.
Yu et al. (1993) encontraron que mientras que la convergencia de la dinámica de
adaptación de retropropagación fue más lento en las iteraciones iniciales, se
realiza mucho mejor en las iteraciones posteriores y produjo una SSE
significativamente menor.
1.8 SESGO EN UNA RED BACKPROPAGATION
El algoritmo Backpropagation se utiliza para ajustar los pesos y sesgos de una red
con el fin de minimizar la suma del cuadrado de los errores de la red.
El algoritmo BP es un método iterativo de optimización de gradiente descendente,
cuyos detalles se presentan a continuación.
Para una neurona j en una capa oculta o en la salida, la señal de salida es: o j

Donde:
f es la función de activación de la neurona
wij son los pesos de las conexiones entre la neurona considerada j, y la neurona i,
perteneciente a la capa precedente
oi es la salida de la neurona i de la capa precedente
bj es el sesgo de la neurona j
Además, se define:

la salida de la neurona j, entonces es dada por:

para el aprendizaje, el valor de −bj se considera como un peso correspondiente a


la conexión
de la neurona j con una supuesta neurona de la capa precedente cuya salida es
constante e
P á g i n a 18 | 33
igual a uno.

1.8.1 Manejo del Sesgo en una Red Backpropagation


Eaton y Oliver (1992) usaron una regla heurística con la que obtuvieron un valor
adecuado para considerarlo como el momento en la red. Tal regla es

Ellos encontraron que un gran coeficiente del momento es µ = 0.9, acelera la


convergencia cuando hay un gran número de tipos de patrones.

La importancia de la red Backpropagation consiste en su capacidad de auto


adaptar los pesos de las neuronas de las capas intermedias para aprender la
relación que existe ente un conjunto de patrones de entrada y sus salidas
correspondientes. Es importante la capacidad de generalización, facilidad de dar
salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de
entrenamiento. La red debe encontrar una representación interna que le permita
generar las salidas deseadas cuando se le dan entradas de entrenamiento, y que
pueda aplicar, además, a entradas no presentadas durante la etapa de
aprendizaje para clasificarlas.
Matriz del gradiente del error:

Teorema: Si el gradiente del error con respecto a la salida neurona, es conocida y


depende solo de la salida de la red {z L(Xp)} y del target {tp}:

Entonces el gradiente del error puede ser calculado recursivamente de acuerdo a


las siguientes expresiones:

Para L-1 hasta 1


Para las capas 1 hasta L

P á g i n a 19 | 33
Todas las implementaciones de red neuronal no mantienen separados los
conjuntos de ponderaciones y sesgos, sino que combinan las ponderaciones y los
sesgos en una matriz de ponderaciones. Recuerde que el cálculo del valor de la
neurona entrada a oculto era semejante a (i0 * w03) + (i1 * w13) + (i2 * w23) + b3,
donde i0 es el valor de entrada [0], w03 es la ponderación de la entrada y de la
neurona y b3 es el valor del sesgo para la neurona oculta. Si creamos una entrada
falsa adicional que tiene un valor ficticio de 1,0 y una fila adicional de
ponderaciones que contenga los valores de sesgo, entonces el cálculo descrito
anteriormente se convierte en: (i0 * w03) + (i1 * w13) + (i2 * w23) + (i3 * w33),
donde i3 es el valor de entrada ficticio 1,0 y w33 es la inclinación. La explicación
es que este método simplifica el modelo de la red neuronal. No estoy de acuerdo.
En mi opinión, al combinar las ponderaciones con los sesgos, cuesta más
entender el modelo de la red neuronal y las implementaciones son más proclives a
los errores. Pero parece que soy el único autor que tiene esta opinión, por lo que
usted debe tomar su propia decisión de diseño.

1.9 CONTROL DE LA CONVERGENCIA

Para acelerar el proceso de convergencia de los pesos, Rumelhart et al. (1986)


sugirieron añadir un factor momento, α, que tiene en cuenta la dirección del
incremento tomada en la iteración anterior:

La velocidad de aprendizaje se controla mediante . Normalmente, debe ser un


número entre 0.05 y 0.25.

Velocidad de convergencia:

El valor de  se aumenta a medida que disminuye el error.

Añadir un momento (sumar una fracción del ajuste de peso anterior al ajuste
actual).

Si una red deja de aprender es necesario:


P á g i n a 20 | 33
 Realizar un cambio en el número de neuronas ocultas.

 Volver a empezar con un conjunto distinto de pesos

1.10 CONDICIONES DE FINALIZACIÓN DE LA RED BACKPROPAGATION

Las condiciones para que la red termine su entrenamiento son:

 Que el error cuadrático medio sea inferior a un máximo establecido,


este máximo es llamado umbral.

 Que el número de iteraciones sea superior a un máximo establecido.

 Que el error relativo, entendiendo por error relativo la variación relativa


del error cuadrático medio actual respecto al anterior.

P á g i n a 21 | 33
CAPITULO 2

2.1 PROBLEMA QUE RESUELVE

Una red neuronal de una sola capa no tiene la capacidad para resolver problemas
no lineales, es por ellos que los investigadores tuvieron que desarrollar otros
algoritmos que pudieran resolver estos problemas, la red backpropagation si es
capaz de resolver problemas no lineales.
El programa que se presenta en este proyecto está basado en el algoritmo
backpropagation y resuelve el problema XOR.

El problema XOR es un problema no lineal ya que no se puede trazar una recta


que clasifique los valores de esta tabla de verdad. La no linealidad está
íntimamente relacionada con el solapamiento de las clases.

Como no es posible separar los patrones de la tabla de verdad XOR es por ello
que la backpropagation implementa una o más capas ocultas que permiten
transformar el espacio, para sí poder convertir el problema XOR en un problema
separable linealmente y la red logres resolverlo.

2.2 DISEÑO Y DESARROLLO


Para programar la red backpropagation se siguió paso a paso el algoritmo ya
establecido que debe seguir una red backpropagation,asi mismo se hizo una
análisis del algoritmo para poder desarrollar un pseudocódigo que sirvió como
base para programar la red .
El seudocódigo diseñado es el siguiente:
Procedimiento BACKPROPAGATION;

Inicializar los pesos aleatoriamente;


repetir
Poner entrada de entrenamiento;
FEED-FORWARD;
COMPUTO-GRADIENTE;
ACTUALIZA-PESOS;
hasta encontrar condición de final;
fin {BACKPROPAGATION)

Procedimiento FEED-FORWARD;
for capa = l to L do
P á g i n a 22 | 33
for nodo=1 to do =
end
end
end; {FEED-FORWARD)

Procedimiento COMPUTO-GRADIENTE;
for capa=L to 1 do
for nodo= 1 to do
if(capa=L )them
else

end;
for todos los pesos en todas las capas do

end;
end; (COMPUTO-GRADIENTE)
Procedimiento ACTUALIZA-PESOS;
for todos los pesos w do

end;
end; {ACTUALIZA-PESOS)

P á g i n a 23 | 33
2.3 FUNCIONAMIENTO

La siguiente pantalla del grafico muestra que a partir de este formulario se captura
cada uno de los datos y patrones que serán dados para el entrenamiento de la red
también dentro de esta misma los resultados de la red son mandados a cada una
de las celdas etiquetadas, dentro del programa en el código raíz del grafico se
encuentra el código que entrenará a la red que se muestra en el apartado (2.4),
con el subtítulo código, dentro de este mismo es referenciado la comprobación de
la red para saber si los resultados que arroja la red son correspondientes a la
salida deseada, el código cuenta con funciones de activación las cuales hacen lo
necesario para lograr que el error pueda disminuir satisfactoriamente. Cada una
de las clases del programa muestra las partes del algoritmo de la backpropagation
cuenta con la activación de las neuronas (calculando las f (net)) así mismo
referencia las neuronas que tiene la red neuronal, así como también la clase
Neurona indica los procesos necesarios a hacer para las neuronas de la capa de
salida y de las de la oculta.
La propagación del error es escrita en un documento de texto este documento
sirve para graficar, mediante el arrayList de java se insertan los puntos en un
jpanel, los pesos de la misma forma son guardados en un documento de texto el
cual es utilizado para hacer la comprobación de la red.

2.4 EVIDENCIAS

Pantallas de salida de la red backpropagation que se desarrolló:

La siguiente imagen muestra algunas de las iteraciones que realiza el programa, y


también muestra el error obtenido en cada iteración.

P á g i n a 24 | 33
La siguiente imagen muestra la gráfica obtenida al graficar el error que se va
obteniendo en cada iteración que hace la red backpropagation. Se puede observar
en la imagen a medida que la red va teniendo más iteraciones el error va
decreciendo, esto quiere decir que la red va aprendiendo.

P á g i n a 25 | 33
Código:

El código siguiente, es el proceso de entrenamiento de la red. En esta misma cada


proceso es llamado para poder realizar todo el proceso del aprendizaje,
inicialización de los pesos, la propagación del error, datos introducidos en cada
vector y en el bias.

El siguiente código es el metodo de la funcion de aprendizaje.

P á g i n a 26 | 33
Codigo de la clase Neuron1,esta clase es llamada en la red backpropagation para
obtener los datos de cada neurona y asi poder someterlas a la activacion. Cada
dato es enviado a los metodos de la clase para obtener el numero d entradas que
va a reibir tanto la cap oculta como la capa de salida; recibe la cantidad de
entradas por neurona, asi mismo comienza a realizar cada una de las funciones
de ativacion comenzando por la multiplicacion de los pesos por los patrones de
entrada la suma de esta multiplicaion es dada como parametro para la funcion
sigmoide y asi calcular las salidas de los pesos de cada una de las neuronas con
sus respectivas capas.

P á g i n a 27 | 33
CONCLUSIONES

Jesus:

Las reglas de aprendizajes analizadas en el curso: el perceptrón y el algoritmo


LMS nos han servido para resolver problemas linealmente separables, también
cabe mencionar que estos modelos de red solo entrenan y entran en la topología
de las redes monocapa, estas características representan una problemática para
los problemas no lineales ya que por su estructura no pueden dar una solución,
para resolver este problema de linealidad nacieron las redes multicapa.

Dentro de la clasificación encontramos a la backpropagation; este tipo de red


permite con mayor rapidez localizar e identificar patrones con su correspondiente
resultado en la salida de la red; un patrón de entrada provoca la estimulación de
la red, este mismo patrón se propaga desde la primera capa a través de las capas
P á g i n a 28 | 33
ocultas hasta generar una salida, el resultado se compara con la salida deseada y
se calcula el error para cada salida, el error se propaga hacia atrás, partiendo de
la capa oculta, en esta capa cada neurona contribuye a arrojar una salida; este
proceso se realiza hasta llegar al resultado más aproximado a la salida deseada
siendo esta topología de red de gran importancia hasta nuestros días, una de sus
aplicaciones en el contexto es la utilización de la red en sistemas de cómputo
realizando cálculos para resolver problemas matemáticos y lógicos, que un ser
humano tardaría demasiado tiempo en encontrar una solución.

Otra de sus aplicaciones es la utilización de esta red para filtrar los ruidos en las
señales, por lo tanto se concluye que las redes neuronales nos ayudan a mejorar
procesos que para el ser humano sería más tardado así mismo esta red
backpropagation resuelve los problemas que en la realidad se presentan es
común que en la realidad se presenten problemas no lineales que son más
difíciles de resolver.

Oscar:

El algoritmo de propagación hacia atrás, o retropropagación (Backpropagation), es


una regla de aprendizaje supervisado que se puede aplicar en modelos de redes
con más de dos capas.
La invención del algoritmo Backpropagation ha desempeñado un papel vital en el
resurgimiento del interés de las redes neuronales artificiales. La potencia de la
Backpropagation reside en su capacidad de entrenar capas ocultas y de este
modo supera las posibilidades restringidas de las redes de una única capa.

Básicamente la efectividad de una red Backpropagation depende de los valores


asignados para cada componente como el momento, el umbral, la función de
aprendizaje y del número de neuronas ocultas de la red. El momento sirve para
suavizar la caída brusca del error en la iteración para la cual la red alcanza
convergencia.

La backpropagation se aplica a cualquier res feedforward descrita por un grafo


dirigido que no tenga ciclos, esta red desciende el gradiente del vector completo
de pesos, no necesariamente al mínimo global pero para resolver este problema
se usa la técnica del “momento”, la backpropagation también se encarga de
minimizar el error sobre los vectores de entrenamiento, pero el entrenamiento
P á g i n a 29 | 33
puede ser muy lento( miles de iteraciones),sin embargo una vez entrenada la
ejecución de la red es muy rápida.
La red backpropagation actualmente es usada para el reconocimiento de
caracteres, imágenes, sonidos y clasificación de patrones, en fin su aplicación es
muy amplia debido a que es una de las redes más estables.

Diego:
La importancia de la red backpropagation es que su capacidad de adaptar los
pesos de las neuronas de las capas intermedias con una relación que existe un
conjunto de patrones de entrada con sus salidas correspondientes, además de
obtener un objetivo que es el de minimizar el error entre un conjunto de patrones,
para esta red su funcionamiento implica en dar una salida satisfactoria fácilmente,
a diferencia que las otras redes como el perceptron, la red adaline entre otras,
esta red adquiere más términos importantes para su funcionalidad como lo es la
fórmula de activación, la formula adquiere un factor de aprendizaje y un momento
que se adhiere a la fórmula para dar una estabilidad a la red y lograr un mínimo
global, como consecuencia mejora el tiempo de entrenamiento, además de utilizar
los procedimientos que se usaron en las otras redes como la función sigmoidal,
con esta función se pude lograr saber si la red logra aprender o no, acercándose a
los valores deseados.

ANEXOS

Las redes Backpropagation han demostrado su capacidad de trabajar con éxito en


un amplio rango de aplicaciones incluyendo clasificación de imágenes, síntesis de
voz, clasificación de ecos de sonar, sistemas de base de conocimientos,
codificación de información y muchos otros problemas de clasificación y de
percepción.
Algunos ejemplos y estudios de aplicaciones de la Backpropagation son los
siguientes:
Sejnowski y Rosenberg (1987) lograron un gran éxito con el sistema llamado
NetTalk, un sistema que convierte texto escrito en Inglés a voz de alta
inteligibilidad. La voz obtenida en la sesión de entrenamiento recuerda los sonidos
de un niño en sus diferentes estados del aprendizaje del hablar.

P á g i n a 30 | 33
En Japón NEC ha anunciado la utilización de una red backpropagation en un
sistema de reconocimiento óptico de caracteres, obteniendo una exactitud superior
al 99%. Esta mejora ha sido conseguida mediante la combinación de algoritmos
convencionales y una backpropagation que provee una verificación adicional.

Otra aplicación de la red backpropagation es el reconocimiento de formas de dos


dimensiones. Este tipo de sistemas es muy útil en aplicaciones de identificación de
números escritos a mano, lectura de caracteres escritos a mano, ordenamiento de
partes en una producción industrial, inspección automática de defectos y
procesado de imágenes médicas (Dayhoff 1988).

Cotrell, Munro y Zipper (1987) han realizado una aplicación de compresión de


imagen en la que las imágenes se representan con un bit por pixel, obteniendo un
reducción de 8:1 sobre los datos de entrada.

Un ejemplo clásico de la utilización de red Backpropagation es la función OR


exclusivo. La red Perceptron no es capaz de resolver este problema porque el
problema no es linealmente separable y su solución requiere dos capas de pesos
ajustables. Sin embargo, la red Backpropagation dispone de un método de
entrenamiento que ajusta los pesos de todas las capas y resuelve este problema
linealmente no separable. No obstante uno de los problemas comunes en resolver
la función X-or con la red Backpropagation es la presencia de mínimos locales y
por consiguiente la falta de convergencia de las respuestas correctas para todos
los patrones del conjunto de entrenamiento.

La siguiente imagen muestra una aplicación real de una red backpropagation en el


reconocimiento de imágenes, la red trata de localizar la posición de la cabeza y lo
hace con una efectividad del 90%.

P á g i n a 31 | 33
REFERENCIAS

[1] S.C.Carlos. (1993, enero-marzo).Predicción de la quiebra bancaria mediante el


uso de una RNA. Revista española de financiación y contabilidad. Vol.: XXIII,
pp.153-176.

P á g i n a 32 | 33
[2] Chen, S., Billings, S. A., Luo. W. (1989). “Backpropagation". Int. J. Control,pp
11-14.

[3] B.O. Xabier.(1998).Redes Neuronales Artificiales y sus Aplicaciones


[Publicación de la Escuela de ingenieros].Disponible en: http://cvb.ehu.es/open
_course_ware/castellano/tecnicas/redes_neuro/contenidos/pdf/libro-del-curso.pdf

[4] “Aplicación de redes neuronales en el cálculo de sobretensiones y tasa de


contorneamientos”. (Capitulo 6).pp149-152.Dispobible en: http://www.tdx.cat/bitstr
eam/handle/10803/6281/Capitulo_6a.PDF;jsessionid=5BEFC20ACCAB391558346
CE6E13DDEB0.tdx2?sequence=9

[5] C. Gerardo. Análisis “Multivalente Y sus Aplicaciones. (Parte 5. Inteligencia


Artificial Generalizada en Backpropagation).pp 128, 129,138.Disponible en:
http://webdelprofesor.ula.ve/economia/gcolmen/programa/economia/backpropagati
on_rna.pdf

[6] S. M. Javier Jesús, “Linealización del algoritmo de backpropagation para el


entrenamiento de redes neuronales”, Ing. Teleco.Tesis, Esc. De Ing. Tec. De
Teleco., Univ. De Palmas de Gran Canaria, Gran Can., 1998.

P á g i n a 33 | 33

También podría gustarte