adaptativa lineal usando aritmética distribuida...

16
533 Ingenierías CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO Implementación Hardware de una red neuronal adaptativa lineal usando aritmética distribuida Ing. John Jairo León Franco, [email protected], Universidad Distrital Francisco José de Caldas Facultad Tecnológica. Ingeniería en Control e instrumentación electrónica. RESUMEN Este artículo presenta el diseño e implementación de una red neuronal adaptativa lineal usando aritmética distribuida sobre una FPGA Virtex. El algoritmo utilizado para la adaptación de la red lineal fue el LMS. La arquitec- tura propuesta usa la memoria RAM de puerto doble para hacer posible la actualización de los pesos de la red. El algoritmo de adaptación usa aritmética distribuida y paralelismo para hacer la mayoría de los cálculos. Esta propues- ta de implementación mantiene constante el número de ciclos de reloj durante el proceso de cómputo, aunque se aumente la cantidad de pesos de la red. Esta última característica la hace muy útil en muchas aplicaciones. El amplio uso de registros de desplazamiento basados en memoria RAM y bloques de memoria RAM, permite un sustancial ahorro de recursos del chip. Palabras clave: ADALINE, aritmética distribuida, FPGA, LMS, filtro adaptativo. ABSTRACT This paper introduce an adaptive linear network design and hardware implementation using distributed arithmetic on a Virtex FPGA. The adaptive algorithm used for adaptive linear network was LMS. The architecture proposed use dual port RAM to update network weights. The adaptive Fecha de recepción: mayo 30 de 2005 - Fecha de aceptación: agosto 26 de 2005

Transcript of adaptativa lineal usando aritmética distribuida...

Page 1: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

533

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

Implementación Hardware de una red neuronaladaptativa lineal usando aritmética distribuida

Ing. John Jairo León Franco, [email protected],Universidad Distrital Francisco

José de Caldas Facultad Tecnológica.Ingeniería en Control e instrumentación electrónica.

RESUMEN

Este artículo presenta el diseño e implementación de una red neuronaladaptativa lineal usando aritmética distribuida sobre una FPGA Virtex. Elalgoritmo utilizado para la adaptación de la red lineal fue el LMS. La arquitec-tura propuesta usa la memoria RAM de puerto doble para hacer posible laactualización de los pesos de la red. El algoritmo de adaptación usa aritméticadistribuida y paralelismo para hacer la mayoría de los cálculos. Esta propues-ta de implementación mantiene constante el número de ciclos de reloj duranteel proceso de cómputo, aunque se aumente la cantidad de pesos de la red. Estaúltima característica la hace muy útil en muchas aplicaciones. El amplio uso deregistros de desplazamiento basados en memoria RAM y bloques de memoriaRAM, permite un sustancial ahorro de recursos del chip.

Palabras clave:ADALINE, aritmética distribuida, FPGA, LMS, filtro adaptativo.

ABSTRACT

This paper introduce an adaptive linear network design and hardwareimplementation using distributed arithmetic on a Virtex FPGA. The adaptivealgorithm used for adaptive linear network was LMS. The architectureproposed use dual port RAM to update network weights. The adaptive

Fecha de recepción: mayo 30 de 2005 - Fecha de aceptación: agosto 26 de 2005

Page 2: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

534

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

algorithm use distributed arithmetic and use pipelined to make mostcalculations. This implementation approach keeps constant clock cycle numberto perform an entire product of filtering process, even though weights numberincrease. This characteristic makes very useful in many applications. Theextensive use of shift register RAM memory based and RAM blocks reduceimplementation area and chip resource.

Keywords:ADALINE, distributed arithmetic, FPGA, LMS, adaptive filter.

I. INTRODUCCIÓN

