VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Rozměr: px
Začít zobrazení ze stránky:

Download "VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF MICROELECTRONICS PERSPEKTIVNÍ OBVODOVÉ STRUKTURY PRO MODULÁRNÍ NEURONOVÉ SÍTĚ DIZERTAČNÍ PRÁCE DOCTORAL THESIS AUTOR PRÁCE AUTHOR BRNO 04 Ing. MAREK BOHRN

2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF RADIO ELECTRONICS PERSPEKTIVNÍ OBVODOVÉ STRUKTURY PRO MODULÁRNÍ NEURONOVÉ SÍTĚ PROMISING CIRCUIT STRUCTURES FOR MODULAR NEURAL NETWORKS DIZERTAČNÍ PRÁCE DOCTORAL THESIS AUTOR PRÁCE Ing. Marek Bohrn AUTHOR VEDOUCÍ PRÁCE SUPERVISOR BRNO, 04 doc. Ing. Lkáš Fjcik, Ph.D.

3 Abstrakt Předkládaná práce se zabývá návrhem nové obvodové strktry pro implementace dopředných neronových sítí. Navržená strktra vyžívá nekonvenční spořádání sběrnic pro propojení dílčích bloků. Přínos navržené strktry spočívá v optimalizaci vytížení výpočetních bloků a zvýšení efektivity přenos dat mezi nimi. Navržená strktra je flexibilní a vhodná pro implementace širokého spektra topologií dopředných neronových sítí. Klíčová slova Umělé neronové sítě, dopředné neronové sítě, modlární neronové sítě, FPGA, ASIC. Abstract The thesis deals with design of novel circit strctre sitable for hardware implementations of feedforward neral networks. The strctre tilizes innovative data bs strctre. The main contribtion of the strctre is in optimization of the tilization of implemented compting nits. Proposed architectre is flexible and sitable for implementations of variety of feedforward neral network strctres. Keywords Artificial neral networks, feedforward neral networks, modlar neral networks, FPGA, ASIC.

4 Prohlášení Prohlašji, že svo dizertační práci na téma Perspektivní obvodové strktry pro modlární neronové sítě jsem vypracoval samostatně pod vedením školitele a s požitím odborné literatry a dalších informačních zdrojů, které jso všechny citovány v práci a vedeny v seznam literatry na konci práce. Jako ator vedené dizertační práce dále prohlašji, že v sovislosti s vytvořením této dizertační práce jsem neporšil atorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích atorských práv osobnostních a jsem si plně vědom následků poršení stanovení a následjících atorského zákona č. /000 Sb., včetně možných trestněprávních důsledků vyplývajících z stanovení 5 trestního zákona č. 40/96 Sb. V Brně dne 8. srpna 04 podpis atora Bibliografická citace BOHRN, M. Perspektivní obvodové strktry pro modlární neronové sítě. Brno: Vysoké čení technické v Brně, Faklta elektrotechniky a komnikačních technologií, s. Vedocí dizertační práce doc. Ing. Lkáš Fjcik, Ph.D..

5 Poděkování Na tomto místě bych rád poděkoval svém školiteli doc. Ing. Lkášovi Fjcikovi, Ph.D. za odborné vedení a podnětné konzltace v průběh řešení dizertační práce. Dále bych rád poděkoval Ing. Michal Pavíkovi, Ph.D. za odborno pomoc při konzltacích technických problémů. V neposlední řadě děkji své přítelkyni Hance za velké množství čas, který věnovala gramatickým korektrám, i za její trpělivost a morální podpor při psaní dizertační práce. V Brně dne 8. srpna 04 podpis atora

6 Tato práce vznikla v rámci centra CEITEC - Středoevropského technologického institt s intenzivní pomocí výzkmné infrastrktry financované projektem CZ..05/..00/ z Evropského fond regionálního rozvoje.

7 Obsah. Úvod.... Obvodové implementace neronových sítí.... Biologický a formální neron..... Aktivační fnkce neron Architektry obvodových implementací neron...8. Neronová síť..... Vícevrstvé dopředné sítě..... Další architektry neronových sítí Obvodové implementace dopředných neronových sítí...5. Hardware pro implementace neronových sítí Analogové obvody Sekvenční digitální obvody Paralelní digitální obvody Paralelizms zpracovaní dat v neronových sítích....5 Měření výpočetního výkon obvodů implementjících neronové sítě....6 Modlarita neronových sítí Modlarita z hlediska teorie neronových sítí Modlarita z hlediska obvodové implementace...5. Sočasný stav řešené problematiky...7. Analogová řešení...7. Digitální řešení Obvody FPGA Nero-procesory Procesory CUDA Další architektry Shrntí Cíle dizertace Vlastní řešení Úvodní experiment - implementace paralelní architektry Univerzální obvodová architektra pro dopředné neronové sítě Koncepce navržené obvodové strktry Vlastnosti a možnosti navržené strktry Mapování neronové sítě do obvod Obvodová implementace navržené architektry Návrh obvodového celk Přepínač sběrnic Výpočetní blok Blok aktivační fnkce Další bloky Shrntí Experimentální část Ověření fnkčnosti navrženého obvod Aplikace s vyžitím navržené architektry Shrntí dosažených výsledků Závěr...65 Literatra...66 Vybrané vlastní pblikace...7

8 Seznam obrázků Obr..: Strktra biologického neron... Obr..: Strktra mělého neron...4 Obr..: Sigmoidální aktivační fnkce s různým stpněm strmosti λ...6 Obr..4: Průběhy dalších požívaných aktivačních fnkcí...7 Obr..5: Stromové spořádání vnitřní architektry neron...9 Obr..6: Řetězové spořádání vnitřní architektry neron...9 Obr..7: Sekvenční spořádání vnitřní architektry neron...0 Obr..8: Dopředná neronová síť s spořádáním :::... Obr..9: Dopředná neronová síť obsahjící zkratky... Obr..0: Dopředná neronová síť obsahjící kontextovo vrstv... Obr..: Hopfieldova neronová síť obsahjící tři nerony...4 Obr..: Přímé propojení bloků v obvod neronové sítě...6 Obr..: Propojení bloků v obvod pomocí datové sběrnice...7 Obr..4: Propojení bloků v obvod pomocí více datových sběrnic...7 Obr..5: Řez tranzistorem s plovocím hradlem...8 Obr..6: Základní drhy spořádání modlárních neronových sítí...4 Obr..7: Modlární expertní neronová síť...4 Obr. 5.: Blokové schéma obvod požitého pro experiment... Obr. 5.: Vnitřní spořádání výpočetního blok...4 Obr. 5.:Vnitřní spořádání blok aktivační fnkce...5 Obr. 5.4: Koncepční schéma signálových toků navržené strktry...7 Obr. 5.5: Sdržování bloků navržené strktry...8 Obr. 5.6: Úprava architektry pro oddělený výpočet vnitřního a výstpního potenciál...8 Obr. 5.7: Koncepční schéma strktry pravené pro implementaci rozsáhlých neronových sítí...40 Obr. 5.8: Mapování neronové sítě 8:8:4:...4 Obr. 5.9: Fáze zpracovaní dat dle obrázk Obr. 5.0: Mapování neronové sítě ::4: Obr. 5.: Mapování neronové sítě ::4:8 s vyžitím zpětné vazby...46 Obr. 5.: Blokové schéma navržené strktry při spořádání 4x Obr. 5.: Koncepční schéma přepínače sběrnic...50 Obr. 5.4: Blokové schéma přepínače sběrnic...5 Obr. 5.5: Schéma signálových toků přepínače sběrnice...5 Obr. 5.6: Blokové schéma výpočetního blok...5 Obr. 5.7: Sdržování výpočetních bloků do skpin po čtyřech...5 Obr. 5.8: Blokové schéma blok aktivační fnkce...54 Obr. 5.9: Formát dat vstpjících do blok aktivační fnkce...55 Obr. 5.0: Uspořádání neronových sítí řešících XOR problém...59 Obr. 5.: Schéma neronové sítě načené pro řešení problém fnkce XOR...60 Obr. 5.: Průběh výstp neronové sítě pro fnkci XOR...60 Obr. 5.: Výstpy neronových sítí pro fnkci XOR načené pomocí ANN Toolbox...6 Obr. 5.4: Filtrace obraz pomocí neronové sítě...6 Obr. 5.5: Ukázka odstranění šm z obraz...6

9 Seznam tablek Tab..: Srovnání částí biologického a mělého neron...4 Tab..: Přehled aktivačních fnkcí...8 Tab..: Přehled obecných parametrů obvodových architektr neron... Tab..4: Přehled parametrů obvodových architektr neron pro vybrané případy... Tab..: Přehled pracovních frekvencí a výpočetního výkon obvodů FPGA...8 Tab. 5.: Topologie neronových sítí implementovatelných do obvod na obrázk Tab. 5.: Parametry bloků a obvodových architektr neron pro vybrané případy...57

10 Seznam symbolů veličin a zkratek Zkratky ANN Artificial Neral Network ASIC Application Specific Integrated Circit CPS Connections per Second CUDA Compte Unified Device Architectre CUPS Connection Updates per Second DSP Digital Signal Processing FLOPS Floating-point Operations Per Second FPGA Field Programmable Gate Array FPNA Field Programmable Neral Array IEEE Institte of Electrical and Electronics Engineers IP Intellectal Property IPS Instrctions Per Second LUT Lookp table MAC Mltiply-Accmlate MAD Mltiply-Add NoC Network on Chip SNN Spiking Neral Network SoC System on Chip SpS Synapses per Second UNS Umělá Neronová Síť VHDL Very High Speed Integrated Circit Hardware Description Langage WPS Weights per Second WUPS Weight Updates per Second Symboly Φ Označení aktivační fnkce neron Σ Sma Označení vnitřního potenciál neron y Označení výstpního potenciál neron

11 Perspektivní obvodové strktry pro modlární neronové sítě. Úvod Umělé neronové sítě jso systémy pro zpracování informací a signálů, jejichž fnkce a strktra je inspirována biologickými neronovými sítěmi. Vyžívají podobné principy čení a fnkce, mají velmi dobro schopnost generalizace a díky tom nacházejí platnění v širokém spektr technických aplikací. Obecně se jedná především o modelování neznámých systémů, zpracovaní nerčitých signálů, atomatizace a řízení procesů. V obor mělých neronových sítí probíhal kromě výzkm fndamentální teorie jejich fnkce a čení i výzkm a vývoj způsobů možností efektivních implementací s vyžitím nejrůznějších hardwarových i softwarových platforem. V devadesátých letech minlého století vzniklo velké množství specializovaných obvodů rčených pro jejich čení i vybavování a orientovaných na průmyslové i vědecké aplikace. V tomto období existovaly dva hlavní směry a přístpy k implementaci mělých neronových sítí, a to analogový a digitální, zaměřený zejména na realizaci nero-procesorů. Analogový přístp v té době možňoval dosahovat vysoké pracovní frekvence a z toho vyplývající velký výpočetní výkon. Zásadní nedostatky analogových implementací se projevovaly ve velmi omezené přesnosti výpočtů, nízké rekonfigrovatelnosti výsledných obvodů a obtížném čení mělých neronových sítí. Digitální obvody v tomto období nemožňovaly pracovat s vysokými frekvencemi a obvodová realizace potřebných výpočetních bloků byla velmi náročná na ploch. Z tohoto důvod většina nero-procesorů dokázala pracovat jen s velmi malými sítěmi a velmi omezeným výpočetním výkonem, což snižovalo možnosti jejich platnění v praktických aplikacích. Žádný z těchto přístpů k realizaci mělých neronových sítí nenašel široké platnění. Proto se v další dekádě začaly vyžívat nové metody obvodových implementací mělých neronových sítí. Vzhledem k velkém technologickém pokrok v oblasti digitálních obvodů se jako základ pro hardwarové implementace mělých neronových sítí prosadily zejména procesory, digitální signálové procesory a hradlová pole. Tato práce se zaměřje na návrh koncepcí nových obvodových strktr a jejich následno realizaci s vyžitím programovatelné logiky hradlových polí. Jedním z cílů předkládané práce je navrhnot novo koncepci neronové sítě tak, aby byla přenositelná a požitelná v technologiích rčených pro návrh zákaznických obvodů. V odborné literatře, jak zahraniční (např. [], []), tak i domácí (např. [], [4]), se označení mělá neronová síť často zkracje na termín neronová síť. --

12 Perspektivní obvodové strktry pro modlární neronové sítě V pblikacích zaměřených na mělé neronové sítě není zkrácené označení matocí a v text není ntné vždy explicitně rozlišovat mezi biologickými a mělými neronovými sítěmi. Proto je i v této práci v dalších kapitolách požíván pro jejich označení pojem neronová síť. --

13 Perspektivní obvodové strktry pro modlární neronové sítě. Obvodové implementace neronových sítí Obor neronových sítí se zabývá nejen jejich strktrami, čením a aplikacemi, ale i velmi široko škálo implementací. Následjící kapitoly proto obsahjí strčný rozbor základních principů a pojmů spojených s toto tématiko. Předkládaná práce je zaměřena na hardwarové implementace, proto zde není podrobněji rozebírána fndamentální teorie neronových sítí, jak je obvyklé v úvod jiných prací zabývajících se problematiko neronových sítí. Jso zde přiblíženy pojmy, které se vážo zejména k jejich samotným implementacím, a to především na obvodové úrovni.. Biologický a formální neron Strktry a fnkce mělých neronových sítí jso inspirovány biologickými nervovými systémy (resp. sítěmi). Základní stavební bňky tvořící biologické neronové sítě jso nerony (nervové bňky) a glie (gliální bňky). Pro zpracování informací v biologických neronových sítích jso vyžívány nerony, zatímco glie plní podpůrné fnkce. Umělé neronové sítě se proto skládají poze z mělých neronů.[5] Tělo bňky (Soma) Axon Jádro bňky (Ncels) Dendrid 0m Obr..: Strktra biologického neron[4] Biologický neron, jehož strktra je znázorněna na obrázk., se skládá z těla bňky (soma), které má průměr od 50 μm a obsahje jádro (ncles). Mezi další části neron patří několik stromově rozvětvených výčnělků (dendrity) vytvářejících propoje (synapse) s dalšími nerony. Fnkce synapsí, které jso vyžívány i mělých neronů, --

14 Perspektivní obvodové strktry pro modlární neronové sítě je excitační nebo inhibiční. Tímto způsobem je realizováno zesílení nebo potlačení vazeb mezi jednotlivými nerony. Dendridy složí k přenos vstpní informace do neron. Biologický neron obsahje jeden výstpní výčnělek (axon), který má průměr 0, μm až 0 μm a délk až m. Axon generje akční, resp. výstpní potenciál.[] [] [4] [5] Matematickými abstrakcemi fnkce biologického neron vzniklo několik modelů mělých neronů. Základním stavebním prvkem v sočasnosti vyžívaných dopředných neronových sítí je model mělého neron odvozený z model navrženého McCllohem a Pittsem [6]. Vstpní signály x w x w xn Smační prvek wn () Aktivační fnkce y Výstp Synaptické váhy Obr..: Strktra mělého neron[7] Základní prvky model mělého neron jso na obrázk.. Tento model obsahje vstpní zly x až xn, synaptické propoje reprezentované vahami w až wn, smačním prvkem Σ, jehož výstpem je vnitřní potenciál neron, a aktivační fnkcí Φ(), jejímž výstpem je výstpní, resp. akční potenciál neron y. Umělý neron také může obsahovat práh (bias), který se obvykle implementje jako další synaptická váha spojená se vstpem s konstantní hodnoto.[7] Srovnání prvků mělého neron s částmi biologického neron se nachází v tablce..[5] Tab..: Srovnání částí biologického a mělého neron Biologický neron Umělý neron Neron - Bňka Neron - Jednotka Synapse Synaptická váha Dendrid Vstp Axon Výstp Tělo bňky (Soma) Smační prvek -4-

15 Perspektivní obvodové strktry pro modlární neronové sítě Výpočet vnitřního potenciál neron je dán sočtem vstpních potenciálů vynásobených vahami dle rovnice: n = wi x i (.) i= Výstpní potenciál neron je získán převodem vnitřního potenciál pomocí aktivační fnkce: y=φ () (.) Výpočet vnitřního potenciál neron je nejdůležitější a sočasně výpočetně nejnáročnější operací prováděno při výpočt fnkce neron. Při programové i obvodové implementaci je obvykle prováděn postpně sérií násobení a sočtů. Při hardwarových implementacích je výhodné vyžít operace sdrženého násobení a sočt (Mltiply-Add) nebo lépe sdrženého násobení a akmlace (Mltiply-Accmlate) pokd některo z těchto operací daná technologie možňje (typicky obvody FPGA, DSP)... Aktivační fnkce neron Aktivační fnkce neron převádí úroveň vnitřního potenciál na potenciál výstpní, který je přiváděn na vstpy dalších neronů v síti. Jedná se o fnkci přenosovo. Aktivační fnkce se požívá pro limitaci hodnot do nastaveného interval. Obvykle je vyžíván interval satrace (0;) nebo (-;), dle průběh aktivační fnkce je interval otevřený nebo zavřený. Dále jso nezřídka vyžívány aktivační fnkce lineární, při nichž je úroveň výstp přímo úměrná úrovni vstp, fnkce skokové (binární) a Gassovy.[5] Nejčastěji vyžívané aktivační fnkce mají sigmoidální průběh a vycházejí z logistické fnkce. Výhody požití sigmoidálních aktivačních fnkcí jso následjící[5]: Satrjí výstpní hodnoty. Jso semilineární - neklesající a diferencovatelné v celém rozsah. Jso vyjádřitelné konečným počtem elementárních operací. Jejich modifikace vedo na ostatní satrjící fnkce nebo s nimi koreljí. Jso snadno derivovatelné. Mají biologicko povah - průběhy výstpních plzů biologických neronů mají sigmoidální charakteristik. U dopředných neronových sítí (jedno i vícevrstvých) sovisí aktivační fnkce bezprostředně s čením sítě pomocí algoritm zpětného šíření chyby (Error Backpropagation), při kterém se vyžívá derivace aktivační fnkce. -5-

