Está en la página 1de 59

IMPLEMENTACIÓN DE REDES

NEURONALES
Introducción
• Una red neuronal artificial puede simularse
mediante programas ejecutados en
computadores convencionales, lo que
constituye siempre el primer paso en el
desarrollo.

• La tecnología de implementación más


habitual es la microelectrónica VLSI (Very
Large Scale Integration).
Introducción
• Uno de los motivos más importantes del resurgir de
las redes neuronales fue el desarrollo de la
tecnología microelectrónica VLSI, debido a dos
circunstancias:

 Posibilitó el desarrollo de computadores potentes y


baratos.

 La integración VLSI posibilitó la realización hardware


directa de RNAs, como dispositivos de cálculo
paralelo aplicables a problemas costosos desde el
punto de vista computacional, como visión o
reconocimiento de patrones.
Alternativas para su realización

a) Simulación software. Consiste en modelar el sistema


neuronal mediante un programa, que puede ejecutarse
en un computador secuencial convencional tipo von
Neumann, por ejemplo, una PC compatible.

b) Emulación hardware (propósito general). Se utilizan


sistemas expresamente diseñados para emular la RNA.
Dichos sistemas están basados en una CPU de altas
prestaciones (RISC, DSP, ...).

c) Implementación hardware específica. Se trata de


realizar físicamente la red neuronal en hardware,
mediante estructuras específicas que reflejen con mayor o
menor fidelidad la arquitectura de la red.
Tecnologias para realización de ANS

• Los soportes o tecnologías más utilizadas en


la realización de redes neuronales artificiales
son el lógico (software) y el microelectrónico.
Simulación

• Se denomina simulación software de una


RNA a su realización en forma de un
programa ejecutable sobre un computador
de propósito general.

• Es el procedimiento más simple, rápido y


económico de implementación de una red
neuronal, por lo que constituye siempre la
primera etapa en el desarrollo de una RNA,
Simulación
• El Proceso de simulación de una RNA comienza con su
modelado mediante programas de ordenador escrito en
lenguajes de alto nivel como C, Pascal o Visual Basic, que se
ejecutarán en computadoras convencionales .

for (i=0; i<N_OUTPUTS; i++)


{
/* ‘actividad’ es un ‘float’ que se usa como variable muda */ actividad = 0.0; 
/* suma ponderada */
for (j=0; j<N_INPUTS; j++) actividad = actividad + w[i][j]*x[j];
/* f() es la función de activación */
y[i] = f(actividad);
}
Emulación de ANS
• Se refiere a la utilización de una estructura
de procesamiento con cierta capacida de
cálculo paralelo, especialmente diseñada
para el trabajo con ANS.

• Normalmente  se trata de utilizar una


tarjeta coprocesadora dependiente de un
cierto host construida tomando com base
microprocesadores de altas
prestaciones(RISC, DSP,..) o a procesadores
neuronales.
Emulación (hardware) de ANS

Estructura host-coprocesador neuronal, constituyendo


un neurocomputador.
 Realización hardware de ANS
• Consiste en construir físicamente un sistema cuya
arquitectura refleje en cierta medida la estructura de la
red neuronal.

• El sistema hardware debe soportar un gran número de


conexiones, en ocasiones globales, y un flujo elevado
de comunicaciones de datos.

• Este tipo de realización está especialmente indicado


para aplicaciones especiales donde se precisa un alto
rendimiento, ya que el diseño se realiza para un cierto
modelo de red neuronal y para una aplicación concreta.
 Realización hardware de ANS
• La realización de un sistema neuronal puede llevarse
a cabo desde distintos niveles de abstracción:   

 Nivel de sistema: Utilización de coprocesadores,DSP,..


 Nivel de estructura funcional: ALU's específicas.
 Nivel de puerta lógica: Lógica
de pulsos,lógica estocástica.
 Nivel de puerta analógica: Redes de Hopfield, Kohonen,
etc.
 Nivel de transistor: Realización de chips de muy alta
densidad de integración y elevado número de
neuronas.
 Nivel de modelo: Distintos modelos de los transistores
CMOS.
Especificaciones del Neuroprocesador

