# Software de redes neuronales

El Software de red neuronal se utiliza para simular, investigar, desarrollar y aplicar redes neuronales artificiales. Estos softwares son por lo general una adaptación de los conceptos de las redes neuronales biológicas y en algunos casos, una gama más amplia de sistemas adaptativos tales como la inteligencia artificial y el aprendizaje automático.

## Simuladores

Los simuladores de redes neuronales son aplicaciones que se utilizan para simular el comportamiento de las redes neuronales artificiales o biológicas. Se centran en uno o un número limitado de tipos específicos de redes neuronales. Están construidos usualmente para que trabajen de manera independiente y no están destinados para producir redes neuronales generales que se puedan integrar en otros programas. Los simuladores suelen tener incluidos algún tipo de función de visualización para monitorear el proceso de entrenamiento. Algunos simuladores también pueden visualizar la estructura física de la red neural.

### Simuladores de investigación

Históricamente, el tipo más común de software de red neuronal fue destinado a la investigación de estructuras y algoritmos de redes neuronales. El propósito principal de este tipo de software es obtener una mejor comprensión del comportamiento y las propiedades de las redes neuronales a través de la simulación. Hoy en día en el estudio de las redes neuronales artificiales, los simuladores han sido ampliamente reemplazados por componentes generales basados en entornos de desarrollo, como son las plataformas de investigación.
Simuladores de redes neuronales artificiales usados comúnmente incluyen Stuttgart Neural Network Simulator (SNNS), Emergent Archivado el 3 de octubre de 2015 en Wayback Machine. y Neural Lab.
Sin embargo, en el estudio de las redes neuronales biológicas, el software de simulación sigue siendo el único método disponible. En tales simuladores se estudian las propiedades físicas, biológicas y químicas del tejido neural, así como los impulsos electromagnéticos entre las neuronas.
Simuladores de redes biológicas utilizadas comúnmente incluyen Neuron, GENESIS, NEST y Brian.

### Simuladores de análisis de datos

A diferencia de los simuladores de investigación, los simuladores de análisis de datos están destinados a aplicar de forma prácticas las redes neuronales artificiales. Su enfoque principal es en minería de datos y pronósticos. Los simuladores de análisis de datos por lo general tienen algún tipo de capacidad de preprocesamiento. A diferencia de los entornos de desarrollo más generales, los simuladores de análisis de datos utilizan una red neuronal estática relativamente simple con capacidad de configuración. La mayoría de los simuladores de análisis de datos sobre el uso de mercado usan redes "Backpropagation" o mapas auto-organizados como núcleo. La ventaja de este tipo de software es que es relativamente fácil de usar.

### Simuladores para la enseñanza de teoría de redes neuronales

Cuando los volúmenes de Parallel Distributed Processing
fueron lanzados en 1986-87, proporcionaron un software relativamente simple. El software original PDP no requería habilidad de programación alguna, lo que llevó a su adopción por una amplia variedad de investigadores en diversos campos. El software original PDP se convirtió en un paquete de software más potente llamado PDP ++, que a su vez se ha convertido en una plataforma aún más poderosa llamada Emergent Archivado el 3 de octubre de 2015 en Wayback Machine.. Con cada desarrollo, el software se ha vuelto más poderoso, pero también más desalentador para su uso por los principiantes.
En 1997, el software tLearn fue lanzado para acompañar un libro. Esto fue una vuelta a la idea de ofrecer un pequeño simulador fácil de usar, diseñado con el principiante en mente. tLearn permitió redes "feed forward" básicas, junto con las redes recurrentes simples, las cuales pueden ser entrenadas por el simple algoritmo de propagación hacia atrás. tLearn no se ha actualizado desde 1999.
En el año 2011, el simulador Basic Prop fue lanzado. Basic Prop es una aplicación auto-contenida, distribuida como una plataforma neural en un archivo JAR , que proporciona gran parte de la misma funcionalidad simple de tLearn.

## Entornos de Desarrollo