16 Perspektivní obvodové strktry pro modlární neronové sítě Na obrázk. jso průběhy sigmoidálních fnkcí s různým stpněm strmosti λ definované jako []: y= λ +e (.) Derivace sigmoidální fnkce je definována [] jako: f ' ( x)= f ( x)( f (x)) (.4) Proto může být snadno obvodově implementována s vyžitím již existjících prvků realizjících původní sigmoidální fnkci a elementárních matematických operací. y λ 0,9 λ=4 0,8 λ= 0,7 λ = 0, 0,6 λ 0 0,5 0,4 0, 0, 0, Obr..: Sigmoidální aktivační fnkce s různým stpněm strmosti λ Pro nastavení satračního interval (-,) je vyžívána bipolární sigmoidální fnkce g(x), ktero lze získat úpravo klasické binární sigmoidální fnkce f []: g ( x)= f ( x) = +e x (.5) Derivace bipolární sigmoidální fnkce je následjící []: g ' (x )= (+g ( x))( g (x )) (.6) Průběhy dalších požívaných aktivačních fnkcí jso na obrázk.4. Při obvodové implementaci je výhodné požití lineární satrované fnkce (obrázek.4a), která má při vyžití v neronových sítích vlastnosti podobné logistické fnkci, a je možné ji realizovat s minimálními nároky na potřebný hardware. -6-

17 Perspektivní obvodové strktry pro modlární neronové sítě y y Lineární satrovaná Lineární zisk > zisk = horní práh zisk < dolní práh a) b) Skoková y Gassova y práh c) d) Obr..4: Průběhy dalších požívaných aktivačních fnkcí Lineární satrovaná fnkce se strmostí λ (obrázek.4a) je definována: {, λ x < y= λ x, λ x, λ x > (.7) Lineární přenosová fnkce (obrázek.4b) je definována: y=λ x Skoková je definována: binární fnkce (pravená (.8) Heavysidova { y=, x <0 +, x 0 fnkce)(obrázek.4c) (.9) Gassova fnkce (obrázek.4d) je definována: y=e( x ) -7- (.0)

18 Perspektivní obvodové strktry pro modlární neronové sítě Při obvodové implementaci aktivační fnkce je potřebné zvolit kompromis mezi následjícími parametry a možnostmi cílového obvod: Požadovaná aktivační fnkce. Složitost implementace, přímá implementace, výpočet fnkce v obvod, požití náhledových tablek. Požadavek implementace derivace aktivační fnkce pro případné čení v obvod. Přehled požívaných aktivačních fnkcí a doporčených obvodových prvků pro jejich optimální obvodovo implementaci je shrnt v tablce..[8] Tab..: Přehled aktivačních fnkcí Aktivační fnkce Doporčený hardware lineární, zisk = žádný lineární, zisk násobička satrovaná lineární komparátor, násobička skoková binární komparátor sigmoidální LUT (+ interpolace) hyperbolický tangens LUT (+ interpolace) Gassova LUT (+ interpolace).. Architektry obvodových implementací neron Při obvodové implementaci neron je vhodné úloh rozdělit na dvě dílčí části. První z nich je výpočet vnitřního potenciál neron, který je dopředných sítí realizován výhradně operacemi násobení a sčítání, jak je popsáno na začátk kapitoly.. Drho částí je implementace aktivační fnkce, která je nezbytná pro rčení výstpního potenciál neron na základě úrovně vnitřního potenciál. Aktivační fnkce může být obvodově realizována různými způsoby, jak je vedeno v tablce. a popsáno v kapitole... Operace násobení a sčítání, resp. jejich kombinace a varianty jso základní, zásadní a nejčastěji vyžívané operace pro zpracování signálů. Většina algoritmů pro zpracování signálů je postavena právě na těchto operacích. Vzhledem k výše vedeným faktům je i hardware primárně rčený pro zpracování signálů optimalizován pro efektivní zpracování především těchto operací. Tto vlastnost hardware je výhodné vyžít i při implementacích neronů. Obrázky.5,.6 a.7 obsahjí zjednodšená schémata přibližjící princip typických spořádání jednotlivých vnitřních výpočetních architektr realizjících -8-

19 Perspektivní obvodové strktry pro modlární neronové sítě fnkce neronů. Při obvodovém návrh jso tyto strktry obvykle rozšířeny o paměťové registry a logik řídící tok dat. Tyto strktry se vyžívají i v jiných modifikacích a kombinacích, než je zde vedeno. Pro dosažení vysokého výpočetního výkon a snížení latence je vhodné při obvodové implementaci neron vyžít možnosti paralelizace a případného zřetězení (pipelining) výpočtů. Pro dosažení maximální paralelizace a zřetězení výpočtů neronových sítí je vhodné vyžít stromové vnitřní spořádání neron dle obrázk.5. Toto spořádání vyžadje požití velkého množství násobiček i sčítaček a je velmi náročné na ploch. x w + x w + x w + x4 w4 Obr..5: Stromové spořádání vnitřní architektry neron Podobné nároky na ploch jako stromové spořádání má řetězové spořádání neron na obrázk.6. Toto spořádání také možňje dosáhnot nízké latence a vysoké datové propstnosti. Kromě toho obvodový návrh a popis řetězové strktry je jednodšší než stromového spořádání. x w x w x w x4 w Obr..6: Řetězové spořádání vnitřní architektry neron -9-

20 Perspektivní obvodové strktry pro modlární neronové sítě Stromová i řetězová vnitřní architektra neron jso vhodné pro implementaci do obvodů FPGA obsahjících dedikované výpočetní bloky pro digitální zpracování signálů. Jejich vyžití je výhodné v případě aplikací, ve kterých není kritická plocha obvod, ale rychlost odezvy.[7] x x x x4 w + w w w4 výběr vstp Obr..7: Sekvenční spořádání vnitřní architektry neron Nedostatek vyplývající z velkých nároků na ploch předchozích dvo vnitřních spořádání neron odstraňje strktra na obrázk.7, která zpracovává informace sekvenčně. Toto spořádání obsahje poze jedn násobičk a sčítačk. Jednotlivé vstpy jso postpně násobeny váhovými koeficienty a smace výsledk je prováděna akmlátorem. Obdobným způsobem jso data zpracovávána i v signálových procesorech a blocích obvodů FPGA rčených pro digitální zpracování signálů. Toto spořádání nemožňje zřetězit výpočty, takže celková datová propstnost této architektry je nepřímo úměrná počt vstpů. Tablka. [7] obsahje obecný přehled náročnosti výše vedených architektr z hlediska spotřebované plochy, rychlosti odezvy a náročnosti obvodového návrh. V tablce.4 [9] je veden přehled velikosti výsledného obvod, datové propstnosti a zpoždění těchto tří strktr pro několik vybraných případů. Pro výpočet latence se předpokládá požití registr za výstpem každé násobičky a sčítačky. Pokd při návrh systém s neronovo sítí není kritickým parametrem právě latence obvod, je možné vyžít stromovo i řetězovo vnitřní architektr neron. Jejich celková datová propstnost a potřebná plocha je totiž identická.[7] - 0 -

21 Perspektivní obvodové strktry pro modlární neronové sítě Tab..: Přehled obecných parametrů obvodových architektr neron Architektra Stromová Řetězová Sekvenční Plocha Rychlost odezvy Datová propstnost Složitost návrh pozn nejlepší nejhorší Tab..4: Přehled parametrů obvodových architektr neron pro vybrané případy Architektra Počet Stromová Řetězová Sekvenční vstpů CLK MUL ADD CLK MUL ADD CLK* MUL ADD / / / / / 4/ 4 /4 4 4/4 4 5/ 5 4/ / / 6 4/ / / 7 4/ / / 8 4/ / / 6 5 / / / 64 7 / / / pozn. CLK - latence v hodinových cyklech / počet vstpů zpracovaných za jeden hodinvý cykls MUL - počet násobiček, ADD - počet sčítaček. Neronová síť V praxi se vyžívá velké množství architektr neronových sítí, nicméně každé spořádání je vhodné pro řešení jiných typů úloh. Pro klasifikaci, expertní rozhodování a zpracování signálů se nejčastěji vyžívá široké spektrm modifikací vícevrstvých dopředných sítí a Kohonenovy samoorganizjící se mapy. V této kapitole jso strčně přiblíženy vlastnosti a možnosti aplikací těchto nejvíce vyžívaných architektr... Vícevrstvé dopředné sítě Vlastnosti dopředných vícevrstvých neronových sítí jso velmi dobře prozkomány a existjí pro ně spolehlivé čicí algoritmy. Proto se toto spořádání neronových sítí často požívá v průmyslových aplikacích. Dopředné vícevrstvé neronové sítě vznikají propojením neronů, které vychází z model formálního neron. Tyto nerony jso spořádány ve vrstvách. - -

22 Perspektivní obvodové strktry pro modlární neronové sítě Zpracování dat pomocí již načené neronové sítě probíhá tak, že data ze vstpní vrstvy, která je obvykle pasivní a neimplementje se, jso zpracována první skryto vrstvo neronů. Výsledky ze skryté vrstvy jso předávány do další skryté vrstvy, kde jso opět zpracovány. Tímto způsobem jso provázány všechny skryté vrstvy až po vrstv výstpní, jejímž výstpem je výsledek. Obrázek.8 obsahje kázk schematického nákres dopředné neronové sítě. Síť na obrázk obsahje vstpní vrstv se dvěma nerony. Další sočást tvoří dvě skryté vrstvy se třemi nerony a výstpní vrstva s jedním neronem. Strktra dopředných sítí se při textovém popis zjednodšeně označje čísly reprezentjící počet neronů v každé vrstvě. Tato čísla jso oddělena dvojtečko a počty neronů jso váděny zleva doprava od vstpní vrstvy k výstpní vrstvě. V tomto kázkovém případě se jedná o síť s spořádáním :::. Pro účely sestavení schémat neronové sítě se tyto propoje označjí čáro propojjící nerony. Vstpní vrstva. skrytá vrstva. skrytá vrstva Výstpní vrstva Obr..8: Dopředná neronová síť s spořádáním ::: Jednotlivé nerony jso ve schémat reprezentovány kržnicemi. Protože vstpní vrstva nevykonává žádno výpočetní fnkci a složí poze k distribci dat do první skryté vrstvy, jso vstpní nerony znázorněny menšími kržnicemi. V obvodových implementacích jso vstpní nerony zanedbávány a nahrazeny vhodnými propoji nebo sběrnicí zabezpečjící vstp dat do neronové sítě. Počet vrstev neronové sítě závisí na konkrétní aplikaci. Rozsáhlejší systémy jso realizovány pomocí dílčích neronových sítí označovaných jako modlární neronové sítě. V některých případech možňjí modlární neronové sítě zjednodšit obvodovo implementaci, zlepšit úspěšnost řešené úlohy, zvýšit spolehlivost výsledků a zjednodšit návrh systém. Další informace vztahjící se k modlárním neronovým sítím jso vedeny v kapitole.6.. V některých případech je dopředných neronových sítí vhodné zavést propoje přeskakjící vrstvy. Tyto propoje jso označovány jako zkratky (shortcts) a s jejich pomocí je možné snížit počet neronů potřebných k řešení úlohy, zvýšit spolehlivost - -

23 Perspektivní obvodové strktry pro modlární neronové sítě výsledk a přesnost výpočtů. [7] [0] Ukázka dopředné neronové sítě obsahjící zkratky je na obrázk.9. Zkratky Obr..9: Dopředná neronová síť obsahjící zkratky Často vyžívano modifikací základní architektry dopředných neronových sítí je zavedení zpětné vazby. Na rozdíl od zkratek, při nichž zpracovávaný signál přeskakje vrstvy ve směr od vstp k výstp, jso v případě vyžití zpětné vazby vytvořeny propoje vedocí signály do vrstvy označované jako kontextová nebo rekrentní. Tato strktra se nazývá rekrentní neronová síť.[] [7] [] Způsobem zpracování informací jso rekrentní neronové sítě podobné sítím dopředným a případná obvodová realizace je obdobná. Proto jso v rámci předkládané práce tyto sítě zařazeny mezi dopředné. Ukázka neronové sítě obsahjící kontextovo vrstv je na obrázk.0. Rekrentní vazba Kontextová vrstva Vstpní vrstva Výstpní vrstva Skrytá vrstva Obr..0: Dopředná neronová síť obsahjící kontextovo vrstv - -

24 Perspektivní obvodové strktry pro modlární neronové sítě Architektry neronových sítí vedené v této kapitole jso vzájemně podobné. Informace zpracovávají pomocí stejného typ neron a toky dat jso vždy od výstp neron ke vstpům dalších neronů v následjící vrstvě. Proto je možné při obvodových implementacích vyžívat stejné bloky a výsledné strktry bdo mít podobné spořádání... Další architektry neronových sítí Mezi další požívané architektry neronových sítí patří např. Hopfieldovy sítě a Kohonenovy samoorganizjící se mapy. Tyto neronové sítě se řadí do kategorie atoasociativních pamětí a jso vhodné pro řešení jiných drhů úloh než dopředné sítě. Hopfieldova síť, jejíž spořádání je na obrázk., je tvořena poze jedno vrstvo neronů. Tato síť obsahje vstpy a výstpy jejichž počet je totožný s počtem neronů v síti. Dále je výstp každého neron přiveden na vstp všech ostatních. [] [] z- x y x y x y Obr..: Hopfieldova neronová síť obsahjící tři nerony[] [] [4] Hopfieldovy sítě moho být vyžívány např. jako atoasociativní pamětí, neboť dokážo rozhodnot, zda je předkládaný vzor pro síť známý (načený) nebo neznámý. V případě předložení neznámého vzor se síť iterativně dostane do stabilního stav a vybaví si některý ze známých vzorů.[] [] [] [] V obvodových implementacích Hopfieldových sítí je možné vyžít podobné základní bloky jako v případě dopředných neronových sítí. Hopfieldovy neronové sítě se na rozdíl od dopředných neronových sítí vyžívají jen v úzce zaměřených aplikacích, a to zejména v diagnostice a zpracování obraz, např. [4] [5] [6]

25 Perspektivní obvodové strktry pro modlární neronové sítě Dalším typem neronových sítí, které fngjí jako atoasociativní paměť, jso Kohonenovy samoorganizjící se mapy. Tyto sítě byly vyvinty se záměrem imitovat chování lidského mozk. V lidském mozk jso sovisející informace chovávány v sosedících oblastech. Kohonenovy neronové sítě chovávají informace podobným způsobem. Vyžívají čicí algoritmy bez čitele, které nemají v průběh čení informaci o aktivitách výstpních neronů. Vyznačjí se vynikající schopností vizalizovat abstraktní vztahy. Mezi jejich další významné vlastnosti se řadí vysoká odolnost vůči porchám a šm, která má platnění i při obvodových implementacích a praktických aplikacích.[4] [] [7] [8] Kohonenovy samoorganizjící se mapy mají stejně jako dopředné neronové sítě platnění v široké škále průmyslových aplikací.[7] [8].. Obvodové implementace dopředných neronových sítí Při návrh obvodů pro implementaci neronových sítí je důležité zvolit kompromis několika kritérií, např.: dostpná plocha, požadovaný výpočetní výkon, rychlost odezvy, návaznost na další obvody, složitost návrh. Uspořádání bloků v obvodech implementjících neronové sítě je založeno na obecných postpech požívaných při návrh obecných obvodů a systémů. Vzhledem k velkém množství synapsí a s tím spojených nároků na přenos dat je ntné při vlastní obvodové implementaci optimalizovat propoje mezi těmito bloky. Vhodným obvodovým spořádáním je možné zvýšit datovo propstnost a výpočetní výkon, především systémů vyžívajících pro zpracování dat vysoký stpeň paralelizace a zřetězení. Další informace k obvodům možňjícím paralelizovat výpočty jso vedeny v kapitole.. Obvodové spořádání, které vyžívá přímé propojení výpočetních bloků, v němž každý blok reprezentje jeden neron, možňje dosáhnot nejvyšší výpočetní výkon a sočasně nejmenší latenci obvod díky optimální paralelizaci a zřetězení výpočtů.[7] [9] [9] Ukázka takového propojení je na obrázk.. Při přímém propojení je počet výpočetních bloků shodný s počtem implementovaných neronů

26 Perspektivní obvodové strktry pro modlární neronové sítě Vstpní vrstva Skryté vrstvy Výstpní vrstva... Obr..: Přímé propojení bloků v obvod neronové sítě Realizace přímého propojení klade velké nároky nejen na ploch samotných propojů, ale také na množství výpočetních bloků. Kvůli tom není možné dodatečně měnit topologii neronové sítě. Flexibilita takového spořádání je minimální, což může být v některých aplikacích nežádocí. Pokd je propojení výpočetních bloků řešeno pomocí datové sběrnice, je možné nastavit topologii sítě dodatečně i po návrh vlastního obvod. Tento způsob obvodové implementace neronových sítí je často vyžíván v průmyslových aplikacích a neroprocesorech. Ukázka obvodové implementace neronové sítě s datovo propojovací sběrnicí je na obrázk.. Pro řízení tok dat mezi bloky, které realizjí výpočty jednotlivých neronů, je implementována řídicí logika a dodatečná sběrnice pro přenos informací o požadovaném tok dat mezi nerony. Propojení neronů pomocí sběrnice v porovnání s přímým propojením významně snižje náročnost na ploch obvod, ale sočasně částečně zachovává možnost paralelizace výpočtů. Další výhodo tohoto spořádání je možnost implementovat několik nezávislých neronů do každého výpočetního blok. V takovém případě probíhá jejich výpočet sekvenčně. Hlavní nevýhodo spořádání s propojovací sběrnicí je, že možňje sočasně přenášet jen jeden blok dat

27 Perspektivní obvodové strktry pro modlární neronové sítě Vstpní vrstva Skryté vrstvy a výstpní vrstva Výstp Řídicí logika Vstp Datová sběrnice Řídicí sběrnice Obr..: Propojení bloků v obvod pomocí datové sběrnice Tto nevýhod odstraňje obvodové spořádání na obrázk.4, které implementje mezi nerony několik propojovacích sběrnic. Nároky na ploch, možnosti paralelizace a možnosti zřetězení výpočtů jso v tomto případě srovnatelné s přímým propojením neronů, přičemž toto spořádání možňje částečně rekonfigrovat již realizovaný obvod. [9] [9] Skryté vrstvy a výstpní vrstva Datové sběrnice Řídicí sběrnice Vstp Výstp Řídicí logika Obr..4: Propojení bloků v obvod pomocí více datových sběrnic - 7 -

28 Perspektivní obvodové strktry pro modlární neronové sítě. Hardware pro implementace neronových sítí Obecně lze elektronické obvody a systémy rozdělit na analogové a digitální. Jednotlivé operace požívané při zpracování signálů, resp. informací pomocí neronových sítí, se ve většině případů neliší od jiných aplikací zpracování signálů. Proto je možné při návrh obvodů implementjících neronové sítě aplikovat podobné postpy jako při návrh jiných systémů pro zpracování signálů. Modely mělých neronových sítí se obvykle implementjí do analogových i digitálních obvodových strktr. Nejčastěji vyžívané typy analogových i digitálních obvodů pro implementace neronových sítí jso popsány v kapitolách Analogové obvody Analogové obvodové implementace neronových sítí byly vyžívány zejména v minlosti, protože vykazovaly lepší parametry než implementace digitální. Umožňovaly pracovat s vyššími pracovními frekvencemi a dosahovaly výrazně vyššího výpočetního výkon na jednotk spotřebované plochy a energie.[7] Klíčovo technologií pro analogové obvodové implementace neronových sítí je vyžití tranzistorů s plovocími hradly. Tranzistory s plovocími hradly se nejčastěji vyžívají pro chovávání informací v pamětech typ EEPROM a FLASH. Jejich strktra je podobná strktře tranzistorů MOS, ale obsahje dvě na sobě místěné elektrody Gate. Jedna elektroda složí jako řídicí pro čtení stav a mazání ložené informace a drhá (plovocí nebo také plovocí hradlo) pro chování informace. Informace se zaznamenává prostřednictvím průchod prod mezi elektrodami Sorce a Drain, přičemž část protékajících elektronů tnelje do plovocího hradla. V něm zůstávají tyto elektrony zachyceny, a sočasně na plovocím hradl vytvářejí negativní náboj a zvyšjí prahové napětí tranzistor. Díky změně prahového napětí je možné rozlišit, jaká informace (typicky 0 a ) je v daném tranzistor ložena.[0] Tranzistory s plovocím hradlem vyžívající nové materiály mají široko paměťovo hysterezi (4,6V) a jso schopny spolehlivě chovávat informace po dob minimálně deseti let.[] Řez tranzistorem s plovocím hradlem je na obrázk.5.[0] Polykrystalický křemík (plovocí hradlo) Polykrystalický křemík (řídicí elektroda Gate) Hradlový oxid Izolace Tnelový oxid n+ Drain n+ Sorce Izolace p- sbstrát Obr..5: Řez tranzistorem s plovocím hradlem[0] - 8 -

29 Perspektivní obvodové strktry pro modlární neronové sítě Informace kládané do tranzistorů s plovocími hradly jako paměťových prvků v pamětech EEPROM a FLASH jso na výstpech těchto obvodů reprezentovány digitálně, ale způsob jejich záznam je analogový. Úroveň posn prahového napětí je možné nastavit v širokém rozsah, a proto moho tranzistory s plovocím hradlem složit i jako analogová paměť. Díky tom je možné snadno vytvářet rekonfigrovatelné analogové obvodové strktry. Při implementacích neronových sítí do analogových obvodů je tato vlastnost vyžívána pro kládání váhových koeficientů. Další vyžití těchto pamětí je v průběh čení sítě při modifikaci vah.[] Analogové obvody, jež je pro účely implementace neronových sítí vhodné realizovat v integrované podobě, vykazjí vysoko náročnost při realizaci, a to zejména z následjících důvodů: složitost a doba návrh, potřebné znalosti a zkšenosti, potřebné programové vybavení, cena a doba výroby. Kromě výše vedených problémů s realizací je přesnost výpočtů v analogových obvodech mnohem nižší než v případě digitálních. Proto se v sočasnosti pro implementace neronových sítí přednostňjí právě digitální obvody... Sekvenční digitální obvody Do kategorie sekvenčních digitálních obvodů požívaných pro implementace neronových sítí patří zejména: mikroprocesory, mikrokontroléry, signálové procesory (DSP). Činnost těchto obvodů je řízena sekvencí instrkcí. Tato sekvence je sohrnně označována jako program a jednotlivé instrkce jso zpracovávány postpně. Programy pro sekvenční digitální obvody jso zpravidla vytvářeny ve vyšších programovacích jazycích, např. v jazyce C.[] [4] Popis strktr neronových sítí ve vyšších programovacích jazycích je poměrně jednodchý. Efektivně lze implementovat neronové sítě do signálových procesorů, které možňjí zpracovávat instrkce násobení a sočt (mltiply-add), resp. násobení a akmlace (mltiply-accmlate), a to obvykle v jednom instrkčním cykl. Přesnost výpočt, resp. šířka zpracovávaných dat, je rčena výpočetním jádrem. Další kategorii tvoří architektry procesorů a DSP, které obsahjí větší množství výpočetních jader a možňjí soběžné provádění zpracování několika programových vláken. Některé signálové procesory možňjí zpracovávat data vektorově, resp. maticově, což vede k rychlení výpočtů a zjednodšení popis

30 Perspektivní obvodové strktry pro modlární neronové sítě Tato vlastnost se platňje nejen v případě typických aplikací zpracování signálů, ale i realizací neronových sítí pomocí těchto procesorů a DSP... Paralelní digitální obvody Do kategorie paralelních digitálních obvodů, které pro implementace neronových sítí, patří zejména následjící: hradlová pole (FPGA), zákaznické obvody (ASIC), speciální signálové procesory (např. CUDA). jso požívány Strktra obvodů FPGA je vysoce flexibilní a lze v nich realizovat libovolný digitální systém. Obvody FPGA typicky obsahjí následjící elementární bloky: náhledové tablky pro realizaci kombinačních sítí, registry, vstpně-výstpní bloky, dedikované specializované bloky, DSP jádra nebo násobičky, paměti RAM (obvykle dvoportové), bloky pro vysokorychlostní sériovo komnikaci, fázové závěsy. Tyto bloky je možné mezi sebo propojovat a vytvářet tak různé digitální obvodové strktry. Pro obvodové implementace neronových sítí jso v obvodech FPGA klíčová zejména DSP jádra a paměti RAM. Sočasné obvody FPGA obsahjí velké množství těchto prostředků a vhodným spořádáním lze vytvářet výpočetní strktry optimalizované právě pro implementace neronových sítí. DSP jádra obvodů FPGA možňjí provádět velmi efektivně, zejména s ohledem na potřebno ploch a energii, aritmetické operace násobení a sčítání, případně násobení a akmlace. S jejich pomocí lze realizovat nejen dílčí fnkce neronových sítí, např. výpočet vnitřního potenciál, ale také celé signálové procesory nebo specializované neroprocesory. Bloky pamětí RAM v obvodech FPGA lze vyžít k kládání váhových koeficientů, výsledků nebo realizaci vyrovnávacích pamětí. Propojení těchto bloků a řízení datových toků lze realizovat pomocí propojovacího pole samotného FPGA, nebo s vyžitím kombinačních sítí a registrů vytvářet dodatečné fnkce na úrovni sběrnic. Tím lze v obvodech FPGA vytvářet libovolné sério-paralelní výpočetní strktry. Vyžití obvodů FPGA je výhodné nejen pro implementace neronových sítí, ale také pro verifikaci jejich fnkce před případno implementací do zákaznických obvodů. Dalším pozitivem je, že v proces návrh digitálních strktr pro FPGA i ASIC jso vyžívány stejné hardwarové popisné jazyky (typicky VHDL a Verilog)

31 Perspektivní obvodové strktry pro modlární neronové sítě Implementace neronových sítí do zákaznických obvodů přináší na rozdíl od všech výše vedených digitálních realizací, mnoho výhod v oblasti obvodové a mnoho nevýhod při samotné realizaci. Mezi klíčové výhody patří zejména: maximální dosažitelná flexibilta návrh, možnost kombinovat analogové i digitální strktry, možnost optimálnho vyžití plochy obvod, široké možnosti optimalizace spotřebovávané energie. Vyžití kombinace analogových a digitálních strktr je výhodné zejména při realizaci propojovacích sběrnic. Zásadní nevýhody realizace digitálních zákaznických obvodů jso totožné s analogovými: složitost a doba návrh, potřebné znalosti a zkšenosti, potřebné programové vybavení, cena a doba výroby. Hranice mezi sekvenčním a paralelním zpracováním signálů není specializovaných signálových procesorů ostrá. Některé procesorové architektry lze považovat z hlediska zpracování dat a řízení vnitřních signálových toků za paralelní. To platí zejména pro procesory CUDA (Compte Unified Device Architectre) od společnosti NVIDIA Corporation.[5] Počet výpočetních jader v procesorech CUDA je srovnatelný s počtem DSP bloků v obvodech FPGA. U digitálních obvodových implementací neronových sítí nevede vždy zvyšování počt výpočetních bloků ke zvýšení rychlosti výpočt (např. pokd je počet výpočetních bloků vyšší než počet neronů realizované neronové sítě). Vyžitelný výpočetní výkon je proto v případě optimálně navržené obvodové strktry přímo úměrný pracovní frekvencí obvod. U obvodů FPGA je pracovní frekvence limitována kvalito návrh logiky, a to zejména délko kritické (nejdelší) kombinační cesty a z ní vyplývajících zpoždění. Dále je v případě požití dedikovaných násobiček nebo DSP bloků tato rychlost limitována jejich maximální pracovní frekvencí. Pracovní frekvence výkonných procesorů a digitálních signálových procesorů je sice zpravidla vyšší než obvodů FPGA, ale ve většině případů obsahjí menší množství výpočetních bloků. V případě zákaznických obvodů je pracovní frekvence silně závislá na kvalitě návrh a požité technologii výroby. Proto není možné obvody ASIC s obvody FPGA a procesory porovnávat. - -

32 Perspektivní obvodové strktry pro modlární neronové sítě.4 Paralelizms zpracovaní dat v neronových sítích Správný způsob paralelizace výpočtů při implementaci neronových sítí na obvodové úrovni je důležitý pro dosažení vysokého výpočetního výkon a minimalizace latencí. Uspořádání obvod možňje značně ovlivnit mír paralelizace a zřetězení prováděných výpočtů. Paralelizms zpracování dat, zejména dopředných neronových sítí, lze aplikovat v následjících úrovních [7]: Paralelizms zpracování dat na úrovni vrstev. Paralelizms zpracování dat na úrovni výpočetních bloků (neronů). Paralelizms zpracování synapsí (vah). Paralelizms na úrovni bitů. Stpeň paralelizm, který je možné aplikovat dopředných neronových sítí na úrovni vrstev, je nízký a závisí na počt vrstev realizované neronové sítě. Za typické lze považovat hodnoty - 6. Tento drh paralelizm lze obvodových implementací neronových sítí realizovat zřetězením výpočtů.[7] Obvodové spořádání těžící z paralelizm na úrovni vrstev je na obrázcích. a.4. Pro obvodové implementace neronových sítí je typický a nejčastěji vyžívaný drh paralelizm paralelizms na úrovni výpočetních bloků, resp. neronů. V případě dopředných neronových sítí každý neron dané vrstvy provádí operaci sočt váhovaných vstpů z předcházející vrstvy, přičemž data z předchozí vrstvy moho být přenášena sočasně do všech neronů vrstvy aktální. Paralelizms výpočtů na úrovni neronů může dosahovat dle aplikace a typ neronové sítě hodnoty až [7] Případy paralelizm na úrovni neronů jso na obrázcích. až.4. Paralelní zpracování dat na úrovni synapsí má smysl aplikovat poze v případě, že všechna vstpní data jso k neron přiváděna sočasně, což klade velké nároky na propojovací strktr. Dalším problémem při aplikaci paralelizace na úrovni synapsí je značná složitost strktry výpočetního blok a vysoká náročnost na velikost obvod. Dosažitelná úroveň paralelizace výpočt je až [7] Příklad výpočetního blok s paralelizací zpracování dat na úrovni synapsí je na obrázcích.5 a.6. Paralelizace výpočt na úrovni bitů je považována za samozřejmo. Prakticky ve všech výpočetních systémech jso data vnitřně přenášena pomocí paralelních sběrnic a zpracována paralelně. Šířka sběrnic pro požití v neronových sítích je typicky až 64bitů.[7] - -

33 Perspektivní obvodové strktry pro modlární neronové sítě.5 Měření výpočetního výkon obvodů implementjících neronové sítě Určování potřebného nebo dosažitelného výpočetního výkon při hardwarových i softwarových implementacích neronových sítí se liší od klasického přístp vyžívaného při měření a srovnávání výpočetního výkon procesorů a počítačových systémů, při nichž se vyžívají především následjící jednotky: Počet instrkcí za seknd v milionech - MIPS. Počet operací s plovocí řádovo čárko za seknd - FLOPS. Cílové platformy vyžívané pro implementace neronových sítí jso optimalizovány pro různé aplikace, zpravidla pro zpracování signálů (např. DSP, FPGA), dále pro základní aritmetik a přesny dat (např. mikroprocesory, mikrokontroléry), pro zpracování obrazových dat (např. CUDA), pro zpracování dat neronových sítí (nero-procesory) nebo jso optimalizovány jen pro dano aplikaci (ASIC). Vzhledem k velmi širokém spektr dostpných hardwarových (i softwarových) platforem vyžívaných pro implementace neronových sítí je potřebné pro srovnávání výpočetního výkon požívat niverzální jednotky platné ve všech případech. Tyto jednotky vytváří abstrakci od dílčích matematických operací, které jso vyžity ve výpočtech potřebných pro provoz a pro čení neronových sítí. Požívání těchto jednotek možňje jednodše, a v tomto případě i objektivně, srovnat výpočetní parametry požitého hardware i samotných neronových sítí.[7] [] [6] V případě dopředných neronových sítí se pro měření výpočetního výkon typicky vyžívají následjící dvě jednotky: CPS / CUPS - Connections Per Second / Connection Updates Per Second (počet propojů za seknd). Tato jednotka vyjadřje počet zpracovaných propojů za seknd v režim vybavování neronové sítě. V případě obvodové implementace, která možňje v jednom hodinovém takt, resp. jednom instrkčním cykl, zpracovat zároveň operaci násobení a sčítání (např. signálové procesory), je hodnota totožná s počtem instrkcí za seknd (MIPS).[7] [6] [7] [8] WUPS - Weight Updates Per Second. Tato jednotka se vyžívá k rčování výpočetního výkon v režim čení neronové sítě a vyjadřje počet změn váhových koeficientů za seknd. Režim čení je obvykle výpočetně náročnější než režim vybavování, proto je hodnota WUPS v systémech možňjících čení i vybavování neronové sítě typicky nižší než hodnota CUPS.[7] [6] [7] [8] U systémů, které možňjí vysoký stpeň paralelizace (např. vícejádrové procesory a FPGA) nebo vysoký stpeň zřetězení výpočtů, se hodnoty CUPS a WUPS značně liší od počt zpracovaných instrkcí, resp. pracovní frekvence obvod. - -

34 Perspektivní obvodové strktry pro modlární neronové sítě.6 Modlarita neronových sítí Na modlarit neronových sítí je možné nahlížet ze dvo hledisek. Z hlediska teorie neronových sítí se typicky jedná o rozdělení úlohy řešené pomocí neronové sítě na dílčí části, které jso implementovány do podsítí pracjících jako celek. Vzhledem k tom, že předkládaná dizertační práce pojednává o obvodových implementacích, je možné na modlarit nahlížet i z hlediska obvodového a systémového. Modlarita z hlediska obvodového představje způsob spořádání systém, resp. samotného obvod rčeného pro řešení daného problém..6. Modlarita z hlediska teorie neronových sítí Modlární neronové sítě jso obvykle tvořeny podsítěmi, každá podsíť vykonává podobno, nebo rozdílno fnkci v závislosti na řešené úloze. Nejčastěji se vyžívají čtyři drhy spořádání modlárních neronových sítí, a to kooperativní, konkrenční, sekvenční a dohledové. Příklad základních konceptů modlárních spořádání je na obrázk.6.[] [9] [0] Řešení problém Dílčí řešení Výběr Dohled Dílčí řešení Dílčí řešení Dílčí řešení a) Kooperativní Dílčí řešení Dílčí řešení Dílčí řešení b) Konkrenční Dílčí řešení Dílčí řešení Řešení problém c) Sekvenční d) Dohledové Obr..6: Základní drhy spořádání modlárních neronových sítí[9] Modlární neronové sítě mají platnění při zvyšování přesnosti a jistoty výsledků řešené úlohy. Jako příklad lze vést řešení úlohy několika různě načenými sítěmi, jejichž výstpy jso vyhodnocovány (např. průměrováním) další neronovo sítí nebo je na základě míry nejistoty výsledků jednotlivých sítí vybrán výsledek, kterého je pravděpodobnost správnosti nejvyšší.[] Uspořádání takové modlární sítě je na obrázk.7. Na tomto obrázk jso sítě řešící úloh označeny jako expert a síť, která zpracovává, vyhodnocje a spojje jejich výstpy, jako kombinace výsledk