Es un dispositivo con capacidad de


calculo paralelo, diseñado para la
implementación de redes neuronales
artificiales.

Puede ser de propósito general o


especifico y puede realizarse con un chip
neuronal o como una placa aceleradora
dependiente de un computador.
Carlos Jesús Vera Hernández. Matricula:
1270187
Especificaciones del Neuroprocesador

• Grado de Programabilidad del sistema:


Indica la versatilidad para la emulación de
diferentes modelos neuronales.
• Numero de unidades de Procesamiento:
Indica el paralelismo del neuroprocesador.
• Complejidad de cada Procesador
Individual: Es un índice de potencia de
calculo y versatilidad de una unidad
procesadora
• Rendimiento el Sistema:
Carlos Jesús Vera Hernández. Matricula:
1270187
Neuroprocesador de propósito general

Carlos Jesús Vera Hernández. Matricula:


1270187
Neuroprocesador de propósito general y
específico

a) De Propósito General: Son los


diseñados para emular un gran
numero de modelos de redes
neuronales; constituyen por tanto
maquinas flexibles y versátiles.
b)De Propósito Específico: se trata
de modelos limitados a la emulación
de un único modelo neuronal.
Carlos Jesús Vera Hernández. Matricula:
1270187
Neuroprocesador de propósito general

Tendrá un alto grado de programabilidad y


sus PU serán mas complejas; a partir de el
se construyen neurocomputadores, por lo
que a menudo se utiliza este ultimo termino.

Carlos Jesús Vera Hernández. Matricula:


1270187
Neuroprocesador de propósito
específico
Es simplemente un chip neuronal específico,
estará constituido por PU mas simples, pero
menos flexibles, aunque podrá incluir un
mayor numero de ellas.

Dentro de esta categoría estarán incluidos


los desarrollados entorno a chips neuronales
de propósito especifico.

Carlos Jesús Vera Hernández. Matricula:


1270187
Aspectos Generales de la Realización
VLSI

El aumento continuo de la densidad de


integración hace que la tecnología
VLSI se adapte muy bien a la
implementación de sistemas paralelos,
como es el caso de los
neuroprocesadores.

Carlos Jesús Vera Hernández. Matricula:


1270187
Los Problemas de diseño a la hora de
implementar estos sistemas en silicio son:

a) Los modelos neuronales precisan de


altos niveles de conectividad.
b) Se requiere alta velocidad de
procesamiento y de comunicación
de datos.
c) Debe optimizarse la representación
de los datos y el almacenamiento de
los pesos.
Carlos Jesús Vera Hernández. Matricula:
1270187
El Diseño de Neuroprocesadores Características
de la integración de VLSI
• La complejidad de los diseños favorece el
desarrollo de estructuras simples, regulares y
replicables.
• El cableado ocupa gran parte de un circuito
integrado.
• Los retrasos en las comunicaciones degradan el
rendimiento.
• Las tecnologías MOS, de bajo consumo, requieren
concurrencia para lograr muy altos rendimientos.
• Debe haber una perfecta coordinación entre la
entrada/salida con los cálculos internos
Carlos Jesús Vera Hernández. Matricula:
1270187
Buen diseño de VLSI de un Neuroprocesador
Propiedades Arquitecturales

• Simplicidad del Diseño.

• Modularidad

• Diseño Expandible y Escalable.

Carlos Jesús Vera Hernández. Matricula:


1270187
Bloques Básicos en la Realización de
Neuroprocesadores Digitales

Los Bloques Básicos de una implementación


electrónica, tanto analógica como digital, de
una red neuronal son:

1) Sistema de Control
2) Unidad de Proceso
3) Unidad de Comunicación
4) Unidad de Almacenamiento

Carlos Jesús Vera Hernández. Matricula:


1270187
Sistema de Control
El sistema de control es el responsable
de controlar el flujo de instrucciones y
datos que llegan a las unidades de
proceso, verdaderos elementos de
calculo.

Carlos Jesús Vera Hernández. Matricula:


1270187
Arquitecturas de Computo
SISD: maquinas en las que una instrucción opera
sobre un único dato.

