documentacion the art gallery

23

Upload: escom

Post on 11-May-2015

1.546 views

Category:

Documents


0 download

DESCRIPTION

Documentacion The Art Gallery REDES NEURONALES

TRANSCRIPT

Page 1: Documentacion The Art Gallery

Sistemas NeuroDifusos The ART Gallery

xx/10/2002THE ART GALLERY DESARROLLADO POR: Lars Liden

Page 2: Documentacion The Art Gallery

Contenido

Introducción

1 Descripción de archivos1.1 Archivos UNIX 1.2 Archivos DOS1.3 Simulador de muestra para Windows1.4 Reporte de Fallas

2 Descripción de Art Gallery Networks2.1 Repaso de la Red

2.1.1 Tipos de red 2.1.2 Red tipo ART (Teoría de Resonancia Adaptativa)

2.1.3 Red tipo ARTMAP 2.1.4 Componentes tipo ART 2.2 Datos de entrada de la red

2.2.1 "Estilos" de datos2.3 Activación de la red

2.3.1 Inicializando una red2.3.2 Acceder a estructuras de información de la red2.3.3 Entrenando la red2.3.4 Pruebas de la red2.3.5 Guardar y Leer redes2.3.6 Liberando espacio de la red

2.4 Conjuntos de patrones2.4.1 Crear un conjunto patrones2.4.2 Datos Tipo2.4.3 Examinando parámetros de un patrón y datos2.4.4 Guardar y leer un conjunto patrones2.4.5 Combinando conjuntos de patrones2.4.6 Liberar espacio de un conjunto de patrones

2.5 Anotando errores de chequeo e inicialización de variables2.6 Complementar código y estabilidad de la red

3 Compilar The Art Gallery como una DLL3.1 Usar The Art Gallery en Visual Basic

4 Simuladores de ejemplo4.1 Simulador en modo texto para Unix y DOS4.2 Simulador en Windows de Art Gallery

5 Entrenando y probando archivos5.1 Conjunto de entrenamiento para una red de Ejemplo5.2 Datos de ejemplo para crear una red

6 Constantes7 Sumario de funciones de ART GALLERY8 Referencias

Page 3: Documentacion The Art Gallery

INTRODUCCION

The Art Gallery es una serie de procedimientos que pueden ser utilizados con otro lenguaje para implementar muchas de las redes neuronales de tipo ART.

Actualmente The Art Gallery soporta llamadas a procedimientos en C, en las plataformas Unix y DOS, así como la compilación como una librería dinámica ligada (dll) para usarse con aplicaciones Windows (como Visual Basic).

Dos simuladores de prueba se proveen con el código. Uno corre una versión modo texto bajo Unix y DOS, el otro, en una versión con interfaz gráfica para Windows.

Las estructuras de datos de las redes ART y conjuntos de patrones están diseñadas de tal manera que el usuario no necesita acceder a las estructuras directamente, pero puede llamarlas en otros procedimientos si necesita información.

Page 4: Documentacion The Art Gallery

1 Descripción de archivos

Los siguientes archivos deben ser incluidos con Art Gallery:

README.TXT - Información acerca de archivos de compilación /UNIX - Subdirectorio con archivos para plataforma Unix /DOS - Subdirectorio con archivos para plataforma DOS /WIN - Subdirectorio con archivos de instalación para simulador de Windows

1.1 Archivos UNIX

VER_1.0- Numero de Versión, información acerca de cambio de códigosArt_Doc.txt - ayuda con Art Library

Art_Gal.h - Archivo de encabezado general Art_Def.h - Constantes, red y definicion del conjunto de patrones Art_Ext.c - Librería de procedimientos externos Art_Ext.h - Archivo de encabezado para procedimientos externosArt_Int.c - Librería de procedimientos internos Art_Int.h - Archivo de encabezado para procedimientos internosMakefile - Makefile para GCCArt_Sim.c - Ejemplo de simulador de textotrain.pat - Ejemplo de archivo de entrenamiento test.pat - Ejemplo de archivo de pruebaanalog.dat - Ejemplo de datos para crear conjuntos (Makeset)binary.dat - Ejemplo de datos para crear conjuntos (Makeset)

