Download Redes Neuronales y Análisis de Datos

Document related concepts

Propagación hacia atrás wikipedia , lookup

Perceptrón multicapa wikipedia , lookup

Perceptrón wikipedia , lookup

Redes neuronales probabilísticas wikipedia , lookup

ART (RNA) wikipedia , lookup

Transcript
Redes Neuronales y Análisis de Datos
Javier Trejos Zelaya
Abstract
Presentamos las redes neuronales, detallando las principales implementaciones hechas para
resolver problemas del Análisis de Datos. Ası́, veremos algunas propuestas para hacer discriminación, clasificación, análisis en componentes principales y regresión.
1
Las Redes Neuronales
Una red neuronal es un grafo orientado cuyos nodos son llamados neuronas, y cuyas aristas ponderadas son llamadas sinapsis. La idea básica es que, como en el cerebro humano, haya un gran número
de neuronas formales que procesen información y que haya un gran número de interconexiones entre
las neuronas.
Una neurona es una unidad de cálculo (denotada neurona j) que recibe p entradas x1 , . . . , xp
por medio de p sinapsis o arcos ponderados por ciertos pesos sinápticos (o simplemente pesos)
ωj1 , . . . , ωjp . La neurona aplica una función h(x1 , . . . , xp ), que generalmente es del tipo suma ponderada más un parámetro de control:
h(x1 , . . . , xp ) = σj =
p
X
ωji xi + θj
i=1
donde θj es un parámetro de control de la neurona j. Sin embargo, h también podrı́a ser una función
booleana, polinomial, etc. Sobre σj = h(x1 , . . . , xp ) se aplica una función de transferencia real f ,
cuya acción denotamos f (σj ), que determina el estado de la neurona. Esta función es generalmente
una función caracterı́stica, escalera, sigmoide o estocástica. Cuando los estados de la neurona son
0 ó 1, se dice que la neurona está inhibida o excitada, respectivamente. La salida de la neurona es
dada por una función de salida g , que se aplica sobre f (σj ) y que va a actuar sobre otras neuronas
de la red. Denotaremos sj = g(f (σj )) la salida de la neurona j.
El estado de una red neuronal está dado por el conjunto de los pesos sinápticos y el conjunto de
los estados de las neuronas. La arquitectura o estructura del grafo que define a una red neuronales es
lo que determina la estructura de la red. Las estructuras más usadas son: red totalmente conectada
red con dos capas y red multicapas o red con más de dos capas, cuyas capas intermedias se llaman
capas escondidas.
La dinámica de las conexiones define la forma cómo cambian los pesos sinápticos en el tiempo
conforme se introduce la información. Ası́, se puede definir una forma de aprendizaje que determina
la modificación de los pesos. Las dos formas de aprendizaje más usadas están inspiradas en la
neurobiologı́a y son:
1
• La ley de Hebb, que propone que cuando dos neuronas están excitadas al mismo tiempo,
hay que modificar los pesos sinápticos para reforzar esta excitación simultánea.
• Si para cada patrón de entrada se conoce un estado deseado, como en el caso de la discriminación, la ley de Widrow-Hoff o regla delta, propone que la modificación de los pesos
sinápticos debe ser proporcional al error entre el estado deseado y el estado obtenido.
Los modelos de redes neuronales más citados en la literatura son:
• Las redes multicapas, usando el algoritmo de retropropagación del gradiente cuya ley de aprendizaje generaliza de ley de Widrow-Hoff.
• Las redes con aprendizaje competitivo, que usan la ley de Hebb y que pretenden hacer competir
a varias neuronas al mismo tiempo con la filosofı́a de “el ganador lo toma todo”.
• Las redes de Kohonen [1], con una sóla capa con aprendizaje tipo Hebb añadiendo un término
de olvido.
• Las redes de Hopfield [1], útiles para hacer la optimización de una función cuadrática, pero
poco usadas en estadı́stica si no es por su adaptación a las Máquinas de Boltzmann, que están
actualmente en desuso.
2
Discriminación
Supóngase que se tiene un conjunto (llamado conjunto de aprendizaje) de n individuos sobre los que
se han hecho p observaciones cuantitativas, para los que se conoce su asignación a las modalidades
q de una variable cualitativa. Se quieren encontrar descripciones de estas modalidades a partir de
las variables originales mediante alguna ley de asignación y se quiere poder asignar cualquier nueva
observación a una clase.
En redes neuronales, este problema de discriminación se puede implementar proponiendo una red
multicapas con p neuronas en la capa de entrada y q neuronas en la capa de salida. Los individuos
se introducirán uno a uno en la capa de entrada y los pesos irán cambiando poco a poco mediante
una ley de aprendizaje, hasta que se obtenga convergencia a un conjunto de pesos, que describirán
la función discriminadora buscada. Entonces se pensará en usar un tipo de aprendizaje supervisado
del tipo ley delta, que compare las salidas obtenidas con las salidas deseadas.
2.1
El Perceptron
El objetivo del Perceptron [1] era el de aprender a diferenciar figuras presentadas en dimensión 2
(por ejemplo letras).
El modelo del Perceptron consiste en: (a) una retina que recibe los datos y que está ligada a la
primera capa mediante pesos fijos; (b) una primera capa, llamada capa de asociación, con pesos ωji
que la ligan a la capa de salida; (c) una capa de salida, que da el estado obtenido para cada ejemplo;
(d) una regla de aprendizaje del tipo regla delta: ωji (t + 1) = ωji (t) + η(dj − sj ), donde dj y sj
son respectivamente la salida deseada y la salida obtenida para la neurona j y η > 0; (e) no hay
conexiones al interior de una capa y las conexiones están orientadas de una capa a la siguiente.
El Perceptron es un discriminador lineal que converge hacia la solución del problema sólo si
existe un conjunto de pesos que pueden discriminar linealmente entre los elementos de un conjunto
dado.
2
2.2
Algoritmo de retropropagación del gradiente
Las redes multicapas necesitan de una ley de aprendizaje adaptada para el cambio de los pesos
sinápticos, ya que con la regla delta, sólo los pesos entre la penúltima y la última capa serı́an modificados. Por ello, la regla delta generalizada o ley de retropropagación del gradiente fue propuesta
por Le Cun [4], que para ser operacional, necesita que la función de transferencia en cada neurona
sea continua. Las neuronas de la capa de salida tienen estados 0 ó 1, que indican que el individuo
presentado posee o no la modalidad que representan.
Se dispone de una red multicapas, cuya neurona j tiene por función de transferencia una función
P
sigmoide: sj = f ( pi=1 ωji xi + θj ) donde x1 , . . . , xp son las p entradas. Por ejemplo, se puede usar
1
f (x) = 1+e−x/α
. Los pesos sinápticos ligan una capa con la siguiente y no hay interconexiones al
interior de una misma capa. Cada neurona recibe la entrada de las neuronas de la capa precedente
y transmite su salida a las neuronas de la capa siguiente.
Durante la presentación de un individuo en el instante t, la señal pasa de una capa a la siguiente
hacia adelante. El error es calculado en la capa de salida: si dj es el resultado deseado para la
P
neurona j y sj el obtenido, el error es entonces: Et = 1/2 j (dj − sj )2 .
Efectuando una aproximación del descenso del gradiente respecto a los pesos, se obtiene que la
ley de aprendizaje para los pesos sinápticos es:
ωji (t + 1) = ωji (t) + ηδj xi
donde ωji representa el peso de la neurona i hacia la neurona j. Si j pertenece a la capa de salida,
P
Pp
entonces δj = (dj − sj )f 0 (σj ), y si no, δj = f 0 (σj ) k δk ωkj , donde σj = i=1 ωji xi + θj y k varı́a
entre las neuronas de la capa que sigue. Se ve entonces que el aprendizaje se hace hacia atrás: la
modificación de los pesos de las capas intermedias toma en cuenta las modificaciones de los pesos
P
de las capas posteriores, hecho simbolizado por el término k δk ωkj . Véase que es posible que el
método converja hacia un mı́nimo local.
Sobre la construcción de una red neuronal para hacer una implementación de este algoritmo,
puede consultarse [2].
2.3
Discriminación con una red de Kohonen
Se trata de hacer un tipo de arpendizaje supervisado. Sobre el conjunto de aprendizaje, hacer lo
siguiente:
1) representar la clase Cj por un número de neuronas proporcional a la probabilidad a priori de esta
clase;
2) inicializar los pesos con los primeros ejemplos: ωj = x si x ∈ Cj ;
3) presentar el ejemplo x y escoger C tal que: kωc − xk = minj kωj − xk;
4) actualizar los pesos mediante el aprendizaje siguiente:
si x ∈ C : ωc (t + 1) = ωc (t) + k(t)[x − ωc (t)]
si x 6∈ C : ωc (t + 1) = ωc (t) − k(t)[x − ωc (t)]
si i 6= C : ωi (t + 1) = ωi (t)
donde k(t) ≥ 0 y k decrece conforme t crece.
3
3
3.1
Clasificación
Aprendizaje competitivo
La red propuesta por Rumelhart y Zipser (ver [11]) es una red multicapas y al interior de cada capa
hay clases que contienen neuronas. Las neuronas de una clase inhiben a las otras neuronas de la
misma clase.
P
Los pesos ωji que conectan las neuronas i a la neurona j deben cumplir i ωji = 1 y las entradas
del sistema son sucesiones binarias. Si denotamos sik el estado de la neurona i durante la presentación
del ejemplo xk (1 si i está activa, 0 si no), entonces la competencia consiste en encontrar, para cada
P
clase de una capa, la neurona j que maximiza αjk = i ωji sik . Entonces el nuevo estado de j será
1 si j gana en su clase, 0 si no.
La ley de aprendizaje
es:
(
P
ωji (t) + η[ snikk − ωji (t)] si j gana al presentarse xk ,
ωji (t + 1) =
, donde η > 0 y nk = i cik .
ωji (t)
sino.
Se ve que una neurona aprende traspasando parte del peso de las entradas inactivas a las activas.
La neurona pierde una proporción η de su peso, que es luego distribuida entre los pesos de las
entradas activas.
3.2
Clasificación según el modelo de Kohonen
Similar al modelo anterior, este modelo consiste en escoger la neurona que tenga la respuesta más
fuerte, ante la presencia de un estı́mulo. Dados los xi que forman el vector x, se procede como sigue:
1) encontrar c tal que kx − ωc k = minj=1,...,n kx − ωj k donde ωj = (ωj1 , . . . , ωjn )T son los pesos de
las neuronas que se conectan hacia la neurona j; si j ∈ Vc ⇒ sj = 1
2) calcular el vecindario Vc alrededor de c tal que:
si j 6∈ Vc ⇒ sj = 0
3) actualizar los pesos: ωji (t + 1) = ωji (t) + k(t)[xi − ωji (t)],
donde k(t) 6= 0 si i ∈ Vc y k(t) = 0 si i 6∈ Vc .
3.3
El modelo de Grossberg
Este modelo [1, 9] también usa un tipo de aprendizaje competitivo, pero la estructura de la red es
distinta de las anteriores. Además, se usa la inhibición lateral entre las neuronas. El modelo está
basado en el funcionamiento del algoritmo MaxNet, que consiste en escoger la neurona que responde
más fuerte a un estı́mulo. La capa de entrada tiene p neuronas y cada entrada x = (x1 , . . . , xp ) es
un vector binario. Hay dos capas escondidas, cada una con m neuronas.
Si y es el prototipo (binario) de la clase C, el ejemplo x pertenecerá a la clase C ∗ que minimiza
P
d(x, y ∗ ), donde d es la distancia de Hamming: d(x, y) = p − i xi yi .
Esto se implementa en la red MaxNet al definir la salida de las neuronas de la segunda capa
P
como σj = i ωji xi . Si ωjk es el peso entre las neuronas j, k de la capa MaxNet, se define ujk = 1
si j = k y ujk = − si j 6= k, donde < 1/m.
P
Se define entonces la salida de la neurona j como sj = f σj − k6=j σk , donde f es una
función sigmoide, y se dirá que hay convergencia cuando sólo un nodo tiene salida distinta de cero.
Los vectores-individuos se presentan sucesivamente y reiteradamente hasta que se haya encontrado
la clase a la que pertenece cada ejemplo. Esta clase será la dada por el prototipo más cercano según
la distancia de Hamming.
4
El algoritmo dado por Grossberg para encontrar una partición está basado en la utilización de
la red MaxNet. No daremos los detalles de este algoritmo, sólo haremos notar que, además de la
inhibición lateral (simbolizada por los pesos ujk ) se definen pesos “hacia atrás” que van de la capa
MaxNet a la capa de entrada y que permitirán verificar que un ejemplo pertenece a una clase, según
un cierto grado de tolerancia τ . Además, τ jugará el papel de parámetro para determinar el número
de clases (que no es fijado a priori). El problema con este método es que puede haber ejemplos que
nunca se clasifiquen, por lo que habrı́a que crear clases para ellos solos.
4
4.1
Análisis en Componentes Principales
Método de Muller-Radoui
Muller y Radoui [6] propusieron una red con tres capas para calcular las componentes principales de
una tabla de datos de n individuos y p variables cuantitativas centradas, utilizando la retropropagación del gradiente. La tabla de datos representa una nube de n puntos en el espacio euclidiano de
dimensión p, provisto de un producto escalar o métrica M , y tal que los individuos están equiponderados. El Análisis en Componentes Principales (A.C.P.) consiste en buscar un espacio de dimensión
q (q < p) que reconstruya lo mejor posible la configuración de la nube inicial. Se sabe que la
solución de este problema está dada por el espacio generado por q vectores propios v1 , . . . , vq de
V M , llamados vectores principales, asociados a los valores propios mayores, donde V es la matriz
de varianzas-covarianzas de las p variables.
La red de tres capas propuesta para resolver este problema tendrá p neuronas en las capas de
entrada y de salida y q neuronas en la capa escondida. Las neuronas de la capa de entrada reciben
las lı́neas xi de la tabla de datos, y la salida deseada será xi mismo. Es decir, queremos verificar
si los vectores principales reconstruyen efectivamente la nube de puntos. Los pesos sinápticos entre
la capa de entrada y la capa escondida serán combinaciones lineales de las coordenadas de los q
primeros vectores principales.
4.2
Modelos de Oja y Lelu
Oja [8] propuso una red del tipo de Kohonen para el cálculo de vectores propios de una matriz de
correlaciones. Al sistema se introducen vectores que representan los valores que toma una variable
cuantitativa sobre los individuos, y se considera una ley de aprendizaje del tipo Kohonen: ωji (t+1) =
ωji (t)+γη(t)[xi (t)−η(t)ωji (t), con γ > 0, cuyo término de olvido es η(t)ωji (t). Se demuestra [8] que
los pesos sinápticos convergen, cuando t crece, al primer vector propio de la matriz de correlaciones.
Basado en las ideas de Oja y en el algoritmo de aproximación estocástica de Benzécri [3] para el
cálculo de los elementos principales de un ACP o un Análisis de Correspondencias, Lelu [5] propuso
un algoritmo que permite calcular todas las componentes principales.
El algoritmo de aproximación estocástica consiste en dar una fórmula de actualización de los
elementos principales ante la presentación de un nuevo individuo. Por tanto, permite el cálculo
de los elementos principales conforme entran los individuos, lo que hace posible la realización de
un ACP de una población muy grande pues no es necesario almacenar ninguna tabla de datos en
memoria central. Se demuestra [3] que la sucesión dada por la fórmula de actualización converge al
primer vector propio de la matriz a diagonalizar.
El algoritmo neuronal de Lelu usa una ley de aprendizaje similar a la de Oja. El autor propone
además un método para simular el proceso de ortogonalización de Gram-Schmidt con el fin de poder
5
calcular otros vectores principales, además del primero. Sin embargo, las razones que da Lelu para
explicar por qué este algoritmo converge no son muy claras.
5
Regresión lineal
En regresión lineal múltiple se quiere prever una variable cuantitativa y por un conjunto de variables
cuantitativas x1 , . . . , xq en IRp . Para ello, se quiere encontrar un conjunto de coeficientes b =
Pp
2
(b1 , . . . , bp )T tal que ŷk = bT xk donde ŷ minimiza ky − ŷk2 =
k=1 (yk − ŷk ) . Se sabe que
T
−1 T
el estimador de mı́nimos cuadrados de b está dado por b̂ = (X X) X y, donde los xi son las
columnas de X.
El problema anterior puede ser modelado mediante una red neuronal con aprendizaje supervisado
[11]. Tomemos:
• la variable a explicar yk como el valor deseado dk asociado a un ejemplo k;
• las variables explicativas xk1 , . . . , xkq como las entradas de una red neuronal;
• los coeficientes b = (ωj1 , . . . , ωjp )T como los pesos sinápticos;
• la función de transferencia f como la identidad.
Si denotamos W (t) la matriz que contiene los pesos cuya entrada (j, i) es ωji , y si se usa la regla
de aprendizaje de Widrow-Hoff, se prueba [11] que W (t) converge efectivamente hacia el estimador
b̂, es decir, limt→∞ W (t) = b̂ = (X T X)−1 X T y si las variables xk son linealmente independientes.
Referencias
[1] Anderson J A, Rosenfeld E (1989) Neurocomputing. Foundations of Research. The MIT Press, Cambridge Mass.
(Recopilación de los trabajos pioneros en redes neuronales).
[2] Lechevallier Y (1994) Proposición de una construcción eficaz de una red neuronal a partir de un árbol de decisión.
En Memorias del VII y VIII Simposios sobre Métodos Matemáticos Aplicados a las Ciencias.
[3] Lebart L (1976) Sur les calculs impliqués par la description de certains grands tableaux. En: Annales INSEE,
no 22-23.
[4] Le Cun Y (1985) Une procédure d’apprentissage pour réseau à seuil asymétrique. Proceedings of Cognitiva 85,
Parı́s, pp. 599-604.
[5] Lelu A (1989) A neural model for highly multidimensional data analysis. En: Data Analysis, Learning Symbolic
and Numeric Knowledge, E. Diday (editor), INRIA - Nova Science, Nueva York.
[6] Muller C, Radoui M (1990) Réseaux neuromimétiques et Analyse des Données. En: XXII Journées de Statistique
- ASU, Tours.
[7] Murtagh F (1990) Multilayer perceptrons for classification and regression.
[8] Oja E (1982) A simplified neuron model as a principal component analiser. En: Journal of Math. Biology, vol.
15, pp. 267-273.
[9] Pao Y H (1989) Adaptive pattern recognition and neural networks. Addison-Wesley, Nueva York.
[10] Ripley B D (1993) Statistical aspects of neural networks. Chapman & Hall, Londres.
[11] Rumelhart D E, McClelland J L, editores (1986) Parallel distributed processing. Vol. 1: Foundations. Vol. 2:
Exploration in the microstructure of cognition. The MIT Press, Cambridge, Massachussets.
6