35 Perspektivní obvodové strktry pro modlární neronové sítě Expert Vstp x Expert Expert n y y Kombinace Výstp výsledků y yn Obr..7: Modlární expertní neronová síť[] Modlární neronová síť spořádaná jako systém expertů (podobně jako na obrázk.7 [] []) je vyžitelná mimo jiné při rozpoznávání text. Tto úloh lze rozdělit např. na detekci malých či velkých písmen nebo čísel a rozhodování, do které kategorie daný znak patří, nebo dle jiných vhodných kritérií.[] Na základě rozhodntí sítě pro kombinaci výsledků se výstp přiřadí výsledek sítě, která je pro dano kategorii načena a mí tak rozpoznávat znaky z dané množiny. Typickým případem modlární neronové sítě vyžívané v klasifikačních úlohách je síť typ Neocognitron.[] U klasifikačních úloh je postp zpracování zpravidla následjící: transformace vstpní informace, vyhledávání specifických rysů, vyhodnocení a rčení výsledk.[] Způsob zpracování dat pomocí sítě typ Neocognitron je inspirován biologickými neronovými sítěmi [4] a je rčen k rozpoznávání písma. Informace je zpracována postpně dílčími sítěmi, které rozpoznávají vizální rysy obraz. Následně na základě výsledků vizální analýzy asociativní síť rozhodne, který znak se v obraze nachází. Jednotlivé podsítě jso tvořeny bloky s různo složitostí, při jejichž čení jso vyžívány různé postpy.[] Díky tomto spořádání je výsledná modlární síť odolná vůči zkreslení i posnům ve zpracovávaném obraze a rozpoznávání znaků je velmi přesné..6. Modlarita z hlediska obvodové implementace Modlární nebo blokové spořádání elektronického obvod možňje systém rozdělit na dílčí části a zjednodšit tím jeho návrh. Tímto způsobem lze oddělit návrh systém od jeho dílčích bloků. [7] Při obvodovém návrh jso platňovány různé úrovně modlarity. Na nejvyšší úrovni se jedná o modlarit systémovo. Ta je zpravidla velmi obecná. Obvody řešící zpracování signálů je obvykle možné rozdělit na části, které zajišťjí příprav vstpních dat (např. datové sběrnice nebo ADC), vlastní výpočetní jádra (např. DSP bloky) a výstpní bloky (např. DAC). Toto dělení na systémové úrovni modlarity se platňje nejen při implementaci v diskrétní formě, ale také na čip. Výše popsaný přístp se označje jako SoC (System on Chip) nebo v obor neronových sítí jako - 5 -