1.2 Archivos DOS:

Los archivos vienen compresos con PKZIP como “dos_gal.zip”.VER_1.0-Numero de Versión, información acerca de cambio de códigosArt_Doc.txt - Ayuda Art_Gal.h - Archivo de encabezado general

Art_Def.h - Constantes, red y definiciones de conjunto de patrones Art_Ext.c - Librería de procedimientos externos Art_Ext.h - Archivo de Encabezado de archivo para procedimientos externosArt_Int.c - Librería de procedimientos internos Art_Int.h - Archivo de encabezado para procedimientos internosArt_Sim.mak - Makefile para Borland C++Art_Sim.cfg - Archivo de configuración para Borland C++Art_Gal.mak - Makefile para Borland C++;Art_Gal.cfg - Archivo de configuración para Borland C++Art_DLL.c - Código DLLArt_Gal.def - Código DLL Art_Sim.c - Ejemplo de simulador de textotrain.pat - Ejemplo de archivo de entrenamientotest.pat - Ejemplo de archivo de pruebaanalog.dat - Ejemplo de datos para crear conjuntos (Makeset)binary.dat - Ejemplo de datos para crear conjuntos(Makeset)Default.bas - Ejemplo de como declarar la DLL en visual Basic

1.3 Simulador de muestra para WindowsLos archivos vienen compresos con PKZIP como “win_gal.zip”.

Page 5: Documentacion The Art Gallery

Reporte de FallasTodos los reportes de fallas, comentarios y sugerencias podrían ser enviadas [email protected]

Page 6: Documentacion The Art Gallery

2 Descripción de Art Gallery Networks

2.1 Repaso de la red

The Art Gallery soporta los paradigmas de aprendizaje supervisado y no supervisado.La red consiste en conjuntos con pesos aprendidos, así como especificaciones acerca

del tipo de red que será utilizada. Los datos son almacenados en una estructura de datos del tipo "netTYPE" y puede estar señalado por un puntero tipo "netPTR" cada uno de los cuales está definido en Art_Gal.h.

Los datos de la red pueden (y deben) ser accesados sin referencia a partes de la estructura de datos en si misma. Las funciones han sido provistas para un acceso fácil a la información de la red.

2.1.1 Tipos de red

Las redes pueden ser de dos tipos, ART(Teoría de Resonancia Adaptativa), para aprendizaje no supervisado y las redes ARTMAP para aprendizaje supervisado. Ambas redes son hechas con componentes ART, cada uno pueden tomar diferentes formas incluyendo ART1 y FUZZYART.

Un tipo de red puede ser verificado usando GetNetType.

2.1.2 Tipos de red ART

El tipo de red neuronal ART es utilizado para aprendizaje no supervisado. Consiste en un componente ART, llamado “ART”, y toma como entradas a un conjunto de patrones.

La red aprende a agrupar las entradas hacia categorías de salidas que subsecuentemente son examinadas como nuevos patrones de entrada.

El componente ART puede ser de tipo ART1, para patrones de entradas binarios o tipo FUZZYART para patrones de entrada analógicos. 2.1.3 Tipo de red ARTMAP

El tipo de red ARTMAP es utilizado para aprendizaje supervisado. Consiste en dos componentes, una red de entrada ART, llamada “ARTA”, y una red de salida ART, llamada “ARTB”, y toma los patrones de entrada y salida. Los dos componentes están conectados por un mapa de campo o Mapfield.

La red de entrada ART, ARTA, agrupa los patrones de entrada basados en retroalimentación del Mapfield. El componente ARTA puede ser de tipo ART1 para entradas binarias, o FUZZYART para entradas analógicas.