En muchas aplicaciones se hace necesario implementar algoritmos que permi-tan adaptar un determinado número de parámetros conforme cambian lascondiciones de entrada a un sistema en particular. Este artículo pretende pre-sentar la implementación de una red lineal tipo ADALINE (Adaptive LinearNeuron Networks) haciendo uso de aritmética distribuida y de las caracterís-ticas más versátiles de las FPGA tipo Virtex. En primer lugar se hace una revi-sión del algoritmo LMS muy comúnmente usado en el entrenamiento de redesneuronales. Se hará una breve exposición de las características de la aritméticadistribuida y de los rasgos más importantes de las FPGA tipo Virtex que sonrelevantes en este trabajo.

La formulación de la arquitectura se presentará como solución al problema dela implementación de una red neuronal con función de activación lineal parafiltrado adaptativo, que es una da las principales aplicaciones de las redes tipoADALINE [1], pero lógicamente esta se puede extender a diversas aplicacionesdonde se requieran operaciones lineales adaptativas.

II. REVISIÓN DE CONCEPTOS

A. Filtrado Adaptativo.

En muchas aplicaciones se desea eliminar señales indeseables (ruido) que co-rrompen la información útil; infortunadamente, para obtener un óptimo des-empeño de los filtros que hacen esta labor, se requiere un conocimiento previode las dos señales involucradas, la de entrada y la deseada.

Page 3: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

535

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

Haciendo uso de la teoría de optimización, se puede llegar a una soluciónóptima del problema si se minimiza el error cuadrático medio. Este errorestará conformado por la señal que el filtro estima y el valor de la señal desea-da, como habitualmente se hace en el entrenamiento supervisado en redesneuronales. El error será:

(1)

donde: d[n]: señal deseada.y[n]: señal de salida de la red.

Esta función de error es la función de costo para una entrada estacionaria. Lasalida de la red está descrita por las siguientes ecuaciones:

(2)

donde

(3)

Una forma de estructura básica para filtrado adaptativo con redes neuronalesse muestra en la figura 1. Aquí se puede ver cómo el algoritmo adaptativoactualiza los pesos de la red neuronal a partir de la señal de error y de la señalde entrada.

B. Algoritmo LMS.

Es probablemente el algoritmo más usado por su simplicidad.

