Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingenierías
EN E LECTRÓNICA
Facultad de Ingenierías
EN E LECTRÓNICA
R AMIRO A RANGO
D IRECTOR
F RANCISCO I BARGUEN
A SESOR
2. Antecedentes 15
2.4. Un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
III
IV ÍNDICE GENERAL
3. La librería 29
3.1. Lineamientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
A. Enlaces de interes 49
Índice de figuras
V
VI ÍNDICE DE FIGURAS
P
OR QUÉ redes neuronales y por qué en tiempo real?
Las redes neuronales son herramientas útiles en problemas en los
cuales los métodos analíticos son de difícil aplicación, siendo tam-
bién interesantes para experimentar con las posibilidades que ofrecen los
métodos numéricos. Si además, para una cierta aplicación se tiene la necesi-
dad de que responda en un íntervalo de tiempo específico, ante eventos
externos, se habla de tiempo real, característica ésta bastante necesaria en sis-
temas de control y comunicaciones. La combinación de estos dos elementos
da como resultado redes neuronales para sistemas en tiempo real, las cuales
pueden ser implementadas haciendo uso de hardware específico para redes
neuronales, o bien, utilizando hardware de propósito general junto con un
software optimizado que cumpla con los requerimientos temporales.
1
2
Las redes
neuronales son
L
AS redes neuronales artificiales son construcciones, de hardware y/o procesadores no
software, que toman información en la entrada y la transforman en lineales de datos.
una de salida aplicando generalmente una operación no lineal. Su
base conceptual es la organización de las neuronas biológicas que compo-
nen el cerebro, pues en él se transporta la información mucho más lenta-
mente que en los circuitos electrónicos que componen las computadoras
actuales, y aun así puede realizar de manera muy eficiente operaciones
tan complejas como son el reconocimiento de imágenes, reconocimiento de
hablantes, reconstrucción de información a partir de datos difusos y cálculo
aproximado, entre otras. Una explicación parcial de tan extraordinario com-
portamiento, se atribuye al hecho de que las tareas no están centralizadas
en un único elemento si no que por el contrario estan distribuidos en un
grupo de ellos; a su vez, estos elementos cuentan con una gran cantidad
de conexiones y trabajan de manera concurrente, dando como resultado un
procesador altamente eficiente y robusto. La figura 1.1 muestra un modelo
simplificado del elemento de procesamiento fundamental que compone nuestro
cerebro, donde la comunicación entre todas las neuronas es de tipo electro-
químico y tiene como base el fenómeno del potencial de acción. La creación
de máquinas inteligentes que tengan por lo menos alguna de estas carac-
terísticas, es el objetivo de múltiples invesigaciones en el entorno científico
3
4 1.2. Redes Neuronales Biológicas
Potencial de
la membrana (mV)
−40
−80
2 Tiempo(mS)
El potencial de
acción es una señal
Ahora bien, si el estímulo es lo suficientemente grande como para con- bioeléctrica con una
seguir despolarizar la membrana hasta un cierto valor umbral Em de poten- amplitud y una
cial, se desencadena una especie de disparo y el potencial de polarización frecuencia
crece hasta valores incluso positivos y después de aproximadamente un determinada.
milisegundo decrece, como se muestra en la figura 1.3.
Las membranas biológicas están compuestas por una doble capa de lípi-
dos y proteínas que forman canales de iones, éstos últimos tienen sensores
que brindan información del medio externo. Las diferencias de potencial
eléctrico entre el interior y exterior de las membranas celulares se debe a
diferencias de concentración de los iones de sodio (N a+ ) y potasio (K + ) y
otros iones en menor grado, diferencias generadas por el movimiento de
estos iones, obedeciendo a las fuerzas de difusión y a las fuerzas eléctricas.
6 1.2. Redes Neuronales Biológicas
Potencial de
la membrana(mV)
0
Em
−80
2 Tiempo(mS)
Debido a que sólo existen cargas que mover en los nodos de Renvier,
el potencial de acción se mueve más rápido que si la membrana estuviera
desnuda.
1. Redes Neuronales Artificiales 7
Nodo de Renvier
Axon
Celulas de Shwann
Las redes
neuronales aquí
Son organizaciones de elementos de procesamiento generalmente sencil- tratadas no
los y ampliamente interconectados, donde a cada elemento de procesamien- pretenden emular
to (PE) se le suele dar el nombre de neurona o nodo, que es estimulado por el funcionamiento
n señales de entrada, x1 ...xn que pueden ser organizadas en un vector así: del cerebro.
x = [x1 , ..., xn ]t ∈ Rn
y que generan un escalar de salida y ∈ R. Es de notar que los modelos
neuronales usados aquí para construir las RNA’s no pretenden emular el
comportamiento exacto de las neuronas reales ni del cerebro, si no servir
como sistemas procesadores de señales inspirados en ellas.
X
N etj = wji xi (1.1)
i
sin embargo, en algunos casos la definición de N etj puede diferir de la dada
por la ecuación 1.1, y podría ser:
Q
N etj = wji xi , la productoria de las entradas moduladas.
8 1.3. Redes Neuronales Artificiales (RNA’s)
½
1
1 si x ≥ 0
y= (1.5)
0 si x < 0 x
½ 1
1 si x ≥ 0 x
y= (1.6) −1
−1 si x < 0
y=x (1.7) x
1
1
y= (1.8)
1 + ex x
10 1.3. Redes Neuronales Artificiales (RNA’s)
x
ex − e−x
y= (1.9)
ex + e−x
−1
2
0
−2 0 2 x
y = e−x (1.10)
X
yj (n) = fj (N etj (n)) = fj ( wji xi ) (1.11)
i
Una de las cosas que debe tenerse en cuenta, es que las funciones de
activación normalmente no están centradas en el origen, existiendo un des-
plazamiento denominado umbral o tendencia. Este valor se puede modelar
como si en el PE existiera una entrada adicional con un valor constante de
1, que es modulada por el peso wj0 el cual puede ser tratado como un peso
igual a los otros del PE.
as
s
Entrad
Salida
Capa
de
Capa
Salida
de Capa
Entrada Oculta
s
Salida
Entrad
con una de la misma capa o con una neurona anterior de la red, entendién-
dose como anterior, una neurona más cercana a la entrada en el camino del
flujo de la información. En la figura 1.8 se muestra una realimentación de
todas las neuronas de una capa con ellas mismas, lo que se denomina red
con conexiones autorrecurrente y en la figura 1.9 conexiones recurrentes a
capas anteriores; este tipo de redes son llamadas redes recurrentes y son
12 1.3. Redes Neuronales Artificiales (RNA’s)
s a
s
Salida
Entrad
Capa
de
Salida
Capa
de
Entrada Capa
Oculta
s
Entrad
Salida
Capa
de
Salida
Capa
de
Entrada Capa
Oculta
Mecanismos de apredizaje:
Antecedentes
E
N el mercado existen varios paquetes de software que permiten la
simulación de redes neuronales artificiales, uno de los más usados
en el entorno académico es el SNNS, el cual viene incluido en algu-
nas distribuciones de GNU/Linux. Otra opción bastante utilizada es el Neu-
ral Network Toolbox de Matlab°, c que soporta una gran variedad de redes,
además de poder exportar la red para trabajar en Simulink°. c En este tra-
bajo se utilizó el toolbox para crear y entrenar las redes que posteriormente
pueden ser usadas en un programa independiente desarrollado en lenguaje
C mediante el uso de unos TAD’s que la librería proporciona.
15
16 2.1. Notación gráfica
de transferencia es igual para todas las neuronas de una capa peden unirse
en una única funcón vectorial.
w11 w12 ... w1R
w21 w22 ... w2R
W= .. .. .. ..
. . . .
wS1 wS2 ... wSR
donde S es el número de neuronas de una capa y R el número de entradas
(escalares) a la misma.
Ahora bien, las redes de base radial poseen básicamente los mismos ele-
mentos que poseen las redes hasta antes vistas, pero difieren en la forma en
20 2.2. El objeto network
En matlab las redes neuronales son objetos tipo network, los cuales se
declaran de la siguiente manera:
mi_red=network
Con el anterior comando se obtiene una red que está lista para que sus
propiedades sean ajustadas a gusto del programador para generar una red
personalizada modificando para ello algunas de las propiedades que se ci-
tan a continuación:
El objeto network
contiene las
características que
definen las redes 2.2.1. Propiedades básicas
neuronales en
Matlab.
numInputs. El número de entradas vectoriales de la red.
entradas y que capas existe una conexión, es decir a que capas esta
conectada una entrada en particular.
Subobjetos. Son objetos dentro del objeto network que determinan las
características de las entradas, las capas, etcétera.
Son construcciones que le dan memoria a las redes. Toman como entra-
da un vector en un tiempo n y dan como salida un grupo de vectores que
son valores anteriores del mismo (aunque puede incluir el valor actual), la
figura 2.7 muestra un ejemplo de una línea de retardo.
p(n) p(n)
D p(n−1)
D p(n−2)
D p(n−2)
D p(n−k)
[0 1 2 3], con ello se indica que la entrada a esa capa tendrá realmente
cuatro vectores concatenados en uno, por esta razón, la matriz de pesos de
esa conexión XW2 tendrá el número de columnas determinado por la mul-
tiplicación entre el número de elementos del vector de entrada y la longitud
de la propiedad que defiene los retardos; en este caso el número de colum-
nas será ocho y tendrá tantas filas cómo número de neuronas tenga la capa.
newlin. Permite la creación de una red, con una sola neurona y fun-
ción de transferencia lineal, generalmente usada para filtros.
2.4. Un ejemplo
Todas esas propiedades del objeto network, no tienen que alterarse para
contruir una red, en el siguiente ejemplo se muestra como crear una red
personalizada, la que corresponde a la figura 2.9 en la cual cada capa es una
estructura como la en la figura 2.4 y cada D es una línea de retardos. En los
comentarios que aparecen en el código se explica lo que se hace con cada
comando.
2
X puede ser I o L
2. Antecedentes 25
6 o
(k
6f of
(3
Mnbje)e
o 6 off _f
(o ceseo cesek cese3 ceseq
%red2.m
%Ejemplo de red con varias realimentaciones
clc;
net.inputconnect=[1; 0; 0; 0];
net.layerconnect=[ 0 0 0 1;...
1 0 1 0;...
0 1 0 0;...
0 0 1 0];
26 2.4. Un ejemplo
net.targetconnect=[0 0 0 1];
net.biasconnect=[1;1;1;1];
% Segunda capa
net.layers{2}.size=50;
net.layers{2}.transferFcn=’logsig’;
% Tercera capa
net.layers{3}.size=10;
net.layers{3}.transferFcn=’logsig’;
% Cuarta capa
net.layers{4}.size=1;
net.layerweights{1,4}.initFcn=’rands’;
% Simulacion de la red
% Vector de entradas
p=1:10
s{1}
Capítulo 3
La librería
L
A experimentación con redes neuronales artificiales es de amplio in-
terés para el entorno académico. Sin embargo, escribir un simulador
desde cero es bastante tedioso, más aun si se desea que soporte va-
rios tipos de redes, pues requiere una buena cantidad código, incluso para
los ejemplos más simples que aparecen en los textos. Una opción más via-
ble para experimentar, es usar paquetes de software con capacidad para
simulación de redes neuronales. Considerando que estos paquetes no per-
miten usar dichas redes en sistemas independientes de la herramienta y en
caso de permitirlo, no son herramientas libres, la librería que se presenta
en este capítulo es precisamente un puente entre uno de los sistemas de
software más utilizado en el entorno académico como es Matlab° c y un
lenguaje de nivel medio como es el lenguaje C, el cual es en la actualidad
ampliamente utilizado en sistemas de tiempo real. El término tiempo real
está muy relacionado con la concurrencia que proporciona un determinado
lenguaje y la forman en la que aprovechan los recursos del sistema atraves
del api del sistema operativo; lenguajes de este tipo son por ejemplo Ada,
Modula, Occam e incluso, un lenguaje de tan alto nivel como Java soporta
concurrecia aunque es mucho más lento que loa anteriores. Sin embargo,
aunque el lenguaje C no fue diseñado originalmente para ello, existen op-
timizadores de código que generan programas casi tan eficientes como los
escritos en lenguaje ensamblador, así como librerías que permiten la pro-
gramación y comunicación relativamente fácil entre procesos concurrentes.
Estas cualidades hacen del lenguaje C una opción bastante atrayente para
la escritura de aplicaciones que tenga características de tiempo real. A pe-
sar de que ningún lenguaje es más rápido que el lenguaje ensamblador, hay
29
30 3.1. Lineamientos
3.1. Lineamientos
....
acc=0.0;
for(i=0;i<6;i++)
acc+=*pesos_ptr++ * *entradas_ptr++;
cesosq3eqk(qMnb3(3qb jn)f(3(sq(qk(qMnb3(3qb
wbó hó
wb4 h4
wb5 h5
wb6 h6
wb7 h7
wb. h.
6esos_6)f en)f(3(s_6)f
Las unidades de las redes son capas de neuronas que poseen carac-
terísticas similares. aunque a veces exitan capas con un único elemen-
to.
3. La librería 33
3.2. Descripción
En las redes
implementadas con
La jannl es una liviana librería en forma de archivos .h y .m (funciones en la librería existe
Matlab), que permite exportar fácilmente redes neuronales creadas con el interconexión total
Neural Network Toolbox de Matlab. Fue escrita respetado el ANSI-C, con el entre las neuronas
fin de que pudiera ser usada con diferentes compiladores. En la figura 3.2 se de las capas que
muestra el modelo UML de la librería, donde todas las clases que aparecen estan conectadas.
allí no necesariamente aparecen en el código implementadas como TAD’s,
sino que son parte del análisis solamente, como es el caso de la clase vector
que se implementó como un arreglo de números reales.
El orden en que se
agregan las capas y
Toda esta información extra facilita la programación y provee mucha fle- la líneas de retardo
xibilidad, aunque los tipos de datos sean más complejos, pero disminuye influye en el
el rendimiento, teniendo que usar muchas instrucciones de decisión en el momento de
momento de propagar la información por la red. En cambio, en la libr- propagar la
ería que se presenta, se supune que el programador es el responsable de información por la
saber cómo están relacionadas las capas; de esta forma, al agregar una capa red.
a una red, las primeras capas agregadas con add_capa_red(....), son
las primeras a las que se les calcula su salida, de igual manera el orden en
el que se agreguen las líneas de retardo a la red add_tdlv_red(....),
será el mismo en el que se actualicen al momento de llamar la operación
propagar_red(....).
Con Matlab.
En leguaje C.
Como se dijo antes es posible cargar una red por medio de la función
finit_red(RED* red,FILE* fp,jreal* vectores_entrada), los
archivos que se cargan con ella contienen la información de la red, definida
mediante un pseudolengueje el cual tiene unas marcas específicas (en los
ejemplos dichos archivos tienen extención wgh pero es indiferente).
Las marcas usadas por los archivos son (las dos primeras instrucciones
deben ir de primeras en el archivo también y en ese orden):
cesoq3k
(Mnsbnj)
f6c_wóc
f6c_wóc o3e5
ces4_
3e56
ec ;3qg3nmn6ec
3e56ec se+sq 7
7
(.h)
;6e5e6
_n3gn3
>w3ve6;n3n
_3en3
ADD_CAPA{nombre_capa}{numero_neuronas}
{funcion_transferencia}{bias}{funcion_base} Instrucción
que agrega una capa a la red con las siguientes características:
ADD_ENTRADA_TDL{nombre_capa}{dimesion}{cuantos}{desde}
Muy parecida a la anterior pero antes de conectar el vector de entrada
a la matriz de pesos coloca una línea de retardo entra las dos. cuantos
dice cuantos retardos tendra esa entrada y desde indica apartir de
que retardo se toma la salida la lñea de retardos.
CONECTAR{destino}{fuente} permite conectar dos elementos ya
sean capas o líneas de retardos, sin embargo hay que tener en cuenta
que:
• Si el destino es una capa, el origen puede ser otra capa o una línea
de retardos.
• Si el objeto destino es una lñea de retardos el origen unicamente
puede ser una capa.
DIM[filas][cols] Define el tamaño de una matriz, es usada para
comprabar la coherencia de los datos en el archivo.
1. Se crea un objeto tipo network, ya sea con las funciones para crear re-
des específicas como newff, newlin, newelm, newrbe o newrb o
creando una red a gusto propio mediante la función network y mod-
ificando las propiedades necesarias hasta tener el modelo necesitado.
2. Se utiliza alguna de las funciones que compone la librería en Mat-
lab net2c(nombre,network) para generar código en lenguaje C o
también wred(network,archivo) para generar un archivo de tex-
to con la información de de pesos y de conexiones (archivo que tendrá
la estructura descrita arriba).
3. Se puede usar el código generado en lenguaje C para construir un pro-
grama ejecutable con una sentencia #include "nombre.h" o si el
sistema donde se trabaja tiene acceso a disco, cargar la red del archi-
vo texto en tiempo de ejecución mediante una llamada a la función
finit_red(...) (ver manual), que inicializa la red apartir de un
archivo de texto.
3. La librería 39
Generar código en C
3.5. Ejemplos
Que fuera fácil de usar, que las personas que se estubieran inciando en
el estudio de las redes neuronales pudieran usar una herramienta de
alto nivel para la simulaciones y pruebas de sus redes y no necesitara
escribir todo un programa para cada red.
NUM_CAPAS{2}
NUM_ENTRADAS{1}
ADD_CAPA{lacapa}{2}{hardlim}{BIAS}{netsum}
ADD_ENTRADA{lacapa}{2}
DIM[2][2]
1.0
1.0
1.0
1.0
SET_BIAS{lacapa}
DIM[2][1]
-0.5
-1.5
ADD_CAPA{otracapa}{1}{hardlim}{BIAS}{netsum}
%La salida de lacapa se conecta a otracapa
CONECTAR{otracapa}{lacapa}
DIM[1][2]
1.0
-1.5
SET_BIAS{otracapa}
DIM[1][1]
-0.5
/*#define NDEBUG*/
#include <assert.h>
#define MAX_ENTRADAS 2
#define SAT_EXP /** se indica que se saturen las exponenciales */
#include <jannl.h>
/**
Un ejemplo de uso de una red tipo perceptron para realizar una
operacion operaciones con dos entradas escalares
(un vector de dos elementos)
*/
ST st=ok;
FILE* fp=null;
RED* red=null;
if(nargs!=2)
{
printf("El argumento debe ser el nombre del Archivo");
exit(1);
}
fp=fopen(args[1],"rt");
if (fp==null)
{
42 3.5. Ejemplos
ent1[0]=0;
ent1[1]=0;
propagar_red(red,&sal);
printf("\%f \%f --> \%f\n",ent1[0],ent1[1],sal);
ent1[0]=0;
ent1[1]=1;
propagar_red(red,&sal);
printf("\%f \%f --> \%f\n",ent1[0],ent1[1],sal);
ent1[0]=1;
ent1[1]=0;
propagar_red(red,&sal);
printf("\%f \%f --> \%f\n",ent1[0],ent1[1],sal);
ent1[0]=1;
ent1[1]=1;
propagar_red(red,&sal);
printf("\%f \%f --> \%f\n",ent1[0],ent1[1],sal);
final_red(red);
/** destr_red revisa si el puntero es diferente de null */
destr_red(red);
getchar();
return 1;
}
3. La librería 43
Debido a que se supone que las redes pueden tener varias entradas vec-
toriales lo que se le pasa a la función finit_red... como entrada es un
arreglo de punteros, asi cada puntero representa un vector de entrada.
/*#define SAT_EXP */
#include <jannl.h>
void main()
{
int i,j;
ST st=ok;
FILE* fp=null;
RED* red=null;
jreal salida;
/* Los valors de entradas con los que se probar le red */
jreal valores_entrada[]={0,1,0,1,1,0,0,0};
/* La variable que la red revisa cuando se va a propagar */
jreal entrada;
/* La anterior variable es una entrada */
jreal* vector_entradas[1];
vector_entradas[0]=&entrada;
red=crear_red();
fp=fopen("..la_ruta..\\elman.wgh","rt");
st=finit_red(red,fp,vector_entradas);
if(st!=ok)
{
printf("Error inicializando la red del archivo !");
exit(1);
}
printf("\nRed de Elman: \n
pag 9-3 Manual de Neural Networks Matlab\n");
for(i=0;i<8;i++)
{
entrada=valores_entrada[i];
propagar_red(red,&salida);
46 3.5. Ejemplos
}/*fin main*/
Para ver más profundamente el uso de las funciones, ver los archivos de
ejemplos del manual de jannl y ver el directorio examples de los fuentes.
Adaline.
Perceptron.
Base radial.
Elman.
Enlaces de interes
N
O exite duda que las implementaciones más rapidas de procesos son
aquellas hechas directamente en hardware, pues ni el más rápido
procesador disponible en el mercado puede dar una verdadera re-
spuesta en tiempo real con redes muy grandes y con muchas conexiones, por
ello, varios centros de investigaciones se han dedicado a crear hardware es-
pecífico que aproveche las características inherentes de las redes neuronales.
http://www.ilustrados.com/publicaciones/EpZpVVFkFVKDXfMAYJ.php
Un artículo sobre la implementación por hardware de las redes neu-
ronales además tiene una presentación en que hicieron los alumnos
con fotografias de tarjetas desarrolladas.
http://www.particle.kth.se/ lindsey/HardwareNNWCourse/home.html
Es un sitio con un curso informativo sobre implementación de redes
neuronales por hardware, además tiene links muy interesantes a insti-
tuciones que investigan sobre desarrollos en este tipo de hardware.
49
50
[Bea02] Howard Demuth. Mark Beale. Neural Networs Toolbox, User’s Guide.
The Mathworks, www.mathworks.com, 2002.
51
52 BIBLIOGRAFÍA
Apéndice D. REDES NEURONALES ARTICIALES
D.3. Tipologías
Dependiendo de la estructura de la red neuronal existen varias tipologías, algunas
de estas son: el Perceptrón, Backpropagation, Hopfield, y Kohonen.
D.3.1 Perceptrón
En 1943 se desarrolló el primer modelo de neurona artificial por McCulloch y
Pitts. El perceptrón intenta modelar el comportamiento de la neurona biológica,
derivado del modelo hecho por McCulloch y Pitts (Looney 1997). Es la base de la
arquitectura de las redes neuronales artificiales. El perceptrón trabaja con
funciones de activación. En la Figura D.1 se observa el modelo de un perceptrón
para reconocimiento de patrones. El cuerpo de la neurona es representado como
232 Apéndice D
un sumador lineal de estímulos zj, seguida por una función no lineal f(zj) que es la
función de activación, esta utiliza la suma de estímulos para determinar la salida de
la neurona. En el perceptrón cada entrada es multiplicada por un factor de peso W
correspondiente, los resultados son sumados y luego evaluados contra el valor de
umbral θ, si el valor es mayor al máximo el perceptrón se activa.
Entrada
g1 X1
W1 θ
g2 X2
W2
Salida
Σ XiWi f(z)
g3 X3 W3 Axon
W4 Cuerpo
g4 X4
La primera capa actúa como un grupo de sensores que detectan una señal
específica con la importancia correspondiente. La segunda capa toma las salidas de
los detectores y clasifica el patrón de entrada dado. El aprendizaje empieza
ajustando la fuerza en las conexiones (pesos wi) y el valor de umbral θ. La función
gi es fija y está predeterminada.
El entrenamiento de un perceptrón se hace utilizando una función de
aprendizaje. Si la respuesta dada por el perceptrón es incorrecta, se modifican
todos los pesos de las conexiones de acuerdo a la siguiente función:
∆ wi = η t i xi (D.1)
donde η es la rata de aprendizaje, ti en la salida deseada, y x es la entrada del
perceptrón.
La función anterior puede ser utilizada también para la actualización del
valor de umbral θ . El valor de η puede ser constante a lo largo del entrenamiento,
o puede variar en forma proporcional al error. Un η proporcional al error lleva a
una convergencia rápida, pero causa un aprendizaje variable.
El perceptrón es capaz tan sólo de resolver funciones definidas por un
hiperplano (objeto de dimensión N-1 contenida en un espacio de dimensión N),
que corte un espacio de dimensión N. Es decir sólo puede resolver una función, si
Apéndice D 233
todos los posibles resultados del problema pueden separarse de forma que no se
combinen entre si.
Existen varios tipos de perceptrones dependiendo del número de capas que
tenga. Un perceptrón simple o de dos capas, corresponde a una capa de entrada
con neuronas lineales y una de salida con función de activación tipo escalón. Este
sólo puede establecer dos regiones separadas por una frontera lineal en el espacio
de patrones de entrada.
Un perceptrón de tres capas puede formar cualquier región convexa en este
espacio. Cada elemento se comporta como un perceptrón simple. Un perceptrón
de cuatro capas puede generar regiones de decisión arbitrariamente complejas.
Puede resolver una gran variedad de problemas cuyas entradas sean analógicas; la
salida sea digital y sea linealmente separable. El rango de tareas que el perceptrón
puede realizar es más amplio que simples decisiones y reconocimiento de patrones.
El perceptrón multicapa puede ser usado para la predicción de una serie de datos
en el tiempo, como cambios financieros. Más detalles sobre las caracteristicas y
limitaciones del perceptron son explicadas por Bishop (1995).
D.3.2 Backpropagation
Cuando se combinan varios perceptrones en una capa y los estímulos de entrada
después son sumados, se tiene ya una red neuronal.
La falta de métodos de entrenamiento apropiados para los perceptrones
multicapa (MLP) hizo que declinara el interés en las redes neuronales en los años
60 y 70. Esto no cambió hasta la reformulación del método de entrenamiento para
MLPs Backpropagation a mediados de los años 80 por Rumelhart (1986).
En esta red, se interconectan varias unidades de procesamiento en capas, las
neuronas de cada capa se conectan entre sí. Cada neurona de una capa proporciona
una entrada a cada una de las neuronas de la siguiente capa. En la Figura D.2 se
observa la arquitectura de este tipo de red.
4
X1
7 X7
5
X2
8 X8
6
X3
Y1
I1
Y2
I2
Entradas de YN
Realimentacion
IN Salidas
XN X2 X1
Entradas
Iniciales
X1 V11
Y1
X2
Y2
XN YM
VNM
Puede decirse que entre las neuronas de la capa de salida existen conexiones
laterales de inhibición implícitas aunque no estén conectadas. La influencia que una
neurona tiene sobre las demás es función de la distancia entre ellas, se hace muy
pequeña cuando están muy alejadas.
Cada una de las M neuronas tiene un vector de pesos V(m) de dimensión N,
que es la misma dimensión del vector de entradas X(q). Al principio los vectores de
pesos son inicializados aleatoriamente. Se calculan las distancias cuadradas entre
X(q) y cada V(m), m=1, ..., M así:
* * *
V (m ) = V (m ) + η ( X (q) − V (m ) ) (D.3)
donde η es la rata de aprendizaje, y las demás neuronas mantienen los valores
anteriores. Otra estrategia que puede se utilizada es actualizar positivamente
(recompensar) todas las neuronas que son cercanas a la neurona ganadora, y
actualizar negativamente (castigar) las neuronas que están a mayor distancia
(Looney 1997).
Esta red una vez entrenada puede ser utilizada para clasificar patrones de
entrada similares en el espacio N-dimensional.
Apéndice D 237
D.4. Aplicaciones
Las redes neuronales pueden ser de diferentes modelos de aprendizaje y tipologías
dependiendo del uso que se espere darle a cada una. Pueden ser aplicadas a
diferentes campos tales como: Control de eficiencia de máquinas, reconocimiento
de firmas, reconocimiento de blancos mediante sonares, predicciones en el tiempo,
decisiones, análisis de inversiones, monitoreo, mercadotecnia, planeación
estratégica, diagnostico, diseño, optimización y en aplicaciones (recientemente) de
ingeniería civil como la valoración de efectos sísmicos, solución de problemas de
gerencia de construcción, control activo estructural y diagnósticos de daño
(Paolucci 2000).
Una aplicación reciente ha sido en el pronóstico de caudales diarios y en el
cálculo del nivel de agua en ciertos sitios en la época de crecida del río Iguazú.
En el sector industrial las redes neuronales son ampliamente utilizadas
empleando modelos de ingeniería que incluyen conocimiento científico y
tecnológico en la industria, cervecera, química, aérea, alimentaria, del acero, vidrio,
cemento y telecomunicaciones.
En ingeniería civil, Lagaros, Papadrakakis, Fragiadakis, Stefanou y
Tsompanakis (2005) propusieron la aplicación de las redes neuronales artificiales
para el análisis probabilista de seguridad de sistemas estructurales sometidos a
cargas sísmicas. Otro trabajo relacionado con el comportamiento estructural es el
desarrollado por Hurtado (2001), quien aplica las redes neuronales en la mecánica
estocástica.
Otras herramientas de inteligencia computacional han sido aplicadas en el
campo de la evaluación de daños, como es el caso de Chou and Ghaboussi (2001),
quienes estudiaron la aplicación de algoritmos genéticos a la detección de daños,
usando medidas de los desplazamientos para identificar cambios en las propiedades
de los elementos estructurales, como la sección trasversal y el módulo de Young.
D.5. Referencias
Bishop C. M. (1995). Neural Networks for Pattern Recognition. Clarendon press Oxford.
Chou J-H, y Ghaboussi J. (2001). Genetic algorithm in structural damage detection.
Computers & Structures 79, pp. 1335-1353.
Hurtado J.E. (2001). Neural networks in stochastic mechanics. Archives of computational
methods in engineering, State of the art reviews, 8 (3), p.p. 303-342.
Jang J.-S.R., Sun C. –T., & Mizutani E. (1997). Neuro-Fuzzy and soft computing. A
computational approach to learning and machine intelligence. London, UK: Prentice-Hall.
Looney C.G. (1997). Pattern Recognition using Neural Networks. Theory and Algorithms for
Engineers and Scientists.
Lagaros N.D., Papadrakakis M., Fragiadakis M., Stefanou G. y Tsompanakis Y. (2005).
Recent developments in neural network aided stochastic computations and
earthquake engineering. International Symposium on Neural Networks and Soft Computing
in Structural Engineering NNSC-2005. Cracow, Poland, June 30 - July 2, 2005.
238 Apéndice D
Martín del Brío B. y Sanz A. (2001). Redes neuronales y sistemas borrosos. Ra-Ma Editorial,
Madrid, España.
Nauck D., Klawonn F., & Kruse R. (1997). Foundations of neuro-fuzzy systems. Chichester,
England: John Wiley & Sons.
Paolucci, Roberto, Colli, P., y Giacinto, G.. Assessment of Seismic Site Effects in 2-D
Alluvial Valleys Using Neural Networks. Earthquake Spectra, Volume16, Number 3.
August 2000.
Rumelhart D. E. Hinton G. E. y Williams R.J. (1986). Learning representations by
backpropagating errors. Nature, 323, 533-6.
Rutkowska D. (2002). Neuro-fuzzy architectures and hybrid learning, Physica Verlag,
Heidelberg, Germany.
Zadeh L. A. (1992). Fuzzy logic, neural networks and soft computing. One-page course
announcement of CS 294-4, Spring 1993, the University of California at Berkeley.
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
RESUMEN
Las redes neuronales artificiales (RNA) son aplicadas en diversos ámbitos de la actividad
humana. Una de sus aplicaciones es como herramienta de análisis de información,
específicamente dentro de la Bibliometría. En este trabajo se hace una introducción sobre
las particularidades de las RNA, específicamente las basadas en el modelo Kohonen (Mapas
auto-organizativos). Se exponen los elementos que la integran y se vincula su principio de
funcionamiento con la Bibliometría. Se utiliza y caracteriza un software llamado Viscovery
SOMine que retoma, para su funcionamiento, el concepto y los algoritmos de los mapas
auto-organizativos. Se ejemplifica la utilidad de las RNA, dentro de la Bibliometría, a través
de casos prácticos.
ABSTRACT
The artificial neuronal networks (ANN) are applied in a wide range of the humankind
activities. One of them is as a tool for the data analysis, specially within Bibliometrics. In this
paper an introduction to some special features of the ANN is made, mainly those based on
the Kohonen model(Self-organizing maps). The different elements that form these networks
are presented and their working principle is linked to the Bibliometrics. A software called
Viscovery SOMine that takes, for its own running, the concepts and algorisms from the Self-
organizing maps is used and characterized. Finally, the use of the ANN in the Bibliometrics is
shown through different case of studies.
1
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
Introducción
Las técnicas computacionales, desde sus inicios, marcaron un paradigma en la creación. Sus
aplicaciones, hoy día, van desde la industria de los juegos hasta las cadenas de producción
de varias empresas. Para ello se han desarrollado múltiples técnicas como las relacionadas
con la inteligencia artificial. Las más conocidas son la lógica difusa (aprendizaje inductivo),
algoritmos genéticos y redes neuronales.
Unos veinte años después, en la década de los 70, resurgen estas teorías y se despierta el
interés en sus aplicaciones. Actualmente las redes neuronales se emplean en diferentes
campos, estos se agrupan según varios criterios. Uno de ellos es el propuesto por Deboeck
[3], quien los agrupa en:
1
Rosenblatt, F. The perceptron: A probabilistic model for information storage and organization in the
brain. Psychol. Rev. 65(3):386-408.
2
Minsky, M.; Papert, S. Perceptrons. Massachusetts: Cambridge University; 1969; 226 p.
2
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
El objetivo del presente trabajo es utilizar la base teórica de las redes neuronales artificiales
como una herramienta práctica que permita realizar análisis exploratorios de datos o minería
de datos vinculados con los indicadores bibliométricos. Para el logro de este objetivo se
utiliza y caracteriza un software llamado Viscovery SOMine [4] que retoma, para su
funcionamiento, el concepto y los algoritmos de los mapas auto-organizativos.
Una red neuronal, según Freman y Skapura [5], es un sistema de procesadores paralelos
conectados entre sí en forma de grafo dirigido. Esquemáticamente cada elemento de
procesamiento (neuronas) de la red se representa como un nodo. Estas conexiones
establecen una estructura jerárquica que tratando de emular la fisiología del cerebro busca
nuevos modelos de procesamiento para solucionar problemas concretos del mundo real. Lo
importante en el desarrollo de la técnica de las RNA es su útil comportamiento al aprender,
reconocer y aplicar relaciones entre objetos y tramas de objetos propios del mundo real. En
este sentido, se uilizan las RNA como una herramientas que podrá utilizarse para resolver
problemas difíciles.
La posibilidad de resolver problemas difíciles es dable gracias a los principios de las redes
neuronales, los cinco más importantes son citados por Hilera y Martínez [6]. Estos son
enunciados a continuación:
3
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
Autoorganización significa generalización, de esta forma una red puede responder a datos o
situaciones que no ha experimentado antes, pero que puede inferir sobre la base de su
entrenamiento. Esta característica es muy útil sobre todo cuando la información de entrada
es poco clara o se encuentra incompleta.
Operación en tiempo real: Las redes neuronales artificiales, de todos los métodos existentes,
son las más indicadas para el reconocimiento de patrones en tiempo real, debido a que
trabajan en paralelo actualizando todas sus instancias simultáneamente. Es importante
destacar que esta característica solo se aprecia cuando se implementan redes con hardware
especialmente diseñados para el procesamiento paralelo.
4
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
sinapsis la neurona se activa y excita una señal electroquímica a lo largo del axón. Esta
señal transfiere la sinapsis a otras neuronas, las que a su vez pueden excitase. Las neuronas
se excitan sólo sí la señal total recibida en el cuerpo de las células, por conducto de las
dendritas, es superior a cierto nivel (umbral de excitación) [11].
Las redes neuronales artificiales tratan de imitar este principio de funcionamiento cerebral.
Las redes neuronales artificiales están formadas por una gran cantidad de neuronas, estas
no suelen denominarse neuronas artificiales sino nodos o unidades de salida. Un nodo o
neurona cuenta con una cantidad variable de entradas que provienen del exterior
(X1, X2, ......, Xm). A su vez dispone de una sola salida (Xj) que transmitirá la información al
exterior o hacia otras neuronas. Cada Xj o señal de salida tiene asociada una magnitud
llamada peso este se calculará en función de las entradas, por lo cual cada una de ellas es
afectada por un determinado peso (Wjo...Wjq+m) (13). Los pesos corresponden a la
intensidad de los enlaces sinápticos entre neuronas y varían libremente en función del tiempo
y en cada una de las neuronas que forman parte de la red. (Fig. 1).
X0
Wjo
X1 Wjq+1 Red Xj
F A
Kornilov, A.R. Intelligent technologies new opportunities for modern industry. Information Technology. 1997; 3:1-14.
Fig 1. Esquema de una neurona.
5
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
El proceso de aprendizaje consiste en hallar los pesos que codifican los conocimientos. Una
regla de aprendizaje hace variar el valor de los pesos de una red hasta que estos adoptan un
valor constante, cuando esto ocurre se dice que la red ya "ha aprendido". [15]
Al conectar varias neuronas de un determinado modo, se consigue una red. Existen
variaciones de topologías, que se clasifican según tres criterios:
1) Número de niveles o capas.
2) Número de neuronas por nivel.
3) Formas de conexión.
El diseño de una u otra tipología depende del problema a solucionar por ejemplo para
elaborar un programa de filtro digital en una computadora, se debe emplear un algoritmo en
que todas las capas estén uniformemente interconectadas, o sea que todos lo nodos de una
capa esten conectados con los nodos de otra capa. En la Figura 2 se muestra la arquitectura
de una RNA clásica con variables de entrada, dos capas de neuronas intermedias y y una
capa de salida. Todas ellas conectadas entre sí.
Otro algoritmo de RNA es el que aparece en la Figura 3, en este ejemplo las neuronas se
organizan en una tipología de capas diferentes. Solo incluye una capa neuronal oculta, este
algoritmo es muy elemental y es muy utilizado a nivel académico para la construcción y
prueba de diferentes tipos de modelos de red.
6
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
Fig. 3. Esquema de una RNA del tipo alimentación directa (feed forward). Topología
con una capa de neuronas intermedias.
Existe una gran variedad de modelos de redes neuronales estos dependen del objetivo para
el cual fueron diseñados y del problema práctico que solucionan. Hoy en día, su éxito
depende en, gran medida, del valor comercial que logren alcanzar sus aplicaciones. En
dependencia de ello unos serán más populares que otros, entre los más conocidos están el
Adaline/Madaline (utilizado en el diseño y realización de filtros, para llevar a cabo la
eliminación del ruido en señales portadoras de información, modems, etc.), el back
propagation (utilizado en el proyecto de la máquina de escribir neural fonética) y el modelo de
los mapas auto-organizados (Self-Organizing Map, SOM). Este último es conocido como
modelo de Kohonen por ser este su creador, un análisis más detallado de este modelo
aparece en el acápite siguiente.
2. Modelo Kohonen
Este modelo surge ante la curiosidad de Teuvo Kohonen, quien interesado en comprender la
clasificación natural que hace el cerebro en cuanto a su funcionalidad, ideó el algoritmo
SOM. Una definición simplificada sobre los mapas topológicos podría ser que, en una
correspondencia que respecte la topología, las unidades que se encuentran físicamente
próximas entre sí van a responder a clase de vectores de entrada que, análogamente, se
encuentren cerca unos de otros. Los vectores de entrada de muchas dimensiones son
7
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
representados sobre el mapa bidimensional, de tal manera que se mantenga el orden natural
de los vectores de entrada. [3, 5, 9].
Este modelo de RNA es del tipo “aprendizaje autoorganizado” que como se explicó con
anterioridad es un proceso donde las neuronas aprenden mediante la autoorganización.
Durante el proceso de aprendizaje, al ingresar un dato solo una neurona que tenga una
actividad positiva dentro de la vecindad será activada en la capa de salida.
En los estudios métricos la aplicación de las redes neuronales, y específicamente los SOM,
están asociados en lo fundamental con la clasificación de información, o sea, la formación de
8
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
• la selección de variables,
• clasificación de información o formación de cluster,
• regresión,
• relaciones entre variables,
• cambios y desviaciones,
• representación de las variables.
Un ejemplo de SOM podría ser.el estudio de una temática determinada, para este caso en un
mapa cada documento (artículo de revista, podría ser una patente, una tesis, etc.) va a
ocupar un lugar en el espacio, en función de su contenido temático. Cada área del mapa va a
9
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
reflejar un contenido específico y los tópicos van variando levemente a lo largo del mismo.
Las diferentes tonalidades indican la densidad de documentos, cuanto más oscura más
documentos se encuentran.
Este uso frecuente de los SOM quizás se deba a lo amigable de la interfaz de los mapas
para los usuarios finales y a la diversidad de sus utilidades prácticas, estas representaciones
son válidas para poder identificar, además de los desarrollos temáticos antes mencionados,
relaciones entres áreas temáticas y publicaciones, alianzas estratégicas y características de
la cooperación. Permite, también, visualizar los avances tecnológicos que tienen lugar en un
período, conocer la evolución de una tecnología a través del tiempo e identificar campos
emergentes.
Pre-procesamiento
Datos
Datos
Pre-procesamiento
de
dedatos
datos
Flujo de información
Viscovery®SOMine
Algoritmo
AlgoritmoSOM
SOM++
Asociaciones
Asociaciones
Clusters
Clusters
Visualización
Mapa
Mapa Graficos Exploración
de características Graficos
de características
Evaluación
Valores
Valores
Modelado
Filtrado
Filtrado
Datos Recobrado
Datos Recobrado
Monitoreo
Monitoreo
10
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
Aplicaciones
Se estima que a pesar de las limitaciones técnicas, las redes neuronales aplicadas a la
Bibliometría constituyen un campo de investigación muy prometedor. Un ejemplo es
presentado a continuación.
Las diferentes instituciones en la primera hoja de sus patentes hacen referencias a otras
patentes, a partir de estos datos se puede inferir el impacto que produce una tecnología o
3
Entre las bacterias causantes de la meningitis cerebroespinal, la Neisseria meningitidis es el agente
causal más frecuentemente encontrado. La enfermedad se presenta en todo el mundo y se manifiesta
de forma endémica o epidémica).
11
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
12
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
citan poco a otras instituciones. El cluster 2 evidencia un alto nivel de autocitación, cuando
esto sucede, algunos investigadores [1] en el tema señalan que probablemente esta
institución tenga un nicho de protección cerrada sobre un espacio tecnológico. Puede estar
ocurriendo que exista una patente importante, la cual se ha rodeado de invenciones
mejoradas. El cluster formado por la Merck & Co. indica un mayor nivel de citación, esto
presupone una estrategia balanceada: absorbe tecnología externa y produce tecnología
propia. La cercanía de los cluster también es una evidencia sobre las instituciones que tienen
estrategias parecidas a la de otras. La Rockefeller University hace frontera con el cluster que
incluye a North American Vaccine, y el National Res. Council de Canada; estas instituciones
forman un colegio tecnológico invisible que basa sus desarrollos en la misma innovación
tecnológica.
Otro ejemplo
13
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
Los 22 países se agrupan (autorganizan) en 3 clusters o grupos: El cluster C1, que aparece
en la esquina inferior izquierda, es seguido por una banda de 4 países correspondientes al
cluster C2 (Cuba, Colombia, Chile y Venezuela) y otro cluster (C3) con el resto de los países.
14
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
En el ámbito regional e internacional hay un grupo de países formado por Brasil, México y
Argentina que tienen una investigación en la temática con mayor solidez y con parecidos
niveles de desarrollo. Esto coincide con los países que presentan mayor nivel regional en el
desarrollo agrícola.
Consideraciones finales
Ante los ejemplos expuestos, se hace evidente que las redes neuronales artificiales,
específicamente las basadas en el modelo Kohonen, pueden ser aplicadas como una
herramienta de análisis con múltiples propósitos.
El vínculo de la Bibliometría con las redes neuronales se muestra muy fructífero. Esta
herramienta de análisis debe ser estudiada no solo por la Bibliometría, sino también por
otras disciplinas, las cuales pueden potenciar con ella su propio desarrollo.
Referencias
1. Battelle Memorial Institute. Keeping abreast of science and technology: technical for
business. Ashton, B., Klavans, R.A. Ohio: Battelle Memorial Institute, 1997, 557 p.
15
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
3. Deboeck, Guido J. Pattern recognition and prediction with self-organizing maps and ork /
AIabtext.html supporting software review: visualization through viscovery [en línea]. <
http://www.gordiand-knot.com >>. Gordian Institute Electronic NewsLetter. [Consulta: 20
de febrero 2000.]
4. Eudaptics Software Gmbh. Viscovery® for CRM-applications (Viscovery White Paper) [en
línea]. <<http://www.eudatic.com>>. [Consulta: diciembre de 1999].
8. Kaski, S. y otros. Creating an order in digital libraries with selft-organizing map. In:
Proceeding of World Congress on Neural Networks, WCNN'96. Mahwah, NJ, INNS Press,
1996. 1996, pp. 814-817.
10. Kornilov, A.R. Intelligent technologies new opportunities for modern industry. Information
Technology. 1997; 3(6):1-14.
16
Sotolongo, G.; Guzmán, MV.
Aplicaciones de las redes neuronales. El caso de la bibliometría.
Ciencias de la Información. (preprint) 2001; 32(1):27-34.
12. Polanco, Xavier; Francois, C., Keim, JF. Artificial neural network technology for the
classification and cartography of scientific and technical information. In: Periz, B.,
Egghe, L. Procceding Sixth International Conference of the International Society for
Scientometrics and Informetrics; Jerusalem, Israel, 1997. Jerusalem, Universidad Hebrew
of Jerusalem, 1997, pp. 319-330.
13. Sotolongo, G; Suárez, CA.; Guzmán, MV. Modular Bibliometrics Information System with
Propietary Software (MOBIS-ProSoft): a versatile approach to bibliometric research tools.
Library and Information Science Electronic Journal (LIBRES). 2000; 10(2):
http://libres.curtin.edu.au/
14. Sotolongo, G; Suárez, CA.; Guzmán, MV. Modular Bibliometrics Information System with
Propietary Software: In: Macías-Chapula, C. (Ed.). In: Proceedings of the Seventh
International Society for Scientometrics and Informetrics. Universidad de Colima, México.
1999; 313-322.
15. StatSoft, Inc. Neural Networks. Statistica for Windows [Computer program manual]. Tulsa,
Oklahoma: StatSoft, Inc. <<http://www..statsoft.com>>. [Consulta: diciembre del 2000].
17