La red de salida ART, ARTB, agrupa los patrones de salidas deseadas y envía activaciones categóricas a los Mapfield. El componente ARTB puede ser de tipo ART1, para salidas Binarias, o FUZZYART, para salidas analógicas, o de tipo NONE.

Cuando la salida ARTB, es de tipo NONE, el valor de salida deseada se envía directamente al Mapfield antes de ser agrupada por ARTB.

Note que la entrada a la red ARTB , es actualmente el patrón de salida de la red.

2.1.4 Tipos de componentes Art.

Actualmente se soportan dos tipos de componentes ART, ART1 y FUZZYART. ART1 aprende a agrupar patrones de entrada binarios mientras que FUZZYART aprende a agrupar ambos patrones de entrada, binario y analógico.

Adicionalmente, el componente ARTB del tipo de red ARTMAP puede llegar a ser del tipo NONE, si no se desea un componente ARTB.

Page 7: Documentacion The Art Gallery

El tipo de un componente puede ser verificado utilizando GetArtType.

2.2 Datos de entrada a la red

Las redes de tipo ART (usando aprendizaje no supervisado) solamente toman datos de entrada, que son presentados en el componente ART. de la red.

Las redes de tipo ARTMAP (usando aprendizaje supervisado) toman un conjunto de entrada y salida. Los datos de entrada son presentados como entradas al componente ARTA y la salida es presentada como entrada en el componente ARTB

2.2.1 Estilo de datos

Cada componente ART utiliza uno de los dos estilos de datos, NONE o COMPLIMENTCuando el tipo de dato tiene el valor COMPLIMENT, la entrada ART es completamente

codificada antes de ser presentada a la red.Cuando es tipo NONE, la codificación completa no es utilizada. Los estilos de entrada de los componentes de red pueden ser verificados utilizando

GetArtStyle.

2.3 Activación de la red

2.3.1 Inicializando la red

Para crear una nueva red se debe utilizar el procedimiento InitNet. Se le debe de pasar un puntero a una estructura del tipo "netTYPE". Esta estructura es definida en Art_Def.h.

InitNet debe pasar la siguiente información: El tipo de red (ART o ARTMAP)

Cuando el tipo ART es usado: El tipo de componente ART a utilizar (ART1 o FUZZYART) El estilo de entradas (NONE o COMPLIMENT) El número de entradas al componente ART

Cuando el tipo ARTMAP es usado: El tipo de componente ARTA a utilizar (ART1 o FUZZYART) El estilo de entradas (NONE o COMPLIMENT) El número de entradas al componente ARTA El tipo de componente ARTB a utilizar (ART1 o FUZZYART o NONE) El estilo de entradas (NONE o COMPLIMENT) El número de entradas a el componente ARTB (igual al número de salidas de

la red)Cuando el estilo COMPLIMENT es elegido por un componente, el número de entradas

para ese componente debe ser el doble de tamaño del patrón de entrada contenido en el archivo de patrones.

Para inicializar una red que ya ha sido cargada, FreeNet debe ser llamado primero para borrar el contenido de la red.

2.3.2 Acceder a la información de la estructura de la red

Para conseguir información acerca de una red que ha sido ya creada se puede utiliza lo siguiente:

Para obtener el tipo de red, utilizar GetNetType. Para obtener el tipo de componentes, utilizar GetArtType Para obtener el estilo de componentes, utilizar GetArtStyle. Para ver el tamaño de entrada, utilizar GetNetInSize Para ver el tamaño de salida, utilizar GetNetOutSize

Page 8: Documentacion The Art Gallery

2.3.3 Entrenando a la red

La red es entrenada utilizando el procedimiento , TrainSet. A TrainSet se le deben pasar: un apuntador para inicializar una red de tipo "netTYPE",un puntero para un conjunto de patrones de entrenamiento del tipo "setTYPE", y un número máximo de épocas de entrenamiento Antes de llamar a TrainSet, los niveles de vigilancia y rangos de respuesta pueden ser utilizados mediante SetArtVigil, SetArtBeta y SetMapVigil.