Este algoritmo se basa en la aproximación de descenso de gradienteestocástico [2].

][][][ nyndne −=

][][][ nnnyT

xW=

Figura (1). Modelo de un sistemapara filtrado adaptativo usandouna red neuronal tipo ADALINE.

Page 4: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

536

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

Si se toma el valor medio del error cuadrático, se tiene:

(4)

Esta es una ecuación cuadrática, y para hallar el mínimo de esta se toma elgradiente, lo cual conduce a :

(5)

Esta ecuación es impráctica, pues implicaría el cálculo de medias e inversas queaumentarían la complejidad computacional y lógicamente se tendría que ha-cer sobre todos los valores posibles. Por lo tanto, para el cálculo de los pesosóptimos de la red, se hace una aproximación aplicando el gradiente con res-pecto a los pesos de la red en cada iteración, lo cual conduce a :

(6)

De forma que el valor medio del vector de pesos tiende al vector de pesosóptimo (ecuación (6)) en la medida en que el número de iteraciones n, tiendaa infinito. El factor de escala µ es habitualmente llamado razón de aprendizajey depende del tipo de señal que se desee filtrar; su valor está acotado por:

(7)

donde PT es la suma de los valores cuadráticos medios de las señales de entra-

da (las muestras de las señales de entrada retardadas). La ecuación (7) esta-blece la condición de convergencia del algoritmo. En la medida en que m sehace más grande, pero dentro de las cotas de (7), el algoritmo convergerámás rápidamente.

C. Estructura de la FPGA Virtex

A grandes rasgos, la arquitectura de la FPGA Virtex comprende bloques dememoria RAM que están dispuestos como columnas en lo que en la figura 2 seve como BRAMs, las cuales pueden ser configuradas como bloques de memo-ria con doble puerto que permiten hacer operaciones de lectura y escriturasimultáneas sobre las celdas de memoria. Existen columnas de CLBs (bloque

][]][][[2

][]][][[][]][[]][[22

nnndE

nnnEnndEneE

TT

TT

wx

wxxw −+=

]][][[]][][[1

nndEnnETT

opt xxxw−=

][][][]1[ nnenn xww µ+=+

Page 5: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

537

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

lógicos configurables) que contienen celdas básicas para poder construir cual-quier circuito combinacional y secuencial. Alrededor del las columnas encon-tramos un anillo de interconexión, el VersaRing, que permite hacer el ruteo delas conexiones entre celdas lógicas de una manera más eficiente, lo que aumen-ta la velocidad y el desempeño del chip. También se encuentran bloques DLL(Delay Locked Loop) que permiten mejorar la fase de las señales de reloj que seve alterada por la longitud de los caminos de distribución del mismo y que, enaltas frecuencias, introducen retardos significativos en el reloj. Por último,encontramos IOBs (bloques de entrada-salida) que contienen circuitería quepermite hacer la interconexión con el mundo exterior, haciendo acoples einterfaces eléctricas. Para un mayor detalle, el lector puede recurrir a [3].

D. Aritmética distribuida.

Es probablemente una de las técnicas más implementadas en el diseño de siste-mas sobre FPGA por la arquitectura que estos dispositivos tienen.

Una combinación lineal puede expresarse mediante:

(8)

Definiendo el formato de las variables en complemento a dos, se puede definiralgebraicamente esta como:

(9)

Figura (2). Estructura básica deuna FPGA Virtexâ -E. Figura

tomada del “The ProgrammableLogic Data Book”, Xilinxâ.

∑=

=K

k

kknXAny

1

)()(

∑−

=

−+−=1

1

02

B

b

b

kbkkXXX

Page 6: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

538

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

donde Xkb

puede ser una variable binaria. Sustituyendo esta última en la ecua-ción (8) , se tiene:

(11)

Si se hace una expansión de esta expresión se puede llegar a:

(11)

Como puede verse, las cantidades en el interior de los corchetes cuadradosson constantes, ya que las A

k son coeficientes y las X

ki son los bits de las variables

de entrada. Las sumas dentro de los corchetes están constituidas por todas lasposibles combinaciones de los bits de entrada de las variables, lo que permitealmacenar estos productos en el interior de una memoria para su posterioruso [4]. A esta memoria habitualmente se le denomina DALUT (distributedarithmetic look up table). La ecuación (11) se puede reorganizar para quequede en forma serial. Si se toma B = 16 [4],

Y (la salida) se puede obtener como:

Y= {..14..{[sum15]2-1 + [sum14]}2-1 + [sum13]}2-1 +[sum12]}2-1 + [sum11]}2-1 + [sum10]}2-1 + [sum9]}2-1

+ [sum8]}2-1 + [sum7]}2-1 + [sum6]}2-1 + [sum5}2-1 +[sum4]}2-1 + [sum3]}2-1 + [sum2]}2-1 - [sum0](12)

donde los términos denotados por sum0, sum1, ..., sum15, son constantes yestán dentro de la memoria. Para entender un poco mejor esto, supongamos

∑∑∑

∑ ∑

= =

=

= =

+−=

⎥⎦

⎤⎢⎣

⎡ +−==

K

k

B

b

b

kkb

K

k

kk

K

k

B

b

b

kbkk

AXAX

XXAyny

1 11

0

1 1

0

2