36 Perspektivní obvodové strktry pro modlární neronové sítě NoC (Network on Chip). V případě neronových sítí je systém často rozdělen na část realizjící vybavování, dále na část čení neronové sítě a úprav vah a pak také na vstpně-výstpní bloky.[5] Při implementaci neronových sítí do obvodů, především FPGA a ASIC, se návrh nejčastěji rozdělje do bloků, které typicky zajišťjí: předzpracování vstpních dat, datové propoje, výpočetní jádra, nerony, aktivační fnkce, paměti, zpracování výstpních dat, komnikaci po vstpně-výstpních sběrnicích. Při hardwarových implementacích neronových sítí jso v některých případech výpočetní jádra sdržována do bloků.[6] Sdržování výpočetních jader do bloků vede ke snížení nároků na přenosy dat přes propojovací sběrnice a tím ke snížení nároků na ploch, případně ke zmenšení počt potřebných paměťových bloků pro váhové koeficienty a snížení počt bloků potřebných pro realizaci aktivačních fnkcí.[7] - 6 -

37 Perspektivní obvodové strktry pro modlární neronové sítě. Sočasný stav řešené problematiky Oblast výzkm a vývoje hardwarových implementací neronových sítí je poměrně rozmanitá a v sočasnosti existje velké množství technických řešení. Tato řešení lze rozdělit na analogová a digitální. Předkládaná práce je zaměřená na digitální realizace, a proto je prezentovaný přehled sočasného stav bádání orientován především na tto oblast. Sočasné analogové implementace jso vedeny pro celení přehled sočasného stav.. Analogová řešení Vyžití analogových implementací neronových sítí se vyskytje převážně v oblasti zpracování rychlých a vysokofrekvenčních analogových signálů v reálném čase. K jejich výhodám patří zejména velmi malá plocha, nízká energetická náročnost, vysoká pracovní frekvence a nízká doba odezvy, mezi největší nevýhody analogových implementací se naopak řadí obtížná realizace čení přímo v obvod, náročné kládání váhových koeficientů a nízká přesnost výpočtů. Výzkm v oblasti analogových obvodů pro neronové sítě, které mají váhové koeficienty loženy v tranzistorech s plovocími hradly (kapitola..), probíhá od konce osmdesátých let dvacátého století. Maximální velikost těchto neronových sítí byla v řádech desítek neronů a tisíců synapsí spořádaných do jedné vrstvy. Učicí algoritms byl často implementován externě, např. [7]. Sočasný výzkm v oblasti analogových implementací neronových sítí je zaměřen na zdokonalování přesnosti výpočtů.[8] Analogové implementace neronových sítí se vyžívají zpravidla ve velmi úzce zaměřených aplikacích, např. při zpracování obraz [9], a to především ve vysokorychlostních kamerách [40]. Perspektivním směrem v oblasti analogových implementací neronových sítí se jeví požití nového obvodového prvk - memristor.[4] [4]. Digitální řešení S rozvojem digitálních technologií se rozdíl dynamických parametrů v porovnání s analogovými technologiemi postpně zmenšil. Zatímco přesnost výpočtů realizovaných v analogových obvodech je závislá na požité technologii a strktře, v případě digitálních obvodů tento problém nenastává. Digitální obvody v sočasnosti dosahjí výrazně vyšší přesnosti výpočtů. Díky tom nachází v oblasti obvodových implementací neronových sítí široké platnění

38 Perspektivní obvodové strktry pro modlární neronové sítě Oblast digitálních implementací neronových sítí lze rozdělit na řešení vyžívající běžně dostpné platformy (např. FPGA, DSP, CUDA) a proprietární (např. ASIC), které výrobce volně neposkytje... Obvody FPGA V sočasné době prodkované obvody FPGA obsahjí dedikované bloky pro digitální zpracování signálů, které možňjí efektivně realizovat aritmetické operace násobení a sčítání. Díky těmto blokům dosahjí obvody FPGA vysokého výpočetního výkon, a proto jso dominantně vyžívány pro obvodové implementace neronových sítí. Nejlepší parametry mezi sočasnými FPGA dosahjí obvody od společnosti Xilinx. V tablce. je veden přehled sočasných nejvýkonnějších řad FPGA a potenciálně dosažitelný výpočetní výkon v aplikacích neronových sítí. Tab..: Přehled pracovních frekvencí a výpočetního výkon obvodů FPGA Řada obvod Typ Počet jader f [MHz] Max. GigaCPS 80* 90 70, XC5VSX40T 054* ,7 Virtex-6 XC6VSX475T 06* ,6 Virtex-7 XC7VX980T 600* ,6 Spartan-6 XC6SLX50 Virtex-5 pozn. - DSP48A, - DSP48E, - DSP48E V oblasti implementací neronových sítí do obvodů FPGA se vyskytje velké množství realizovaných architektr.[4] [44] [45] [46] [47] I když v sočasnosti existjí niverzální koncepce pro realizace neronových sítí v obvodech FPGA, většina realizací je tvořena pro dano aplikaci proprietárním způsobem. Jako příklad takové niverzální architektry lze vést koncept FPNA (Field Programmable Neral Array).[7] [48].. Nero-procesory V devadesátých letech minlého století byly pro obvodové implementace neronových sítí často vyžívány specializované typy procesorů označované jako nero-procesory. V sočasnosti se vzhledem k dostpnosti výkonného hardware (např. FPGA, DSP, CUDA) od požívání specializovaných nero-procesorů stpje. Přesto výzkmné týmy sokromých společností v této oblasti průběžně vyvíjí nová řešení. Nicméně výstpy tohoto výzkm obvykle nejso komplexně pblikovány, zveřejňovány jso poze tiskové zprávy. Vhodným příkladem takového výzkm je realizace procesor Zeroth od společnosti Qalcomm a SyNAPSE od společnosti IBM

39 Perspektivní obvodové strktry pro modlární neronové sítě.. Procesory CUDA Speciálním případem signálových procesorů je výpočetní architektra CUDA (Compte Unified Device Architectre) od společnosti NVIDIA Corporation, která je primárně rčena pro zpracování počítačové grafiky. Vzhledem k velkém rozšíření těchto obvodů je důležité je zmínit a nastínit jejich požití pro implementace neronových sítí. Na implementace neronových sítí do obvodů CUDA lze nahlížet jako na implementace na rozhraní software a hardware. Vyžívají hardware podobným způsobem jako výhradně obvodová řešení a dosahjí podobného výpočetního výkon [49]. Vlastní realizace, resp. popis neronové sítě, je prováděn pomocí vyšších programovacích jazyků, např. C, C++ a specializovaných jazyků možňjících popis paralelních výpočtů. Výrobce poskytje k těmto procesorům vývojové nástroje a jeden z nich (knihovna cdnn) je rčen k popis neronových sítí. V sočasnosti nejvýkonnější architektr zmiňovaných procesorů CUDA reprezentje procesor Kepler GK0 [5]. Procesor je rozdělen do dvo základních bloků, a to na řadič tok dat a distribci výpočtů a dále na 880 výpočetních jader. Tento procesor na rozdíl od předchozích verzí procesorů CUDA implementje technologii dynamického paralelizm, která značně snižje množství přesnů dat přes vstpně-výstpní sběrnici. Procesory CUDA nejso obvykle distribovány samostatně, ale poze osazené na akceleračních kartách obsahjících i další komponenty, např. paměti RAM, řadiče, různé digitální grafické rozhraní, DA převodníky a jiné. Dokmentace a katalogové listy k samotným procesorům nejso výrobcem zveřejněny, a proto jso možnosti jejich požití v mikroelektronických aplikacích a průmyslových systémech velmi omezené...4 Další architektry Zajímavým příkladem architektry systém pro implementace neronových sítí je krhové procesorové pole.[50] [5] Tato realizace možňje paralelizovat výpočty způsobem distribce dat mezi dílčími procesory, které jso spojeny krhovo sběrnicí. Mezi další perspektivní architektry pro implementace neronových sítí patří obvodové realizace systolických polí. Tyto architektry jso obvykle implementovány do FPGA a zákaznických obvodů.[6] [5] [5] Obvody realizjící systolická pole možňjí s vyžitím komplexních propojovacích sběrnic velmi efektivně distribovat zpracovávaná data

40 Perspektivní obvodové strktry pro modlární neronové sítě..5 Shrntí V sočasné době je v oblasti digitálních obvodových implementací neronových sítí kladen důraz zejména na zlepšování následjících parametrů: Zvyšování počt výpočetních bloků. Zvyšování rychlosti obvod resp. samotných výpočtů. Snižování spotřeby energie. Značné zvýšení výpočetního výkon je možné obecně dosáhnot zvyšováním počt výpočetních bloků. Při obvodových implementacích neronových sítí to ale neplatí ve všech případech. V praktických aplikacích neronových sítí jso často vyžívány i topologie obsahjící poze několik jednotek až desítek neronů. V případech, kdy počet výpočetních bloků obvod převyšje počet neronů realizované neronové sítě, nevede zpravidla další navyšování jejich počt ke zvýšení rychlosti výpočt neronové sítě. Optimální výpočetní výkon a nejvyšší datovo propstnost je možné při obvodové implementaci neronových sítí dosáhnot přímým propojením výpočetních bloků jak je popsáno v kapitole... Takový způsob propojení je náročný na ploch obvod. Proto jso v praxi často realizována kompromisní řešení propojení výpočetních bloků vyžívající různé propojovací sběrnice (koncept FPNA, technologie dynamického paralelizm - CUDA, komplexní propojovací sběrnice systolických polí)

41 Perspektivní obvodové strktry pro modlární neronové sítě 4. Cíle dizertace Pro pochopení problematiky hardwarových implementací neronových sítí bylo nezbytné prostdovat relevantní základní literatr, aktální vědecké i firemní pblikace a seznámit se s parametry vhodných hardwarových prostředků. V předkládané dizertační práci bdo výše vedené informace vyžity ke zlepšení parametrů a vyžitelnosti již existjících řešení při návrh nové obvodové strktry pro hardwarové implementace neronových sítí. Práce je cílena na vyžití obvodů FPGA a zákaznických obvodů. Hlavním cílem dizertační práce je navrhnot novo obvodovo strktr vyžitelno pro implementace neronových sítí, která bde vyžívat vylepšené dílčí bloky. Návrh obvodové strktry je založen na znalostech získaných stdiem sočasných řešení, aktálního stav bádání v obor obvodových implementací neronových sítí i doporčení a závěrů vědeckých pblikací. K dalším cílům předkládané práce patří ověření vlastností již existjících řešení, a to nejen celých systémů pro zpracování informací s vyžitím neronových sítí, ale také jejich dílčích částí. Právě v optimalizaci a novém přístp k řešení individálních bloků je velký potenciál pro zlepšení hardwarových platforem pro neronové sítě. Přínos navržené strktry bde spočívat zejména v optimalizaci vytížitelnosti výpočetních bloků. Další přínos bde ve zvýšení efektivity datových propojů, což by mělo vést k následném zlepšení výpočetního výkon v poměr k ploše potřebné pro implementaci obvod a ke spotřebované energii. Pro ověření a srovnání parametrů navržených dílčích bloků a obvodové strktry jako celk bdo vyžívány simlační nástroje a vhodný hardware, zejména obvody FPGA. Obvody FPGA jso díky své rekonfigrovatelnosti a vysokém výpočetním výkon vhodno platformo pro ověření vlastností navržených strktr. Předkládaná práce je zaměřena na optimalizaci hardware pro nasazení i v oblastech, které klado důraz především na jednodchost, účelnost a kvalit řešení [7] [8] [54] [55]. V průmyslové praxi při hromadném nasazení je výhodné vyžívat již existjící řešení, která jso optimalizována pro konkrétní aplikace, a implementovat je jako vestavěné (embedded) bloky. Řešení navržené v rámci předkládané práce se zaměří především na realizace strktr rčených pro režim provoz, resp. vybavování neronových sítí. Samotný proces čení není pro tto práci klíčový, a to hned z několika důvodů. Nevhodný průběh dočování neronových sítí může vést ke snížení celkové spolehlivosti výsledného systém. Z tohoto důvod není implementace možnosti čení - -

42 Perspektivní obvodové strktry pro modlární neronové sítě neronových sítí v průmyslových aplikacích vhodná. Dalším problémem je obtížnost verifikace kvality načení neronové sítě v průběh provoz.[7] [55] Pro účely vývoje a čení neronových sítí je vhodné vyžít dedikované softwarové nástroje a následně implementovat již načeno a verifikovano neronovo síť na obvodové úrovni. - -

43 Perspektivní obvodové strktry pro modlární neronové sítě 5. Vlastní řešení Provedené experimenty včetně shrntí jejich výsledků jso popsány v této kapitole, která tvoří jádro předkládané dizertační práce a rozebírá vlastní řešení problém. V rámci této práce vznikl sobor podkladů rčených k řešení některých problémů a vytvoření základních bloků potřebných pro obvodové implementace neronových sítí. [8] [56] Dále byly provedeny implementace základních architektr vycházejících z klasického přístp k obvodovým řešením neronových sítí. [9] [9] [57] Další částí práce je rozbor sočasných řešení, který složí k ověření vlastností a zjištění jejich nedostatků ve specifických případech (viz kapitola ). Na základě rozbor sočasného stav byl dále proveden návrh a ověření vlastností základních obvodových architektr pro implementace neronových sítí [57] [58] a následně navrženo vlastní řešení odstraňjící některé nedostatky požívaných architektr [59]. 5. Úvodní experiment - implementace paralelní architektry Pro ověření vlastností klasické a často požívané architektry ([7] [60] [6]) pro implementaci neronových sítí do FPGA a ASIC byl sktečněn experiment. V rámci tohoto experiment byla provedena simlace a implementace obvod možňjícího paralelizovat provoz neronové sítě na úrovni neronů. Blokové schéma vytvořeného obvod je na obrázk 5.. Výsledky byly pblikovány v [57] [58]. Vstp Výstp Řídicí logika Výběr vah Data / příkazy Výběr výstp Enkodér Paměť vah Paměť vah Paměť vah Výpočetní blok Výpočetní blok Zpracovaná data Pamět výsledků Aktivační fnkce Výpočetní blok Obr. 5.: Blokové schéma obvod požitého pro experiment - -

44 Perspektivní obvodové strktry pro modlární neronové sítě Pro hardwarovo implementaci navržené strktry byl požit obvod FPGA řady Spartan- od společnosti Xilinx, konkrétně XCS00 [6], který byl osazen na vývojové desce Spartan- Starter Board [6] [64]. Obvod byl navržen parametricky a do cílového FPGA byl implementován v následjící konfigraci: 0 výpočetních bloků vyžívajících vestavěné násobičky 0 paměťových bloků pro váhové koeficienty (0 40 vah) blok aktivační fnkce (nipolární sigmoida λ =, dle rovnice.5) blok vyrovnávací paměti ( 04 výsledků) blok řídící tok dat (stavový atomat) 8 bitová datová sběrnice Strktra výpočetního blok požitého v navrženém obvod je na obrázk 5.. Tento obvod realizje operace násobení vstpních dat vahovými koeficienty a akmlace výsledk pomocí sčítačky a registr. Násobení a sčítání je realizováno postpně, zřetězením dílčích výpočtů. Blok vyžívá vestavěno násobičk obvod FPGA a kombinační sčítačk vytvořeno pomocí náhledových tablek. Prováděné výpočty a režim práce blok je možné nastavovat pomocí následjících čtyř příkazů generovaných stavovým atomatem: reset nlování výsledk bias nastavení prah MAC násobení vstp s váhovým koeficientem a přičtení k hodnotě ložené v akmlátor - výpočet vnitřního potenciál výsledek vystavení výsledk na sběrnici Příkaz Dekodér Výstp požadavek Data Váha + Výsledek Obr. 5.: Vnitřní spořádání výpočetního blok Blokové schéma obvod implementjícího aktivační fnkci je na obrázk 5.. Stejně jako v případě výpočetního blok byl při návrh kladen důraz na zřetězení výpočtů a implementaci algoritm pomocí elementárních operací sčítání a násobení

45 Perspektivní obvodové strktry pro modlární neronové sítě Vstp LUT f(x) + LUT f(x) Výstp Obr. 5.:Vnitřní spořádání blok aktivační fnkce Maximální pracovní frekvence obvodů FPGA řady Spartan- je 75 MHz. Výsledný návrh po optimalizaci pracoval s maximální frekvencí MHz. Toto snížení pracovní frekvence bylo způsobeno absencí vestavěných sčítaček v obvodech FPGA řady Spartan-, které byly vytvořeny pomocí náhledových tablek. Maximální dosažitelný výpočetní výkon navrženého obvod byl, Giga CPS. Fnkčnost obvod byla ověřena realizací testovací neronové sítě pro rozpoznávání rčně psaných číslic. Topologie neronové sítě byla 88:40:0. Testovací síť obsahje celkem 50 neronů (vstpní vrstv nebylo potřebné implementovat) a 90 propojů mezi nerony, resp. váhových koeficientů. Učení sítě bylo realizováno pomocí algoritmů popsaných v jazyce C []. Váhové koeficienty načené sítě byly následně přeneseny do vývojového prostředí Xilinx ISE. V tomto prostředí byly provedeny simlace a následná implementace navrženého obvod do cílového FPGA. Experimentální obvod možňje paralelizovat výpočty na úrovni neronů, resp. výpočetních bloků. Odezva testovací neronové sítě implementované do obvod je 96 hodinových cyklů (výpočty skrytých vrstev a aktivační fnkce), což při pracovní frekvenci MHz možňje rozpoznat přibližně znaků. Architektra požitá v tomto experiment má kvůli malém počt výpočetních bloků nízké nároky na ploch. Proto je tato architektra vhodná i pro převod do ASIC. Potenciál pro další snížení potřebné plochy v obvodech ASIC spočívá v implementaci menších pamětí pro ložení váhových koeficientů. Tento experiment složil k ověření základních technik pro obvodové implementace neronových sítí a v jeho rámci byl vyřešen jeden případ implementace obvod možňjícího paralelizovat výpočty neronové sítě v režim provoz. Navržené dílčí bloky byly dále vyžity při návrh nových obvodových strktr a optimalizaci jejich obvodových implementací

