Tecnologías usadas en computación neuronal

Simuladores software

Aceleradores hardware

Chips de silicio (neurocomputadores)

Procesadores ópticos

Simuladores Software

Si bien hemos hablado del procesamiento paralelo como una cualidad de las redes neuronales artificiales; en la práctica se suele trabajar con monoprocesadores, en ese caso no existe paralelismo real, pero como en la mayoría de las redes simuladas no se consideran conexiones intracapa, se puede procesar secuencialmente haciendo los cálculos para una capa, luego la siguiente, etc.

Lo más interesante es que la propia estructura y modo de operar de las redes neuronales artificiales las hace especialmente interesantes y fáciles de implementar implementarlas sobre multiprocesadores, algo que puede resultar bastante más complicado cuando se trata de adaptar algoritmos tradicionales sobre dichas máquinas.

Conociendo los fundamentos y los algoritmos de aprendizaje de las redes neuronales artificiales y un poco de programación, es fácil desarrollar programas específicos para simular una red concreta en cualquier lenguaje de programación (ver Apéndice C: Documentación de los programas en C adjuntos).

Para uso general y profesional resultan muy útiles los paquetes con interfaces gráficas avanzadas (se incluye una versión demostración de una aplicación para Windows sobre PC)

Otra tendencia es el desarrollo de librerías para C++ (se incluye una en el SW) o paquetes matemáticos como MATLAB ó MATHEMATICA; son recomendables con fines de investigación o académicos por ser muy flexibles para desarrollar o modificar algoritmos, son bastante potentes y no excesivamente caros.

Un sistema de programación de procesos paralelos específicamente desarrollado para simular redes neuronales es P3 (Zipser, D.). Es un sistema modular que funciona sólo sobre una máquina Symbolics 3600 en LISP. Consta de 5 componentes, el computacional (unidades de proceso elementales), un lenguaje de planificación (establece las conexiones), un lenguaje de métodos (indica el comportamiento de las unidades de proceso), un constructor (transforma los métodos y el plan de conexiones en un programa ejecutable), y un entorno de simulación, para observar y verificar el funcionamiento de las redes.

Aceleradores Hardware

Son tarjetas que se conectan como periféricos y dan soporte hardware para emular unidades de proceso elementales virtuales y sus interconexiones. Suelen incluir software específico para su programación. Consiguen gran aceleración a pesar de compartir y multiplexar recursos, es decir, que no ofrecen proceso paralelo real.

Chips de silicio (neurocomputadores)

La propia naturaleza paralela de la computación neuronal ha llevado al desarrollo de máquinas específicas para su implementación: el ideal sería disponer de un procesador elemental para simular cada unidad de proceso y de conexiones físicas independientes que implementaran las conexiones ponderadas, todo mediante dispositivos Hardware; con lo cual, y dada la naturaleza paralela de este tipo de computación, se pueden conseguir velocidades de proceso extremadamente altas. Las tecnologías VLSI lo están haciendo posible.

Procesadores ópticos

La tecnología óptica es muy interesante porque ofrece unas características muy deseables para la computación neuronal: Los procesadores ópticos se componen de muchos procesadores elementales y modo de operación inherente paralelo.

La tecnología óptica ofrece las siguientes ventajas:

Actualmente se trabaja en varias áreas dentro del procesamiento óptico (spatial light modulators, integrated opto-electronics, non-linear optical switches, phase-conjugate resonators).