Documente Academic
Documente Profesional
Documente Cultură
1
Seria ELECTRONIC i TELECOMJJNICA TII I
TRANSACTIONS on ELECTRONICS and COMMUNICATIONS
Rezumat - Odat cu rAspndirea dispozitivelor logice Intrrile i bias-ul sunt nsumate i apoi ~rezultatul este
programabile i a limbajelor de descriere hardware cum introdus ntr-o funcie de activare pentrU a produce o
ar fi VHDL, Verilog sau ABEL, a devenit mai atractiv ieire.
implementarea in hardware a unor aplicaii care Pentru exemplele care urmeaz s-a folosit modelul
traditional se rezolvau prin soft. Reelele neuronale
artifi~iale reprezint un asemenea domeniu. Acest unui neuroprocesor (NP) care este prezentat n Fig. 2.
material descrie implementarea a doua reele neuronale
artificiale. O reea este o reea simpl cu dou straturi i
o ieire care implementeazi funcia SAU-EXCLUSIV. A
doua retea neuronal este utilizat pentru a recunoate
cifrele ~nui afiaj cu apte segmente chiar cu unele
distorsiuni. Reelele neuronale sunt descrise n VHDL i Fig.2. Modelul neuroprocesorului implementat
implementate in circuite FPGA. Modelul prezentat are o intrare Xi> plus toate ieirile Y
Cuvinte cheie: reele neuronale artificiale (Rl,,(A),
care intr n jonciunea de nsumare (1:), ieirea
circuite logice programabile (FPGA), limbaj de
jonciunii de nsumare este intrarea funciei de
descrier{; hardware (VHDL).
activare de tipul treapt, iar rezultatul este inut ntr
L INTRODUCERE un latch L. Fiecare NP are o singur intrare n cazul
RN cu mai multe intrri este nevoie de mai multe NP.
Unele nsuiri ale reelelor neuronale naturale Simbolal unui neuroprocesor este prezentat n Fig. 3.
(neuronii) pot fi reproduse prin simularea pe l!n
calculator digital a unor reele neuronale arjficiale. In
timp ce calculatoarele digitale realizeaz conexiunile
spaiale n mod serial, reelele neuronale naturale
realizeaz conexiunile spaiale n paralel, permind
Fig. 3. Simbolul unui neuroprocesor
problemelor cu foarte multe conexiuni s fie rezolvate
mult mai repede dect cu ajutorul calculatoarelor Intrrile i ieirile sunt valori binare. n hardware ele
digitale. Pentru mbuntirea performanelor este au valori valorile logice O sau 1. Pentru modeiare ele
nevoie de simplificarea drastic a circuitelor digitale, sunt bitul de semn al sumei. (1 == negativ, O = pozitiv).
pentru a implementa un singur neuron n loc de o Ponderile reprezint orice numr ntreg pozitiv sau
.
retea neuronal , cIonarea unui numr mare de neuroni negativ. Suma tuturor intrrilor se face prin nsumarea
i interconectarea acestora cu ponderile ponderile i schimbarea semnului ponderii dac
corespunztoare reelei neuronale.
valoarea intrrii este negativ. Funcia de activare ia
valoarea semnului rezultatului nsumrii. Latch-ul
II. MODELUL UNUI NEUROPROCESOR transmite aceast valoare la ieire pe un front pozitiv
al clock-ului.
Pentru a transfera un proiect de RNA n hardware
este nevoie de un model. Fig. 1 prezint model al unui N
X W X + "Y . x ~"I:
neuroprocesor (NP). T
= X.
UI i i L.. J I.J
(1)
r=1
y
x
Yj{t + 1) = signbit{Uj ) (2)
entity sevennp is
port(clock: in std_Iogic;
input: in std_Iogic;
inputs : in iobus;
Fig. 4. Modelul unei reele de neuroprocesoare . weight : in aweight;
choice : out achoice;
output: out asum);
Este posibil descrierea intregii reele cu ajutorul unei end entity;
singure matrici de dimensiuni (N+I)xN, unde N este
numrul de neuroprocesoare din reea. architecture behaviour ofnp is
Neuroprocesoarele se numeroteaz de la 1 la N. signal index: achoice;
Fiecare linie din matrice este vectorul transpus al signal sum, next_sum : asum;
ponderi lor pentru acel neuroprocesor. Ponderile signal npjnput : std_logic_ vector(O to N);
corespunztoare intrrilor sunt n coloana zero a
matrici. Coloanele de la 1 la N reprezint ponderile begin
ieirile tuturor neuroprocesoarelor conectate Ia intrare. choice <= index;
Matricea se numete matricea mare sau grand matrix np_input(O) <= input;
(GM). Pentru marea majoritate a topologiilor, dar nu np_ input( 1 ta N) <= inputs;
pentru toate, matricea GM va fi populat intens cu O i
1 reprezentnd lipsa sau existent conexiunilor dintre with np_input(index) select
noduri. n forma matricia!: next_sum <= weight when 'O',
-weight when others;
process
begin
unde P reprezint vectorul de intrare conine toate wait untiI clock '1';
intrrile i toate ieirile
legate napoi la intrare. if index = N then
index <= O;
IV. RESURSE output <= sum;
sum <= next_sum;
Limbajul folosit pentru descrierea proiectelor este else
VHDL care permite att descrierea structural index <= index + 1;
circuitelor ct i descrierea comportamental a sum <= sum +
acestora. Circuitul programabil utilizat este un circuit next_sum;
FPGA XC4010XL de la firma XILINX. Mediul de end if;
programare utilizat este XI LINX ISE 4.2. end process;
end architecture behaviour;
V. ARHITECTURA UNUI NEUROPROCESOR
V. EXEMPLE DE IMPLEMENTRI
x2. Wx=1-__
i~1
i~1
i~1
i~1
i~1
i~1
L
WY=1 i~1
O .G'---Wx=-1 - , . . . . . . /~---+~. . y
decalaj (bias) i ieirea va deveni -1 sau 1. Astfel matricea pseudo invers a lui P.
1 O O O O O
GM
1 O O O O
O 1 -1 O O
O
O (4) I
O -1 1 O O
-1 O O 1 1
O
O I
45
dup convertire din reprezentare n virgul flotant n 4 input LUTs: 478 out of 800 59%,
numere ntregi devine: 3 input LUTs: 98 out of 400 24%
W=
0.2941 0.1176 -0.0588 0.2941 0.2941 0.1176 0.0588 VII. CONCLUZII I POSIBILITTI DE
0.1176 0.6471 0.1765 0.1176 0.1176 -0.3529 -0.1765 DEZVOLTARE .
-0.0588 0.1765 0.4118 -0.0588 -0.05880.1765 -0.4118
0.2941 0.1176 -0.0588 0.2941 0.2941 0.1176 0.0588 Aceast lucrare prezint dou implementri digitale n
0.2941 0.1176 -0.0588 0.2941 0.2941 0.1176 0.0588 circuite logice programabile a unor retele neuronale
0.1176 -0.3529 0.1765 0.1l76 0.1176 0.6471 -0.1765 artificiale. Cu toate c proiectele prezentate n aceast
0.0588 -0.1765 -0.4118 0.0588 0.0588 -0.1765 0.4118 lucrare sunt relativ simple, ele reprezint principiile
generale de proiectare ale unor retele neuronale
round(20*W) implementate hardware. n continua;e se prezint
cteva posibiliti de dezvoltare.
ans= Cele dou exemple prezentate au ieiri binare deci pot
6 2 -1 6 6 2 1 fi uor implementate cu modelul neuroprocesorului
2 13 4 2 2 -7 -4 prezentat. Pentru RNA cu ieiri pe mai multe nivele
-1 4 8 -1 -1 4 -8 sau cu ieire continu se pot folosi mai multe NP
6 2 -1 6 6 2 1 pentru a produce ieirea dorit n care ieirea fiecrui
6 2 -1 6 6 2 1 NP reprezint o anumit pondere, in mod similar cu
2 -7 4 2 2 13 -4 reprezentarea numerelor ntregi.
1 -4 -8 1 1 -4 8
A. Ieiri i intrri pe mai muli bii
Number ofExtemal IOBs 190utof160 31% Diferite reele neuronale artificiale au funcii de
activare diferite, ieirea putnd fi liniar sau poate fi
Flops: O
Latches: O mai complex. Pentru a implementa acestea se pot
folosi mai multe neuroprocesoare. Funcia de activare
Number oflOBs driving Global Buffers: este codat n matricea ponderi lor.
1 out of8 12%
C. Instruirea RlvA
Number of CLBs 266 out of 400 66%
Total Latches: O out of 800 0% Ponderile RNA pot fi calculate prin instruire
Total CLB Flops' 154 out (lf 800 19% instantanee, cum ar fi regula de instruire Hebbian,
sau prin instruire supravegheat cu ajutorul unei reele
de reacie pentru ajustarea ponderi lor.
BffiLIOGRAFIE
[IJ E. Fiesler, R. Beale, Hanndbook of Neural Computation,
Institute ofPhysiscs and Oxford University Press, Oxford 1997.
[2J V. Trifa, E. I. Gaura, Reele Neuronale Artificiala, Editura
Mediamira, 1996.
[3] D. Mic, S. Oniga, Proiectare asistata. cu circuite logice
programabile, Risoprint Cluj-Napoca, 2002,
[4] EE563 Project Dccument: "Using A Neuroprocessor Model for
Describing Artificial Neural Nets",
http'llwww compusmart ab ca
[5J EE602 Project Document: "A Stack Processor: Synthesis",
hnp,//www compusmart ah ca
[6] EE635 Project Document: "A Writable Computer",
hnp-(!www compusmart ah ca
[7J "Simulating a Neuroprocesso(", http'!lwww CQmpllsmart ah ca