46 Perspektivní obvodové strktry pro modlární neronové sítě 5. Univerzální obvodová architektra pro dopředné neronové sítě Při navrhování vlastní obvodové strktry pro implementace neronových sítí byly vyžívány informace, které jso shrnty v předchozích kapitolách. V úvod dizertační práce byl proveden teoretický rozbor problematiky obvodových implementací neronových sítí. Následně byla prozkomána sočasná obvodová řešení a sktečněn experiment s obvodovo architektro možňjící efektivní paralelizaci výpočtů neronových sítí na úrovni jednotlivých neronů. Na základě rozbor těchto poznatků byly doporčeny úpravy a optimalizace stávajících řešení a navržena obvodová architektra, která řeší některé nedostatky ostatních obvodových implementací. Koncept, vlastnosti, fnkce, možnosti a požití architektry jso popsány v kapitolách 5.. až Koncepce navržené obvodové strktry Faktorem, který v mnoha případech výrazně limitje výpočetní výkon a rychlost odezvy obvodů implementjících neronové sítě, je spořádaní propojů, a to zejména v obvodech obsahjících větší množství výpočetních jader. Propojení výpočetních bloků je často řešeno jedno nebo více sběrnicemi, případně propojovacím polem. V případě propojení výpočetních bloků pomocí jedné sběrnice je možné mezi nimi přenášet jeden blok dat sočasně. Toto řešení možňje realizovat poze jedn úroveň paralelizace výpočtů na úrovni jednotlivých neronů, a to v případě, kdy je výsledek z neron v dané vrstvě přenášen do vstpů několika neronů vrstvy následjící. Během tohoto přenos je sběrnice blokována pro případné další přenosy dat mezi ostatními vrstvami, případně pro vstp dat do neronové sítě a výstp dat z neronové sítě. U řešení vyžívajících více propojovacích sběrnic je výše vedený problém spojený s blokováním přenosů dat částečně potlačen, avšak za cen vyšší náročnosti na implementaci propojů a řízení tok dat v systém. Problém s datovo propstností sběrnic je možné zcela odstranit implementací propojovacího pole. Nicméně takové řešení by přeneslo tento problém na propojovací pole, jehož náročnost na spotřebovano ploch by se zvýšila a vyžadovalo by poměrně složito řídicí logik. Předkládaná koncepce řešení je cílena na optimalizaci propojů mezi výpočetními bloky a navržená strktra implementje nové nekonvenční sběrnicové spořádání. Tato strktra obsahje dvě propojovací sběrnice. První z nich složí k přenos dat do vstpů výpočetních bloků, zatímco drhá sběrnice je primárně výstpní. Maximální míry flexibility je dosaženo implementací přepínačů mezi sběrnicemi. Přepínače možňjí každo z těchto výchozích sběrnic rozdělit na více dílčích úseků a tyto rozdělené úseky propojovat mezi sebo. Takto vzniklé propoje možňjí - 6 -

47 Perspektivní obvodové strktry pro modlární neronové sítě směrovat data, avšak vždy poze z výstpní sběrnice na vstpní. Koncepční schéma tohoto nového sběrnicového spořádání ve dvo z několika možných konfigrací je na obrázk 5.4. Výpočetní bloky, které jso těmito sběrnicemi propojeny, jso na obrázk označeny jako neron. Vstpní sběrnice x Vstp Neron Neron Neron Neron Výstp y a) Výstpní sběrnice x Vstp Neron Neron Neron Neron Výstp y b) Obr. 5.4: Koncepční schéma signálových toků navržené strktry Změno nastavení přepínačů lze konfigrovat topologii výpočetních bloků. Tím je možné je řadit do různých sério-paralelních spořádání ve směr tok dat od vstp k výstp. Na obrázk 5.4 jso vedeny dva případy konfigrace výpočetních bloků. Za předpoklad, že jeden výpočetní blok realizje fnkci právě jednoho neron, je zřejmé, že identická obvodová strktra možňje implementovat různé topologie neronových sítí. Případ na obrázk 5.4a možňje v obvod realizovat topologii neronové sítě s spořádáním n::, kdy n představje nerony vstpní vrstvy, které není ntné realizovat. Na obrázk 5.4b je s vyžitím identických bloků, ale v odlišné konfigraci přepínačů zobrazena možnost realizovat neronovo síť s spořádáním n::. V obecné rovině možňje výše popsaná koncepce implementovat do identického obvod libovolně spořádané dopředné neronové sítě, a to za předpoklad, že počet neronů v síti je menší nebo rovný počt výpočetních bloků. Sočasně toto spořádání možňje dosáhnot vysoký stpeň paralelizace výpočtů a maximalizje vytížení výpočetních bloků. Paralelizace na úrovni neronů je realizována paralelním propojením výpočetních bloků. Další stpeň paralelizace je tvořen propojením dílčích úseků výstpní sběrnice s úseky sběrnice vstpní, čímž dochází k obvodovém - 7 -

48 Perspektivní obvodové strktry pro modlární neronové sítě zřetězení jednotlivých vrstev. V důsledk toho je možné provádět výpočty několika vrstev neronové sítě sočasně. Přepínače sběrnic jso navržené strktry rozmístěny mezi sosedícími výpočetními bloky. V případě obvodové realizace rozsáhlejší varianty této strktry by velké množství přepínačů zabíralo rozsáhlo ploch. U dopředných neronových sítí je obvykle v každé vrstvě místěno několik neronů. Proto byla z koncepce navržené strktry odvozena úprava, která je vhodná právě pro obvodové realizace. V této úpravě jso výpočetní bloky sdržovány do skpin. Tím je částečně snížena možnost rekonfigrace obvod, která je kompromisní a v aplikacích takového obvod by neměla být příliš limitjící. Jako kompromisní řešení bylo zvoleno sdržování čtyř výpočetních bloků. Toto pravené spořádání, vhodné pro obvodové implementace, je vedeno na obrázk 5.5. x Vstp Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Neron Výstp y Obr. 5.5: Sdržování bloků navržené strktry V rámci dílčích úseků sběrnic může probíhat přenos vždy jen z jednoho výstp výpočetních bloků na vstpy bloků následjících. Proto byla navržena další úprava architektry snižjící ploch potřebno pro implementaci obvod, která je vedena na obrázk 5.6. () () () () Výstp y Obr. 5.6: Úprava architektry pro oddělený výpočet vnitřního a výstpního potenciál - 8 -

49 Perspektivní obvodové strktry pro modlární neronové sítě Tato úprava spočívá v rozdělení výpočetního blok na dvě dílčí části. První část, na obrázk označená, provádí výpočet vnitřního potenciál neron. Drhá část, na obrázk označená Φ(), provádí výpočet výstpního potenciál pomocí aktivační fnkce. Obě tyto části moho být implementovány jako samostatné obvodové bloky. Výpočet vnitřního potenciál probíhá paralelně ve všech k tom rčených blocích v dané skpině. Následné vystavení výstpního potenciál na výstpní sběrnici v případě spořádání na obrázk 5.5 probíhá sekvenčně. V praveném spořádání na obrázk 5.6 je hodnota vnitřního potenciál vedena ze všech bloků dané skpiny do jediného blok aktivační fnkce. Tam je rčena hodnota výstpního potenciál sekvenčně a následně vystavována na výstpní sběrnici. Uspořádání navržené strktry s výše vedenými modifikacemi, tj. sdržování bloků a rozdělení výpočt vnitřního a výstpního potenciál, zabezpečje značno úspor plochy obvod. Počet bloků přepínajících sběrnice i počet bloků realizjících výpočet výstpního potenciál je nižší než původního koncepčního návrh na obrázk 5.4. Pokd lze při aplikaci navržené strktry vyžít sdržování výpočetních bloků do větších skpin, je možné dosáhnot i výrazně vyšší úspory plochy obvod při zachování původní fnkce. Na obrázk 5.6 je naznačeno nastavení režim modifikovaného obvod. V tomto nastavení obvod možňje implementovat neronovo síť v konfigraci n:8:8, přičemž 8 je maximální počet neronů v dané vrstvě. Jejich počet ve vrstvě může být i nižší, ale některé bloky pro výpočet vnitřního potenciál zůstano nevyžity. Další přípstné konfigrace neronových sítí implementovatelných do navržené strktry, spořádané dle obrázk 5.6 a vyžívající pro výpočet vnitřního potenciál sdržování bloků do skpin po čtyřech, jso vedeny v tablce 5.. Tab. 5.: Topologie neronových sítí implementovatelných do obvod na obrázk 5.6 Počet vrstev za vstpní vrstvo Topologie neronových sítí 4 n:6 n:4: n:8:8 n::4 n:4:4:8 n:4:8:4 n:8:4:4 n:4:4:4:4-9 -

50 Perspektivní obvodové strktry pro modlární neronové sítě Navržená obvodová architektra, jež byla popsána ve výše zmíněných případech a modifikacích, možňje implementovat poze takové neronové sítě, ve kterých je počet neronů menší nebo rovný počt výpočetních bloků. Při realizaci rozsáhlých neronových sítí pomocí navržené obvodové architektry by byla plocha výsledného obvod příliš velká. Pro realizaci rozsáhlých neronových sítí byla navržena modifikace architektry, která je vedena na obrázk 5.7. Za cen snížení úrovně paralelizm je v tomto případě možné pomocí zpětné vazby provádět výpočty částečně sekvenčně. Naznačená zpětná vazba přivádí data z koncového úsek výstpní sběrnice do počátečního úsek vstpní sběrnice. Mltiplexor na vstp obvod možňje vybrat režim vstp dat do sítě nebo požití zpětné vazby. Díky tomto princip lze provádět sekvenční zpracování dat. FIFO x Vstp () () () () y Výstp Obr. 5.7: Koncepční schéma strktry pravené pro implementaci rozsáhlých neronových sítí V některých případech je možné data pomocí zpětné vazby převádět přímo z výstpní sběrnice na vstpní. V případech, kdy to možné není, lze vyžít vyrovnávací paměť (jak je naznačeno na obrázk). Ntnost požití vyrovnávací paměti sovisí se způsobem mapování neronových sítí do navržené obvodové architektry. Problematice mapování je věnována kapitola

51 Perspektivní obvodové strktry pro modlární neronové sítě 5.. Vlastnosti a možnosti navržené strktry Návrh obvodové koncepce popsané v kapitole 5.. probíhal s ohledem na efektivní realizaci obvodové strktry, do které lze implementovat různé topologie zejména dopředných neronových sítí. Byl kladen důraz na jednodchost výsledného obvod, jeho vysoko variabilit a možnosti implementace různých fnkcí vyžívaných v neronových sítích. Do navržené strktry lze implementovat následjící typy neronových sítí: dopředné malé (počet neronů je menší nebo rovný počt výpočetních bloků) rozsáhlé rekrentní Hopfieldovy modlární Navržená architektra zároveň možňje velmi intenzivně vyžívat výpočetní bloky. Vnitřní přesny dat by měly být vysoce efektivní, přičemž strktra propojovacích sběrnic je poměrně jednodchá a měla by mít nízké nároky na potřebno ploch. Klíčovým prvkem strktry je systém propojení výpočetních bloků pomocí dvo konfigrovatelných sběrnic. Díky vysoké flexibilitě propojovacího systém lze realizovat v navržené architektře i některé rozšiřjící prvky požívané v dopředných neronových sítích, např. zkratky mezi vrstvami, a to dynamickým přepínáním spořádání sběrnic v průběh výpočt. Požité sběrnice sice možňjí přenášet sočasně vždy maximálně jeden blok dat, ale děje se tak mezi všemi vytvořenými datovými propoji dle aktální konfigrace obvod. Tímto způsobem je možné vytvořit systém obsahjící velké množství nezávisle pracjících úseků sběrnic a tím zřetězit výpočetní bloky. Dochází tak k paralelizaci výpočtů na úrovni vrstev. Efektivita paralelizace na úrovni vrstev může být snížena, např. v případě, kdy realizovaná neronová síť obsahje vrstv, která obsahje výrazně větší počet neronů než vrstvy ostatní. Tento problém je blíže popsán v kapitole 5.. věnjící se mapování neronové sítě do navržené strktry. Paralelizace na úrovni neronů je zabezpečena samotným rozdělením systém sběrnic na vstpní a výstpní. Díky systém propojení lze v jednom obvod realizovat několik nezávisle fngjících neronových sítí. V takovém případě lze pomocí přepínačů dynamicky nastavit topologii aktálně zvolené sítě a výběrem váhových koeficientů provádět její výpočet. Naopak v případě realizace jediné neronové sítě v obvod lze fnkci přepínačů nastavit pevně. Navržená architektra je vhodná pro realizace systémů s neronovými sítěmi, a to nejen rekonfigrovatelných, ale i s pevně nastaveno fnkcí. Pokd má neronová síť realizovaná pomocí této architektry pevno fnkci, je možné pravit počty - 4 -

52 Perspektivní obvodové strktry pro modlární neronové sítě výpočetních bloků sdržených do skpin, např. odstranit nadbytečné. Odstraněním nadbytečných výpočetních bloků lze zmenšit velikost plochy i spotřeb výsledného obvod. Implementaci navržené architektry je možné realizovat v obvodech FPGA i ASIC. Vlastní obvodovo realizací navržené strktry v obvodech FPGA se podrobně zabývá kapitola Mapování neronové sítě do obvod Důležito sočástí proces praktické realizace navržené architektry je mapování neronové sítě do obvod. Během mapování je rčeno, který výpočetní blok bde zpracovávat data daného neron. Mapování identické neronové sítě může být realizováno různými způsoby. S požitím jednotlivých způsobů se mění i potřebná plocha a časová odezva výsledného obvod. Prvním typickým případem je mapování neronové sítě, ve které se počty neronů ve vrstvách ve směr od vstp k výstp snižjí. Příklad takového spořádání s neronovo sítí s topologií 8:8:4: mapované do obvod obsahjícího 6 výpočetních bloků je na obrázk 5.8. a) b) c) d) Obr. 5.8: Mapování neronové sítě 8:8:4: Neronová síť je do obvod mapována následjícím způsobem: vstpní vrstva je realizována poze s vyžitím počátečního vstpní sběrnice první skrytá vrstva - výpočetní bloky označené drhá skrytá vrstva - výpočetní bloky označené výstpní vrstva - výpočetní blok označený úsek

53 Perspektivní obvodové strktry pro modlární neronové sítě Přepínače sběrnic jso fixně nastaveny tak, že všechny bloky jso spojeny prvním úsekem vstpní sběrnice. Jejich výstpy jso přivedeny na drhý úsek vstpní sběrnice, která je vedena do bloků. Výstpy bloků jso vedeny přes třetí úsek vstpní sběrnice do blok. Na obrázk 5.8 je naznačen tok dat obvodem i vlastní neronovo sítí. Podrobně je postp výpočt a tok dat přiblížen na obrázk 5.9. Případné latence vzniklé při konkrétní obvodové realizaci jso zanedbány. Předpokládá se, že každý výpočet je realizován v jednom hodinovém cykl. V počátečních fázích výpočt nedochází k vystavování dat, proto je značení výstpů obvod na obrázk 5.8a a 5.8b odlišné t Vstp dat Vstp dat Vstp dat Výstp Latence Celková doba zpracování Obr. 5.9: Fáze zpracovaní dat dle obrázk 5.8 Zpracovaní a tok dat jso v tomto případě rozděleny do tří fází, kdy každá trvá 8 hodinových cyklů. Během první fáze jso data přesována ze vstp do první skryté vrstvy a zároveň zpracovávána výpočetními bloky realizjícími tto vrstv. Ve drhé fázi výpočt probíhá přenos dat z první skryté vrstvy do drhé sočasně s jejich zpracováním. Protože drhá skrytá vrstva obsahje poze čtyři nerony (do výstpní vrstvy se přesovají poze čtyři výstpy), lze třetí fázi výpočt dokončit dříve, než v osmi hodinových cyklech. K vystavení dat zpracovaných neronovo sítí dochází již po čtvrtém hodinovém cykl. Vzhledem k tom, že všechny výpočetní fáze jso zřetězeny, ve zbylých čtyřech hodinových cyklech výstpní vrstva neprovádí žádné operace. Za předpoklad, že obvod, ve kterém je realizovaná výše vedená neronová síť, obsahje 6 výpočetních bloků (i nevyžité bloky - neoznačené číslicí), jak je naznačeno na obrázk 5.8, je vytíženost výpočetních bloků přibližně 78%. Vytíženost byla rčena poměrem aktivních pracovních cyklů výpočetních bloků - 4 -

54 Perspektivní obvodové strktry pro modlární neronové sítě ve vztah k celkovém počt pracovních cyklů výpočetních bloků. Latence dat je 0 hodinových cyklů, zatímco celková doba zpracování dat je 4 hodinových cyklů. Jak bylo vedeno v kapitole 5.., je možné v případě fixního spořádání obvod pravit počty výpočetních bloků ve skpinách. V tomto případě se jedná o odstranění nevyžitých výpočetních bloků. Celková vytíženost výpočetních bloků by vzrostla na přibližně 96%. V případě realizace neronové sítě, které jso počty neronů ve vrstvách identické, lze provést mapování do navržené strktry velmi jednodše a efektivně. Přesny dat mezi vrstvami jso v tomto případě vyrovnané. Pokd jso zároveň počty neronů ve vrstvách rovny celočíselném násobk počt výpočetních bloků ve skpinách, dochází k optimální paralelizaci a zřetězení výpočtů. Vytíženost výpočetních bloků je pak 00%. Dalším typickým případem je mapování dopředné neronové sítě, v níž se počty neronů v sosedících vrstvách postpně zvyšjí. Ukázka mapování takové neronové sítě, v spořádání ::4:8, do navržené architektry je na obrázk

55 Perspektivní obvodové strktry pro modlární neronové sítě a) b) e) c) d) f) g) h) Obr. 5.0: Mapování neronové sítě ::4:8 V postpně se rozšiřjících sítích realizovaných v navržené architektře dochází k snižování počt aktivních cyklů výpočetních bloků. To je způsobeno tím, že množství dat přenášených mezi vrstvami narůstá. Zpracování dat ve vrstvách bližších ke vstpní vrstvě je provedeno v menším počt hodinových cyklů než vrstev na ně navazjících. Vzhledem k tom, že architektra je primárně rčena pro zřetězené provádění výpočtů, je do výpočt vrstev s menším počtem neronů promítnta doba zpracování dat vrstvy s nejvyšším počtem neronů. Tím výrazně klesá celková vytíženost výpočetních bloků. V případě vedeném na obrázk 5.0 je provedeno mapování neronové sítě s spořádáním ::4:8 do obvod obsahjícího 6 výpočetních bloků. Tok dat toto strktro je vyznačen obdobně jako na obrázk 5.9. Naznačené fáze výpočt trvají čtyři hodinové cykly a výpočet je rozložen do tří fází. Neronová síť obsahje