SIMD: en ellas, una única instrucción se aplica


sobre múltiples datos a la vez.

MISD: un conjunto de instrucciones operan a la vez


sobre un único dato.

MIMD: múltiples instrucciones actúan sobre


múltiples datos.
Carlos Jesús Vera Hernández. Matricula:
1270187
Unidad de Proceso
La Unidad de Proceso o PU, también
denominado procesador elemental o
PE, es el elemento de la arquitectura
encargado de efectuar las operaciones
aritméticas con los datos que se le
suministran.

Carlos Jesús Vera Hernández. Matricula:


1270187
Tipos básicos de unidades de
procesamiento
a) Unidades CISC: Son procesadores
con un elevado conjunto de
instrucciones que incluyen
operaciones complejas.
b)Unidades RISC: contienen un
reducido numero de instrucciones
sencillas, que, como norma general,
no consumen mas de un ciclo de
reloj para su ejecución.
Carlos Jesús Vera Hernández. Matricula:
1270187
Unidad de Almacenamiento
Es la unidad Funcional responsable de
alojar los valores de pesos, resultados
intermedios o errores, para ser
suministrados en ele momento
adecuado a la unidad de proceso.

Carlos Jesús Vera Hernández. Matricula:


1270187
Esquemas
1) Memoria de Pesos Distribuida: cada PU dispone de
su propia unidad de memoria local.

2) Memoria de Pesos Duplicada: cada unidad de


memoria asociada a cada unidad de proceso
dispone de una copia completa de todo el mapa
de los pesos de la red.

3) Memoria de pesos Centralizada: una única unidad


de almacenamiento proporciona los datos
necesarios a todas las unidades de procesamiento.

Carlos Jesús Vera Hernández. Matricula:


1270187
Unidad de Comunicación
• Se encarga de la transmisión de
datos entre las unidades de proceso,
entre PU y memorias de
almacenamiento, o entre las PU y las
unidades de control.

Carlos Jesús Vera Hernández. Matricula:


1270187
Arquitecturas
• Arquitecturas Orientadas a Bus o a
BBA

• Arquitecturas sistólicas

• Arquitecturas Fractales

Carlos Jesús Vera Hernández. Matricula:


1270187
Arquitecturas reconfigurables
• Pertenecientes a la misma familia de dispositivos
que las «pld», «PROM», «PAL» o «epkd» las
«fpga» (field programmable gate array) son
elementos programables de elevado numero de
puertas, constituidos por una matriz de celdas
lógicas o «CLB», altamente interconectables a
través de una malla de conexiones.

• Cada una de estas celdas contiene tanto logica


combinacional como biestables, proporcionando
así la capacidad de generar lógica secuencial.
Estructura básica de un CLB de las FPGA de la compañía Xilinx
• Dentro de este tipo de dispositivos lógicos
programables, podemos encontrar a su vez
dos variantes distintas, las FPGA de anti
fusibles y las FPGA de tipo RAM,
comúnmente llamadas LCA(Logic Cell Array).

• Mientras que en las primeras la estructura


de operación interna se programa mediante
la eliminación de fusibles, resultando un
proceso irreversible, la interconexión entre
los componentes lógicos una LCA viene
determinada por una memoria RAM interna,
reprogramable tantas veces como sea
necesario.
Realizaciones especiales: logica de
frecuencia de pulsos.

La gran mayoria de las implementaciones


digitales hacen uso de diseños de
unidades aritmetico-logicas mas o menos
sofisticadas, que realizan las operaciones
propias de la undad de proceso.
• Algunos diseños digitales se
hallan inspirados en el modo en
el que el sistema nervioso
codifica y procesa los pulsos
eléctricos que llegan a las
neuronas a través de sus axones.
• Este es el caso de los basados en
lógica de pulsos, cuyo
fundamento es la codificación de
la información en la frecuencia de
los trenes de pulsos que viajan
por las líneas de datos, en lugar
de codificarla como números
Neurona de lógica de pulso y ejemplo de la función no
lineal realizada por una simple puerta OR
Bloques básicos en la realización de
neuroprocesadores analógicos
• Unidad de control

• Unidad de comunicaciones

