Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción Redes Neuronales
Introducción Redes Neuronales
aplicadas
Conceptos bsicos
Las Redes Neuronales (NN: Neural Networks) fueron originalmente una simulacin
abstracta de los sistemas nerviosos biolgicos, constituidos por un conjunto de unidades
llamadas neuronas o nodos conectados unos con otros.
El primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts en
trminos de un modelo computacional de actividad nerviosa. Este modelo era un modelo
binario, donde cada neurona tena un escaln o umbral prefijado, y sirvi de base para
los modelos posteriores.
Una primera clasificacin de los modelos de NN es:
1. Modelos inspirados en la Biologa: Estos comprenden las redes que tratan de
simular los sistemas neuronales biolgicos, as como ciertas funciones como las auditivas o de visin.
2. Modelos artificiales aplicados: Estos modelos no tienen por qu guardar similitud estricta con los sistemas biolgicos. Sus arquitecturas estn bastante ligadas a
las necesidades de las aplicaciones para las que son diseados.
humano concluyen que hay, en general, ms de 1000 sinapsis por trmino medio a la
entrada y a la salida de cada neurona.
Aunque el tiempo de conmutacin de las neuronas biolgicas (unos pocos milisegundos)
es casi un milln de veces mayor que en las actuales componentes de las computadoras, las
neuronas naturales tienen una conectividad miles de veces superior a la de las artificiales.
El objetivo principal de las redes neuronales de tipo biolgico es desarrollar operaciones
de sntesis y procesamiento de informacin, relacionadas con los sistemas biolgicos.
Las neuronas y las conexiones entre ellas (sinapsis) constituyen la clave para el procesado de la informacin.
La mayor parte de las neuronas poseen una estructura de rbol, llamada dendritas,
que reciben las seales de entrada procedentes de otras neuronas a travs de las sinapsis.
Una neurona consta de tres partes:
1. El cuerpo de la neurona,
2. Las dendritas, que reciben las entradas,
3. El axn, que lleva la salida de la neurona a las dendritas de otras neuronas.
2
wij yj
Normalmente, los pesos ptimos se obtienen optimizando (minimizando) alguna funcin de energa. Por ejemplo, un criterio muy utilizado en el llamado entrenamiento supervisado, es minimizar el error cuadrtico medio entre el valor de salida y el valor real
esperado.
n
wij xj
j=1
1
1 + exp{ u2i }
Funcin gausiana
f (ui ) = c exp{
u2i
}
2
Entre dos capas de neuronas existe una red de pesos de conexin, que puede ser de los
siguientes tipos:
hacia delante, hacia atrs, lateral y de retardo:
1. Conexiones hacia delante: los valores de las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior por medio de las redes de conexiones
hacia adelante.
2. Conexiones hacia atrs: estas conexiones llevan los valores de las neuronas de una
capa superior a otras de la capa inferior.
3. Conexiones laterales: Un ejemplo tpico de este tipo es el circuito el ganador toma
todo (winner-takes-all), que cumple un papel importante en la eleccin del ganador:
a la neurona de salida que da el valor ms alto se le asigna el valor total (por ejemplo,
1), mientras que a todas las dems se le da un valor de 0
10
Tambin es posible que las redes sean de una capa con el modelo de pesos hacia atrs
o bien el modelo multicapa hacia adelante. Es posible as mismo, el conectar varias redes
de una sola capa para dar lugar a redes ms grandes.
Tamao de las Redes Neuronales
En una red multicapa de propagacin hacia delante, puede haber una o ms capas
ocultas entre las capas de entrada y salida. El tamao de las redes depende del nmero
de capas y del nmero de neuronas ocultas por capa.
El nmero de unidades ocultas est directamente relacionado con las capacidades
de la red. Para que el comportamiento de la red sea correcto, se tiene que determinar
apropiadamente el nmero de neuronas de la capa oculta.
11
N
i xi
i=0
donde
= h()
E(y) =
En estas expresiones h() es la funcin que liga los componentes, i son los coeficientes,
N es el nmero de variables independientes y 0 es la pendiente.
Un modelo lineal se puede implementar como una red neuronal simple: tiene una
unidad de sesgo, una unidad de input y una unidad de salida. El input se refiere a una
variable x, mientras que el sesgo siempre es una constante igual a 1. El output sera
y2 = y1 w21 + 1,0w20
12
N
i xpi + p
i=1
donde p N (0, 2 ).
n
p=1
yp
N
i=0
i xpi
2
Este problema es equivalente al recogido por una red neuronal con una sola capa,
donde los parmetros i equivalen a los pesos de la misma y la funcin de activacin es
la identidad.
13
El Perceptrn Multicapa
Es capaz de actuar como un aproximador universal de funciones: una red backpropagation conteniendo al menos una capa oculta con suficientes unidades no lineales puede
aproximar cualquier tipo de funcin o relacin continua entre un grupo de variables de entrada y salida. Esta propiedad convierte a las redes perceptrn multicapa en herramientas
de propsito general, flexibles y no lineales.
Rumelhart et al. (1986) formalizaron un mtodo para que una red del tipo perceptrn
multicapa aprendiera la asociacin que existe entre un conjunto de patrones de entrada y
sus salidas correspondientes: mtodo backpropagation error (propagacin del error hacia
atrs).
Esta red tiene la capacidad de generalizacin: facilidad de dar salidas satisfactorias a
entradas que el sistema no ha visto nunca en su fase de entrenamiento.
Arquitectura
Un perceptrn multicapa est compuesto por una capa de entrada, una capa de salida
y una o ms capas ocultas; aunque se ha demostrado que para la mayora de problemas
bastar con una sola capa oculta. En la figura siguiente se puede observar un perceptrn
tpico formado por una capa de entrada, una capa oculta y una de salida.
14
Las conexiones entre neuronas son siempre hacia delante: las conexiones van desde las
neuronas de una determinada capa hacia las neuronas de la siguiente capa; no hay conexiones laterales ni conexiones hacia atrs. Por tanto, la informacin siempre se transmite
desde la capa de entrada hacia la capa de salida.
Se considera wji como el peso de conexin entre la neurona de entrada i y la neurona
oculta j, y vkj como el peso de conexin entre la neurona oculta j y la neurona de salida
k.
Algoritmo backpropagation
Se considera una etapa de funcionamiento donde se presenta, ante la red entrenada,
un patrn de entrada y ste se transmite a travs de las sucesivas capas de neuronas
hasta obtener una salida y, despus, una etapa de entrenamiento o aprendizaje donde se
15
modifican los pesos de la red de manera que coincida la salida deseada por el usuario con
la salida obtenida por la red.
Etapa de funcionamiento
Cuando se presenta un patrn p de entrada X p : xp1 , . . . , xpi , . . . , xpN , ste se transmite
a travs de los pesos wji desde la capa de entrada hacia la capa oculta. Las neuronas
de esta capa intermedia transforman las seales recibidas mediante la aplicacin de una
funcin de activacin proporcionando, de este modo, un valor de salida. Este se transmite
a travs de los pesos vkj hacia la capa de salida, donde aplicando la misma operacin que
en el caso anterior, las neuronas de esta ltima capa proporcionan la salida de la red.
Este proceso se resume en lo siguiente:
La entrada total o neta que recibe una neurona oculta j, netpj , es:
netpj
N
wji xpi + j
i=1
donde j es el umbral de la neurona que se considera como un peso asociado a una neurona
ficticia con valor de salida igual a 1.
El valor de salida de la neurona oculta j, yjp , se obtiene aplicando una funcin f ()
sobre su entrada neta:
yjp = f netpj
De igual forma, la entrada neta que recibe una neurona de salida k, netpk , es:
netpk
H
vkj yjp + k
j=1
1 p
(dk ykp )2
E =
2
p
k=1
donde dpk es la salida deseada para la neurona de salida k ante la presentacin del patrn
p.
A partir de esta expresin se puede obtener una medida general de error mediante:
E=
P
Ep
p=1
wji
p=1
donde
pk = (dpk ykp ) f (netpk )
17
y n indica la iteracin.
En una neurona oculta:
wji (n + 1) =
P
pj xpi
p=1
donde
pj
=f
netpj
M
pk vkj
k=1
Se puede observar que el error o valor delta asociado a una neurona oculta j, viene
determinado por la suma de los errores que se cometen en las k neuronas de salida que
reciben como entrada la salida de esa neurona oculta j. De ah que el algoritmo tambin
se denomine propagacin del error hacia atrs.
Para la modificacin de los pesos, la actualizacin se realiza despus de haber presentado todos los patrones de entrenamiento. Este es el modo habitual de proceder y se
denomina aprendizaje por lotes o modo batch.
Otra modalidad denominada aprendizaje en serie o modo on line consistente en actualizar los pesos tras la presentacin de cada patrn de entrenamiento. Ha de hacerse en
orden aleatorio.
Para acelerar el proceso de convergencia de los pesos, Rumelhart et al. (1986) sugirieron
aadir un factor momento, , que tiene en cuenta la direccin del incremento tomada en
la iteracin anterior:
vkj (n + 1) =
P
p=1
pk yjp
+ vkj (n)
19
que recibira los valores 0 1. La variable status social estara representada por tres
neuronas. La variable puntuacin en CI estara representada por una neurona que recibira
la puntuacin previamente acotada, por ejemplo, a valores entre 0 y 1.
El nmero de neuronas de la capa de salida est determinado bajo el mismo esquema
que en el caso anterior. Cuando intentamos discriminar entre dos categoras, bastar con
utilizar una nica neurona (por ejemplo, salida 1 para la categora A, salida 0 para la
categora B). Si estamos ante un problema de estimacin, tendremos una nica neurona
que dar como salida el valor de la variable a estimar.
El nmero de neuronas ocultas determina la capacidad de aprendizaje de la red neuronal. Recordando el problema del sobreajuste, se debe usar el mnimo nmero de neuronas ocultas con las cuales la red rinda de forma adecuada. Esto se consigue evaluando
el rendimiento de diferentes arquitecturas en funcin de los resultados obtenidos con el
grupo de validacin.
Tasa de aprendizaje y factor momento
El valor de la tasa de aprendizaje () controla el tamao del cambio de los pesos
en cada iteracin. Se deben evitar dos extremos: un ritmo de aprendizaje demasiado
pequeo puede ocasionar una disminucin importante en la velocidad de convergencia y
la posibilidad de acabar atrapado en un mnimo local; en cambio, un ritmo de aprendizaje
demasiado grande puede conducir a inestabilidades en la funcin de error, lo cual evitar
que se produzca la convergencia debido a que se darn saltos en torno al mnimo sin
alcanzarlo.
Por tanto, se recomienda elegir un ritmo de aprendizaje lo ms grande posible sin que
provoque grandes oscilaciones. En general, el valor de la tasa de aprendizaje suele estar
comprendida entre 0.05 y 0.5.
El factor momento () acelera la convergencia de los pesos. Suele tomar un valor
prximo a 1 (por ejemplo, 0.9).
Funcin de activacin de las neuronas ocultas y de salida
20
Hay dos formas bsicas que cumplen esta condicin: la funcin lineal (o identidad) y
la funcin sigmoidal (logstica o tangente hiperblica).
21
22
M Cerror =
P
M
p=1 k=1
(dpk ykp )2
P M
m
i=1
23
j = 1, . . . , C;
donde hay m funciones base, i , cada una de las cuales tiene una serie de parmetros, y
se utiliza la siguiente regla discriminante, dado un nuevo elemento x:
Asignar x a la clase i si gi (x) = max gj (x),
j
esto es, x se asigna a la clase cuya funcin discriminante alcanza mayor valor.
La ecuacin anterior generaliza el Anlisis Discriminante lineal, usando funciones no
lineales i .
Si,
i (x; i ) (x)i , esto es, una funcin lineal discriminante m = p, donde p es la
dimensin de x.
i (x; i ) i (x)i esto es, una funcin generalizada discriminante que puede ser no
lineal.
Se puede interpretar como una transformacin de los datos x Rp a RC mediante un
espacio intermediario Rm determinado por las funciones i .
Ejemplo: La llamada funcin de base radial (RBF) se puede describir como una combinacin lineal de funciones de base no lineales radialmente simtricas
gj (x) =
m
i=1
donde j = 1, . . . n. Los parmetros wji son los pesos; wj0 se denomina el sesgo y a los
vectores i se les denomina los centros.
Aplicaciones
Con el fin de llegar al entendimiento global de NN, se suele adoptar la siguiente
perspectiva, llamada top-down, que empieza por la aplicacin, despus se pasa al algoritmo
y de aqu a la arquitectura:
24
25
Asociacin. De especial inters son las dos clases de asociacin autoasociacin y heteroasociacin. El problema de la autoasociacin es recuperar un patrn enteramente,
dada una informacin parcial del patrn deseado. La heteroasociacin es recuperar
un conjunto de patrones B, dado un patrn de ese conjunto. Los pesos en las redes
asociativas son a menudo predeterminados basados en la llamada regla de Hebb:
cuando una neurona participa constantemente en activar una neurona de salida, la
influencia de la neurona de entrada es aumentada. Normalmente, la autocorrelacin
del conjunto de patrones almacenado determina los pesos en las redes autoasociativas. Por otro lado, la correlacin cruzada de muchas parejas de patrones se usa para
determinar los pesos de la red de heteroasociacin.
Clasificacin. En muchas aplicaciones de clasificacin, por ejemplo en reconocimiento
de voz, los datos de entrenamiento consisten en pares de patrones de entrada y
salida. En este caso, es conveniente adoptar las redes supervisadas, como las redes
de retropropagacin. Este tipo de redes son apropiadas para las aplicaciones que
tienen una gran cantidad de clases con lmites de separacin complejos.
En muchos problemas de clasificacin una cuestin a solucionar es la recuperacin
la informacin, esto es, recuperar el patrn original cuando se dispone de slo una
informacin parcial.
G
Se puede extender a un problema de interpolacin. El sistema es entrenado por un
gran conjunto de muestras de entrenamiento basados en un procedimiento de aprendizaje
supervisado.
Una red se considera que esta entrenada con xito si puede aproximar los valores de los
patrones de entrenamiento y puede dar interpolaciones suaves para el espacio de datos no
entrenado. El objetivo de la generalizacin es dar una respuesta correcta a la salida para
un estmulo de entrada que no ha sido entrenado con anterioridad. El sistema debe inducir
la caracterstica saliente del estmulo a la entrada y detectar la regularidad. Tal habilidad
26
O
Las NN son una herramienta interesante para la optimizacin de aplicaciones, que
normalmente implican la bsqueda del mnimo absoluto de una funcin de energa.
27
Una vez que se define la funcin de energa, se determinan los pesos sinpticos. Para
algunas aplicaciones, la funcin de energa es fcilmente deducible. En otras, sin embargo,
esta funcin de energa se obtiene de ciertos criterios de coste y limitaciones especiales. El
mayor problema asociado al problema de optimizacin es la alta posibilidad de converger
hacia un mnimo local, en vez de hacia el mnimo absoluto. Para evitar este problema se
utilizan algunas tcnicas estadsticas como, por ejemplo, procedimientos estocsticos.
28
Ejemplo (procede del libro Modern Applied Statistics with S (4 Edicin), de W.N.
Venables y B.D. Ripley. Springer. ISBN 0-387-95457-0 (2002):
library(nnet)
attach(rock)
area1 <- area/10000
peri1 <- peri/10000
rock1 <- data.frame(perm, area=area1, peri=peri1, shape)
rock.nn <- nnet(log(perm)~area+peri+shape, rock1, size=3, decay=1e-3, linout=T,
skip=T, maxit=1000, Hess=T)
summary(rock.nn)
29
Ejemplo con los datos clsicos de Fisher con las flores del gnero Iris
library(nnet)
data(iris)
# Flores del genero Iris
table(iris$Species)
iS <- iris$Species=="setosa"
iV <- iris$Species=="versicolor"
matplot(c(1, 8), c(0, 4.5), type="n", xlab="Longitud", ylab="Anchura",
main="Dimensiones de ptalos y spalos en Iris")
matpoints(iris[iS,c(1,3)], iris[iS,c(2,4)], pch="sS", col=c(2,4))
matpoints(iris[iV,c(1,3)], iris[iV,c(2,4)], pch="vV", col=c(2,4))
legend(1,4,c("
Ptalos Setosa", "
Spalos Setosa",
" Ptalos Versicolor", "Spalos Versicolor"), pch="sSvV", col=rep(c(2,4),2))
# Uso la mitad del fichero de datos de Iris
ir <- rbind(iris3[,,1],iris3[,,2],iris3[,,3])
targets <- class.ind(c(rep("s",50), rep("c",50), rep("v",50)))
samp <- c(sample(1:50,25), sample(51:100,25), sample(101:150,25))
ir.nn1 <- nnet(ir[samp,], targets[samp,], size=2, rang=0.1,
decay=5e-4, maxit=200)
names(ir.nn1)
ir.nn1$wts
ir.nn1$fitted.values
30
31