Documentacion The Art Gallery

  • 1,513 views
Uploaded on

Documentacion The Art Gallery REDES NEURONALES

Documentacion The Art Gallery REDES NEURONALES

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,513
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Sistemas NeuroDifusos The ART Gallery xx/10/2002 THE ART GALLERY DESARROLLADO POR: Lars Liden
  • 2. Contenido Introducción 1 Descripción de archivos 1.1 Archivos UNIX 1.2 Archivos DOS 1.3 Simulador de muestra para Windows 1.4 Reporte de Fallas 2 Descripción de Art Gallery Networks 2.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 datos 2.3 Activación de la red 2.3.1 Inicializando una red 2.3.2 Acceder a estructuras de información de la red 2.3.3 Entrenando la red 2.3.4 Pruebas de la red 2.3.5 Guardar y Leer redes 2.3.6 Liberando espacio de la red 2.4 Conjuntos de patrones 2.4.1 Crear un conjunto patrones 2.4.2 Datos Tipo 2.4.3 Examinando parámetros de un patrón y datos 2.4.4 Guardar y leer un conjunto patrones 2.4.5 Combinando conjuntos de patrones 2.4.6 Liberar espacio de un conjunto de patrones 2.5 Anotando errores de chequeo e inicialización de variables 2.6 Complementar código y estabilidad de la red 3 Compilar The Art Gallery como una DLL 3.1 Usar The Art Gallery en Visual Basic 4 Simuladores de ejemplo 4.1 Simulador en modo texto para Unix y DOS 4.2 Simulador en Windows de Art Gallery 5 Entrenando y probando archivos 5.1 Conjunto de entrenamiento para una red de Ejemplo 5.2 Datos de ejemplo para crear una red 6 Constantes 7 Sumario de funciones de ART GALLERY 8 Referencias
  • 3. 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.
  • 4. 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ódigos Art_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 externos Art_Int.c - Librería de procedimientos internos Art_Int.h - Archivo de encabezado para procedimientos internos Makefile - Makefile para GCC Art_Sim.c - Ejemplo de simulador de texto train.pat - Ejemplo de archivo de entrenamiento test.pat - Ejemplo de archivo de prueba analog.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ódigos Art_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 externos Art_Int.c - Librería de procedimientos internos Art_Int.h - Archivo de encabezado para procedimientos internos Art_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 DLL Art_Gal.def - Código DLL Art_Sim.c - Ejemplo de simulador de texto train.pat - Ejemplo de archivo de entrenamiento test.pat - Ejemplo de archivo de prueba analog.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 Windows
  • 5. Los archivos vienen compresos con PKZIP como “win_gal.zip”. Reporte de Fallas Todos los reportes de fallas, comentarios y sugerencias podrían ser enviadas laliden@cns.bu.edu
  • 6. 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. El tipo de un componente puede ser verificado utilizando GetArtType. 2.2 Datos de entrada a la red
  • 7. 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 COMPLIMENT Cuando 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 2.3.3 Entrenando a la red
  • 8. 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. 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.
  • 9. 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. 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.
  • 10. 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
  • 11. 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
  • 12. 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.
  • 13. 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: ART Art Type: FuzzyArt * Tamaño de entrada: 11 Estilo 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.
  • 14. 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.
  • 15. 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 0 ARTMAP 1 Componentes: ART 0 ARTA 1 ARTB 2 Tipo de Componentes: NONE 0 ART1 1 FUZZYART 2 Valores Booleanos: FALSE 0 TRUE 5571 Tipos de Datos: NONE 0 BINARY 1 ANALOG 2 Estilo de Datos: NONE 0 COMPLIMENT 1
  • 16. 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)
  • 17. 8 Descripción de las funciones de THE ART GALLERY AddPattern Dado 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 setTYPE num_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ó exitosamente 1 - Cuando el tamaño de la entrada o salida es incompatible 2 - Cuando datos ANALOG fueron datos para tipos BINARY 3 - Cuando patrones de datos ANALOG no han sido redondeados correctamente [0 1] 4 - Cuando el vector de entrada o salida solo contenga valores de cero 5 - Cuando a ocurrido un error de memoria (sin memoria) 6 - Cuando set no ha sido inicializado o sea NULL FreeNet Dado 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 exitosamente 1 - Cuando la red no fue inicializada o sea NULL FreeSet Dado 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ó exitosamente 1 - Cuando set no fue inicializada o sea NULL GetArtBeta Dado 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, ARTB beta - Apuntador a float Valores de Retorno: 0 - Finalizó exitosamente 1 - Red no inicializada o NULL
  • 18. 2 - Componente y tipo dado incompatible 3 - Tipo de componente dado invalido GetArtResets Dado 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, ARTB Valores de Retorno: Cuando finalizó exitozamente: El número de Resets Cuando la red ni se inicializo: NULL o tipo de red invalido -1 GetArtSize Dado 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, ARTB Valores de Retorno: Cuando finalizó exitozamente: El tamaño del componente ART Cuando el tipo de red es incompatible: red sin inicializar o NULL -1 GetArtStyle Dado 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, ARTB Valores de Retorno: NONE - Cuando el componente una entradas normales COMPLIMENT- Cuando el componente usa compliment coding -1 - Cuando no se inicializo, NULL o es un tipo de red invalido GetArtType Dado 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, ARTB Valores de Retorno: NONE - Cuando el componente es del tipo NONE ART1 - Cuando el componente es del tipo ART1 FUZZYART - Cuando el componente es del tipo FUZZYART -1 - Cuando no se inicializo, NULL o es un tipo de red invalido GetArtVigil Dado 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. Argumentos: net - Apuntador a una red inicializada de tipo netTYPE component - ART, ARTA, ARTB vigil - Apuntador a float Valores de retorno: 0 - Finalizó exitosamente
  • 19. 1 - Red no inicializada o NULL 2 - Componente ARTMAP dado para el tipo de red ART 3 - Componente ART dado para el tipo de red ARTMAP 4 - Nombre de componente dado invalido 8 Referencias Carpenter, G., Grossberg, S. (1987) "A Massively Parallel Architecture For 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: Supervised Real-Time Learning and Classification of Nonstationary Date by a Self-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 Adaptive Resonance 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." IEEE Transactions on Neural Networks, 5, pp. 698-713.