Este procedimiento continuara entrenando a la red hasta estabilizar el aprendizaje que ha sido archivado o cuando el máximo número de iteraciones se ha cumplido.

Después de cada época de entrenamiento, TrainSet actualiza la información acerca del número de reinicios y continuaciones que ocurren durante la época de entrenamiento. Esta información puede ser accedida utilizando GetArtResets y GetNetMismatch.

Adicionalmente, TrainSet nota cuando la red ha alcanzado una estabilización de su aprendizaje. Esto puede ser verificado utilizando GetNetDone, que regresa TRUE cuando la red ha estabilizada su aprendizaje o un FALSE de otra manera.

2.3.4 Probar la red

La actividad de la red puede ser verificada usando TESTNET la cual regresara información acerca del numero de ARTA y ARTB sin respuestas, el numero de entradas correctamente clasificadas y el número incorrectamente clasificado. Note que para la red ART no existe una cosa tal como incorrectamente clasificado una entrada como el aprendizaje de clasificación es no supervisada. La red puede únicamente cometer un error pero no contestarlo(por ejemplo, si no conoce el nivel de vigilancia).

Alternativamente, la red puede ser probada usando un SHOWPAR, el cual presenta un solo patrón a la red del conjunto de patrones. Para acceder a las activaciones del resultado de la red use lo siguiente: GetArtWinner que regresa la categoría ganadora para un componente ART y GetMap regresa el mapa de campo de activaciones. 2.3.5 Guardar y Leer redes

Todas las redes son almacenadas en archivos con extensión ".net". Esta extensión es automáticamente añadida a el nombre de archivo, cuando los archivos son salvados y cargados.

Para cargar o salvar una red use LoadNet y SaveNet sin el ".net"

2.3.6 Liberando espacio de la red

Cuando una red ya no va a ser utilizada es una buena idea liberar memoria utilizada por la red antes de cargarla o inicializar una nueva red. Esto puede ser hecho utilizando: FreeNet.

Pueden ocurrir fallas si falta memoria

2.4 Conjuntos de patrones

Un conjunto de patrones consiste en una lista de patrones de entrada (en algunos casos salidas) para ser introducidos a la red así como las especificaciones sobre el tipo de datos contenidos en el conjunto de patrones. Ellos son almacenados en una estructura de datos de tipo "setTYPE", y pueden ser apuntadas por un apuntador de tipo "setPTR" ambos están definidos en Art_Lib.h.

Page 9: Documentacion The Art Gallery

2.4.1 Creando un conjunto de patrones

Los conjuntos de patrones son creados utilizando MakeSet. MakeSet crea un nuevo conjunto dando el número deseado de patrones de entradas y salidas, para el conjunto de patrones, así como el tipo de patrones y 2 archivos que contienen los datos de entrada y salida.

Los patrones de entrada y salida pueden ser de tipo analógico o binario. Los patrones de salida pueden también ser de tipo NONE si el conjunto va a contener únicamente patrones de entrada.

Los dos archivos de datos que contienen los datos de entrada y salida suelen consistir de un número por línea, sin líneas en blanco entre patrones. Dos ejemplos de archivos son "analog.dat" y "binary.dat" han sido provistos para demostrar como deben ser hechos.

Los patrones pueden ser añadidos utilizando la función AddPattern.

2.4.2 Tipos de datos

Los datos de entrada y salida vienen en tres tipos NONE, BINARY y ANALOG.Los patrones Binarios pueden ser 0 o 1 y pueden ser utilizados con cualquier

componente ART1 o FUZZYART.Los patrones de entrada Analógicos oscilaran entre 0 y 1, pueden ser únicamente