• Procesadores elemental

• Almacenamiento de datos
Unidad de control

Dependerá del modo en que las


neuronas del modelo formal se
conecten y efectúen sus tareas;
muy a menudo su operación será
de tipo asíncrono, como sucede en
las neuronas biológicas.
Unidad de proceso:

• En implementaciones analógicas,
el estudio de la unidad de
proceso se centra en especial en
el diseño de estructuras que
realicen las operaciones
matemáticas propias del modelo,
en general, productos sumas y
funciones de activación.
• En el caso de productos, la intensidad
que circula por la resistencia no es mas
que el producto del voltaje entre sus
extremos por su conducta.
• Otros dispositivos analógicos, con el fin
de reducir la complejidad del elemento
multiplicador, realizan el producto de
cuatro cuadrantes en dos partes:
primero: proporcionan dos magnitudes
de saluda, de forma que una
corresponde a un valor positivo y otra
a negativo.
• En segunda parte, un bloque
sumador se encarga de sumar las
dos intensidades, dando como
resultado una intensidad positiva o
negativa, según el caso.
• La función no lineal necesaria en la
implementación de la activación
neuronal puede realizarse empleando
un simplificador operacional que sume
los productos realizados por una etapa
previa.
• Sin embargo, la construcción de
circuitos con transistores capaces de
efectuar no-linealidades es
relativamente simple, con tal de
aprovechar precisamente esa
característica consustancial a los
transistores.
Unidad de almacenamiento

• Otro aspecto importante a la hora de


diseñar un neuro-procesador analógico
es la manera de almacenar los
parámetros de la red, en concreto los
pesos asociados a cada neurona.
• El método mas simple es la
implementación en silicio de
resistencias, cuyo valor este
relacionado con los pasos sinápticos
de cada neurona.
• Los dispositivos CCD son líneas
de retardo o registros de
desplazamiento dinámicos
analógicos, en los que los datos
son representados por paquetes
de carga eléctrica.
• Las cargas son inyectadas sobre
un sustrato semiconductor por
métodos eléctricos u ópticos,
pudiendo ser almacenadas o
transferidas como en un registro.
Otro método de almacenar de forma analógica
datos es como la tensión en los extremos de un
condensador.
¿Realización analógica o digital?
• Pros y contras de la realización
analógica.

– Una neurona puede implementarse


fácilmente utilizando dispositivos
analógicos, aprovechando las leyes
físicas para la realización de cálculos.
– Además, las características no lineales
de los dispositivos facilitan la realización
de funciones de activación de tipo
sigmoideo.
• Por otra parte, merece la pena señalar
que el procesamiento de señal en modo
corriente presenta ventajas interesantes
para la realización de circuitos
neuronales analógicos, como la facilidad
para realizar la suma de corrientes, el
aumento en el rango dinámico,
incremento del ancho de banda etc.
• El mayor problema atribuible a la
integración analógica es la no
escalabilidad con la tecnología, lo que
significa que cuando la tecnología de
integración cambia, se debe rehacer la
mayo parte del diseño.
• Pros y contras de la realización digital:

• La realización digital de redes neuronales


se basa en el almacenamiento de los
pesos y activaciones neuronales en
registros, así como en la utilización de
estructuras de calculo clásicas, como
sumadores, multiplicadores o ALU, para la
realización de las operaciones que
requieren los ANS. Es decir, las estructuras
en las que se basa la realización digital
son complejas y costosas y, en principio,
no permiten un nivel de paralelismo tan
alto como las analogías.
Realizaciones Mixtas
Las operaciones típicas en un ANS (sumas, productos
y no linealidades) son fáciles de realizar mediante
dispositivos analógicos, mientras que el
almacenamiento de pesos y el control del sistema se
resuelven mas eficientemente en digital, una
solución de tipo mixto parece interesantes.

De esta manera, mediante circuitos neuronales


mixtos analógico-digitales puede conjugarse la alta
velocidad de procesamiento y densidad de
integración de los circuitos analógicos, con la
precisión que proporciona el almacenamiento digital
de los pesos.
Realizaciones Analógicas de ANS

A continuación veremos algunas


