Sunteți pe pagina 1din 5

Buletinul tiinific al Universitii "Politehnica" din Timioara

1
Seria ELECTRONIC i TELECOMJJNICA TII I
TRANSACTIONS on ELECTRONICS and COMMUNICATIONS

Tom 47(61), Fascicola 1-2,2002

Implementri digitale ale reelelor neuronale artificial~

Stefan Oniga l Alin Tisan2, Ciprian Gavrincea3, Daniel Mic4 i

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)

Fig. 1. Modelul unui neuroprocesor

1 )Lecturer eng. 2) Teaching Assistant eng.

3) Teaching Assistant eng. 4) Teaching Assistant eng.

E\t::ctrntechnic21 Derar.ment North UniverSlly ofEaia Mare

Fh\'nc: +40-62 218509. t;-tn&il: (>niga(i~ubm. f')

III. TOPOLOGIA REELEI


Neuroprocesorul este descris comportamental ceea ce
O reea de neuroproccsoare sau o reea neuronal, permite implementarea unui numr mare de NP ntr
poate fi reprezentat prin conectarea tuturor intrrilor un circuit FPGA. Pentru proiecte mici este bine ca
i a ieirilor intr-o jonciune de nsumare. Intrrile X Matricea GM s se implementeze sub forma unui
i Y, i ponderea Wx a intrrilor X sunt matrici de tabel de adevr cu instruciunea case.
dimensiuni Nxl. Ponderea Wy ale intrrilor Y este o Neuroprocesorul este descris simplu printr-un cod
matrice de dimensiune NxN, unde N reprezint VHDL de 40 de rnduri ce descrie comportamental
numrul de neuroprocesoare (Fig. 4). funcionarea acestuia.

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

A. Implementarea junciei SA U-EXCLUSIV

output O reea neurona] artificial (RNA) cu un singur strat


poate implementa func t "e I respective SAU dar nu
poate implementa fi :a SAU-EXCLUSIV. Este
nevoie de dou neuro: esoare n primul strat pentru
weighl cele dou intrri, d :europrocesoare n cel de-al
doilea strat per-" combina intrrile i un
neuroprocesor n : ::ilea strat pentru a furniza
ieirea.
n primul !" ;1ntru NP de intrare, valorile
Fig. 5. Arhitectura unui NP ponderilor sunt zero i intrrile au ambele
ponderea 1. Stratul al doilea de neuroprocesoare nu Exemplul prezentat n continuare se refer la
are intrri deci ponderea tuturor intrrilor este zero. recunoaterea cifrelor 0, 1. 2. de pe un afiaj cu 7
dar fiecare neuroprocesor are intrri de la segmente chiar dac datele de intrare sunt
neuroprocesoarele din primul strat cu ponderile 1 "zgomotoase".
respectiv -1. Astfel cnd ambele intrri sunt la fel Reeaua neuronal artificial este antrenat (ponderile
ieirea neuroprocesorului va fi 0, iar cnd intrrile vor sunt calculate) folosind regula de nvare Hebbiana.
fi diferite. ieirile vor fi -2 respectiv 2. Reeaua neuronal artificial utilizat este cu un sigur
Neuroprocesorul din al treilea strat citete ieirile strat, cu 7 intrri i 7 ieiri, un total de 14 NP
neuroprocesoarelor din al doilea strat cu ponderea 1. conectate ntr-o reea cu propagare nainte.
Cnd ieirile stratului 2 sunt identice ieirea devine 2.
Cnd stratul doi are ieiri diferite, ieirea devine O.
Calculate
x1. Wx=1--

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

Wy=1 Fig. 1. Circuit pentru recunoaterea cifrelor

Regula Hebbian calculeaz produsul dintre intrri i


Fig. 6. RNA care implementeaz funcia SAU-EXCLUSIV ieiri pentru a calcula ponderile. Deoarece n acest
exemplu se implementeaz o memorie autoasociativ
Deci ieirea stratului trei este sau O sau 2 care au intrrile i ieirile sunt identice astfel nct.:
ambele ace lai semn. Dac intrarea acestui