Los entornos de desarrollo para las redes neuronales se diferencian del software descrito anteriormente principalmente en dos temas - que pueden ser utilizados para desarrollar tipos personalizados de redes neuronales y que apoyan el despliegue de la red neuronal fuera del entorno. En algunos casos tienen capacidades avanzadas de preprocesamiento, análisis y visualización.

### Basado en componente

Un tipo más moderno de entornos de desarrollo que se ve favorecidos actualmente en el uso industrial y científico se basa en un paradigma basado en componente. La red neuronal se construye mediante la conexión de componentes de filtrado adaptativos dentro de una tubería de flujo de filtrado. Esto permite una mayor flexibilidad dado que las redes personalizadas pueden ser construidas como componentes personalizados utilizados por la red. En muchos casos esto permite combinar componentes adaptativos y no adaptativos para que trabajen juntos. El flujo de datos es controlado por un sistema de control que es intercambiable al igual que los algoritmos de adaptación. La otra característica importante es la capacidad de despliegue. Con el advenimiento de los marcos de trabajo basados en componentes tales como .NET y Java, los entornos de desarrollo basados en componentes son capaces del despliegue de la red neural desarrollada para estos "frameworks" como componentes heredables. Además algunos software también pueden desplegar estos componentes para varias plataformas, como los sistemas integrados.
Entornos de desarrollo basados en componentes incluyen: Peltarion Synapse Archivado el 4 de octubre de 2015 en Wayback Machine., NeuroDimension Archivado el 20 de noviembre de 2015 en Wayback Machine., NeuroSolutions Archivado el 4 de octubre de 2015 en Wayback Machine., Scientific Software Neuro Laboratory y el software integrado LIONsolver. Entornos basados en componentes gratuitos de código abierto incluyen Encog y Neuroph.

#### La crítica

Una desventaja de los entornos de desarrollo basados en componentes es que son más complejos que los simuladores. Requieren más aprendizaje para utilizarlos en su totalidad y son más complicados de desarrollar.

## Redes neuronales personalizadas

Las implementaciones de la mayoría de las redes neuronales disponibles son , sin embargo, implementaciones personalizadas en varios lenguajes de programación y en diversas plataformas. Tipos básicos de redes neuronales son fáciles de implementar directamente. También hay muchas bibliotecas de programación que contienen funcionalidades de redes neuronales y que pueden ser utilizadas en las implementaciones personalizadas.

## Estándares

A fin de que los modelos de redes neuronales puedan ser compartidos por diferentes aplicaciones, un lenguaje común es necesario. El Predictive Model Markup Language (PMML) se ha propuesto para abordar esta necesidad.
PMML es un lenguaje basado en XML que proporciona una manera de definir y compartir modelos de redes neuronales (y otros modelos de minería de datos) entre aplicaciones compatibles con PMML.
PMML ofrece un método independiente del proveedor, de definir modelos para que los problemas de propiedad y las incompatibilidades ya no sean una barrera para el intercambio de modelos entre aplicaciones. Permite a los usuarios desarrollar modelos dentro de la aplicación de un proveedor, y usar aplicaciones de otros proveedores para visualizar, analizar, evaluar o utilizar estos modelos. Anteriormente, esto era muy difícil, pero con PMML, el intercambio de modelos entre aplicaciones compatibles es ahora sencillo.

### Consumidores y Productores de PMML

Se están ofreciendo una gama de productos para producir y consumir PMML. Esta creciente lista incluye los siguientes productos de redes neuronales:
R: produce PMML para las redes neuronales y otros modelos de aprendizaje automático a través del paquete pmml. SAS Enterprise Miner: produce PMML para varios modelos de minería, incluyendo redes neuronales, regresión lineal y logística, árboles de decisión,y otros modelos de minería de datos. SPSS: produce PMML para redes neuronales así como muchos otros modelos de minería. STATISTICA: produce PMML para redes neuronales, modelos de minería de datos y modelos estadísticos tradicionales.