utilizados con componentes FUZZYART .El tipo de red ART no utiliza patrones de salida pero las salidas pueden ser de cualquier

tipo incluyendo NONE.

2.4.3 Examinando parámetros de conjuntos de patrones y datos

Los datos en un conjuntos de patrones pueden ( y deben ) ser accesados sin referencia a parte de los datos de la estructura misma. Un número de funciones ha sido provisto para acceso fácil a la información de el conjunto de patrones.

El tamaño y tipo de los patrones de entrada para un conjunto de patrones puede ser verificado usando las funciones GetSetInSize, GetSetOutSize, GetSetInType, y GetSetOutType.

Patrones particulares de datos de entrada y salida pueden ser regresados usando las funciones GetSetInput y GetSetOutput.

Para encontrar el numero de patrones en el conjunto se puede utilizar: GetNumPatterns.

2.4.4 Salvando y cargando conjuntos de patrones

Todos los conjuntos de patrones son almacenados en archivos con extensión ".set". Esta extensión es automáticamente añadida a el nombre de archivo cuando los archivos son cargados o salvados.

Los conjuntos de patrones pueden ser cargados o salvados utilizando SaveSet y LoadSet sin la extensión ".set"

2.4.5 Combinando conjuntos de patrones

Dos conjuntos de patrones pueden ser mezclados utilizando MargeSets.

2.4.6 Liberando espacio de conjuntos de patrones

Cuando el conjunto de patrones ya no será utilizado por un buen tiempo seria buena idea liberar la memoria usada por el conjunto de patrones antes de cargar o inicializar un nuevo conjunto de patrones. Esto puede ser hecho utilizando FreeSet.

Se podrían presentar resultados erróneos si se ejecutan sin memoria.

Page 10: Documentacion The Art Gallery

2.5 Verificando errores de chequeo e inicialización de variables

Los procedimientos en The Art Gallery ... con todas las variables son casi siempre la inicialización antes de ser usadas.

GetNetInit y GetSetInit pueden ser utilizadas para verificar el estado de inicialización del conjunto de patrones o de la red.

Note, que de cualquier manera siempre existe una pequeña posibilidad de que el área de memoria elegida para la inicialización pueda contener(accidentalmente) el valor de TRUE. Esto es especialmente cierto en la plataforma PC. En este caso la verificación inicial fallara y las funciones GetNetInit y GetSetInit regresaran valores incorrectos. El único camino para asegurarnos al 100% de que el procedimiento regresara un valor esperado es llamándolos únicamente con conjuntos de patrones y de red inicializadores.

2.6 Compliment Coding y estabilidad de la red

Es recomendable utilizar la herramienta compliment coding cuando se crea una red para asegurar que el aprendizaje se estabilizara en algún momento. Sin esta herramienta establecida las categorización de la red puede falla, esto es especialmente importante cuando el tipo NONE es seleccionado de un red ARTB.

Cuando compliment coding es utilizado el tamaño de las entradas de la red debe ser el doble del tamaño de las entradas en el conjunto de patrones. Los valores del compliment coding son automáticamente calculados por el programa. Cuando la red utiliza compliment coding, una copia 'negative' de las entrada también es presentada en la red. Así, por ejemplo, si un patrón de entrada consiste en 5 valores y compliment coding se está usado, la red debe tener un tamaño de entrada de 10:

El conjunto de patrones de entrada en el archivo de patrones:0.2 0.3 0.5 0.7 0.1

Entradas presentadas a la red cuando el estilo COMPLIMENT es elegido:0.2 0.3 0.5 0.7 0.1 0.8 0.7 0.5 0.3 0.9

Page 11: Documentacion The Art Gallery

3 Compilar The Art Gallery como una Librería Dinámica (DLL)

The Art Gallery puede ser compilado como una DLL utilizando Borland C++. Esto permite que las funciones de ART Gallery sean llamadas de otras aplicaciones de Windows. La dll se puede crear tecleando lo siguiente en el prompt: 'make -f art_gal'El resultado del archivo dll puede ser llamado: 'Art_Gal.dll'

