25.08.2013 Views

Rezumat teza Alin Tisan - Facultatea de Electronica ...

Rezumat teza Alin Tisan - Facultatea de Electronica ...

Rezumat teza Alin Tisan - Facultatea de Electronica ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Rezumat</strong> pag. 21<br />

LUT-uri pentru o anumită arhitectură a reţelei adoptate:<br />

Nr blocuri RAM = 2(<br />

Na + Ni)<br />

Nr blocuri DSP = Na + Ni + 12 + 4Ni + 3 + Na + Ni<br />

( ) ( )<br />

bloc _ neuroni<br />

( )<br />

strat _ ascuns<br />

ctr _ bloc<br />

Nr LUT − uri =<br />

= 15 + 6Ni + 2Na<br />

40 + 8Na + 32 Ni + 7 Ni + 200<br />

strat iesire ctr _bloc<br />

(ec.8.12)<br />

un<strong>de</strong> Na este numărul <strong>de</strong> neuroni <strong>de</strong> pe stratul ascuns iar Ni este numărul <strong>de</strong> neuroni <strong>de</strong> pe stratul <strong>de</strong> ieşire.<br />

În acest mod se poate previziona că numărul maxim <strong>de</strong> neuroni ce pot fi implementaţi şi care să utilizeze<br />

strict blocurile Block RAM şi XtremeDSP sunt <strong>de</strong> 15 neuroni în stratul <strong>de</strong> ieşire şi 45 <strong>de</strong> neuroni din stratul<br />

ascuns. În cazul în care neuronii folosesc multiplicatoarele distribuite si blocurile Block RAM se mai pot<br />

implementa încă 26 <strong>de</strong> neuroni, 20 în stratul ascuns şi 6 în stratul <strong>de</strong> ieşire ce vor utiliza 6878 <strong>de</strong> LUT-uri şi<br />

76 <strong>de</strong> blocuri RAM. Astfel că cei 71 <strong>de</strong> neuroni vor utiliza 192 blocuri XtremeDSP, 192 blocuri RAM şi<br />

8063 <strong>de</strong> LUT-uri. Cele 22657 <strong>de</strong> LUT-uri neutilizate se pot redistribui pentru implementarea neuronilor<br />

ştiind că numărul <strong>de</strong> LUT-uri utilizate <strong>de</strong> către fiecare neuron în parte (din stratul <strong>de</strong> ieşire sau ascuns) este<br />

<strong>de</strong> 630 LUT-uri/neuron strat ascuns şi 860 LUT-uri/neuron strat ieşire.<br />

Numărul maxim <strong>de</strong> neuroni implementaţi în acest mod este <strong>de</strong> 20 <strong>de</strong> neuroni in stratul ascuns şi 10<br />

neuroni în stratul <strong>de</strong> ieşire. Numărul total <strong>de</strong> neuroni implementabili în circuitul 4VSX35 este <strong>de</strong> aproximativ<br />

120 <strong>de</strong> neuroni.<br />

8.8 Realizarea bibliotecilor <strong>de</strong> componente<br />

Biblioteca <strong>de</strong> componente necesare proiectării reţelelor neuronale feedforward multistrat cu antrenare BP onchip,<br />

a presupus realizarea unor module <strong>de</strong> calcul specifice cu posibilităţi <strong>de</strong> reconfigurare şi gruparea<br />

acestora intr-o bibliotecă <strong>de</strong>numită RNA FF. Blocurile proiectate se grupează în blocuri <strong>de</strong> control, blocuri<br />

<strong>de</strong> calcul al pon<strong>de</strong>rilor neuronilor din stratul ascuns şi din stratul <strong>de</strong> ieşire, blocurile <strong>de</strong> aproximare a funcţiei<br />

sigmoid (blocurile <strong>de</strong> activare) şi blocurile neuronale.<br />

8.9 Concluzii şi contribuţii<br />

In acest capitol am prezentat implementarea reţelelor neuronale multistrat cu propagare înainte şi antrenare<br />

BP on-chip şi am propus o metodă <strong>de</strong> proiectare a unei reţele neuronale FF cu ajutorul componentelor<br />

pre<strong>de</strong>finite realizate <strong>de</strong> autor. Blocurile <strong>de</strong> proiectare a reţelei FF propuse sunt:<br />