56 Perspektivní obvodové strktry pro modlární neronové sítě 8 neronů ve výstpní vrstvě a výstp zpracovaných dat z obvod probíhá sekvenčně. Proto jen samotné vystavení dat na výstp trvá dvě fáze výpočt. Pro zabezpečení správného sled výpočtů je vstp dat do obvod v každé drhé fázi výpočt pozastaven. Z tohoto důvod je celková vytíženost výpočetních bloků poze 4%, latence obvod hodinových cyklů a celková doba zpracovaní dat 8 hodinových cyklů. a) b) e) c) f) d) g) h) Obr. 5.: Mapování neronové sítě ::4:8 s vyžitím zpětné vazby Vyžitím úpravy navržené architektry, která je vedena na obrázk 5.7 a zavádí do obvod zpětno vazb, lze výše vedený problém do jisté míry kompenzovat. Díky částečně sekvenčním přístp ke zpracování dat lze v tomto případě snížit ploch obvod na polovin při sočasném zachování jeho fnkce. Mapování neronové sítě do praveného obvod je přiblíženo na obrázk 5.. V tomto spořádání jso výpočetní fáze rozloženy odlišným způsobem než v předchozím případě mapování identické neronové sítě. Jednotlivé fáze výpočt v tomto případě trvají čtyři hodinové cykly a výpočet je opět rozdělen do tří fází. Počáteční dvě fáze výpočt probíhají identicky s předchozím případem. Následně jso data z drhé vrstvy přiváděna pomocí zpětné vazby z výstpní sběrnice na sběrnici vstpní a jso zpracovávána ve třetí fázi výpočt stejnými

57 Perspektivní obvodové strktry pro modlární neronové sítě výpočetními bloky. datových sběrnic. Pro každo fázi výpočt je požita jiná konfigrace Vystavování zpracovaných dat na výstp obvod probíhá následjícím způsobem. V prvních dvo fázích (obrázek 5.d a 5.e) výpočt jso vystavovány postpně první a drhá čtveřice výstpů neronové sítě předchozího výpočt, protože zřetězení zpracování dat je částečně zachováno. Vytíženost výpočetních bloků je v tomto případě 46%, latence obvod i celková doba zpracování dat je hodinových cyklů. Plocha obvod je poloviční v porovnání s předchozím případem. Dalším važovaným případem mapování neronové sítě do navržené architektry je realizace rozsáhlých neronových sítí, v nichž počet neronů v libovolné skryté nebo ve výstpní vrstvě nepřevyšje celkový počet výpočetních bloků. Tím je částečně omezena možnost paralelizace výpočt na úrovni vrstev. Jako příklad lze vést implementaci neronové sítě s topologií n:6:8:8 do obvod spořádáného dle obrázk 5.7. Postp zpracování dat může být následjící:. výpočet první skryté vrstvy (n:6:8:8). vystavování výsledků první skryté vrstvy (n:6:8:8) na výstpní sběrnici propojené se vstpní sběrnicí a sočasný výpočet drhé skryté vrstvy (n:6:8:8). vystavování výsledků drhé skryté vrstvy (n:6:8:8) a sočasný výpočet výstpní vrstvy (n:6:8:8) 4. vystavování výsledků výstpní vrstvy (n:6:8:8) na výstp z obvod a sočasný výpočet první skryté vrstvy (n:6:8:8) 5. pokračovaní v bod Posledním važovaným případem mapování neronové sítě do navržené architektry je realizace rozsáhlých neronových sítí, v nichž na rozdíl od předchozího případ počet neronů v libovolné skryté nebo výstpní vrstvě převyšje celkový počet výpočetních bloků. Architektra obvod nemožňje paralelně zpracovávat větší počet neronů, než je počet realizovaných výpočetních bloků. Řešení tohoto problém je naznačeno na obrázk 5.7. S vyžitím zpětné vazby a vyrovnávací paměti lze výpočet takové vrstvy provést sekvenčně. Při obvodové realizaci navržené strktry můžo nastat i další případy mapování, při jejich realizaci bdo platňovány podobné postpy řešení

58 Perspektivní obvodové strktry pro modlární neronové sítě 5. Obvodová implementace navržené architektry Další částí řešení dizertační práce bylo provedení obvodové implementace navržené architektry. Dílčí bloky byly popsány pomocí jazyka VHDL. Díky tom je možné je snadno implementovat do různých cílových technologií, zejména FPGA a ASIC. Obvody FPGA je výhodné vyžívat nejen pro ověření vlastností obvod, ale také pro cílové aplikace. Proto je výsledný popis v jazyce VHDL optimalizován zejména pro obvody FPGA. Tato optimalizace spočívá v přizpůsobení šířek sběrnic a velikostí pamětí tak, aby optimálně vyžívaly hardwarové prostředky těchto obvodů, především dedikované bloky. Parametrizací popis všech bloků je zabezpečena možnost poze jednodché úpravy při implementaci do jiné cílové technologie, např. jiných FPGA, případně ASIC. 5.. Návrh obvodového celk Pro samotno obvodovo implementaci byl vybrán obvod FPGA Spartan-6 od společnosti Xilinx, konkrétně XC6SLX45-CSG4[65]. Jedním z důvodů pro výběr tohoto FPGA byla dostpnost vývojové desky Atlys [66] od společnosti Digilent, na které je tento obvod osazen. Dalším důvodem pro požití tohoto obvod byly jeho parametry, zejména velké množství základních logických prostředků a dedikovaných bloků pro digitální zpracovaní signálů a paměťových bloků. Blokové schéma navržené architektry převedené do obvodového spořádání je na obrázk 5.. Obvodové spořádaní, narozdíl od koncepčního návrh, obsahje větší množství dílčích bloků. Tyto konkrétní bloky nebyly z důvod vysoké úrovně abstrakce v koncepčním schémat váděny. Pro zabezpečení správné fnkce obvod je ale není možné vynechat. Obvodová realizace navržené architektry obsahje následjící fnkční bloky: přepínače sběrnic výpočetní bloky bloky aktivační fnkce řídicí logika paměti váhových koeficientů Nejdůležitějším z bloků, které byly v koncepčním schémat zanedbány, je blok řídicí logiky. Tento blok zabezpečje konfigraci přepínačů sběrnice, řízení toků dat a výběr vahových koeficientů. Dalším blokem, který nebyl veden v koncepčním schémat, je blok paměti, který složí k kládání váhových koeficientů. Obvodová implementace všech dílčích obvodových bloků je popsána v kapitolách 5.. až

59 Perspektivní obvodové strktry pro modlární neronové sítě vstp Výpočetní blok Výpočetní blok Výpočetní blok Výpočetní blok Váhy Výpočetní blok Výpočetní blok Výpočetní blok Výpočetní blok Váhy Výpočetní blok Výpočetní blok Výpočetní blok Výpočetní blok Váhy Výpočetní blok Výpočetní blok Výpočetní blok Výpočetní blok Váhy Aktivace Přep. Řídicí logika Aktivace Přep. Aktivace Přep. Aktivace Přep. výstp Obr. 5.: Blokové schéma navržené strktry při spořádání 4x4 V obvod je požita šířka vstpní a výstpní propojovací sběrnice 8 bitů. Data přenášena sběrnicemi jso ve formát dvojkového doplňk s pevno řádovo čárko a rozsah jejich hodnot je reprezentován jako interval ; ). Tato šířka byla zvolena s ohledem na parametry dedikovaných bloků pro digitální zpracovaní signálů (8-bitové operandy) a paměťových bloků (možnost nastavení 8-bitových vstpů a výstpů)

60 Perspektivní obvodové strktry pro modlární neronové sítě 5.. Přepínač sběrnic Klíčovým prvkem navržené obvodové architektry je systém spořádání sběrnic a řízení datových toků na nich. Přepínání sběrnic je realizováno pomocí níže popsaného blok. Koncepční schéma přepínače sběrnic je na obrázk 5., v němž jso vyznačeny také jeho vstpy a výstpy. Tento přepínač je místěn v systém dvo sběrnic propojjících výpočetní bloky. Přepínač sběrnic může pracovat ve dvo režimech. V prvním režim znázorněném na obrázk 5.a jso vstpy a výstpy obo propojovacích sběrnic přímo propojeny. Vstpní sběrnice je připojena do vstpů následjící skpiny výpočetních bloků. K výstpní sběrnici jso připojeny výstpy výpočetních bloků z předcházející skpiny. Ve drhém pracovním režim přepínače, který je na obrázk 5.b, je realizováno propojení předchozího úsek výstpní sběrnice na následjící úsek vstpní sběrnice. Vstpní sběrnice Výstpy z neronů Výstpní sběrnice a) Výstpy do neronů b) Obr. 5.: Koncepční schéma přepínače sběrnic Obvodová realizace Pro přehlednost jso vstpy označení sběrnic tj: IB_in / IB_ot OB_in / OB_ot R_in / R_ot - řádek M R_req přepínače sběrnic je zobrazena na obrázk 5.4. a výstpy označeny zkratkami vycházejícími z anglického vstpní sběrnice - vstp / výstp (Inpt Bs in / ot) výstpní sběrnice - vstp / výstp (Otpt Bs in / ot) vstp / výstp (Row in / ot) režim (Mode) požadavek na vstp dat z řádk (Row reqest) Nastavení režimů přepínače je prováděno pomocí mltiplexorů a řízeno vstpem M. Dále je k řízení tok dat vyžíván vstp R_req. Vzhledem k tom, že v obvodech FPGA není možné realizovat třístavové sběrnice, je ntné definovat na všech výstpech v každém pracovním režim obvod logické úrovně. V režim, který je veden na 5.b, je v obvodové realizaci na výstp bdící výstpní sběrnice nastavena konstantní hodnota log

61 Perspektivní obvodové strktry pro modlární neronové sítě Vstpem R_req je definován požadavek na vystavení dat na výstpní sběrnici z výstpů dané skpiny výpočetních bloků. Tento požadavek je rovněž realizován mltiplexorem. IB_in OB_in R_in M 0 0 R_req R_ot IB_ot OB_ot Obr. 5.4: Blokové schéma přepínače sběrnic V průběh provoz obvod moho nastat čtyři případy nastavení signálových toků, které jso vyznačeny na obrázk 5.5. IB_in OB_in IB_in OB_in R_in M 0 R_in 0 0 M R_req R_req R_ot IB_ot R_ot OB_ot IB_ot OB_ot a) IB_in b) OB_in IB_in OB_in R_in M 0 R_in R_req 0 0 M R_req R_ot IB_ot OB_ot R_ot IB_ot c) OB_ot d) Obr. 5.5: Schéma signálových toků přepínače sběrnice - 5 -

62 Perspektivní obvodové strktry pro modlární neronové sítě Při implementaci do obvodů FPGA při pevném nastavení režim lze předpokládat, že velká část popsané logiky bde v průběh syntézy odstraněna. V opačném případě bde navržený obvod implementován pomocí náhledových tablek realizjících kombinační obvody. V případě realizace strktry přepínače sběrnic v obvodech ASIC lze často vyžívat i jiný přístp a propojováni sběrnic implementovat na tranzistorové úrovni. 5.. Výpočetní blok Výpočetní bloky tvoří jádro navržené architektry a složí k výpočt vnitřního potenciál neron. Blokové schéma výpočetního blok je na obrázk 5.6. Tyto bloky provádějí aritmetické operace násobení vstpů (dat z propojovacích sběrnic a váhových koeficientů) a akmlace mezivýsledk. Váhové koeficienty jso loženy v samostatném paměťovém blok, který je popsán v kapitole Klíčovo sočástí výpočetních bloků při realizaci v cílovém FPGA jso dedikované bloky pro digitální zpracování signálů (DSP48A [67]), v nichž jso tyto aritmetické operace prováděny. Tento blok možňje provádět výpočty s pevno řádovo čárko ve formát dvojkového doplňk, přičemž jso tyto výpočty zřetězeny. Zřetězení výpočtů probíhá ve dvo stpních, třetí stpeň obvod složí k přesn výsledk do výstpního registr. Příkaz RST MAC BIAS NOP Data 8 Váha 8 výsledek Výstp DSP48A Obr. 5.6: Blokové schéma výpočetního blok Pro řízení výpočetního blok složí pět základních příkazů, které jso naznačeny na obrázk 5.6, a jejichž fnkce je následjící: RST nlování mezivýsledk MAC násobení vstpů a akmlace výsledků BIAS nastavení prah neron - do akmlátor je ložena hodnota aktální váhy, datový vstp je ignorován NOP pozastavení výpočt výsledek přesn výsledk do výstpního registr - 5 -

63 Perspektivní obvodové strktry pro modlární neronové sítě Výše vedené příkazy, kromě příkaz výsledek, jso realizovány v DSP blok poze nastavením jeho parametrů. Postp výpočt vnitřního potenciál neron může být následjící:. Načtení hodnoty prah do akmlátor - příkaz BIAS.. Násobení hodnot vstpů s vahami a akmlace výsledků - příkazy MAC.. Přesn výsledk do výstpního registr - příkaz výsledek. 4. Výpočet dalšího vnitřního potenciál probíhá znov od bod. V některých případech je ntné tok dat obvodem a samotný výpočet pozastavit, jak bylo naznačeno v kapitole 5.., což je možněno příkazem NOP. Příkaz RST lze vyžít k nlování akmlátor nebo nastavení nlového prah. Výpočetní bloky jso sdržovány do skpin po čtyřech, jak bylo popsáno v koncepčním návrh architektry (obrázek 5.6). Výstpy výpočetních bloků dané skpiny jso vedeny do mltiplexor a následně do blok aktivační fnkce, jak je vedeno na obrázk 5.7. Hlavním důvodem pro sdržení výpočetních bloků do skpin po čtyřech při implementaci do cílového FPGA je možnost realizace mltiplexor se čtyřmi vstpy v tomto obvod jedino náhledovo tablko. Benefitem vedené realizace je minimální délka kombinační cesty. Vstp Výpočetní blok Výpočetní blok Aktivace Výstp Výpočetní blok Výpočetní blok xlut6 Výběr Obr. 5.7: Sdržování výpočetních bloků do skpin po čtyřech 5..4 Blok aktivační fnkce Aktivační fnkce realizjí výpočty výstpních potenciálů neronů, nezávisle na výpočtech vnitřních potenciálů. Jso tvořeny samostatnými bloky, jak bylo navrženo v praveném koncepčním schémat na obrázk 5.6. Obvodová realizace blok aktivační fnkce je na obrázk 5.8. Klíčovými sočástmi blok aktivační fnkce při implementaci do FPGA jso blok paměti(bram [68]) s náhledovo tablko a dedikovaný blok pro digitální zpracování signálů (DSP48A)

64 Perspektivní obvodové strktry pro modlární neronové sítě Satrace Vstp 8 LSB 9 MSB LUT f(x) 8 LUT f(x) 8 Dvojkový doplněk 48 Předzpracování dat Znaménko + BRAM 8 Výstp DSP48A Obr. 5.8: Blokové schéma blok aktivační fnkce Průběh aktivační fnkce je ložen ve dvo náhledových tablkách. První tablka obsahje úrovně aktivační fnkce ve vybraných bodech. Ve drhé náhledové tablce jso loženy hodnoty gradientů mezi sosedními body. Díky tom lze jednodše pomocí lineární interpolace rčit hodnoty aktivační fnkce ležící mezi body loženými v náhledové tablce. Lineární interpolace je realizována blokem pro digitální zpracování signálů. Výpočet lineární interpolace by bylo možné provádět i bez drhé náhledové tablky a potřebné hodnoty gradientů vypočítat z rozdíl dvo sosedících bodů. Obvodová implementace výpočt gradient by však byla velmi náročná na ploch obvod. Zvolené řešení navíc možňje realizovat výpočet aproximace aktivační fnkce metodo nejmenších čtverců, která dále samotno aproximaci zpřesňje. Hodnoty ložené v náhledových tablkách byly vypočítány v prostředí MATLAB zmiňovano metodo nejmenších čtverců. Obě náhledové tablky pro ložení hodnot aproximované fnkce jso v cílovém FPGA realizovány pomocí jednoho paměťového blok. Díky vyžití náhledových tablek lze v popisovaném blok realizovat libovolný průběh aktivační fnkce. Blok aktivační fnkce je navržen parametricky. Při syntéze je ntné nastavit dva povinné parametry: pozici desetinné řádové čárky a rozsah definičního obor aproximované části aktivační fnkce, která je ložena v náhledových tablkách. Na základě těchto dvo parametrů je rozlišena pozice bitů vstpního slova, které rčjí úsek aktálně aproximovaného úsek v náhledových tablkách a rozsah bitů, pomocí kterých lze rčit, zda je aktivační fnkci potřebné aproximovat. Na obrázk 5.9 je kázka případ korespondjícího se schématem na obrázk

65 Perspektivní obvodové strktry pro modlární neronové sítě Znaménko Satrace ± n 47 Pozice bod v náhledové tablce 0 - Celočíselná část... Gradient Desetinná část 0 - n 0 Obr. 5.9: Formát dat vstpjících do blok aktivační fnkce V neronových sítích se obvykle vyžívá poze část celkového průběh aktivační fnkce, a to konkrétně v úsecích, kde dochází k jejím největším nárůst, resp. kde je její derivace nejvyšší. V případě aktivační fnkce se sigmoidálním průběhem se stpněm volnosti se zpravidla volí interval ( 8 ; 8 ). Hodnoty ležící mimo tento zvolený interval lze považovat za konstantní a reprezentovat je maximem, resp. minimem obor hodnot aproximované fnkce (satrací). Proto jso i obvodově tyto hodnoty reprezentovány maximální, resp. minimální hodnoto, ktero lze reprezentovat na propojovacích sběrnicích. Detekce tohoto interval je zabezpečena v blok předzpracování dat. V blok předzpracování dat jso data převáděna z dvojkového doplňk do přímé binární reprezentace a znaménka. Díky tom lze v případě realizace soměrné aktivační fnkce požít poloviční velikost náhledové tablky nebo zvýšit přesnost aproximace ložením dvojnásobného počt úseků aproximované fnkce. Na základě znaménka jso data v posledním blok obvod převedena zpět do dvojkového doplňk a jso reprezentována hodnotami v interval ; ). Výsledek výpočt blok pro digitální zpracováni signálů má rozsah 48 bitů. Nadbytečné bity (LSB) jso odstraněny a na datovo sběrnici se vystavje horních 8 bitů (MSB). Výpočet aktivační fnkce je zřetězen a probíhá postpně v následjících krocích:. Předzpracování dat - převod z dvojkového doplňk do binární reprezentace.. Čtení hodnot z náhledových tablek.. Výpočet posn v aproximovaném úsek. 4. Sočet hodnoty získané v předchozím krok a výchozí hodnoty aproximovaného úsek. 5. Zpětný převod do dvojkového doplňk, vyhodnocení satrace a odstranění nevyžitých bitů. Latence obvod aktivační fnkce je 5 hodinových cyklů