neuroprocesor este fixat la (pozitiv din punct de
vedere matematic) i ponderea intrrii lui este setat la
(5)
1 atunci aceast intrare va aciona ca tensiune de unde P este matricea tuturor intrrilor i p+ este

decalaj (bias) i ieirea va deveni -1 sau 1. Astfel matricea pseudo invers a lui P.

ieirea neuroprocesorului va fi 1 cnd intrrile sunt


Intrrile pentru 0, 1i 2. folosite pentru instruire, sunt

diferite i O cnd sunt identice. prezentate in Fig. 8.

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

Fig. 8. Modelele de intrare n RNA


Matricea OM a acestei reele este prezentat de
ecuaia 4. Fiecare linie reprezint matricea transpus a Transpunnd aceste modele ntr-o matrice n care
ponderilor pentru un NP. Prima coloan este coloana reprezentm un segment aprins prin 1 iar unul stins
ponderilor intrrilor iar celelalte coloane reprezint prin -1 obtinem:
ponderea ieirilor conectate la intrare.
1 1 1 1 1 1 _l~T

B. RNA pentru identificarea unor modele


P "" -1 1 1 -1 -1 -1 -1
(6)
[
Una dintre utilizrile RNA este invarea unor modele 1 1 -1 1 1 -1 1
prezentate i recunoaterea acestora cnd sunt aplicate
ca stimuli la intrare. Cu un set adecvat de ponderi,
RL~A poate recunoate modelele nvate chiar dac In urma calculelor efectuate n MATLAB rezult
acestea sunt parial alterate (lipsesc parial sau sunt matricea pono.crilor prezentat n continuare, care
afectate de zgomot).

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=P*pinv(p) Number ofBUFGLSs 1 out of8 12%

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

VI. REZULTATE EXPERIMENTALE


N
Modelele folosite pentru testare i rezultatele obinute I
sunt prezentate n Fig. 9. Ele sunt compuse din cifrele B
O, 1, i 2 care trebuiesc reclli,oscute, apoi cele trei B
modele care conin doar jumtatea superioar a L
cifrelor i o parte din celelate 122 de combinaii E
posibile. Opt din cele 11 intrri prezentate au fost
recunoscute corect ca c.ifre chiar daca au avut unele
Fig. 10. RNA cu intrri i ieiri pe mai multe nivele
segmente lips, n timp ce 3 nu au putut fi recunoscute
i au produs ieiri s}milare intrrilor prezentate.
O matrice simpl de neuroprocesoare poate fi folosit
Pentru a modela funcii cu ieiri i intrri pe mai muli
1-' 1- 1 :::1 bii (precizie pe mai muli bii). Pentru funcii mai
I .."uts _1 1 I
EI !
-1 :::1
u complexe sau cu mai multe puncte de inflexiune se
pot folosii mai multe straturi interne de
-1 _1
I [1 [1
J
I
o..tpub [1 I 1::: I I [1 !=I
' neuroprocesoare.
Fig. 9. Modele de test prezentate la intrarea RNA Pentru a putea reprezenta mai mult de dou valori
fiecrei ieiri i se atribuie o anumit pondere i
n urma implementrii reelei neuronale pentru combinaia lor poate reprezenta un numr cu a
recunoaterea cifrelor unui afiaj cu 7 segmente ntr anumit precizie. De exemplu pentru a reprezenta un
un circuit FPGA XC4010 inclus pe o platform numr cuprins ntre O i 100, sunt necesare 7 NP n
Digilab s-au obinut urmtoarele rapoarte de stratul de ieire, dac se folosete un sistem cu
implementare: ponderi binare.

Device utilization summary: B. Diferite funcii de activare

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.

Fig. 10. RNA cu ajustarea ponderilor

Prin conectarea unor neuroprocesoare dintr-o reea cu


propagare nainte la o reea de reacie, se poate
proiecta o reea cu propagare napoi, capabil s
nvee n timpul utilizrii ei. n loc de a fi. instruit
prin simulare ea se va instrui ntr-un mediu real
PonderiIe pentru RNA de reacie vor fi fixe, n timp
ce ponderile pentru RNA cu propagare nainte vor fi
ajustate de reeaua de reacie.

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

S-ar putea să vă placă și