a) Blocul neuronal. În cadrul acestui bloc am propus două arhitecturi ale unităţii neuronale <strong>de</strong> calcul<br />

“neuron_mult” şi “neuron_DSP” pentru a da posibilitatea creării unor straturi neuronale cu un număr mai<br />

mare <strong>de</strong>cât numărul <strong>de</strong> blocuri <strong>de</strong>dicate XtremeDSP (blocurile ce conţin multiplicatoarele <strong>de</strong>dicate). Pentru<br />

compararea celor doua arhitecturi am realizat o sinteză privind frecvenţele maxime <strong>de</strong> utilizare şi a<br />

consumului <strong>de</strong> resurse necesar implementării neuronului prin intermediul blocurilor XtremeDSP, a<br />

multiplicatoarelor <strong>de</strong>dicate şi a acumulatoarelor.<br />

b) Funcţia <strong>de</strong> activare. Pentru implementarea hardware într-un mod cât mai eficient, ceea ce presupune<br />

consum cât mai mic <strong>de</strong> resurse la o viteză <strong>de</strong> calcul cât mai mare, a funcţiei <strong>de</strong> activare sigmoid am propus o<br />

serie <strong>de</strong> funcţii <strong>de</strong> aproximare. Fiecare funcţie a fost implementată hardware, i-a fost estimat consumul <strong>de</strong><br />

resurse şi frecvenţa maximă <strong>de</strong> calcul şi i-am calculat, prin intermediul unui script MATLAB (fişier m),<br />

erorile maxime şi medii introduse. De asemenea am realizat un tabel <strong>de</strong> sinteză ce explicitează pentru fiecare<br />

tip <strong>de</strong> funcţie <strong>de</strong> aproximare resursele consumate (exprimate în număr <strong>de</strong> slice-uri, LUT-uri şi total porţi<br />

logice echivalente), frecvenţa maximă <strong>de</strong> calcul şi puterea consumată. În urma acestei sinteze am<br />

concluzionat cu privire la alegerea celei mai eficiente funcţii <strong>de</strong> aproximare pentru o situaţie dată a resurselor<br />

disponibile.<br />

c) Blocul <strong>de</strong> control. Blocul <strong>de</strong> control propus este format din două tipuri <strong>de</strong> blocuri: unul <strong>de</strong> furnizare a<br />

unei baze <strong>de</strong> timp pentru întreaga reţea neuronală,”Numărător general” şi unul pentru generarea semnalelor<br />

<strong>de</strong> control către cele două straturi ce compun reţeaua neuronală,“Signal generator”. Deoarece starea<br />

semnalele <strong>de</strong> control este funcţie <strong>de</strong> numărul <strong>de</strong> neuroni din fiecare strat şi <strong>de</strong> numărul <strong>de</strong> straturi ce compun<br />

reţeaua neuronală, am <strong>de</strong>zvoltat un set <strong>de</strong> ecuaţii care să calculeze momentele <strong>de</strong> timp la care semnalele <strong>de</strong><br />

control vor trece dintr-o stare în alta.<br />

d) Blocul <strong>de</strong> calcul al erorilor şi a pon<strong>de</strong>rilor stratului <strong>de</strong> ieşire. În cadrul blocului <strong>de</strong> calcul al erorilor şi a<br />

pon<strong>de</strong>rilor stratului <strong>de</strong> ieşire am stabilit componenţa blocurilor <strong>de</strong> calcul a erorii cumulate, gradientului erorii<br />

şi a pon<strong>de</strong>rilor stratului neuronal <strong>de</strong> ieşire. Structura blocurilor este una modulară şi poate fi adaptată pentru<br />

orice configuraţie a arhitecturii reţelei neuronale.<br />

e) Blocul <strong>de</strong> calcul al pon<strong>de</strong>rilor stratului ascuns. Structura blocul <strong>de</strong> calcul al pon<strong>de</strong>rilor stratului ascuns<br />

a fost propusă în funcţie <strong>de</strong> formulele <strong>de</strong> calcul necesare implementării meto<strong>de</strong>i <strong>de</strong> învăţare Delta. Deoarece<br />

în calculul paralel al pon<strong>de</strong>rilor, <strong>de</strong>terminat <strong>de</strong> paralelismul <strong>de</strong> neuron adoptat, există o secvenţă <strong>de</strong> calcul ce

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!