66 Perspektivní obvodové strktry pro modlární neronové sítě 5..5 Další bloky Dalšími bloky potřebnými pro obvodovo realizaci navržené architektry jso blok řídicí logiky a bloky pamětí vah. Tyto bloky nebyly z důvod vysoké úrovně abstrakce v koncepčním návrh architektry zahrnty. Blok řídicí logiky nastavje průběh výpočtů neronové sítě. Tento blok rozhodje o směr tok dat obvodem přes propojovací sběrnice nastavováním režimů přepínačů. Dále pomocí příkazů řídí činnost výpočetních bloků a rčje adresy váhových koeficientů. V případě realizace architektry rozšířené o zpětno vazb, případně vyrovnávací paměť, nastavje blok řídicí logiky řazení dat kládaných a čtených z těchto pamětí. Vlastní fnkce blok řídicí logiky je závislá na konkrétní topologii realizovaného obvod a na mapování neronové sítě, případně několika sítí, do cílového obvod. Blok řídicí logiky je možné realizovat několika způsoby. Jedním z těchto způsobů je návrh stavového atomat, který vytváří sekvenci signálů, jimiž jso řízeny ostatní bloky, zejména přepínače sběrnic a výpočetní bloky. Pokd je blok řídicí logiky realizován pomocí stavového atomat, lze jej jednodše rozšířit o další fnkce, např. o požadavek na pozastavení výpočt z případného nadřazeného systém. Dalším vhodným způsobem realizace blok řídici logiky je požití čítače a dekodér. Čítač v tomto případě rčje aktální fázi výpočt a dekodér vytváří sekvenci potřebných výstpních signálů, které jso vedeny do ostatních bloků obvod. Pro ověření fnkce obvodového celk byl v rámci předkládané dizertační práce navržen blok řídicí logiky vyžívající stavový atomat zahrnjící možnost pozastavit tok dat. Posledním blokem obvodové realizace navržené architektry je blok pro kládání váhových koeficientů. Tento blok kládá data váhových koeficientů pro čtyři výpočetní bloky. Jeho obvodová realizace v cílovém FPGA vyžívá jeden dedikovaný paměťový blok. Cílové FPGA obsahje 6 paměťových bloků velikosti 8 kb.[68] Paměťové bloky v tomto FPGA je možné rozdělit na dva dílčí bloky o velikosti 9kb, přičemž každý dílčí blok je dvoportový. Tímto způsobem lze přistpovat k datům výchozího paměťového blok prostřednictvím čtyř nezávislých portů a ty přímo propojit s navazjícími výpočetními bloky. Do jednoho blok velikosti 8 kb lze ložit celkem 04 váhových koeficientů (56 pro každý výpočetní blok). V případě, že počet koeficientů není dostatečný pro dano aplikaci, lze paměťové bloky propojit a zvýšit tak jejich kapacit

67 Perspektivní obvodové strktry pro modlární neronové sítě 5..6 Shrntí Navržené obvodové bloky byly popsány v jazyce VHDL, následně byla provedena jejich syntéza a pomocí simlací ve vývojovém prostředí Xilinx ISE zjištěny jejich dynamické parametry a rčena spotřeba logických prostředků v cílovém FPGA Spartan-6 (XC6SLX45-CSG4). Tyto parametry jso smarizovány v tablce 5.. Ve spodní části tablky jso výsledky syntézy samostatného sběrnicového systém možňjícího propojení čtyř, resp. osmi skpin výpočetních bloků. Dále je zde pro srovnání veden výsledek syntézy navržené strktry obsahjící čtyři resp. osm skpin výpočetních bloků. Tab. 5.: Parametry bloků a obvodových architektr neron pro vybrané případy Časové parametry Spotřebované bloky Blok fmax[mhz] td[ns] LUT FFD DSP48A BRAM Přepínač sběrnicea - 5, Přepínač sběrniceb 6, Přepínač sběrnicea - 5,9 / 4,40 / Přepínač sběrniceb 640,7 / 706,7 - / 5/ - - Výpočetní blok 485, Paměť vah 95, Aktivační fnkce4 95,67-06 Řídící logika5 474, Sběrnice 4 blokyb 86, b 7, Obvod 4x4 74, Obvod 8x4 0, Sběrnice 8 bloků pozn. - s možností změny režim (šířka bit), - pevně nastavený režim 0 / režim (šířka bit) a - poze kombinační síť (+ zpoždění vstp a výstp), b - registrované vstpy a výstpy - slovo 8 bit, 04 vah, 4 porty 4 - realizace s převodem z dvojkového doplňk 5 - stavový atomat pro síť 8:4:4 v obvod 4x4 V případě realizace obvodové strktry s pevně definovano neronovo sítí může návrhový systém provést atomatické odstranění nadbytečných bloků (nevyžívaných pro výpočty neronů). Tato možnost není garantována samotným popisem v jazyce VHDL a je závislá na kvalitě systém požitého pro syntéz obvod. Přímým důsledkem odstranění nadbytečných bloků může být snížení počt potřebných bloků v cílovém obvod a zvýšení pracovní frekvence

68 Perspektivní obvodové strktry pro modlární neronové sítě Do cílového FPGA, které obsahje 58 dedikovaných bloků pro digitální zpracování signálů a 6 paměťových bloků, lze implementovat obvodovo realizaci navržené architektry obsahjící 44 výpočetních bloků a bloků aktivační fnkce. Většina paměťových bloků v tomto případě nebde požita, a nebo bde potřebena k jiným účelům, tedy ke zvýšení počt ložených váhových koeficientů nebo k zpřesnění náhledových tablek v blocích realizjících aktivační fnkci. Zvýšení počt ložený váhových koeficientů může být žádocí při realizaci obvod sočasně implementjícího několik různých neronových sítí. Případně moho být zbylé paměťové bloky vyžity k realizaci vyrovnávací paměti v pravené architektře na obrázk 5.7 Všechny výše vedené obvodové bloky byly popsány parametricky a tyto parametry nastaveny s ohledem na implementaci do vybraného FPGA. Díky parametrickém popis je možné navržené bloky snadno optimalizovat i pro jiné FPGA. Při realizaci bloků vedené koncepce do zákaznických obvodů by bylo ntné vytvořit obvodové modely, které by nahradily dedikované bloky pro digitální zpracování signálů a paměťové bloky. 5.4 Experimentální část Pro ověření fnkčnosti obvodové realizace systém (kapitola 5.) jako celk založeného na navržené obvodové architektře (kapitola 5.) byly provedeny dva experimenty. První experiment byl zaměřen zejména na ověření fnkčnosti samotného obvod a v jeho rámci byla zpracována úloha označována jako XOR problém. V rámci drhého experiment byla realizována neronová síť provádějící filtraci obraz Ověření fnkčnosti navrženého obvod Pro ověření fnkce navržené obvodové architektry byla zvolena úloha řešící problém implementace fnkce XOR do neronové sítě. Tato úloha je obvykle označovaná jako XOR problém. Existje několik řešení tohoto problém a v literatře věnjící se neronovým sítím často složí i k demonstraci fnkce vícevrstvých dopředných neronových sítí.[] [] [5] [] Uspořádání několika strktr neronových sítí požívaných k řešení problém XOR je na obrázk 5.0. [] Pro ověřovací úloh byla zvolena sít dle obrázk 5.0a, která je jednodše implementovatelná do navržené obvodové strktry, protože se jedná o plně propojeno dopřední síť neobsahjící zkratky mezi vrstvami

69 Perspektivní obvodové strktry pro modlární neronové sítě a) b) c) Obr. 5.0: Uspořádání neronových sítí řešících XOR problém [] Fnkce navržené obvodové strktry byla ověrena postpem, při kterém byly porovnány výsledky dvo simlací. První simlace byla provedena v prostředí MATLAB. V drhém případě se jednalo o behaviorální fnkční simlaci RTL model navrženého obvod v prostředí XILINX ISE v simlačním nástroji ISim. Výsledky získané simlací v prostředí MATLAB byly vypočítány v dvojité přesnosti (dle normy IEEE 754, 64-bit) a jso považovány za referenční. Rozdíl mezi referenční simlací a simlací v nástroji ISim možňje získat představ o přesnosti výpočtů navržené obvodové strktry při implementaci neronové sítě malého rozsah. V takovém případě nedochází ke zkreslení dat průchodem přes více vrstev neronů. Ve většině případů by nižší přesnost výpočt v obvod ani zkreslení způsobené průchodem dat více vrstvami nemělo mít významný vliv na fnkci neronových sítí, a to díky vysoké odolnosti neronových sítí vůči šm. Pro simlace byla zvolena síť z obrázk 5.0a. Tato síť neobsahje zkratky mezi vrstvami, proto je její požití a implementace v prostředí MATLAB s požitím knihovny Neral Network Toolbox poměrně jednodché. Učení neronové sítě bylo provedeno pomocí množiny dat sestavených dle náhledové tablky logické fnkce XOR, kde log. 0 byla reprezentována hodnoto - a log. byla reprezentována hodnot. Jako aktivační fnkce neronů byla požita bipolární sigmoidální fnkce dle rovnice.5, a to z důvodů vedených v kapitole Vzhledem k tom, že knihovna Neral Network Toolbox neobsahje zvoleno aktivační fnkci, bylo ntné ji do knihovny doplnit

70 Perspektivní obvodové strktry pro modlární neronové sítě - x0 0 - y - x Obr. 5.: Schéma neronové sítě načené pro řešení problém fnkce XOR Topologie realizované neronové sítě i hodnoty váhových koeficientů jso na obrázk 5.. Hodnoty těchto koeficientů byly převzaty z pblikace [5] a manálně praveny. Tato úprava byla provedena z důvod názornější vizalizace průběh odezvy neronové sítě na vstpy. Průběh simlace odezvy neronové sítě v prostředí MATLAB je na obrázk 5.. Obr. 5.: Průběh výstp neronové sítě pro fnkci XOR

71 Perspektivní obvodové strktry pro modlární neronové sítě Obr. 5.: Výstpy neronových sítí pro fnkci XOR načené pomocí ANN Toolbox Další referenční data byla získána z neronových sítí načených pro řešení problém fnkce XOR v prostředí MATLAB s požitím knihovny Neral Network Toolbox. Identická topologie neronové sítě byla realizována v navržené obvodové architektře. Samotná síť byla mapována do obvod obsahjícího dvě skpiny výpočetních bloků po čtyřech. Váhové koeficienty byly přeneseny do paměťových bloků obvod, přepínače sběrnic byly nastaveny fixně a výpočet dílčích vrstev probíhal v obvod zřetězeně. Následně byla provedena behaviorální simlace a výsledky získané toto simlací byly porovnány s výsledky referenčními. Maximální odchylka dat získaných behaviorální simlací od referenčních byla,5*0-5, což přibližně odpovídá hodnotě LSB dat na propojovacích sběrnicích. Obvodová realizace navržené architektry je fnkční, přičemž hodnota odchylky je akceptovatelná Aplikace s vyžitím navržené architektry Cílem drhého experiment bylo ověření fnkčnosti navržené architektry realizované v obvod FPGA. Toto ověření bylo provedeno v aplikací zaměřené na filtraci obrazových dat pomocí neronové sítě. V rámci zmiňovaného experiment byla navržena neronová síť možňjící filtrovat obraz implzní šm v obraz. Topologie navržené neronové sítě je 9:0:0:9. Postp vkládání šm a následné filtrace je přiblížen na obrázk 5.4. Neronová síť možňje filtrovat úseky obraz velikosti x body

72 Perspektivní obvodové strktry pro modlární neronové sítě Vstpní obraz + Segmentace obraz (x) Neronová síť 9:0:0:9 Zpětná kompozice Výstpní obraz Implzní šm Obr. 5.4: Filtrace obraz pomocí neronové sítě Pro čení neronové sítě byly vybrány obrazy z databáze USC-SIPI (University of Sothern California - Signal and Image Processing Institte) obvykle požívané pro testování grafických algoritmů. Samotné čení neronové sítě bylo provedeno v prostředí MATLAB s požitím knihovny Neral Network Toolbox. Ukázka schopnosti načené neronové sítě filtrovat v obraz implzní šm s úrovní 5% je na obrázk 5.5. Zdrojový obraz neobsahjící šm je na obrázk 5.5a, zašměný obraz je na obrázk 5.5b a obraz po filtraci neronovo sítí je pak na obrázk 5.5c. a) b) c) Obr. 5.5: Ukázka odstranění šm z obraz Pro obvodovo implementaci neronové sítě byla vybrána pravená architektra dle obrázk 5.7 vyžívající zpětno vazb a obsahjící pět skpin výpočetních bloků. Vzhledem k tom, že nejširší vrstva realizované neronové sítě obsahovala 0 neronů - 6 -

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY. Ing. Marek Bohrn

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY. Ing. Marek Bohrn VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY Ing. Marek Bohrn PERSPEKTIVNÍ OBVODOVÉ STRUKTURY PRO MODULÁRNÍ NEURONOVÉ SÍTĚ PROMISING CIRCUIT

Více

5. Umělé neuronové sítě. Neuronové sítě

5. Umělé neuronové sítě. Neuronové sítě Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně

Více

Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc

Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc Neuronové sítě a možnosti jejich využití Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc 1. Biologický neuron Osnova 2. Neuronové sítě Umělý neuron

Více

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy

Více

FPGA + mikroprocesorové jádro:

FPGA + mikroprocesorové jádro: Úvod: V tomto dokumentu je stručný popis programovatelných obvodů od firmy ALTERA www.altera.com, které umožňují realizovat číslicové systémy s procesorem v jenom programovatelném integrovaném obvodu (SOPC

Více

Neuronové sítě Ladislav Horký Karel Břinda

Neuronové sítě Ladislav Horký Karel Břinda Neuronové sítě Ladislav Horký Karel Břinda Obsah Úvod, historie Modely neuronu, aktivační funkce Topologie sítí Principy učení Konkrétní typy sítí s ukázkami v prostředí Wolfram Mathematica Praktické aplikace

Více

Algoritmy a struktury neuropočítačů ASN - P11

Algoritmy a struktury neuropočítačů ASN - P11 Aplikace UNS při rozpoznání obrazů Základní úloha segmentace obrazu rozdělení obrazu do několika významných oblastí klasifikační úloha, clusterová analýza target Metody Kohonenova metoda KSOM Kohonenova

Více

TRANSFORMACE BLOKOVÉHO SCHÉMATU NA CELKOVÝ PŘENOS

TRANSFORMACE BLOKOVÉHO SCHÉMATU NA CELKOVÝ PŘENOS TRANSFORMACE BLOKOVÉHO SCHÉMATU NA CELKOVÝ PŘENOS Vladimír Hanta Vsoká škola chemicko technologická v Praze, Ústav počítačové a řídicí technik Abstrakt Algebra blokových schémat a požití Masonova pravidla

Více

LOGICKÉ OBVODY. Dle vnitřní struktury logické obvody rozdělujeme na:

LOGICKÉ OBVODY. Dle vnitřní struktury logické obvody rozdělujeme na: OGICKÉ OBVODY Dle vnitřní strktry logické obvody rozděljeme na: a) kombinační - nemají vnitřní zpětné vazby. Všem kombinacím vstpů jso jednoznačně přiřazeny hodnoty výstpů, bez ohled na předcházející stav.

Více

Algoritmy a struktury neuropočítačů ASN - P10. Aplikace UNS v biomedicíně

Algoritmy a struktury neuropočítačů ASN - P10. Aplikace UNS v biomedicíně Aplikace UNS v biomedicíně aplikace v medicíně postup při zpracování úloh Aplikace UNS v medicíně Důvod: nalezení exaktnějších, levnějších a snadnějších metod určování diagnóz pro lékaře nalezení šetrnějších

Více

Neuronové sítě. Vlasta Radová Západočeská univerzita v Plzni katedra kybernetiky

Neuronové sítě. Vlasta Radová Západočeská univerzita v Plzni katedra kybernetiky Neuronové sítě Vlasta Radová Západočeská univerzita v Plzni katedra kybernetiky Motivace pro výzkum umělých neuronových sítí lidský mozek pracuje jiným způsobem než běžné číslicové počítače počítače přesně

Více

NG C Implementace plně rekurentní

NG C Implementace plně rekurentní NG C Implementace plně rekurentní neuronové sítě v systému Mathematica Zdeněk Buk, Miroslav Šnorek {bukz1 snorek}@fel.cvut.cz Neural Computing Group Department of Computer Science and Engineering, Faculty

Více

Architektura Intel Atom

Architektura Intel Atom Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí

Více

MĚŘENÍ Laboratorní cvičení z měření Měření přenosových vlastností dvojbranu, část

MĚŘENÍ Laboratorní cvičení z měření Měření přenosových vlastností dvojbranu, část MĚŘENÍ Laboratorní cvičení z měření Měření přenosových vlastností dvojbran, část 3-12-1 Výkový materiál Číslo projekt: CZ.1.07/1.5.00/34.0093 Šablona: III/2 Inovace a zkvalitnění výky prostřednictvím ICT

Více

Nelineární model tepelné soustavy a GPC regulátor

Nelineární model tepelné soustavy a GPC regulátor Nelineární model tepelné sostavy a GP reglátor Ing Jan Mareš Školitel: oc Ing František šek, c Univerzita Pardbice Faklta chemicko-technologická Katedra řízení procesů Obsah 1 Popis tepelné sostavy 2 Požadavky

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

Více

Trénování sítě pomocí učení s učitelem

Trénování sítě pomocí učení s učitelem Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup

Více

LTC 8600 Modulární maticové přepínače a řídicí systémy Allegiant

LTC 8600 Modulární maticové přepínače a řídicí systémy Allegiant Video 86 Modlární maticové přepínače a řídicí systémy Allegiant 86 Modlární maticové přepínače a řídicí systémy Allegiant www.boschsecrity.cz Přepínání 8 kamer na 6 monitorech Modlární konstrkce Výkonné

Více

Vytěžování znalostí z dat

Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 1/26 Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec Department of Computer Systems Faculty of Information