3.1 Usando la DLL The Art Gallery en Visual Basic

Una vez que The Art Gallery ha sido compilada como una DLL, y declarada en Visual Basic, las funciones de The Art Gallery pueden ser llamadas de Visual Basic.

El archivo 'Default.bas' contiene un modulo demostrativo de cómo la DLL The Art Gallery debe ser declarada en Visual Basic

Page 12: Documentacion The Art Gallery

4 Simuladores de ejemplo

4.1 Simulador en modo texto para Unix y DOS

El Archivo “Art_Sim.c” se incluye con The Art Gallery. Este contiene un ejemplo de como se deberá usar The Art Gallery para crear una simulación simple en modo texto para una red neuronal.

Un ejemplo de entrenamiento y prueba se incluye.

En UNIX:Art_Sim.c puede ser compilado incluyendo el Makefile usando el comando “make” en el

prompt de UNIX.

En DOS:( Usando Borland C++)Art_Sim.c puede ser compilado desde el prompt del DOS con: “make –f art_sim”

4.2 Sample Windows ART Gallery Simulator

El archivo “win_gal.zip” contiene el programa de instalación para correr una versión grafica de The Art Gallery, “Art_Gal.exe” fue creado usando las funciones compiladas como DLL de The Art Gallery.

Page 13: Documentacion The Art Gallery

5 Entrenando y probando archivos

Un archivo de ejemplo de entrenamiento y conjunto de patrones de prueba (train.pat y test.pat) viene incluido con la librería de The Art Gallery.

Cada uno consiste de 11 vectores de entrada análogos y 6 vectores de salida binarios.

5.1 Conjunto de entrenamiento para una red de Ejemplo

Este conjunto de datos puede ser usado por varios tipos de redes. A continuación mostramos unos ejemplos:

Aprendizaje No Supervisado (Vectores de salida sin usar)Tipo de red: ARTArt Type: FuzzyArt *Tamaño de entrada: 11Estilo de Entrada: Ninguno

Aprendizaje Supervisado con Modulo ArtB y Compliment Coding Tipo de red: ARTMAP ArtA Type: FuzzyART * Tamaño de Entrada: 11 ** Estilo de Entrada: COMPLIMENT ArtB Type: ART1 *** Tamaño de Entrada: 6 Estilo de Entrada: Ninguno

Aprendizaje Supervisado sin Modulo de entrenamiento ArtB Tipo de red: ARTMAP ArtA Type: FuzzyART * Tamaño de Entrada: 11 ** Estilo de Entrada: Ninguno ArtB Type: Ninguno Tamaño de Entrada: 6 ****

Network Type: ARTMAP ArtA Type: FuzzyART * Input Size: 11 Input Style: NONE ArtB Type: NONE Input Size: 6 ****

* - La entrada debe ser tipo FuzzyART donde las entradas sean analogas.** - Con compliment coding el tamaño de la entrada es del doble del tamaño del vector de entrada en el conjunto de patrones.*** - El tipo de entrada para la red ARTB puede ser tanto FuzzyART como ART1, donde ambos pueden tomar patrones binarios.**** - El tamaño de entrada ARTB es el tamaño de el vector de entrada (no zero) siempre y cuando no sea utilizado el entrenamiento ARTB.

Page 14: Documentacion The Art Gallery

5.2 Datos de ejemplo para crear una red

Los archivos “analog.dat" y "binary.dat" contienen datos aleatorios análogos y binarios para crear un nuevo conjunto de patrones.

Page 15: Documentacion The Art Gallery

6 Constantes

Las siguientes constantes están definidas en Art_Gal.h y pueden ser usadas en las llamadas a funciones:

Tipos de red:ART 0ARTMAP 1

Componentes:ART 0ARTA 1ARTB 2