realizaciones analógicas, que emulan con
mayor o menor fidelidad la arquitectura de
la red. Aunque los diseños analógicos
trabajan con parámetros eléctricos
continuos, pueden ser implementados
mediante circuitos en tiempo continuo o
discreto.
Circuitos Neuromorfos: retina y cóclea

La retina es una estructura neuronal en el ojo


encargada de recoger los fotones y de realizar un
reprocesamiento de la imagen percibida para ser
posteriormente enviada al área visual del córtex
cerebral.

La retina de silicio construida presenta


funcionalidades similares a la biológica, como
acentuación de contrastes, detección de
contornos, respuesta a movimientos o habituación
a estímulos persistentes, incluso se han observado
algunas de las ilusiones ópticas conocidas.
ETANN 80170NX
ETANN es un chip neuronal creado por Intel
hacia 1991. En las siglas ETANN el término
entrenable hace referencia únicamente a la
posibilidad de reprogramar los pesos.

El aprendizaje de ETANN no está incluido en el


chip, sino que se realiza en un ordenador
convencional, para utilizar para ello el software
desarrollado por otras casas comerciales.
ETANN permite implementar varios algoritmos,
como BP, Madalina y BO recurrente.
Circuitos comerciales actuales
En este punto trataremos algunas realizaciones
analógicas de ANS comercialmente disponibles en
la actualidad. Muchas de estas realizaciones se
basan en redes neuronales celulares o CNN,
modelo utilizado en tareas de visión.

En [Fang 00] se describe el desarrollo de un


sistema de visión en tiempo real completo en un
módulo multichip, que incluye sensores y
procesamiento mediante una red neuronal CNN,
que será empleado por la NASA en sondas
espaciales de exploración planetaria.
Realizaciones Digitales de ANS

Mediante integración digital VLSI se


construyen chips neuronales de propósito
general y específico; los primeros se utilizan
en el desarrollo de neurocomputadores.
Chips neuronales de propósito específico se
utilizan en la actualidad en el desarrollo de
reconocedores de voz y de caracteres
escritos en productos comerciales.
Lneuro

Se trata de un circuito totalmente


digital para redes neuronales y
procesamiento de señal en general,
que integra un chip. Se explica su
aplicación a tareas como el
procesamiento de imagen para
clasificación de naranjas y detección
de eventos en física de altas energías.
CNAPS
Es una arquitectura neuronal de
propósito general, construida a finales
de los años ochenta, que utiliza
tecnología ULSI y ha estado disponible
comercialmente durante los años
noventa. Su arquitectura consiste en
una clásica estructura SIMD
unidimensional de nodos procesadores
o PN.
Bloques básicos del coprocesador neuronal
reconfigurable
Los bloques que conforman la tarjeta
neuroprocesadora realizada poseen las
siguientes características:
Procesador Elemental (PE). El procesador
elemental, efectúa las operaciones propias de
las neuronas del mapa de Kohonen.
Unidad de Comunicaciones. Las
comunicaciones entre los dispositivos que
conforman la plaza se realizan mediante una
arquitectura orientada a bus constituida por 5
buses internos, y 3 externos, propios de
cualquier microprocesador.
Bloques básicos del coprocesador neuronal
reconfigurable

Unidad de Control (CU). Secuencia las


distintas fases y operaciones que
constituyen cada fase, genera la dirección
de la RAM que utilizarán los PE, configura los
PE para que simulen la neurona virtual
adecuada, controla el flujo de datos entre el
host y cada uno de los PE, determina cuando
deben decrementarse los valores del radio
de vecindad y del valor de actualización y
determina la neurona ganadora.
Bloques básicos del coprocesador neuronal
reconfigurable
Unidad de Almacenamiento. En ella se
almacenan los valores de los pesos sinápticos
de las neuronas.
Configuración de las FPGA. La
configuración de los PE y la CU viene descrita
en fichero de bits, que informa a los LCA que
componen las FPGA sobre la estructura
hardware que deben adoptar. Este fichero es
enviado en serie a la dirección del mapa de
E/S del bus del PC donde se encuentran
conectadas las lineas de configuración.

También podría gustarte