Více

Střídače. přednáška výkonová elektronika. Projekt ESF CZ.1.07/2.2.00/ Modernizace didaktických metod a inovace výuky technických předmětů.

Střídače. přednáška výkonová elektronika. Projekt ESF CZ.1.07/2.2.00/ Modernizace didaktických metod a inovace výuky technických předmětů. přednáška výkonová elektronika Projekt ESF CZ.1.07/2.2.00/28.0050 Modernizace didaktických metod a inovace výky technických předmětů. Střídače Střídače obvody s vstpní strano stejnosměrno a výstpní střídavo

Více

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010 Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už

Více

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů A0M38SPP - Signálové procesory v praxi - přednáška 4 2 Číslicové filtry typu FIR a IIR definice operace filtrace základní rozdělení FIR, IIR základní vlastnosti, používané struktury filtrů návrhové prostředky

Více

Umělé neuronové sítě

Umělé neuronové sítě Umělé neuronové sítě 17. 3. 2018 5-1 Model umělého neuronu y výstup neuronu u vnitřní potenciál neuronu w i váhy neuronu x i vstupy neuronu Θ práh neuronu f neuronová aktivační funkce 5-2 Neuronové aktivační

Více

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Semestrální práce z předmětu Speciální číslicové systémy X31SCS Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší

Více

Rosenblattův perceptron

Rosenblattův perceptron Perceptron Přenosové funkce Rosenblattův perceptron Rosenblatt r. 1958. Inspirace lidským okem Podle fyziologického vzoru je třívrstvá: Vstupní vrstva rozvětvovací jejím úkolem je mapování dvourozměrného

Více

BDIO - Digitální obvody

BDIO - Digitální obvody BIO - igitální obvody Ústav Úloha č. 6 Ústav mikroelektroniky ekvenční logika klopné obvody,, JK, T, posuvný registr tudent Cíle ozdíl mezi kombinačními a sekvenčními logickými obvody. Objasnit principy

Více

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů Kapitola 1 Signály a systémy 1.1 Klasifikace signálů Signál představuje fyzikální vyjádření informace, obvykle ve formě okamžitých hodnot určité fyzikální veličiny, která je funkcí jedné nebo více nezávisle

Více

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Literatura W.Stallings: Computer Organization & Architecture J.L.Hennessy, P.A.Patterson: Patterson: Computer Architecture: a Quantitative Approach

Více

Neuronové sítě v DPZ

Neuronové sítě v DPZ Univerzita J. E. Purkyně v Ústí nad Labem Fakulta životního prostředí Neuronové sítě v DPZ Seminární práce z předmětu Dálkový průzkum Země Vypracovali: Jan Lantora Rok: 2006 Zuzana Vašková Neuronové sítě

Více

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby Algoritmy a struktury neuropočítačů ASN P4 Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby Vrstevnatá struktura - vícevrstvé NN (Multilayer NN, MLNN) vstupní vrstva (input layer)

Více

Využití neuronové sítě pro identifikaci realného systému

Využití neuronové sítě pro identifikaci realného systému 1 Portál pre odborné publikovanie ISSN 1338-0087 Využití neuronové sítě pro identifikaci realného systému Pišan Radim Elektrotechnika 20.06.2011 Identifikace systémů je proces, kdy z naměřených dat můžeme

Více

2. PŘESNOST MĚŘENÍ A1B38EMA P2 1

2. PŘESNOST MĚŘENÍ A1B38EMA P2 1 . ŘESNOST MĚŘENÍ přesnost měření nejistota měření, nejistota typ A a typ B, kombinovaná nejistota, nejistoty měření kazovacími (analogovými) a číslicovými měřicími přístroji, nejistota při nepřímých měřeních,

Více

Profilová část maturitní zkoušky 2015/2016

Profilová část maturitní zkoušky 2015/2016 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Mikrokontroléry. Doplňující text pro POS K. D. 2001 Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou

Více

Programovatelná logika

Programovatelná logika Programovatelná logika Přehled historie vývoje technologie programovatelných obvodů. Obvody PLD, GAL,CPLD, FPGA Příklady systémů a vývojových prostředí. Moderní elektrotechnický průmysl neustále stupňuje

Více

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín

Více

PV021: Neuronové sítě. Tomáš Brázdil

PV021: Neuronové sítě. Tomáš Brázdil 1 PV021: Neuronové sítě Tomáš Brázdil Cíl předmětu 2 Na co se zaměříme Základní techniky a principy neuronových sítí (NS) Přehled základních modelů NS a jejich použití Co si (doufám) odnesete Znalost základních

Více

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číselné vyjádření hodnoty. Kolik váží hrouda zlata? Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží

Více

SYSTÉMY NAČIPU MI-SOC

SYSTÉMY NAČIPU MI-SOC Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti SYSTÉMY NAČIPU MI-SOC doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze Hana Kubátová

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

Profilová část maturitní zkoušky 2014/2015

Profilová část maturitní zkoušky 2014/2015 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý

Více

Principy počítačů I Netradiční stroje

Principy počítačů I Netradiční stroje Principy počítačů I Netradiční stroje snímek 1 Principy počítačů Část X Netradiční stroje VJJ 1 snímek 2 Netradiční procesory architektury a organizace počítačů, které se vymykají struktuře popsané Johnem

Více

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o. Zpracování obrazu v FPGA Leoš Maršálek ATEsystem s.r.o. Základní pojmy PROCESOROVÉ ČIPY Křemíkový čip zpracovávající obecné instrukce Různé architektury, pracují s různými paměti Výkon instrukcí je závislý

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

OPS Paralelní systémy, seznam pojmů, klasifikace Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus

Více

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant Video LTC 85 Modlární maticové přepínače a řídicí systémy Allegiant LTC 85 Modlární maticové přepínače a řídicí systémy Allegiant www.boschsecrity.cz Přepínání 64 kamer na 8 monitorech 8 nezávislých klávesnic

Více

5. Umělé neuronové sítě. neuronové sítě. Umělé Ondřej Valenta, Václav Matoušek. 5-1 Umělá inteligence a rozpoznávání, LS 2015

5. Umělé neuronové sítě. neuronové sítě. Umělé Ondřej Valenta, Václav Matoušek. 5-1 Umělá inteligence a rozpoznávání, LS 2015 Umělé neuronové sítě 5. 4. 205 _ 5- Model umělého neuronu y výstup neuronu u vnitřní potenciál neuronu w i váhy neuronu x i vstupy neuronu Θ práh neuronu f neuronová aktivační funkce _ 5-2 Neuronové aktivační

Více

Neuropočítače. podnět. vnímání (senzory)

Neuropočítače. podnět. vnímání (senzory) Neuropočítače Princip inteligentního systému vnímání (senzory) podnět akce (efektory) poznání plánování usuzování komunikace Typické vlastnosti inteligentního systému: schopnost vnímat podněty z okolního

Více

Neuronové časové řady (ANN-TS)

Neuronové časové řady (ANN-TS) Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci

Více

Algoritmy a struktury neuropočítačů ASN - P1

Algoritmy a struktury neuropočítačů ASN - P1 Algoritmy a struktury neuropočítačů ASN - P1 http://amber.feld.cvut.cz/ssc www.janatuckova.cz Prof.Ing. Jana Tučková,CSc. Katedra teorie obvodů K331 kancelář: 614, B3 tel.: 224 352 098 e-mail: tuckova@fel.cvut.cz

Více

Bilance nejistot v oblasti průtoku vody. Mgr. Jindřich Bílek

Bilance nejistot v oblasti průtoku vody. Mgr. Jindřich Bílek Bilance nejistot v oblasti průtok vody Mgr. Jindřich Bílek Nejistota měření Parametr přiřazený k výsledk měření ymezje interval, o němž se s rčito úrovní pravděpodobnosti předpokládá, že v něm leží sktečná

Více

DODATEK. D0. Nejistoty měření

DODATEK. D0. Nejistoty měření DODATEK D4. Příklad výpočt nejistoty přímého měření D0. Nejistoty měření Výklad základů charakterizování přesnosti měření podaný v kap..3 je založen na pojmech chyba měření a správná hodnota měřené veličiny

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

C2115 Praktický úvod do superpočítání

C2115 Praktický úvod do superpočítání C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137

Více

Architektura - struktura sítě výkonných prvků, jejich vzájemné propojení.

Architektura - struktura sítě výkonných prvků, jejich vzájemné propojení. Základní pojmy z oblasti neuronových sítí Zde je uveden přehled některých základních pojmů z oblasti neuronových sítí. Tento přehled usnadní studium a pochopení předmětu. ADALINE - klasická umělá neuronová

Více

PROGRAMOVATELNÉ LOGICKÉ OBVODY

PROGRAMOVATELNÉ LOGICKÉ OBVODY PROGRAMOVATELNÉ LOGICKÉ OBVODY (PROGRAMMABLE LOGIC DEVICE PLD) Programovatelné logické obvody jsou číslicové obvody, jejichž logická funkce může být programována uživatelem. Výhody: snížení počtu integrovaných

Více

Laboratorní úloha Seřízení PI regulátoru

Laboratorní úloha Seřízení PI regulátoru Laboratorní úloha Seřízení PI reglátor 1. Stanovení optimálních parametrů (r 0 (zesílení), I (časová integrační konstanta)) reglátor PI pro reglaci sostavy tří nádrží vyžitím přechodové odezvy reglované

Více

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností Automatizace je proces při němž je řídicí funkce člověka nahrazována činností různých přístrojů a zařízení. (Mechanizace, Automatizace, Komplexní automatizace) Kybernetika je Věda, která zkoumá obecné

Více

Ambasadoři přírodovědných a technických oborů. Ing. Michal Řepka Březen - duben 2013

Ambasadoři přírodovědných a technických oborů. Ing. Michal Řepka Březen - duben 2013 Ambasadoři přírodovědných a technických oborů Ing. Michal Řepka Březen - duben 2013 Umělé neuronové sítě Proč právě Neuronové sítě? K čemu je to dobré? Používá se to někde v praxi? Úvod Umělé neuronové

Více

ZÁKLADNÍ METODY REFLEKTOMETRIE

ZÁKLADNÍ METODY REFLEKTOMETRIE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

Více

Cíle. Teoretický úvod

Cíle. Teoretický úvod Předmět Ú Úloha č. 7 BIO - igitální obvody Ú mikroelektroniky Sekvenční logika návrh asynchronních a synchronních binárních čítačů, výhody a nevýhody, využití Student Cíle Funkce čítačů a použití v digitálních

Více

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Číslicová filtrace FIR filtry IIR filtry Tyto materiály vznikly za podpory Fondu rozvoje

Více

I. Současná analogová technika

I. Současná analogová technika IAS 2010/11 1 I. Současná analogová technika Analogové obvody v moderních komunikačních systémech. Vývoj informatických technologií v poslední dekádě minulého století digitalizace, zvýšení objemu přenášených

Více

Direct Digital Synthesis (DDS)

Direct Digital Synthesis (DDS) ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Direct Digital Synthesis (DDS) Přímá číslicová syntéza Tyto materiály vznikly za podpory

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

Procesor. Hardware - komponenty počítačů Procesory

Procesor. Hardware - komponenty počítačů Procesory Procesor Jedna z nejdůležitějších součástek počítače = mozek počítače, bez něhož není počítač schopen vykonávat žádné operace. Procesor v počítači plní funkci centrální jednotky (CPU - Central Processing

Více

Implementace umělé neuronové sítě do obvodu FPGA

Implementace umělé neuronové sítě do obvodu FPGA VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

Více

FPC-500 Konvenční ústředna EPS

FPC-500 Konvenční ústředna EPS Systémy EPS FPC-500 Konvenční ústředna EPS FPC-500 Konvenční ústředna EPS www.boschsecrity.cz Vysoce moderní optika vhodná pro veřejná prostranství Displej LCD s prostým textem K dispozici pro 2, 4 nebo

Více

Systémové elektrické instalace KNX/EIB (13. část) Ing. Josef Kunc

Systémové elektrické instalace KNX/EIB (13. část) Ing. Josef Kunc Systémové elektrické instalace KNX/EIB (13. část) Ing. Josef Kunc Dosud jsme popsali dvě ze tří základních skupin přístrojů pro KNX/EIB systémové instalace snímače a akční členy. Třetí základní skupinou

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv

Více

LOGICKÉ OBVODY X36LOB

LOGICKÉ OBVODY X36LOB LOGICKÉ OBVODY X36LOB Doc. Ing. Hana Kubátová, CSc. Katedra počítačů FEL ČVUT v Praze 26.9.2008 Logické obvody - 1 - Úvod 1 Obsah a cíle předmětu Číslicový návrh (digital design) Číslicové obvody logické

Více

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur Přehled paralelních architektur Přehled paralelních architektur Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur Přehled I. paralelní počítače se konstruují

Více

Pokročilé operace s obrazem

Pokročilé operace s obrazem Získávání a analýza obrazové informace Pokročilé operace s obrazem Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 (BFÚ LF MU) Získávání

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

Více

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_13_HARDWARE_S1 Číslo projektu: CZ 1.07/1.5.00/34.1077

Více

Algoritmy a struktury neuropočítačů ASN - P14. Neuropočítače

Algoritmy a struktury neuropočítačů ASN - P14. Neuropočítače Neuropočítače speciální výpočetní prostředky pro urychlení výpočtů neuronových sítí implementace zjednodušených algoritmů obvykle celočíselná aritmetika v kombinaci s normováním vstupních vektorů Rozdělení

Více

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni ělení pamětí Volatilní paměti Nevolatilní paměti Počítačové systémy Vnitřní paměti Miroslav Flídr Počítačové systémy LS 2006-1/11- Západočeská univerzita v Plzni ělení pamětí Volatilní paměti Nevolatilní

Více

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí. Základní pojmy IT, číselné soustavy, logické funkce Základní pojmy Počítač: Stroj na zpracování informací Informace: 1. data, která se strojově zpracovávají 2. vše co nám nebo něčemu podává (popř. předává)

Více

Logické funkce a obvody, zobrazení výstupů

Logické funkce a obvody, zobrazení výstupů Logické funkce a obvody, zobrazení výstupů Digitální obvody (na rozdíl od analogových) využívají jen dvě napěťové úrovně, vyjádřené stavy logické nuly a logické jedničky. Je na nich založeno hodně elektronických

Více

5. Diodové usměrňovače

5. Diodové usměrňovače 5. Diodové směrňovače Usměrňovač je polovodičový prvek, který mění střídavé napětí a prod na stejnosměrný. Podle toho, zda je výstpní směrněné napětí možno řídit či ne se dělí směrňovače na řízené a neřízené.

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data

Více

Návrh. číslicových obvodů

Návrh. číslicových obvodů Návrh číslicových obvodů SW Aritmetika HW Periférie CPU function AddSub(a,b,s); var c; a b k k a+b mpx c if (s==1) c=a+b; else c=a-b; a-b return c; End; PAMĚŤ s Princip: univerzální stroj Výhoda: univerzalita

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

LTC 8800 Modulární maticové přepínače a řídicí systémy Allegiant

LTC 8800 Modulární maticové přepínače a řídicí systémy Allegiant Video LTC 88 Modlární maticové přepínače a řídicí systémy Allegiant LTC 88 Modlární maticové přepínače a řídicí systémy Allegiant www.boschsecrity.cz Přepínání 56 kamer na 64 monitorech Rozšiřitelnost

Více

Struktura a architektura počítačů (BI-SAP) 10

Struktura a architektura počítačů (BI-SAP) 10 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 10 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Operace ALU. INP 2008 FIT VUT v Brně

Operace ALU. INP 2008 FIT VUT v Brně Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá

Více

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D. Úvod do modelování a simulace systémů Ing. Michal Dorda, Ph.D. 1 Základní pojmy Systém systémem rozumíme množinu prvků (příznaků) a vazeb (relací) mezi nimi, která jako celek má určité vlastnosti. Množinu

Více

28.z-8.pc ZS 2015/2016

28.z-8.pc ZS 2015/2016 Ústav technologie, mechanizace a řízení staveb Teorie měření a regulace počítačové řízení 5 28.z-8.pc ZS 2015/2016 2015 - Ing. Václav Rada, CSc. Další hlavní téma předmětu se dotýká obsáhlé oblasti logického

Více

Systémy pro sběr a přenos dat

Systémy pro sběr a přenos dat Systémy pro sběr a přenos dat propojování distribuovaných systémů modely Klient/Server, Producent/Konzument koncept VFD (Virtual Field Device) Propojování distribuovaných systémů Používá se pojem internetworking

Více

Úloha č. 9a + X MĚŘENÍ ODPORŮ

Úloha č. 9a + X MĚŘENÍ ODPORŮ Úloha č. 9a X MĚŘENÍ ODPOŮ Úkol měření: 1. Na základě přímého měření napětí a prod rčete odpor neznámého vzork.. rčete absoltní a relativní nejistot odpor. 3. elikost neznámého odpor změřte dále metodo

Více

Úvod do zpracování signálů

Úvod do zpracování signálů 1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 7 ČASOVÁNÍ A SYNCHRONIZACE TECHNICKÉHO VYBAVENÍ doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních

Více

4. Úvod do paralelismu, metody paralelizace

4. Úvod do paralelismu, metody paralelizace 4. Úvod do paralelismu, metody paralelizace algoritmů Ing. Michal Bližňák, Ph.D. Ústav informatiky a umělé inteligence Fakulta aplikované informatiky UTB Zĺın Paralelní procesy a programování, Zĺın, 26.

Více

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

ASYNCHRONNÍ ČÍTAČE Použité zdroje: ASYNCHRONNÍ ČÍTAČE Použité zdroje: Antošová, A., Davídek, V.: Číslicová technika, KOPP, České Budějovice 2007 http://www.edunet.souepl.cz www.sse-lipniknb.cz http://www.dmaster.wz.cz www.spszl.cz http://mikroelektro.utb.cz

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 8 SÍTĚ NAČIPU (NOC) doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze Hana

Více

Strojové učení se zaměřením na vliv vstupních dat

Strojové učení se zaměřením na vliv vstupních dat Strojové učení se zaměřením na vliv vstupních dat Irina Perfilieva, Petr Hurtík, Marek Vajgl Centre of excellence IT4Innovations Division of the University of Ostrava Institute for Research and Applications

Více

I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í. výstup

I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í. výstup ELEKTONIKA I N V E S T I C E D O O Z V O J E V Z D Ě L Á V Á N Í 1. Usměrňování a vyhlazování střídavého a. jednocestné usměrnění Do obvodu střídavého proudu sériově připojíme diodu. Prochází jí proud

Více