2)(

[ ][ ][ ]

[ ][ ] )1(2**)1(........3*)1(32*)1(21*)1(1

)2(2**)2(.............3*)2(32*)2(21*)2(1

22**2.............3*322*221*12

12**1.............3*312*211*11

*0.............3*302*201*10

−−−+−+−+−+

−−−+−+−+−+

••

−++++

−++++

+++−=

BkABkXABXABXABX

BkABkXABXABXABX

kAkXAXAXAX

kAkXAXAXAX

kAkXAXAXAXy

Page 7: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

539

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

que la ecuación (8) nos define la siguiente función: y = A1 x

1 + A

2x

2, entonces,

si escogemos B =3, y con X1= 011, X

2=101, la salida será

Y = {{[sum2]2-1 + [sum1]}2-1 - [sum0]

El término sum2 es igual a A1+ A

2, el término sum1 es igual a A

1, sum0 es igual

a A2.

Si la variables de entrada son X1=110, X

2=100, los términos sum2, sum1,

sum0 sería 0, A1, A1+ A

2 respectivamente. El último término sum0 siempre se

resta, pues indica el signo de la operación.

III.ARQUITECTURA DE UNA ADALINE

A. Estructura de la red.

Desde el punto de vista del sistema, la red tiene la siguiente representación:

Obsérvese que hay N elementos de almacenamiento en la línea de retardo yque, además, los pesos de la red son cambiables. Desde el punto de vista de laarquitectura (implementación), la red lineal de la figura 3 se puede implementarmediante la siguiente arquitectura [5,6]:

Figura (3). Diagrama de una red lineal.

Figura (4). Arquitectura red lineal.

Page 8: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

540

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

El banco de registros está compuesto por registros paralelo-serie y contiene Nde estos; la longitud de palabra es m. En esta arquitectura los pesos no sonactualizables; para hacer estos posible, se usa en la DALUT una memoria RAMde doble puerto que permite a los pesos producidos por el algoritmo LMS seralmacenados. De esto se hablará más adelante.

El formato de representación para las palabras en la DALUT depende delcomportamiento del problema; entiéndase por problema la señal a filtrar. Siel problema genera un conjunto de palabras cuyo máximo es menor que launidad, se puede asegurar que el resultado de la red es menor que este máximo.Así, supóngase que SumMax es el máximo valor que se encuentra en el interiorde la DALUT; el peor de los casos es cuando siempre se escoge este valor. De laecuación (12) Sum0 es el mínimo, dado que tiene el signonegativo; a este término lo denominaremos SumMin. Basándonos en la ecua-ción (12) y con las consideraciones antes expuestas, se llega a que el resultadode la red es:

(13)

Este resultado permite observar el comportamiento de la salida Y. Bajo lascondiciones antes impuestas, Y siempre será menor que SumMax asegurandoque el producto de la red está acotado.

Sería deseable que la magnitud de las Ak estuviese en el rango (-1,1), pero no es

una restricción, pues la arquitectura exige que solamente los términos Sum dela ecuación (12) son los que deben estar dentro de este rango, y aunque esto nose cumpliera, sigue siendo viable la arquitectura, pues la variable de salida es laúnica afectada. Supóngase que los términos Sum de la ecuación (12) no estándentro del rango (-1,1) sino en el rango (-2,2); entonces, los términos Sumdeberán tener un bit adicional en la parte entera, lo que implica la modifica-ción de la arquitectura de la figura 5 para soportar operaciones de desplaza-miento aritmético a la izquierda y, consecuentemente, la migración hacia elmismo formato de todos los multiplicadores usados para calcular el algorit-mo LMS.

( )⎟⎠

⎞⎜⎝

⎛ −+−=

++++−=

−−−−

)1(

)1(21

2

11

2...22

m

m

SumMaxSumMinY

SumMaxSumMinY

Page 9: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

541

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

A. Estructura del Algoritmo LMS

Para implementar el algoritmo LMS se usan multiplicadores. La multiplica-ción usando aritmética distribuida es bastante simple. En la figura 6 se ve unmultiplicador DA; este multiplicador de nuevo utiliza el principio de la arit-mética distribuida pero solo para un coeficiente y una variable. En esta estruc-tura se usa una compuerta AND que habilita o deshabilita la entrada de datosa la unidad de suma y al registro acumulador y las operaciones se hacen de lamisma forma que en una estructura que tiene más pesos y coeficientes. Launidad de control puede estar en cada multiplicador o incorporada en la uni-dad de control central.

B. Estructura del Algoritmo LMS

Para implementar el algoritmo LMS se usan multiplicadores. La multiplica-ción usando aritmética distribuida es bastante simple. En la figura 6 se ve unmultiplicador DA; este multiplicador de nuevo utiliza el principio de la arit-mética distribuida pero solo para un coeficiente y una variable. En esta estruc-tura se usa una compuerta AND que habilita o deshabilita la entrada de datosa la unidad de suma y al registro acumulador y las operaciones se hacen de lamisma forma que en una estructura que tiene más pesos y coeficientes. Launidad de control puede estar en cada multiplicador o incorporada en la uni-dad de control central.

Para el algoritmo LMS se puede obviar el registro paralelo-serie delmultiplicador dado que estos bits provienen del banco de registros de la red, loque se denominará multiplicador DA truncado. Siguiendo la ecuación (6),una implementación directa de este algoritmo implica el uso de N+1multiplicadores para realizar el producto µe[n]x[n].

El vector w[n] se computa sumando la cantidad µe[n]x[n] con los pesosanteriores w[n – 1]. Los bloques de memoria de la FPGA contienen 4096 bitsconfigurables de diversas formas según sea la necesidad. En el caso de 16 bits dedatos se tiene una palabra de direcciones de 8 bits, lo que significa que la can-tidad de pesos permitidos para la red con un solo bloque, es de ocho. Se puedetomar como base este número de pesos para desarrollar la arquitectura quepuede ser extendida a un número superior de pesos.

Page 10: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

542

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

Una vez se tiene el producto µe[n] este valor se usa como multiplicando delproducto µe[n]x[n] donde x[n]es el multiplicador y proviene del banco deregistros; de esta forma se ahorran 8 registros de desplazamiento. En la figura6 podemos observar el interior de un multiplicador DA truncado; nótese queuna vez se tiene el producto µe[n]x[n] este se puede sumar con el pesow[n – 1] a través del multiplexor localizado en el lazo de realimentación delmultiplicador truncado. Con el vector w[n] listo, éste pasa a la unidad deorganización de pesos de palabra a través de un multiplexor que está en lasalida de los multiplicadores truncados. Este multiplexor permite seleccionarqué peso pasa a la unidad organizadora. Figura 7. El bus de selección es de tresbits y proviene de una memoria que contiene el número de peso que debe pasara través del multiplexor.

La tabla 1 permite explicar el contenido de la memoria de selección. Las com-binaciones posibles de 8 bits conducen a 256 palabras; cada una de ellas tieneun determinado número de unos indicando cuál de los pesos debe pasar a launidad de organización de pesos de palabra, para formar un término suma ypara luego guardarse en la DALUT. Por ejemplo, la combinación “00000011”indica que se debe almacenar la suma de los pesos W

0 + W

1 ; el contenido a

almacenar en la memoria de direcciones es 0,1 en posiciones consecutivas.Nótese que el bus de datos de la memoria de direcciones es de cuatro bits; tresestán dedicados a la selección del multiplexor y el cuarto a control, y se usapara indicar cuándo la unidad de organización de pesos debe guardar un tér-mino suma en la DALUT. Como la cantidad de unos en un arreglo de combi-naciones de 8 por 256 es de 2048, esta es la misma cantidad de palabras deselección que se almacenan en la memoria de selección. El puerto de direccio-nes de esta memoria es controlado por un contador binario de 11 bits, talcomo se puede apreciar en la figura 8.

Figura (5). Unidad de multiplicación DA.

Page 11: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

543

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

Figura (6). Multiplicador DA truncado. A la entrada del sumador se encuentra elmultiplicando.

Tabla (1). Combinaciones de 8 bits, suma de pesos correspondientes a esascombinaciones y contenido a almacenar en la memoria de direcciones.

Figura (7). Estructura de la operación w[n]=w[n-1] + µe[n]x[n]para un

vector de ocho pesos.

Palabra Peso Posición a

almacenar en la

memoria

00000000

00000001

00000010

00000011

00000100

00000101

.

.

.

11111111

Ninguno

W0

W1

W0+ W1

W2

W0+ W2

.

.

.

W0+ W1+ W2+... W7

Ninguna

0

1

0,1

2

0,2

.

.

.

0,1,2,3...7

Page 12: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

544

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

C. Arquitectura del sistema

La arquitectura diseñada tiene 32 pesos y fue ensamblada con secciones deocho pesos. En la figura 8 se observa el conjunto completo del la red. Debenotarse que a la salida hay unos sumadores que permiten obtener el resultadoy en esencia esto es un pipeline que mejora la capacidad de cómputo, obvia-mente a costa de más recursos hardware. Sin embargo, la estructura propues-ta puede ampliarse a un número mucho mayor de pesos que permita abordarproblemas más exigentes desde el punto de vista de la respuesta espectral, sinque esto desmejore el rendimiento computacional de la red, siendo este últimohecho la principal ventaja de esta arquitectura.

La unidad de control atiende a todos los elementos de la red y está concebidacomo una máquina de estados simple que mapea toda su información sobreuna memoria, reduciendo la cantidad de recursos usados.

D. Tiempo de cómputo

El número de ciclos de reloj usados por la red para calcular cada salida es de :

Nc = m + 2049 (14)

Donde m es la resolución de las muestras y pesos.De nuevo hay que notar que el número de ciclos no aumenta aunque aumenteel número de pesos en la red.

Este tiempo de cómputo se mejora una vez el algoritmo LMS converja y pase aser de solamente de m+1 ciclos de reloj. Esto último se logra haciendo que launidad de control cambie y controle solo la operación de filtrado.

IV.APLICACIÓN A UN PROBLEMA SIMPLE

A. Cancelación de ruido.

La cancelación de ruido es una de las aplicaciones más típicas del filtradoadaptativo; en este, una señal contaminada de ruido puede limpiarse usandoun filtro adaptativo mediante el esquema de la figura 9.

Page 13: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

545

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

Page 14: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

546

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

El filtro sintetiza el mejor ruido a partir de muestras de la misma fuente deruido para anular el ruido que contiene la señal original. La señal filtrada es laseñal de error. La simulación muestra que, para una red de 32 pesos, se obtieneuna cancelación razonable del ruido y la adaptación es buena. Los pesos de lared se encuentran en el intervalo [-1,1].

En la figura 10 se puede observar el proceso de filtrado. El ruido de la simula-ción es blanco y su potencia es de 1. La señal es seno con amplitud uno. Larazón de aprendizaje µ es 0.01 con lo que se garantiza la convergencia. Paraeste caso en particular, la arquitectura presenta un buen desempeño.

Figura (9). Esquema de cancelación de ruido mediante filtrado adaptativo.

Figura (10). Señales de cancelación de ruido. La imagen inferiores la señal después del proceso de cancelación.

Page 15: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

547

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

B. Resultados de implementación

La tabla 2 resume el uso de los recursos del chip y la velocidad a la cual marchael reloj según la cantidad de pesos de la red. Para esta implementación la longi-tud de palabra es de 16 bits.

Para el caso de 8 pesos, la frecuencia de muestreo máxima se aproxima a los 34kmuestras/segundo. Este diseño, entonces, puede estar bien situado para apli-caciones de audio y, si se toma un tiempo adecuado para el entrenamiento dela red, se puede retirar el algoritmo LMS haciendo que la velocidad de muestreollegue a 4.08 M muestras/segundo aproximadamente, lo que supera lasimplementaciones software de este tipo de redes. Nótese que la frecuencia deoperación es prácticamente constante aunque aumente los recursos usados.

Aunque en el mercado existen núcleos VHDL predefinidos para filtradoadaptativo, la gran mayoría usa los bloques embebidos de multiplicación de18 bits que ofrecen arquitecturas como la Virtex II-Eâ o Stratix de Altera. Laaproximación aquí propuesta usa la gran cantidad de memoria RAM embebi-da que traen las FPGA Virtex-E. El diseño se sintetizó y ruteó sobre una FPGAVirtex -E 600 grado 6 usando la herramienta Xilinxâ ISE 6.3i y la simulaciónfuncional y temporal se hizo con la herramienta ModelSimâ XE II 5.8c.

V. CONCLUSIONES

La implementación propuesta permite hacer que una red neuronal linealadaptativa pueda ser usada en aplicaciones que sean solución a problemas enlínea como filtrado adaptativo; además, se puede aumentar la cantidad depesos de la red sin que esto afecte en gran medida la velocidad de desempeñodel diseño, pues se está aumentando su grado de concurrencia. La cantidad de

Tabla 2. Resumen de los recursos usados para diferentes pesos(Un slice está compuesto por dos CLBs).

Pesos Slices

Bloques

de RAM

Frecuencia

máxima

8 161 1 69.48 Mhz

16 428 2 69.48 Mhz

24 839 3 68.42 Mhz

32 833 4 68.42 Mhz

64 1619 8 68.42 Mhz

128 4315 16 68.42 Mhz

Page 16: adaptativa lineal usando aritmética distribuida RESUMENcidc.udistrital.edu.co/investigaciones/documentos... · 2015-06-13 · algoritmo utilizado para la adaptación de la red lineal

548

Inge

nier

ías

CENTRO DE INVESTIGACIONES Y DESARROLLO CIENTÍFICO

MACs que la red realiza aumenta en la medida en que su tamaño aumenta, yesto no afecta la velocidad del reloj. Debido al uso de sumadorescombinacionales en la salida de la red, los recursos usados por ella no aumen-tan en forma lineal dado que el ruteo se hace más complejo; este es el caso de laimplementación con 128 pesos que implica el uso de 4315 slices.

El diseño implementado permite liberar el uso de multiplicadores en chips comoel Virtex II, pudiendo ser usados estos multiplicadores en cálculos más críticos.

REFERENCIAS

[1] Haykin,S., Neural Networks: A Comprehensive Foundation.MacMillan, New York, 1994.

[2] Lok-Kee Ting.“Algorithms and fpga implementations of adaptive lms-based predictors for radar pulse identification”. Ph.D. dissertation, Dept.Elect. Eng., Queen’s University Belfast, 2001.

[3] Xillinx â, The Programmable Logic Data Book 2000.

[4] White paper, “The Role of Distributed Arithmetic in FPGA-basedSignal Processing”. www.support.xillinx.com

[5] Miguel Melgarejo, Jhon Leon. “ FPGA implementation of a seriallyorganized DA multichannel FIR filter “,(abstract), Tenth ACMInternational Symposium on Field Programmable Gate Arrays, Monterey,California, Febrero 24-26, 2002. ISBN: 1-58113-452-5.

[6] A reconfigurable approach to hardware implementation of neuralnetworks, Noory, B.; Groza, V.; Electrical and Computer Engineering,2003. IEEE CCECE 2003. Canadian Conference on, Volume: 3, 4-7 May2003. Pages: 1861–1864, vol.3.

[7] Configurable multi-layer CNN-UM emulator on FPGA usingdistributed arithmetic, Nagy, Z.; Szolgay, P.; Electronics, Circuits andSystems, 2002. 9th International Conference on, Volume: 3, 15-18 Sept.2002. Pages: 1251-1254 vol.3.