El software de redes neuronales se utiliza para simular , investigar , desarrollar y aplicar redes neuronales artificiales , conceptos de software adaptados de redes neuronales biológicas y, en algunos casos, una gama más amplia de sistemas adaptativos como la inteligencia artificial y el aprendizaje automático .
Simuladores
Los simuladores de redes neuronales son aplicaciones de software que se utilizan para simular el comportamiento de redes neuronales artificiales o biológicas. Se centran en uno o en un número limitado de tipos específicos de redes neuronales. Por lo general, son independientes y no están destinados a producir redes neuronales generales que puedan integrarse en otro software. Los simuladores suelen tener alguna forma de visualización incorporada para supervisar el proceso de formación. Algunos simuladores también visualizan la estructura física de la red neuronal.
Simuladores de investigación
Históricamente, el tipo más común de software de redes neuronales estaba destinado a investigar estructuras y algoritmos de redes neuronales. El propósito principal de este tipo de software es, a través de la simulación, obtener una mejor comprensión del comportamiento y las propiedades de las redes neuronales. Hoy en día, en el estudio de las redes neuronales artificiales, los simuladores han sido reemplazados en gran medida por entornos de desarrollo basados en componentes más generales como plataformas de investigación.
Los simuladores de redes neuronales artificiales de uso común incluyen el Simulador de redes neuronales de Stuttgart (SNNS), Emergent y Neural Lab .
Sin embargo, en el estudio de las redes neuronales biológicas, el software de simulación sigue siendo el único enfoque 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.
Los simuladores de redes biológicas de uso común 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 aplicaciones prácticas de redes neuronales artificiales. Su enfoque principal es la minería de datos y la previsión. Los simuladores de análisis de datos suelen tener 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 que se puede configurar. La mayoría de los simuladores de análisis de datos del mercado utilizan redes de retropropagación o mapas autoorganizados como núcleo. La ventaja de este tipo de software es que es relativamente fácil de usar. Neural Designer es un ejemplo de un simulador de análisis de datos.
Simuladores para la enseñanza de la teoría de redes neuronales
Cuando los volúmenes de procesamiento distribuido paralelo [1] [2] [3] se lanzaron en 1986-87, proporcionaron un software relativamente simple. El software PDP original no requería ninguna habilidad de programación, lo que llevó a su adopción por una amplia variedad de investigadores en diversos campos. El software PDP original se desarrolló en un paquete más poderoso llamado PDP ++, que a su vez se ha convertido en una plataforma aún más poderosa llamada Emergent . Con cada desarrollo, el software se ha vuelto más poderoso, pero también más desalentador para los principiantes.
En 1997, se lanzó el software tLearn para acompañar un libro. [4] Este fue un regreso a la idea de proporcionar un simulador pequeño y fácil de usar que fue diseñado pensando en los principiantes. tLearn permitía redes básicas de retroalimentación, junto con redes recurrentes simples, las cuales se pueden entrenar mediante el algoritmo de propagación hacia atrás simple. tLearn no se ha actualizado desde 1999.
En 2011, se lanzó el simulador Basic Prop. Basic Prop es una aplicación autónoma, distribuida como un archivo JAR de plataforma neutral, que proporciona gran parte de la misma funcionalidad simple que tLearn.
En 2012, Wintempla incluyó un espacio de nombres llamado NN con un conjunto de clases C ++ para implementar: redes de avance, redes neuronales probabilísticas y redes Kohonen. Neural Lab se basa en clases de Wintempla. El tutorial de Neural Lab y el tutorial de Wintempla explican algunas de estas clases para redes neuronales. La principal desventaja de Wintempla es que se compila solo con Microsoft Visual Studio.
Entornos de desarrollo
Los entornos de desarrollo para redes neuronales difieren del software descrito anteriormente principalmente en dos cuentas: se pueden usar para desarrollar tipos personalizados de redes neuronales y admiten la implementación de la red neuronal fuera del entorno. En algunos casos, cuentan con capacidades avanzadas de preprocesamiento , análisis y visualización.
Basado en componentes
Un tipo más moderno de entornos de desarrollo que actualmente se favorecen tanto en el uso industrial como científico se basa en un paradigma basado en componentes . La red neuronal se construye conectando componentes de filtro adaptativo en un flujo de filtro de tubería. Esto permite una mayor flexibilidad, ya que se pueden construir redes personalizadas, así como componentes personalizados utilizados por la red. En muchos casos, esto permite que una combinación de componentes adaptativos y no adaptativos trabajen juntos. El flujo de datos está controlado por un sistema de control intercambiable, así como los algoritmos de adaptación. La otra característica importante son las capacidades de implementación.
Con la llegada de los marcos basados en componentes como .NET y Java , los entornos de desarrollo basados en componentes son capaces de implementar la red neuronal desarrollada en estos marcos como componentes heredables. Además, algunos programas de software también pueden implementar estos componentes en varias plataformas, como los sistemas integrados .
Los entornos de desarrollo basados en componentes incluyen: Peltarion Synapse , NeuroDimension NeuroSolutions , Scientific Software Neuro Laboratory y el software integrado LIONsolver . Los entornos basados en componentes de código abierto gratuitos incluyen Encog y Neuroph .
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 operar completamente y son más complicados de desarrollar.
Redes neuronales personalizadas
Sin embargo, la mayoría de las implementaciones de redes neuronales disponibles son implementaciones personalizadas en varios lenguajes de programación y en varias plataformas. Los tipos básicos de redes neuronales son fáciles de implementar directamente. También hay muchas bibliotecas de programación que contienen funcionalidad de red neuronal y que se pueden usar en implementaciones personalizadas (como TensorFlow , Theano , etc., que generalmente brindan enlaces a lenguajes como Python , C ++ , Java ).
Estándares
Para que los modelos de redes neuronales sean compartidos por diferentes aplicaciones, es necesario un lenguaje común. Se ha propuesto el lenguaje de marcado del modelo predictivo (PMML) para abordar esta necesidad. PMML es un lenguaje basado en XML que proporciona una forma para que las aplicaciones definan y compartan modelos de redes neuronales (y otros modelos de minería de datos) entre aplicaciones compatibles con PMML.
PMML proporciona a las aplicaciones un método independiente del proveedor para definir modelos, de modo 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 utilizar las aplicaciones de otros proveedores para visualizar, analizar, evaluar o utilizar los modelos. Anteriormente, esto era muy difícil, pero con PMML, el intercambio de modelos entre aplicaciones compatibles ahora es sencillo.
Consumidores y productores de PMML
Se ofrece una gama de productos para producir y consumir PMML. Esta lista en constante crecimiento incluye los siguientes productos de redes neuronales:
- R: produce PMML para 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, incluidas 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 y muchos otros modelos de minería.
- ESTADÍSTICA: produce PMML para redes neuronales, modelos de minería de datos y modelos estadísticos tradicionales.
Ver también
- Acelerador de IA
- Red neuronal física
- Comparación de software de aprendizaje profundo
- Procesamiento de datos
- Entorno de desarrollo integrado
- Regresión logística
- Memristor
Referencias
- ^ Rumelhart, DE, JL McClelland y el grupo de investigación de PDP (1986). Procesamiento distribuido paralelo: exploraciones en la microestructura de la cognición. Volumen 1: Fundaciones, Cambridge, MA: MIT Press
- ^ McClelland, JL, DE Rumelhart y el grupo de investigación de PDP (1986). Procesamiento distribuido paralelo: exploraciones en la microestructura de la cognición. Volumen 2: Modelos psicológicos y biológicos, Cambridge, MA: MIT Press
- ^ McClelland y Rumelhart "Exploraciones en el manual de procesamiento distribuido paralelo", MIT Press, 1987
- ^ Plunkett, K. y Elman, JL, Ejercicios para repensar lo innato: un manual para simulaciones conexionistas (The MIT Press, 1997)
enlaces externos
- Comparación de simuladores de redes neuronales en la Universidad de Colorado