Tipo de Componentes:NONE 0ART1 1FUZZYART 2

Valores Booleanos:FALSE 0TRUE 5571

Tipos de Datos:NONE 0BINARY 1ANALOG 2

Estilo de Datos:NONE 0COMPLIMENT 1

Page 16: Documentacion The Art Gallery

7 Sumario de funciones de ART GALLERY

NOTA: Los argumentos dentro de los paréntesis solo se requieren cuando se usa la red ARTMAP.

int AddPattern (setPTR set, int num_inputs, float *input,int num_outputs, float *output)int FreeNet (netPTR net)int FreeSet (setPTR set)int GetArtBeta (netPTR net, int component, float *beta)int GetArtResets (netPTR net, int component)int GetArtSize (netPTR net, int component)int GetArtType (netPTR net, int component)int GetArtStyle (netPTR net, int component)int GetArtVigil (netPTR net, int component, float *vigil)int GetArtWinner (netPTR net, int component)int GetBaseVigil (netPTR net, float *vigil)int GetMap (netPTR net, float *list)int GetMapMismatch (netPTR net)int GetMapSize (netPTR net)int GetMapVigil (netPTR net, float *vigil)int GetNetDone (netPTR net)int GetNetInit (netPTR net)int GetNetInSize (netPTR net)int GetNetOutSize (netPTR net)int GetNetType (netPTR net)int GetNumPatterns (setPTR set)int GetSetInit (setPTR set)int GetSetInput (setPTR set, int pat_num, float *list)int GetSetInSize (setPTR set)int GetSetInType (setPTR set)int GetSetOutput (setPTR set, int pat_num, float *list)int GetSetOutSize (setPTR set)int GetSetOutType (setPTR set)int InitNet (netPTR net, int net_type, int components, int styleA, int num_inputs,

int componentB, int styleB, int num_outputs)int InitSet (setPTR set, int num_inputs, int type_inputs, int num_outputs, int type_outputs)int LoadNet (netPTR net, char *file_prefix)int LoadSet (setPTR set, char *file_prefix)int MakeSet (setPTR set, char *infile_name,int num_inputs, int type_inputs, char *outfile_name,int num_outputs, int type_outputs)int MergeSets (char *file1_prefix, char *file2_prefix, char *save_prefix)int SaveNet (netPTR net, char *file_prefix)int SaveSet (setPTR set, char *file_prefix)int SetArtBeta (netPTR net, int component, float beta)int SetArtVigil (netPTR net, int component, float vigil)int SetBaseVigil (netPTR net, float base_vigil)int SetMapVigil (netPTR net, float map_vigil)int ShowPat (netPTR net, setPTR set, int pat_num)int TrainSet (netPTR net, setPTR set, int max_epoch)

Page 17: Documentacion The Art Gallery

8 Descripción de las funciones de THE ART GALLERY

AddPatternDado un apuntador a un conjunto de patrones y un patrón de datos, adiciona el patrón

al conjunto.

Argumentos:set - Apuntador al conjunto de patrones de tipo setTYPEnum_inputs - Número de patrones de entrada (integer)*input - Apuntador a la lista de entradas num_inputs long (float)num_outputs - Número de patrones de salida (integer)*output - Apuntador a la lista de salidas num_outputs long (float)

Valores de Retorno:0 - Finalizó exitosamente1 - Cuando el tamaño de la entrada o salida es incompatible2 - Cuando datos ANALOG fueron datos para tipos BINARY3 - Cuando patrones de datos ANALOG no han sido redondeados

correctamente [0 1]4 - Cuando el vector de entrada o salida solo contenga valores de cero5 - Cuando a ocurrido un error de memoria (sin memoria)6 - Cuando set no ha sido inicializado o sea NULL

FreeNetDado un apuntador a una red, libera la memoria utilizada por la red y la señala como no

inicializada.Preacaución: Esto borra esencialmente la red.

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE

Valores de Retorno:0 - Finalizo exitosamente1 - Cuando la red no fue inicializada o sea NULL

FreeSetDado un apuntador a un conjunto, libera la memoria asignada al conjunto y señala el

conjunto de patrones como no inicializado.Precaución: Esto borra el conjunto de patrones.

Argumentos:set - Apuntador al conjunto de patrones de tipo setTYPE

Valores de Retorno:0 - Finalizó exitosamente1 - Cuando set no fue inicializada o sea NULL

GetArtBetaDado un apuntador a una red, a un componente de la red, y un apuntador a float,

asigna el apuntador a float al valor actual del indice recodificado del componente.

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE component - ART, ARTA, ARTBbeta - Apuntador a float

Page 18: Documentacion The Art Gallery

Valores de Retorno:0 - Finalizó exitosamente1 - Red no inicializada o NULL2 - Componente y tipo dado incompatible3 - Tipo de componente dado invalido

GetArtResetsDado un apuntador a una red, y a un componente, regresa el número de resets durante

la última época de entrenamiento para ese componente.

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE component - ART,

ARTA, ARTBValores de Retorno:

Cuando finalizó exitozamente: El número de Resets Cuando la red ni se inicializo: NULL o tipo de red invalido -1

GetArtSizeDado un apuntador a una red, y a un tipo de componente, regresa el tamaño actual del

componente ART.

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE component - ART,

ARTA, ARTBValores de Retorno:

Cuando finalizó exitozamente: El tamaño del componente ART Cuando el tipo de red es incompatible: red sin inicializar o NULL -1

GetArtStyleDado un apuntador a una red, y a un componente, regresa el estilo del componente.

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE component - ART,

ARTA, ARTBValores de Retorno:

NONE - Cuando el componente una entradas normalesCOMPLIMENT-Cuando el componente usa compliment coding-1 - Cuando no se inicializo, NULL o es un tipo de red invalido

GetArtTypeDado un apuntador a una red, y a un componente, regresa el tipo de componente.

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE component - ART,

ARTA, ARTBValores de Retorno:

NONE - Cuando el componente es del tipo NONEART1 - Cuando el componente es del tipo ART1FUZZYART - Cuando el componente es del tipo FUZZYART-1 - Cuando no se inicializo, NULL o es un tipo de red invalido

GetArtVigilDado un apuntador a una red, un componente de red y un apuntador a float, asigna el

apuntador a float al valor del nivel de vigilancia del componente.

Page 19: Documentacion The Art Gallery

Argumentos:net - Apuntador a una red inicializada de tipo netTYPE component - ART,

ARTA, ARTBvigil - Apuntador a float

Valores de retorno:0 - Finalizó exitosamente1 - Red no inicializada o NULL2 - Componente ARTMAP dado para el tipo de red ART3 - Componente ART dado para el tipo de red ARTMAP4 - Nombre de componente dado invalido

8 Referencias

Carpenter, G., Grossberg, S. (1987) "A Massively Parallel ArchitectureFor A Self-Organizing Neural Pattern Recognition Machine."Computer Vision, Graphics, and Image Processing, 37, pp. 54-115.

Carpenter, G., Grossberg, S., & Reynolds, J. (1991) "ARTMAP: SupervisedReal-Time Learning and Classification of Nonstationary Date by aSelf-Organizing Neural Network." Neural Networks, 4, pp. 565-588.

Carpenter, G., Grossberg, S., & Rosen, D. (1991) "Fuzzy ART: Fast Stable Learning and Categorization of Analog Patterns by an AdaptiveResonance System." Neural Networks, 4, pp. 759-771.

Carpenter, G., Grossberg, S., Markuzon, N., Reynolds, J. & Rosen, D. (1992)"Fuzzy ARTMAP: A Neural Network Architecture for Incremental Supervised Learning of Analog Multidimensional Maps." IEEETransactions on Neural Networks, 5, pp. 698-713.