Documentos de Académico
Documentos de Profesional
Documentos de Cultura
REDES NEURONALES
INGENIERIA EN COMPUTACIÓN
ICO 17 2014 B
28 de Noviembre de 2014
P á g i n a 1 | 33
INDICE
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.
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.
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.
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
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
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.
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 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.
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.
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..
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:
Figura. Conexión entre una neurona de una capa oculta con una neurona de
salida. (Villanueva, 2002)
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:
P á g i n a 10 | 33
1.5 DEMOSTRACION DE LAS REGLAS DE ACTUALIZACIÓN
Si y
Si
P á g i n a 11 | 33
Si
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 α .
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.
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
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,
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)
(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)
(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:
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.
Velocidad de convergencia:
Añadir un momento (sumar una fracción del ajuste de peso anterior al ajuste
actual).
P á g i n a 21 | 33
CAPITULO 2
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.
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.
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
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:
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:
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:
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
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.
P á g i n a 31 | 33
REFERENCIAS
P á g i n a 32 | 33
[2] Chen, S., Billings, S. A., Luo. W. (1989). “Backpropagation". Int. J. Control,pp
11-14.
P á g i n a 33 | 33