Implementace umělé neuronové sítě do obvodu FPGA
|
|
- Adéla Vaňková
- před 6 lety
- Počet zobrazení:
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 Implementace umělé neuronové sítě do obvodu FPGA FPGA implementation of artificial neural network DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. Čermák Justin Ing. Marek Bohrn BRNO, 2011
2 Abstrakt Tato diplomová práce se zabývá návrhem efektivně pracujícího obvodu umělé neuronové sítě v obvodu FPGA řady Virtex-5 s maximálním využitím možnosti paralelizace výpočtů. Teoretická část obsahuje základní informace o umělých neuronových sítích, obvodech FPGA a jazyce VHDL. Praktická část popisuje použitý formát proměnných, vytváření nelineární funkce, princip výpočtu, nebo možnosti parametrického nastavení vytvořené umělé neuronové sítě. Abstract This master's thesis describes the design of effective working artificial neural network in FPGA Virtex-5 series with the maximum use of the possibility of parallelization. The theoretical part contains basic information on artificial neural networks, FPGA and VHDL. The practical part describes the used format of the variables, creating non-linear function, the principle of calculation the single layers, or the possibility of parameter settings generated artificial neural networks. Klíčová slova VHDL, FPGA, neuronová síť, neuron, Error Back Propagation, DSP48E, Block RAM, nelineární funkce, pevná řádová čárka, parametrizace Keywords VHDL, FPGA, neural network, neuron, Error Back Propagation, DSP48E, Block RAM, non-linear function, fixed point, parameter setting
3 Bibliografická citace této práce ČERMÁK, J. Implementace umělé neuronové sítě do obvodu FPGA. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, s. Vedoucí diplomové práce Ing. Marek Bohrn. Prohlášení Prohlašuji, že svoji diplomovou práci na téma Implementace umělé neuronové sítě do obvodu FPGA jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením této práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb. V Brně dne 26. května podpis autora Poděkování Děkuji vedoucímu diplomové práce Ing. Marku Bohrnovi za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé diplomové práce. V Brně dne 26. května podpis autora
4 Obsah OBSAH... 1 SEZNAM OBRÁZKŮ... 2 SEZNAM TABULEK... 2 SEZNAM POUŽITÝCH ZKRATEK ÚVOD TEORETICKÁ ČÁST UMĚLÁ NEURONOVÁ SÍŤ NEURON (PERCEPRTON) SPOJOVÁNÍ NEURONŮ V SÍTÍCH TYPY NEURONOVÝCH SÍTÍ Neuronová síť typu perceptron Vícevrstvá neuronová síť UNS s kaskádní architekturou Hopfieldova umělá neuronová síť NÁVRH UMĚLÉ NEURONOVÉ SÍTĚ UČENÍ UMĚLÉ NEURONOVÉ SÍTĚ Učení s učitelem Učení bez učitele Algoritmus Error Back Propagation Přeučení neuronové sítě JAZYK VHDL PARALELNÍ ZPRACOVÁNÍ DAT Obvody FPGA Blok DSP48E Block RAM PRAKTICKÁ ČÁST FORMÁT PROMĚNNÝCH NELINEÁRNÍ FUNKCE STRUKTURA NEURONŮ PRINCIP VÝPOČTU STRUKTURA UNS ZPŮSOBY UČENÍ Externí aplikace Učení uvnitř cílového obvodu Princip učení v obvodu FPGA PARAMETRIZACE VÝSLEDKY SIMULACÍ OVĚŘENÍ VÝSLEDKŮ V PRAKTICKÉ APLIKACI VYUŽITÍ MODULU PŘI ŘEŠENÍ PRAKTICKÝCH APLIKACÍ ZÁVĚR POUŽITÁ LITERATURA SEZNAM PŘÍLOH
5 Seznam obrázků Obrázek 1: Základní schéma neuronu...6 Obrázek 2: Průběh skokové aktivační funkce...8 Obrázek 3: Průběh saturované aktivační funkce...8 Obrázek 4: Průběh sigmoidální aktivační funkce...9 Obrázek 5: Neuronová síť typu perceptron...11 Obrázek 6: Vícevrstvá neuronová síť...11 Obrázek 7: UNS s kaskádní architekturou...12 Obrázek 8: Hopfieldova umělá neuronová síť...12 Obrázek 9: Ukázkový průběh chybové funkce...14 Obrázek 10: Závislost chybové funkce pro různý počet trénovacích vzorů...15 Obrázek 11: Průběh chyby testovací množiny E test pro různý počet neuronů v UNS...19 Obrázek 12: Základní blokové schéma obvodů FPGA...22 Obrázek 13: Blokové schéma bloku DSP48E [5]...23 Obrázek 14: Blokové schéma paměti BRAM...24 Obrázek 15: Formát proměnných...26 Obrázek 16: Princip výpočtu výstupního signálu neuronu...27 Obrázek 17: Blokové schéma obvodu realizujícího nelineární funkci...27 Obrázek 18: Blokové schéma zapojení DSP bloku jako násobičky a akumulátoru...28 Obrázek 19: Postup provádění výpočtů ve vrstvě...29 Obrázek 20: Blokové schéma vytvořené UNS...30 Obrázek 21: Blokové schéma 2. skryté vrstvy a výstupní vrstvy...30 Obrázek 22: Simulace funkce neuronové sítě...35 Obrázek 23: Simulace náhledové tabulky...36 Obrázek 24: Hledaný obrazec...37 Obrázek 25: Trénovací množina...37 Obrázek 26: Testovací množina...37 Obrázek 27: Dvojice znaků použitých pro ověření funkčnosti UNS...38 Obrázek 28: Simulace naučené UNS pro dva různé vstupy...39 Seznam tabulek Tabulka 1: Doba potřebná pro zpracování snímků o různé velikosti v PC a obvodu VHDL..40 2
6 Seznam použitých zkratek ALU aritmetickologická jednotka BRAM bloková paměť RAM, Block RAM CLB Configurable Logical Block DCM Digital Clock Manager, obvod pro řízení hodinového signálu DSP Digitální Signálový Procesor FPGA programovatelné logické hradlové pole, Field Programable Gate Array IOB Input/Output Block LUT Look-Up Table, náhledová tabulka RAM Random Acces Meory, paměť s náhodným přístupem ROM Read Only Memory UNS Umělá Neuronová Síť 3
7 1. Úvod Umělé neuronové sítě (UNS) nacházejí uplatnění ve všech oborech lidské činnosti např. předpověď počasí, spotřební elektronika (detekce úsměvu nebo obličeje v digitálních fotoaparátech), řízení strojů a zařízení nebo detekce poruch. Jejich největší výhoda spočívá v možnosti učení podle příkladů, bez nutnosti znalosti matematického popisu systému. Nevýhodou při práci s UNS je nutnost provádět velké množství podobných operací (sčítání, násobení, přesuny bloků dat). Klasické programy vytvořené pro počítače nebo mikroprocesory, zpracovávají instrukce programu postupně (sériově), což velmi prodlužuje dobu potřebnou pro výpočet. Kromě sériového přístupu, lze ale využít i přístup paralelní. Paralelní programy mohou provádět více operací najednou (počet proveditelných operací omezen hardwarovými možnostmi), z čehož vyplývá i větší rychlost zpracování programu v porovnáním s programy sériovými. Pro práci s paralelními programy, je ale potřebné odpovídající hardwarové vybavení např. vícejádrový procesor, několik samostatných procesorů nebo vzájemně propojené počítače. Program pro takováto zařízení lze rozdělit na několik částí, ale příkazy jednotlivých částí budou zpracovávány sériově. Efektivní implementace paralelního zpracování je možná pomocí speciálně navržených obvodů nebo programovatelných logických polí. Jedním z problémů paralelního programování, je existence úloh, nebo jejich části, které není možné paralelizovat. Jednou z úloh kterou není téměř možné paralelizovat jsou rekurzivní funkce (funkce výsledek funkce závisí na jejím předchozím stavu). Některé výpočty prováděné v UNS lze jednoduše paralelizovat např. výpočet všech neuronů v jedné vrstvě. UNS jsou ale ve většině případů složeny z několika vrstev neuronů, kdy není možné provádět výpočet před dokončením výpočtu předchozí vrstvy. Tato práce se zabývá možností propojení výpočetní síly obvodů FPGA a univerzálnosti UNS při řešení různých problémů. 4
8 2. Teoretická část 2.1. Umělá neuronová síť Umělá neuronová síť (UNS) si bere vzor v biologické neuronové síti, kterou má každý živý organismus. Při návrhu UNS se vychází z neurofyziologických poznatků, jako je struktura, uspořádání, stavební elementy nebo funkce. UNS modelují chování a činnost biologické neuronové sítě. Za počátek oboru umělých neuronových sítí je považován rok 1943, kdy Warren McCulloch a Walter Pittse vytvořili jednoduchý matematický model neuronu [1], [2]. V roce 1949 navrhl Hebb učící proces při kterém dochází k modifikaci synaptických vah. V roce 1958 Rosenblatt vytvořil model perceptronu, jež je zobecněním McCullochova a Pittsova modelu. Roku 1986 byl nezávisle dvěma vědci Rumelhartnem a LeCunovem popsán nový učící algoritmus využívající zpětného šíření chyby v umělé neuronové síti tzv. Error Back Propagation Algorithm. Tento algoritmus je v současnosti nejpoužívanějším učícím algoritmem. Vývoj umělých neuronových sítí probíhá i v dnešní době, je hlavně soustředěn na vývoj rychlejších učících algoritmů a na využití umělých neuronových sítí v praxi. UNS lze použít v případech, kdy nelze matematicky popsat vztahy ovlivňující sledovaný proces, nebo kdy by byla algoritmizace nalezené funkce téměř nemožná. Využitím UNS bychom mohli v takovýchto případech snížit náklady na nalezení a vytvoření požadovaných algoritmů. Hlavní schopností UNS je zobecňování, tzn. že naučená UNS je schopná reagovat odpovídajícím způsobem i na události, které se mírně liší od událostí na které byla naučena. Velikost maximální odchylky vstupních dat, při které je UNS schopná správně reagovat, je závislá na velikosti UNS, počtu trénovacích množin a délce učení. UNS jsou využívány například pro predikci vývoje časových řad, čehož lze využít např. v energetice, předpovědi počasí, finančnictví nebo i dopravě. Dalším využitím je komprese a dekomprese dat. V medicíně se využívají pro vyhodnocování signálů EEG a EKG. UNS lze využít i pro převod signálů např. elektronického textu na mluvené slovo a naopak. 5
9 2.2. Neuron (perceprton) Jedná se o základní stavební prvek biologických i umělých neuronových sítí. Složitější neuronové jsou vytvořeny vzájemným spojením těchto základních prvků [3], [4], [5]. Obrázek 1: Základní schéma neuronu Vstupem každého neuronu je vektor hodnot X obsahující hodnoty, ze vstupů neuronové sítě, nebo výstupů předcházejících neuronů. [ x x, x ] X,..., = ( 1) 1, 2 3 x n počet vstupů. Každému neuronu přísluší také množina synaptických vah W. Počet vah je stejný jako [ w w, w ] W,..., 1, 2 3 w n = ( 2) Každému vstupu náleží příslušný prvek z množiny vah. Velikost váhy určuje důležitost vstupu daného neuronu. Váhy bývají vyjádřeny reálnými čísly. Učení UNS je možné díky změně velikosti jednotlivých vah. Do funkce neuronu se ještě promítá tzv. prahová hodnota definovaná vstupem x 0 a váhovou hodnotou w 0. Prahová hodnota se používá k posouvání vstupního potenciálu 6
10 před vstupem do aktivační funkce. Prahovou hodnotu si lze představit jako hranici, kterou musí signál převýšit, aby se mohl dále šířit. Lze ji také využít k vyjádření důležitosti jednotlivých neuronů. Využití prahových hodnot není bezpodmínečně nutné, ale jejich použití umožní rychlejší učení UNS a dosažení menší hodnoty chybové funkce. Ze všech vstupních hodnot se vypočítá výstupní potenciál vstupů násobených příslušnými vahami N i= 0 y _ a jak součet všech y _ a= x i w i ( 3) kde N je počet vstupů neuronu. Z výstupního potenciálu se pomocí aktivační funkce vypočítá příslušný výstupní signál y= f ( y _ a). Aktivační funkce je funkce jejíž výstupní hodnoty se pohybují v rozmezí y 1,0 V závislosti na použité aktivační funkci dostaneme odpovídající závislost výstupních hodnot na vstupních. 7
11 Skoková aktivační funkce 1 = 0 y _ a 0 f ( 4) y _ a< 0 1 Skoková funkce Výstupní hodnoty 0,8 0,6 0,4 0, Vstupní hodnoty Obrázek 2: Průběh skokové aktivační funkce Saturovaná aktivační funkce 0 y _ a< 0 f = y _ a 0 y _ a 1 ( 5) 1 y _ a> 1 1 Saturovaná lineární funkce Výstupní hodnoty 0,8 0,6 0,4 0, ,5 0 0,5 1 1,5 2 Vstupní hodnoty Sigmoidální funkce Obrázek 3: Průběh saturované aktivační funkce 8
12 f 1 1+ e = ( 6) y _ a 1 Sigmoidální funkce Výstupní hodnoty 0,8 0,6 0,4 0, Vstupní hodnoty Obrázek 4: Průběh sigmoidální aktivační funkce 2.3. Spojování neuronů v sítích Pokud použijeme jeden neuron, můžeme tento využít k vytvoření základních logických funkcí (AND, OR, NOR, NAND a invertor). Samotný neuron může být učen, ale jeho praktické využití bude velmi omezené, neboť klasifikační schopnost jednoho neuronu je velmi malá. Jestliže ale začneme neurony spojovat do sítí, dostaneme nástroj, který nám umožní řešit i velmi složité problémy. Při spojování neuronů se obvykle řídíme zásadou, že výstup neuronu bývá připojen k jednomu nebo několika vstupům dalších neuronů. Počet vrstev a neuronů v jednotlivých vrstvách, stejně jako vzájemné zapojení tvoří konfiguraci UNS. Neurony mohou být propojeny v rámci jedné vrstvy, ale i v rámci celé sítě. Speciálním případem je vytvoření zpětné vazby. Uspořádání neuronů má zásadní vliv na funkci UNS. Pro návrh UNS neexistuje přesný návod, jsou k dispozici pouze doporučení, kterými se můžeme řídit. Pro většinu aplikaci je potřeba stanovit počet vrstev a počet neuronů ve vrstvách experimentálně. 9
13 Spojené neurony vytvářejí vrstvy, které dělíme na: - vstupní vrstvu - skrytou vrstvu - výstupní vrstvu Vstupní vrstvu tvoří tzv. zdrojové uzly (vstupními terminály). Neurony v této vrstvě mají za úkol přijímat vnější signály a přerozdělovat je do dalších vrstev UNS. Neurony ve vstupní vrstvě jsou chápány jako prvky s jednotkovým přenosem s jedním stupem a mnoha výstupy. Nemají tedy vlastnosti klasického neuronu, vstupní signál nezpracovávají, nemají sumační část ani aktivační funkci. Tato vrstva se nezapočítává do celkového počtu vrstev, číslování vrstev začíná, až první skrytou vrstvou. Skrytou vrstvou označujeme všechny vrstvy mezi vstupní a výstupní vrstvou. Úkolem této vrstvy je zvýšit aproximační schopnosti UNS. Skrytých vrstev může být neomezený počet a každá vrstva může obsahovat 1 až n neuronů. Konkrétní počet závisí na řešené funkci. Výstupní vrstva je poslední vrstvou neuronové sítě, sloužící k předávání výstupního signálu do okolí. Narozdíl od vstupní vrstvy je výstupní vrstva tvořena plnohodnotnými neurony, takže dochází k výpočtu výstupního signálu v závislosti na hodnotách vstupů výstupních neuronů. Dělení UNS dle typu zpětné vazby: - dopředná - signál postupuje pouze od vstupu k výstupu - rekurentní (zpětnovazební) - signál se může pohybovat od výstupu ke vstupu i opačně 10
14 2.4. Typy neuronových sítí Neuronová síť typu perceptron Síť může být tvořena jedním neuronem (jednoduchý perceptron), ale ve většině případů bývají tvořeny několika neurony spojenými do jedné vrstvy. Na každý neuron jsou připojeny všechny vstupy. Výstup Vstup Obrázek 5: Neuronová síť typu perceptron Vícevrstvá neuronová síť Nejznámější a nejpoužívanější typ neuronové sítě. Narozdíl od sítě typu perceptron, tvoří neurony vrstvy, kdy jsou na vstupy každého neuronu připojeny výstupy neuronů v předchozí vrstvě. Obrázek 6: Vícevrstvá neuronová síť 11
15 UNS s kaskádní architekturou Strukturou se podobají vícevrstvé neuronové sítí. Rozdíl je ve způsobu propojení neuronů, kdy jsou vytvořeny i propojení mezi sousedícími neurony v rámci jedné vrstvy. Informace se mezi neurony v jedné vrstvě předává pouze jednosměrně (např. neuron 2 má informaci o výstupu neuronu 1, ale neuron 1 nemá informaci o výstupu neuronu 2) viz. Obrázek 7. Výstup Vstup Obrázek 7: UNS s kaskádní architekturou Hopfieldova umělá neuronová síť Pracuje na principu asociativní paměti. Na základě vstupních hodnot dochází k vybavování naučených hodnot, které jsou co nejblíže vstupním hodnotám. Neurony v síti tohoto typu jsou propojeny principem každý s každým včetně sebe sama. Na vstupy každého neuronu jsou připojeny výstupy všech ostatních neuronů. UNS tohoto typu lze využít například pro odstraňování šumu z obrazu. Výstup Výstup Obrázek 8: Hopfieldova umělá neuronová síť 12
16 2.5. Návrh umělé neuronové sítě Pro návrh UNS neexistují žádné jednoznačné vzorce, podle kterých by bylo možné vypočítat počty neuronů a vrstev pro konkrétní aplikaci. Existují pouze doporučení, podle kterých je možné navrhnou UNS, ale po simulacích a testech je téměř vždy nutné doladění přesného počtu jednotlivých prvků. Pro dvouvrstvé UNS se uvádějí následující vzorce pro výpočet neuronů v jednotlivých vrstvách p= m n ( 7) p m+ n ( 8) Pro dopřednou UNS lze použít následující vzorce 3 r = n / m ( 9) p p 2 1 m r = ( 10) = m r 2 ( 11) kde m... množství vstupních neuronů n... množství výstupních neuronů p... množství neuronů ve skryté vrstvě p množství neuronů ve výstupní vrstvě Při návrhu je výhodnější, pokud je na počátku použit menší počet neuronů a a postupně je jejich počet dle potřeby zvyšován. V opačném případě by mohl nastat stav přeučení sítě, kdy chybová funkce bude velmi nízká, ale aproximace vstupních hodnot bude zatížená velkou chybou. 13
17 2.6. Učení umělé neuronové sítě Možnost učení patří k nejdůležitější schopnosti neuronových sítí. Při učení dochází k modifikaci jednotlivých vah, cílem je naučit síť správně reagovat na vstupní hodnoty, tzn. dosažení shody mezi vstupem a požadovaným výstupem. Způsob, jakým bude docházet k modifikaci vah určuje učící algoritmus. Při učení hledáme globální minimum n rozměrné energetické funkce E, kde n = x+ 1 rozměrů a x je počet vstupů UNS. Obrázek 9: Ukázkový průběh chybové funkce Učení UNS spočívá v postupném opakovaném připojování trénovacích vzorů (trénovací množina) na vstupy sítě a hledá se nejmenší optimální nastavení vah tak, aby chybová funkce E byla co nejmenší. Trénovací množinu lze získat pomocí měření příslušných vstupních a výstupních hodnot, pomocí výpočtu matematického modelu systému nebo pomocí vybraných vzorových vstupů, ke kterým jsou známy i požadované výstupní hodnoty. Trénovací hodnoty je vhodné vybírat z celého spektra možných vstupních hodnot. 14
18 Jeden cyklus učení, při kterém postupně předložíme síti celou trénovací množinu je nazýván epocha. Obecně platí, že čím více prvků bude trénovací množina obsahovat, tím lepších výsledků budeme UNS dosahovat, ale za cenu nutnosti prodloužení nutné doby učení. Obrázek 10: Závislost chybové funkce pro různý počet trénovacích vzorů Pro ověření naučenosti sítě je využívána tzv. testovací množina, která se muší lišit od množiny trénovací, ale musí se řídit stejnými pravidly jako množina trénovací (vychází z množiny možných vstupů). Testovací množina je přiložena na vstup UNS a chybová funkce E test je vypočítána jako součet rozdílů výstupů skutečných a požadovaných. Testování UNS je možné provádět po každé množině, po proběhnutí definovaného počtu epoch, nebo až po skončení učícího procesu. Při testu v průběhu učení je nutné zajistit, aby testovací množina nebyla použita pro učení, což by ovlivnilo výsledky testu. Trénování UNS probíhá do splnění zvoleného parametru, podmínkou pro ukončení učení může být dosažení - předem zadané minimální hodnoty chybové funkce E - zadaného počtu trénovacích epoch - minimální hodnoty E test - dosažení minimálního gradientu E 15
19 Dělení učení - s učitelem - bez učitele Učení s učitelem Nejpoužívanější způsob učení. Při učení jsou vždy k dispozici vstupní hodnoty a k nim odpovídající výstupní hodnoty, které jsou porovnávány se skutečným výstupem. Během učení dochází k modifikaci vah takovým způsobem, aby rozdíl požadovaného a skutečného výstupu byl co nejmenší. Způsob jakým jsou váhy měněny závisí na použitém učícím algoritmu a velikostí rozdílu požadovaného a skutečného výstupu. Během učení hledáme minimum chybové funkce E, někdy též nazývané funkcí energetickou M [ yi ( s, k) yi ( s) ] E( s) = ( 12) i= 1 kde s... pořadové číslo epochy trénování M... počet trénovacích vzorů k... pořadové číslo vzoru v trénovací množině y ( s, k)... požadovaný výstup y (s)... skutečný výstup Učení bez učitele Princip je založen na schopnosti UNS rozeznávat stejné nebo podobné vlastnosti signálu na vstupech a třídit tak předkládané vektory podle těchto vlastností. Podobné vektory zapříčiní vytvoření tzv. shluků nebo map neuronů. Neuronová síť posuzuje pouze hodnoty vstupních proměnných. Principem je výpočet vzdálenosti mezi vzory a aktuálními hodnotami s cílem nalezení co nejmenších vzdáleností. Sítě využívající tohoto principu učení bývají nazývány samoorganizující se umělé neuronové sítě. Výhodou učení bez učitele, je že princip lze využít pro aplikace, kdy předem neznáme učící množinu např. asociativní paměť. 16
20 Algoritmus Error Back Propagation Algoritmus pracuje na principu zpětného šíření chyby při učení neuronové sítě. Jedná se o algoritmus učení s učitelem, využívaný u dopředných vícevrstvých UNS. Během učení sítě počítáme chybovou funkci, která nám udává úroveň naučenosti sítě. Při výpočtu vyjdeme z rovnice (11), chybová funkce se vypočítá jako součet energetických funkcí, pro všechny vzory trénovací množiny E = N i= 1 E( i) ( 13) dosazením do dostaneme E = 1 2 N M [ y i j y j] i j= 1 i= 1 2 ( 14) y i j... požadovaná hodnota výstupu neuronu y i j... skutečná hodnota výstupu neuronu N... počet vzorů trénovací množiny M... počet výstupů neuronové sítě Cílem je minimální chyba E. Aby bylo možné chybu zmenšit, je třeba zjistit, jaké části sítě se na této chybě podílí a jakým způsobem musí být modifikovány, aby došlo ke snížení chyby. Během učení jsou neustále opakovány dva kroky - dopředný krok (na vstupy je přiložen vzor a po průchodu signálu sítí vypočítáme E) - zpětný krok (modifikace váhových spojení mezi neurony) w w ji ji f j ( ξ j ) = δ j y ξ ji j ji i = w + α w ( 16) ( 15) 17
21 j = N i= 1 y w ξ ( 17) i ji w ji... váha spoje mezi j neuronem současné vrstvy a i neuronem vrstvy předchozí δ j α... chyba neuronu... učící koeficient f j ( ξ j )... derivace přenosové funkce f j ( ξ j) podle ξ j ξ y i N j... výstup i-tého neuronu předchozí vrstvy... počet neuronů současné vrstvy Při hledání minima chybové funkce lze v učícím procesu narazit na lokální minima, která mohou zdržet nebo znemožnit dosažení požadované hodnoty E. Tento problém lze minimalizovat rozšířením vzorce o setrvačný prvek s konstantou β, která pomůže tyto lokální minima překonat. w ji t t t 1 = α w w + β ( w w ) ( 18) ji ji ji ji t w ji... aktuálně vypočítaná odchylka 1 w t ji... odchylka vypočítaná v minulém kroku Hodnoty α aβ je nutné určit až při testování sítě, jelikož neexistují žádné vzorce pro výpočet jejich velikosti. Doporučuje se volit tyto konstanty v rozsahu 0.5,0. 5, je ale možné použít i hodnoty z rozsahu 1, 1. Pro dvouvrstvou neuronovou síť lze použít vzorec γ = 0, 7 n p, kde p je počet neuronů ve skryté vrstvě a n je počet vzorů trénovací množiny. Hodnoty lze poté volit v rozsahu γ, γ. Velikost koeficientů je velmi důležitá pro rychlost učení a dosažitelnou minimální chybu. Pokud použijeme velké koeficienty, bude učící proces probíhat rychle, ale za cenu větší chyby. Při použití malých koeficientů bude učení probíhat delší dobu a bude možné dosáhnou menší chyby. Nevýhodou je, že bude obtížnější překlenovat lokální minima. Pro zachování rychlého učícího procesu a dostatečně malé chybové funkce lze využít dynamickou i změnu koeficientů α aβ v závislosti na velikosti chybové funkce. Na počátku učení použijeme velké koeficienty, které se budou postupně snižovat, díky čemuž lze dosáhnou dosáhnout větší přesnosti. 18
22 Přeučení neuronové sítě Při nesprávně zvolené topologii neuronové sítě (je použito příliš mnoho nebo málo neuronů pro řešení daného problému), nebo nedostatečném množství trénovacích vzorů, mohou nastat dva stavy. V prvním případě použijeme příliš málo neuronů jejichž společná výpočetní kapacita nebude stačit pro nalezení globálního minima a učení se zastaví v nějakém lokálním minimu. V druhém případě byl naopak zvolen příliš velký počet neuronů. Lokální minimum bude nalezeno velmi rychle, ale dojde k takovému přizpůsobení neuronové sítě, že téměř úplně ztratí schopnost zobecňovat. Obrázek 11: Průběh chyby testovací množiny E test pro různý počet neuronů v UNS 19
23 2.7. Jazyk VHDL Zkratka VHDL je akronym VHSIC (Very High Speed Integrated Circuits) Hardware Description Language (jazyk pro popis hardwaru velmi rychlých integrovaných obvodů). Jazyk VHDL slouží k popisu struktury a chování digitálních integrovaných obvodů, jako jsou programovatelná logická pole nebo integrované obvody. Povodně byl vyvinut pro efektivní popis rozsáhlých integrovaných obvodů a vytváření přehledné dokumentace. Roku 1987 byla ve standardu IEEE 1076 přijata základní verze jazyka VHDL. Konstrukce vytvořené podle tohoto standardu se označují jako VHDL-87. V roce 1993 standard aktualizován, konstrukce podle toho označovány jako WHDL-93. Strukturu popisovanou v jazyku VHDL lze rozdělit na dvě základní části (entita a architektura). V entitě jsou popsány vstupní a výstupní porty pro komunikaci s okolím. Architektura popisuje chováni entity, jsou v ní definovány funkce, vnitřní signály, ale může obsahovat i použití jiných entit. Výhodou jazyka VHDL je nezávislost na cílové realizaci nebo technologii výroby programovaného systému. V dnešní době se používá pro popis struktury a chování obvodů FPGA (Field Programable Gate Array) nebo zákaznických obvodů ASIC (Application-Specific Integrated Circuits). Další výhodou je možnost použít paralelní (souběžné příkazy) i sériový princip programování. Kromě jazyka VHDL lze ještě využít jazyk Verilog, který má podobnou funkci i strukturu. Jazyk Verilog se syntaxí podobá jazyku C a je více rozšířen v asijských zemích, v Evropě se spíše používá VHDL, v Americe se používají oba jazyky. 20
24 2.8. Paralelní zpracování dat Při běžném zpracování dat jsou tyto zpracovávány postupně (sériově). Naproti tomu v obvodech fpga lze implementovat obvody, které nám dovolí paralelní práci s daty. V běžných PC je zdání paralelního zpracování vytvořeno pomocí multitaskingu, kdy je výpočetní kapacita procesoru neustále přepínána mezi několika procesy. Při pozorování se sice zdá, že několik procesů běží najednou, ale ve skutečnosti je v každém časovém okamžiku vykonávána pouze jedna aplikace. Skutečné paralelní zpracování lze provádět pouze v případě, že máme k dispozici procesor s více jádry, nebo máme k dispozici několik vzájemně propojených PC. Při návrhu struktury realizující UNS je možné většinu operací paralelizovat. Při běžném výpočtu (např. v PC) neuronové sítě se postupně provede součet všech vstupů násobených vahami a poté se provede převod pomocí aktivační funkce. V případě sčítání je tedy možné provádět součet pouze jednoho vstupu jednoho neuronu. Paralelizace přináší možnost zrychlení v provedení operací např. součtu všech vstupů jednoho neuronu v jednom hodinovém cyklu. Toto je možné jen v případě, že signál se v UNS přenáší po vrstvách. Teoreticky by bylo možné provést výpočet pro celou jednu vrstvu v jednom hodinovém cyklu, výsledné řešení by ale bylo velmi náročné na potřebnou plochu obvodu na čipu. Výhodnější je rozložit výpočet na více cyklů s možností využití některých speciálních struktur integrovaných v čipu FPGA. Další výhodou použití jazyka VHDL je, že při předání signálu do následující vrstvy UNS, může uvolněná vrstva ihned začít provádět výpočet pro nová vstupní data. 21
25 2.9. Obvody FPGA Architektura obvodů FPGA vychází z architektury hradlových polí. Základní stuktura je tvořena konfigurovatelnými logickými bloky (CLB) umožňujícími vykonávat jednoduché logické operace, simulovat multiplexery nebo záchytné registry. Bloky CLB se v některých případech dělí na menší části označované jako logické buňky. Logická buňka obsahuje strukturu s jejíž pomočí, lze vytvořit klopné obvody nebo kombinační funkce. Kombinační struktura bývá založená na principu paměti PROM a bývá označována jako LUT (look-up table, náhledová tabuka). LUT umožňuje vytvořit jakoukoli funkci ze vstupních signálů. Počet vstupů LUT závisí na použitém typu obvodu např. Virtex-5 využívá 6-ti vstupové LUT tabulky. Pro vytvoření funkcí s větším počtem vstupů musí být použit větší počet LUT. Vzájemné propojení bloků zajišťuje konfigurovatelná propojovací matice. Komunikaci s externími obvody nebo sběrnicemi zajišťují vstupně/výstupní bloky (IOB). Kromě výše zmíněných bloků, jsou v obvodu ještě přítomny bloky vykonávající speciální funkce jako Block RAM (BRAM), digitální manager hodinového signálu (DCM) nebo bloky digitálních signálových procesorů (DSP48E) [9], [11], [12]. Základní blokové schéma popsaných struktur zobrazuje Obrázek 12. IOB IOB IOB IOB IOB CLB CLB IOB IOB BRAM BRAM IOB CLB CLB IOB IOB IOB IOB IOB IOB Obrázek 12: Základní blokové schéma obvodů FPGA Obvody FPGA řady Virtex 5 jsou určeny pro výkonné aplikace. Mohou obsahovat až logických bloků, maximální pracovní kmitočet je 550MHz, díky 65nm technologii a tříoxidové technologii spotřebují méně energie než starší Virtex 4. Řada je rozdělena na 5 řad LX (vysokovýkonové aplikace), SX (signálové a paměťové aplikace), FX (vícejádrové procesy) a TX (širokospektré aplikace) [7], [8]. 22
26 Blok DSP48E Jedná se o programovatelné rychlé výpočetní bloky, umožňující implementaci širokého spektra matematických funkcí [5], [10]. Použitím těchto bloků můžeme výrazně snížit množství logických buněk výsledného obvodu. Blok DSP48 (dále jen DSP blok) je tvořen násobičkou 25 x 18 bitů a programovatelnou 48 bit aritmetickologickou jednotkou (ALU) umožňující provádět základní logické operace, sčítání nebo odčítání. Pouhým nastavením ALU lze vytvořit mnoho dalších funkcí, jako je posuvný registr nebo akumulátor. Výhoda spočívá i v možnosti přiřazení výstupu zpět na vstup, bez nutnosti vytváření vnějších propojení. Pro zpracování větších čísel, je možné jednotlivé bloky zřetězovat. Zpoždění bloku je závislé na požadovaných operacích se signálem. Jeden DSP blok vyžaduje ke zpracování dat 2-4 hodinové cykly. Obrázek 13 zobrazuje základní blokové schéma bloku DSP. Vstupy A, B a C jsou vstupní proměnné, přičemž vstupy A a B jsou připojeny do násobičky a vstup C je možné připojit až do ALU jednotky. Vstup A má šířku 30 bit, vstup B má šířku 18 bit a vstup C má šířku 48 bit. Do násobičky se přivádí dolních 25 bitů vstupu A a celý vstupu B. DSP blok je možné v kódu využít vhodně zapsanou syntaxí, kdy dojde k automatickému rozeznání kódu překladačem, který provede definici potřebné funkce DSP, nebo lze použít předdefinované komponenty vývojového prostředí. Obrázek 13: Blokové schéma bloku DSP48E [5] 23
27 Block RAM Block RAM (BRAM) jsou konfigurovatelné paměťové moduly [6], [10]. Každý BRAM má kapacitu 36 kbit, ale lze ho konfigurovat i jako dvě nezávislé 18 kbit RAM paměti s volitelnou šířkou vstupů. Obdobně lze ze 2 BRAM vytvořit jedinou 72 kbit paměť, bez nutnosti použití externích logických bloků. Dále lze BRAM využívat i jako paměti FIFO. Paměť BRAM je možné provozovat v dvouportovém nebo jednoportovém režimu. V dvouportovém režimu můžeme zapisovat a číst data z různých paměťových buněk, v jednoportovém režimu probíhá čtení a zápis pouze do jedné paměťové buňky. Jednoportový režim umožňuje nastavit 3 módy provozu write_first (nejdříve se čtou data a poté jsou nahrazena novými), write_first (data jsou nejdříve zapsána a poté jsou přečtena) nebo no_change (v závislosti na enable se provede čtení nebo zápis dat). Čtení i zápis vyžaduje jednu náběžnou hranu na hodinovém signálu. Vhodným nastavením, lze získat i paměť typu ROM (Read Only Memory) Obrázek 14 znázorňuje blokové schéma paměti BRAM. Samotná paměť je rozdělena na dvě tejné části (port A a B). Vstup dat (DI) má šířku 16 bit a slouží pro zápis dat do paměti. Vstup paritních dat (DIP) má šířku 2 bit a lze jej využít pro zápis parity. V případě potřeby lze kombinací datového a paritního vstupu zapsat do paměti proměnnou o šířce až 18 bit. Adresový vstup (ADDR) má šířku 14 bit. Dále lze v obvodu nalézt povolení vstupů (EN) i výstupů a vstup hodinového signálu (CLK). DIA DIPA ADDRA ENA DOA DOPA CLK DIB DIPB ADDRB ENB DOB DOPB Obrázek 14: Blokové schéma paměti BRAM BRAM lze v kódu využít vhodně zapsanou syntaxí, kdy dojde k rozpoznání a definici potřebné RAM paměti překladačem, nebo použijeme předdefinované komponenty vývojového prostředí. 24
28 3. Praktická část Úkolem této diplomové práce bylo navrhnout rychlou konfigurovatelnou neuronovou síť s co největším využitím možností paralelizace výpočtů. Funkce navržené UNS měla být demonstrována v jednoduché aplikaci. Byl zvolen obvod Virtex 5 řady LX, konkrétně se jedná o obvod XC5VLX50. Tento obvod obsahuje ekvivalentních hradel, 48 DSP bloků a 48 x 32bit BRAM, maximální pracovní kmitočet je 550 MHz. Vytvářená neuronová síť je koncipována jako třívrstvá s proměnným počtem neuronů v každé vrstvě. Maximální počet syntetizovatelných neuronů v UNS je omezen počtem DSP bloků, můžeme tedy syntetizovat maximálně 47 neuronů (jeden DSP blok je využit náhledové tabulce) Formát proměnných Při návrhu UNS je důležité, abychom byli schopní vyjádřit co nejpřesněji veškeré proměnné, jelikož na přesnosti závisí výsledná funkčnost celé UNS. V aplikacích pro PC není třeba se touto podmínkou zabývat, jelikož máme k dispozici dostatek i paměti pro uložení výsledků a mezivýsledků. V případě snahy o implementaci výpočetních jader v obvodech FPGA je ale nutné počítat s omezenou velikostí paměti a omezenou plochou samotného obvodu. Při návrhu je potřebné volit dostatečnou šířku proměnných s ohledem na 2 faktory. Větší šířka proměnných umožňuje dosažení vysoké přesnosti, ale za cenu nutnosti rezervovat velkou plochu čipu pro výpočetní jádra a zpomalení celého výpočtu. Při využití malé šířky proměnných, ale dochází ke zhoršování funkce vlivem velké nepřesnosti. V druhém případě lze přesnost celé UNS zvýšit zařazením dalších neuronů nebo vrstev, které pomohou korigovat nedostatečnou šířku proměnných za cenu zvýšení celkové plochy potřebné pro realizaci UNS. V této práci jsou použity proměnné s pevnou řádovou čárkou. Při volbě šířky proměnných bylo přihlíženo i k možnosti využití integrovaných bloků DSP a pamětí BRAM. Byla zvolena šířka 18bit z důvodu, že jeden ze vstupů DSP bloku má pouze tuto šířku 25
29 sběrnice a pro větší šířky proměnných by bylo potřeba spojení více bloků, což by omezilo počet integrovatelných neuronů. Navíc pro uložení řetězce o 18 bit, lze využít jeden paměťový blok paměti BRAM, kdy dva nejvyšší bity jsou uloženy jako parita. Samotná struktura řetězce je taková, že nejvyšší tři bity reprezentují celé číslo a zbylých 15 bitů je použito pro vyjádření desetinného čísla viz. Obrázek 15. Bit 17:15 Bit 14: Obrázek 15: Formát proměnných 3.2. Nelineární funkce Výstupní potenciál neuronu je převáděn pomocí nelineární funkce na výstupní signál. Nejlepších výsledků je dosahováno se sigmoidální funkcí. Jelikož by bylo velmi složité realizovat výpočet funkce sigmoida v obvodu FPGA, bylo zvoleno řešení pomocí náhledové tabulky (lookup table, LUT. Odezvy jsou vypočítány dopředu a jsou uloženy v paměti BRAM, podle výstupního potenciálu neuronu je poté na výstup přiřazen odpovídající výstupní signál. Nevýhodou tohoto řešení je, že pro každý stav vstupu je potřeba mít připravenou odpovídající hodnotu výstupu. Jelikož jsou použity proměnné o velikosti 18bit, potřebovali bychom 2 18 řádků paměti, což přesahuje možnosti použitého obvodu PGA. Řešení problému spočívá v převodu nelineární sigmoidální funkce na funkci po částech lineární. Nejdříve bylo provedeno vymezení funkce v rozsahu <-6;6>, mimo tento interval se průběh funkce již téměř nemění, takže jej lze nahradit konstantní hodnotou. Z průběhu funkce je vybráno 512 vzorků (absolutní hodnoty) tak, aby byla celá oblast rovnoměrně pokrytá, současně vypočítáme gradient mezi jednotlivými vzorky. Tyto dva soubory dat, každý o velikosti 512 vzorků, celková velikost dat je tedy 512 * 18 = 9216 = 9 kbit. Pro uložení obou množin vzorků, bude tedy stačit jedna paměť BRAM. 18bit vstupní proměnná je rozdělena na 2 části po 9 bitech. Horní polovina tvořená bity 9 až 17 (MSB) je použita pro volbu dat ze souboru absolutních a gradientních hodnot. Výsledný výstup je poté určen jako součet násobku hodnoty gradientu a dolní poloviny bitů 0 až 8 (LSB) a absolutní hodnoty viz. Obrázek 16. Operace násobení a sčítání je prováděna v jednom DSP bloku. 26
30 MSB MSB LSB Abs Grad X + Obrázek 16: Princip výpočtu výstupního signálu neuronu Při návrhu výpočtu nelineární funkce je třeba brát v potaz i zpoždění jenotlivých bloků. Do cesty signálu je tedy potřeba vložit zpožďovací prvky (záchytné registry). Teoreticky by bylo možné vytvořit zapojení bez zpoždění, ale výsledná struktura by byla velmi rozsáhlá s nízkou maximální frekvencí. Záchytné registry jsou nejčastěji vytvořeny pomocí klopných obvodů typu D. Umístění zpoždění a šířka jednotlivých vodičů zobrazuje Obrázek 17. DSP 18 D MSB 9 MSB 9 LSB Abs Grad D X D + D 18 9 Obrázek 17: Blokové schéma obvodu realizujícího nelineární funkci Zpožďovací člen na vstupu a výstupu se používá kvůli správné synchronizaci signálu mezi bloky, díky čemuž může syntetizátor provést lepší optimalizaci, což ve výsledku vede k větší výsledné frekvenci. Registr ve větvi LSB vyrovnává zpoždění potřebné pro načtení hodnot z paměti BRAM. Zpoždění ve větvi s absolutní hodnotou (Abs) vyrovnává zpoždění násobičky DSP bloku. Při programování, byly s výhodou využity vnitřní záchytné registry DSP bloku. 27
31 3.3. Struktura neuronů Každý neuron v navrhnuté UNS je tvořen jedním DSP blokem a blokem pamětí BRAM pracující jako paměť ROM. Na vstup DSP se přivádí odezva z předchozích vrstev UNS a odpovídající váha načtená z BRAM. Sčítání je vytvořeno pomocí vhodně nastaveného DSP bloku, kdy je výstup použit současně jako vstup sčítacího bloku. Z blokového schématu viz. Obrázek 18 vyplývá, že výstup (součet) je 48 bitový. Pro další použití je nutné tento signál oříznout na potřebných 18 bitů z výsledku tedy použijeme čísla z pozic DSP Vstup Váha 25 D 18 D X + 48 D Součet 18 Obrázek 18: Blokové schéma zapojení DSP bloku jako násobičky a akumulátoru Nevýhodou je, že výpočet N vstupů neuronu, bude trvat N + 2 hodinových cyklů (2 hodinové cykly je zpoždění přenosu DSP bloku). Výše zmíněná nevýhoda je ale vyvážena možností provádět výpočet pro všechny neurony v jedné vrstvě najednou. Výhodu tohoto principu lze ukázat na následujícím příkladu. Př. 20 neuronů v jedné vrstvě, každý má 30 vstupů. Předpokládejme, že výpočet trvá jeden hodinový cyklus a zanedbáme čas potřebný pro přepis proměnných. Výpočet v PC bude trvat 20 neuronů 30 vstupů = 600 hodinových cyklů. Výpočet v FPGA bude trvat = 32 hodinových cyklů. Pokud budeme uvažovat, že perioda hodinového signálu bude pro PC i FPGA stejná, bude FPGA výpočet provádět 18x rychleji. Další výhoda spočívá v možnosti provádět výpočet vrstvy nezávisle na ostatních vrstvách. Pokud vrstva dokončí výpočet a signál je předán do vrstvy následující, můžeme ihned začít s výpočtem pro nová vstupní data (podmínkou je, že předchozí vrstva již dokončila výpočet). Při vícenásobném výpočtu budou data na výstupu přicházet se zpožděním, jež bude úměrné době výpočtu vrstvy s nejvíce vstupy. 28
32 Př. Třívrstvá dopředná neuronová síť s 30 vstupy, v každé vrstvě je 20 neuronů, vstupy každého neuronu jsou připojeny na všechny výstupy neuronů v předchozí vrstvě, potřebujeme vyhodnotit 2 po sobě jdoucí stavy na vstupech. Výpočet v PC bude trvat ( ) 2= 2800 hodinových cyklů Výpočet v FPGA bude trvat ( ) + 32= 1088 hodinových cyklů Pokud budeme uvažovat stejné podmínky jako v předchozím příkladu, bude výpočet v FPGA 26x rychlejší Princip výpočtu Samotný výpočet neuronu probíhá v několika opakujících se krocích. V prvním kroku se provádí součet všech vstupů násobených příslušnými váhami. Součet je prováděn z důvodu menší náročnosti na vytvářené struktury, jelikož lze použít pouze jeden DSP blok. Výběr příslušného vstupu a váhy je prováděn pomocí čítače a multiplexeru. Násobek je přičítán k minulým výsledkům. Po sečtení všech vstupů je výsledek převeden pomocí lookup tabulku na odpovídající výstupní hodnotu. Jednotlivé vrstvy jsou mezi sebou odděleny záchytnými registry, takže po zapamatování dat a po resetu DSP bloků, lze začít s novým výpočetním cyklem s novými vstupními daty. Výpočet Převod Uložení výsledků Inicializace Obrázek 19: Postup provádění výpočtů ve vrstvě 3.5. Struktura UNS Všechny neurony v UNS jsou uspořádány do tří vrstev. Díky paralelnímu zpracování lze provést výpočet pomocí menšího počtu hodinových cyklů, než při klasickém výpočtu po jednom. Obrázek 20 zobrazuje základní blokové schéma navržené UNS. Síť obsahuje pouze jeden vstup z důvodu, že je počítáno, že data budou uložena v některé z pamětí BRAM nebo budou přímo zasílána na vstup UNS. Počet propojení mezi vrstvami a počet výstupů závisí na požadované konfiguraci. Všechny bloky jsou řízeny pomocí společných řídících obvodů, jež mají na starost řízení výpočtu i přenos dat mezi jednotlivými vrstvami. 29
33 1. skrytá vrstva 2. skrytá vrstva Výstupní vrstva Řídící obvod Obrázek 20: Blokové schéma vytvořené UNS Obrázek 21 zobrazuje blokové schéma druhé skryté vrstvy a výstupní vrstvy. Narozdíl od vrstvy vstupní, je na vstupu použit multiplexer, kterým jsou postupně vybírány data z jednotlivých vstupů a následně jsou zpracovávány jednotlivými neurony. Σ Lookup Vstupy Multiplexer BRAM Výstupy Σ Lookup BRAM Řídící vstup Obrázek 21: Blokové schéma 2. skryté vrstvy a výstupní vrstvy 30
34 3.6. Způsoby učení Jak již bylo popsáno výše, úkolem učení UNS je přizpůsobit její reakci na vstupní signál našim potřebám. Principy učení lze rozdělit do dvou kategorií. V prvním případě, provedeme výpočet vah v externí aplikaci a tyto pak již jen nahrajeme do paměti UNS. V druhém případě provedeme učící proces přímo v cílovém obvodu. Navrhované UNS bude učena pomocí externí aplikace Externí aplikace Jedná se o nejjednodušší způsob učení UNS. Všechny váhové hodnoty všech neuronů se vypočítají v externí aplikaci (Matlab, jednoúčelové programy,...) a poté se jen zapíší do BRAM pamětí v obvodu FPGA. Výhodou tohoto postupu je jednoduchost a nenáročnost na zvolený obvod, jelikož není třeba integrovat další struktury. Nevýhodou je horší modifikovatelnost, kdy při každé změně musíme změnit vstupní parametry učící aplikace, vypočítat nové hodnoty vah a provést přeprogramování obvodu FPGA. Rychlost učení ovlivňuje použitý hardware, na kterém provádíme výpočty a vlastní použitý program. Výhoda externích aplikací spočívá i v případě sériové výroby, kdy provedeme učení jen jednou a poté již nahráváme soubor vah do každého obvodu. Program Matlab je možné využít hlavně pro jeho univerzálnost a jednoduché možnosti změn parametrů celé UNS (počet neuronů, šířka proměnných, počet vrstev...) a možnosti volby formátu dat. Nevýhodou je malá rychlost zpracování a nutnost mít tento program nainstalovaný na PC. Externí aplikace umožňují výběr programovacího jazyka, kdy můžeme vhodně zvoleným jazykem (např. jazyk C) dosáhnout velké rychlosti výpočtů. Výhodou je i přenositelnost programu, kdy je možné vytvořený program spustit i na jiném PC bez nutnosti instalace dodatečných vývojových prostředí. Nevýhodou je složitá změna parametrů v případě nutnosti změny UNS nebo horší možnosti volby použitého formátu dat. 31
35 Učení uvnitř cílového obvodu Při učení uvnitř cílového obvodu budou hodnoty jednotlivých vah budou počítány přímo v obvodu FPGA. Výhodou je možnost využít výpočetní výkon obvodu FPGA, díky čemuž lze dosáhnout větší rychlosti výpočtu a modifikace jednotlivých vah. Dále není nutné přeprogramování celého obvodu v případě změny vstupních dat za předpokladu, že mají stejný formát na jaký byla UNS v obovdu vytvořena. Nevýhoda spočívá ve větší velikosti výsledné struktury, čímž dochází k omezení celkového počtu integrovatelných neuronů. Tento způsob není vhodný pro sériově vyráběná zařízení využívající UNS, jelikož je nutné provést učící proces až po nahrání programu do čipu. Nutností je i ukládání vah do stálé paměti například typu flash. Po vypnutí napájení dojde ke ztrátě dat uložených v RAM paměti a po opětovném zapnutí by bylo nutné provést nový učící proces. V případě vícenásobného učení lze očekávat problém s omezeným počtem přepisů flash pamětí, kdy může začít docházet ke ztrátě uložených dat Princip učení v obvodu FPGA Princip učení je obdobný jako učení v PC. Přesný postup závisí na druhu použité UNS a zvoleném učícím algoritmu. Dále je popsán způsob učení dopředné UNS pomocí algoritmu Error Back Propagation. Učení pomocí tohoto algoritmu probíhá ve dvou základních krocích. V prvním kroku prochází signál od vstupu k výstupu a ve druhém prochází chyba směrem od výstupu na vstup. Chyba je určena jako rozdíl očekávaného a skutečného výstupu UNS a jednotlivé váhy jsou modifikovány právě pomocí jim odpovídající chyby. Při implementaci učícího algoritmu je potřebné přidat, k již existující struktuře, další bloky zajišťující zpětný přenos chyby od výstupu ke vstupu. Z důvodu potřeby modifikace jednotlivých vah, bude potřeba provést přenastavení BRAM tak, aby pracovaly jako paměti RAM místo paměti ROM. Modifikace bude provedena pomocí rovnic (15), (16) a (17). Ke zjištění hodnoty derivace v rovnici (15) lze s výhodou použít převrácenou (změníme pořadí sloupců) náhledovou tabulku použitou pro výpočet nelineární funkce. Vzhledem k nutnosti provést 32
36 velké množství výpočtů, je vhodné vyčlenit pro tento účel dva DSP bloky a jednu paměť BRAM pro uložení jednotlivých chyb a invertované náhledové tabulky Parametrizace Z důvodu širšího využití byl při návrhu dbán důraz na možnost nastavení pomocí vstupních parametrů před syntézou UNS. Z důvodu zjednodušení je UNS koncipovaná jako třívrstvá s nastavitelným počtem vstupů a neuronů v každé vrstvě. Při návrhu vznikl problém s generováním potřebných signálů pro propojení jednotlivých bloků a potřebného množství vstupů a výstupů v jednotlivých blocích. Pro propojení bloků s dalšími bloky nebo výstupy se musí v každém bloku definovat tzv. porty, na které se připojují požadované signálové vodiče. Použitý syntetizátor umožňuje pouze manuální vytvoření jednotlivých portů o definované šířce. Kvůli využití parametrizace, ale předem neznáme přesný počet potřebných vstupů a výstupů. Tento problém byl vyřešen vytvořením vlastního datového typu. Byl vytvořen datový typ pole umožňující parametrické nastavení počtu 18bit řádků viz. příloha 1. Jednotlivé neurony a paměti jsou poté vytvořeny a propojeny pomocí generačního for cyklu viz. Příloha Výsledky simulací Pro simulaci byla zvolena UNS o konfiguraci 10 vstupních neuronů, 5 neuronů v první skryté vrstvě, 5 neuronů ve 2. skryté vrstvě a 1 výstupní neuron. Pro názornost byly všechny váhy nastaveny na hodnotu 1, jako nelineární funkce byla použita funkce y = x. Maximální frekvence pro tuto konfiguraci byla 357,1 MHz, perioda hodinového signálu tedy může být maximálně 2,8 ns. Obrázek 22 zobrazuje výsledek simulace. Výpočet začíná resetem celé UNS, jež je viditelný jako pulz na vývodu rst_in. Dokončení výpočtu se projeví jako pulz na vývodu en_out, v ten samý okamžik jsou na výstup sit_out zapsána data z výstupního neuronu. Data zůstávají na výstupu až do doby, kdy je dokončeno zpracování dalších vstupních dat. Po resetu se může na výstupu objevit jakýkoliv výsledek o čemž nás simulátor informuje hodnotou signálu U (unknown). Toto je způsobeno faktem, že probíhá první výpočet a ještě nejsou k dispozici data z minulého výpočtu a až v čase t = 302,4 ns je dokončen první výpočet. 33
37 Správnost výpočtu je možné díky jednoduché nelineární funkci a konstantním hodnotám vah lehce ověřit. Ověření bude provedeno pro vstup s hodnotou 1. První skrytá vrstva počítá svůj výstup jako součet všech vstupů násobených vahami (je použito 10 vstupních neuronů). y1. skryta = 10 vstupů 1= 10 Druhá skrytá vrstva počítá svůj výstup jako součet všech výstupů předchozí vrstvy (první skrytá vrstva obsahuje 5 neuronů). y y 5= skrytá = 1. skrytá = 50 Výstupní vrstva spočítá výstup obdobně jako druhá skrytá vrstva (druhá skrytá vrstva obsahuje 5 neuronů). y y 5= 50 5 výstupní = 2. skrytá = 250 Jak je vidět vypočítaná výstupní hodnota odpovídá hodnotě vypočítané. Obrázek 23 zobrazuje zpoždění náhledové tabulky. Převod je možný jen ve chvíli, kdy en = 1. Dále je z obrázku patrné, že zpoždění signálu je 4 hodinové cykly, což při periodě 2,8ns odpovídá zpoždění 11,2 ns. V simulaci je též vidět, že odezva na adresu 0 je , což odpovídá číslu 0,5, odezva na adresu 1 je , což odpovídá 0, jenž se jen mírně liší od skutečného výsledku 1 0, e = 1 34
38 Obrázek 22: Simulace funkce neuronové sítě 35
39 Obrázek 23: Simulace náhledové tabulky 36
40 3.9. Ověření výsledků v praktické aplikaci Pro demonstraci funkce byla zvolena jednoduchá funkce rozpoznání určitého černobílého obrazce viz. Obrázek 24. Jako vstup byl použit černobílý obrázek o rozměrech 10x10 prvků. Pro ověření byla použita UNS o konfiguraci 5 neuronů v 1. skryté vrstvě, 5 neuronů ve 2. skryté vrstvě a 1 výstupní neuron. Pro trénink UNS byla použita množina 18 obrázků (trénovací množina) viz. Obrázek 25. Testování bylo prováděno pomocí množiny 5-ti obrázků (testovací množina) viz. Obrázek 26. Obrázek 24: Hledaný obrazec Obrázek 25: Trénovací množina Obrázek 26: Testovací množina Aby bylo možné provést výpočet je nejdříve nutné převést obrazce na tvar vhodný pro výpočet v UNS. Obrazce byly převedeny tak, že byly rozřezány po řádcích a poté přededeny na číselné vyjádření v pevné řádové čárce. Po převodu tedy Bílý bod odpovídá hodnotě 0 a černý hodnotě 1 vyjádřené v pevné řádové čárce. Takovýto způsob vyjádření je výhodný pro případ, že nebudou použity černobílé obrázky, ale například obrázky 37
41 ve stupních šedi, kdy je poté možné hodnotami v rozsahu <0;1> vyjádřit intenzitu jednotlivých bodů. Jako učící algoritmus byl zvolen algoritmus Error Back Propagation. Vyžadovaná odezva byla 0 (neodpovídající symbol) nebo 1 (odpovídající symbol) vyjádřené pomocí pevné řádové čárky. UNS byla učena v programu Matlab, až do dosažení hodnoty chybové funkce E = 5. Následně byl proveden export váhy do souborů, ze kterých budou poté načteny při syntéze UNS pro obvod FPGA. Vstupní data jsou uložena do paměti BRAM, odkud jsou pak postupně čtena a zapisována na vstup UNS. Pro ověření byla provedena simulace se dvěma znaky, jeden znak byl zvolen z učící množiny a druhý znak byl vytvořen mírně deformovaný. Obrázek 27 zobrazuje znaky použité pro ověření funkce. Obrázek 27: Dvojice znaků použitých pro ověření funkčnosti UNS Výsledky simulace názorně ukazuje Obrázek 28. Jako první byl UNS předložen obrázek z trénovací množiny. Výstup o hodnotě 1 v pevné řádové čárce odpovídá očekávanému výsledku. Poté byl na vstup UNS poslán na deformovaný obrázek. Odezva byla " ", což odpovídá číslu 0, Je tedy možné tvrdit, že deformovaný obrázek se na 80% podobá obrázku učícímu. Dále je z obrázky vidět, že celý výpočet trval 567 ns, při periodě hodinového signálu 3 ns, což odpovídá maximální pracovní frekvenci 333,3 MHz. Ke zvýšení periody signálu došlo vlivem zvětšení potřebné plochy čipu. Při této rychlosti může UNS provést přes 1,76 miliónů porovnání za sekundu. 38
42 Obrázek 28: Simulace naučené UNS pro dva různé vstupy 39
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
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ě
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á
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
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)
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
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
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
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
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
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
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
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
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
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ýukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.
Metodický list hardware Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití. Postupuje od výčtu základních prvků, bez kterých se PC
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
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ý
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
SPARTAN - 3 Xilinx FPGA Device
SPARTAN - 3 Xilinx FPGA Device 1. Úvod: 1.2V řada SPARTAN-3 navazuje na úspěch předchozí řady: SPARTAN-IIE. Od architektury SPARTAN-IIE se liší v počtu systémových hradel a logických buněk, velikosti RAM,
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í
Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje
Paměti Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje Paměti počítače lze rozdělit do tří základních skupin: registry paměťová místa na čipu procesoru jsou používány
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šší
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í
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í
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT prof. Ing. Jiří Holčík,, CSc. NEURONOVÉ SÍTĚ otázky a odpovědi 1 AKD_predn4, slide 8: Hodnota výstupu závisí na znaménku funkce net i, tedy na tom, zda bude suma
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á
Systém řízení sběrnice
Systém řízení sběrnice Sběrnice je komunikační cesta, která spojuje dvě či více zařízení. V určitý okamžik je možné aby pouze jedno z připojených zařízení vložilo na sběrnici data. Vložená data pak mohou
1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
.. Minimalizace logické funkce a implementace do cílového programovatelného obvodu Zadání. Navrhněte obvod realizující neminimalizovanou funkci (úplný term) pomocí hradel AND, OR a invertorů. Zaznamenejte
Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Petr
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
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
Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače
V roce 1945 vystoupil na přednášce v USA matematik John von Neumann a představil architekturu samočinného univerzálního počítače (von Neumannova koncepce/schéma/architektura). Základy této koncepce se
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
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
Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student
Předmět Ústav Úloha č. 9 BIO - igitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Cíle Pochopení funkce obvodu pro odstranění zákmitů na
Disková pole (RAID) 1
Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.
Vstupně - výstupní moduly
Vstupně - výstupní moduly Přídavná zařízení sloužící ke vstupu a výstupu dat bo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo, ale prostřednictvím vstupně-výstupních modulů ( ů ). Hlavní
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
Princip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
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í
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
3. Vícevrstvé dopředné sítě
3. Vícevrstvé dopředné sítě! Jsou tvořeny jednou nebo více vrstvami neuronů (perceptronů). Výstup jedné vrstvy je přitom připojen na vstup následující vrstvy a signál se v pracovní fázi sítě šíří pouze
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ě
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
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
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
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. MRBT Robotika
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘÍCÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION
TECHNICKÝ POPIS MODULU GRAFIK =============================
listů: 8 list : 1 TECHNICKÝ POPIS MODULU GRAFIK ============================= zpracoval: Nevoral schválil: Cajthaml ZPA, k.p. Nový Bor, listopad 1985 4-151-00342-4 list: 1 list: 2 1. VŠEOBECNĚ Obvody realizované
Úloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
PŘEDNÁŠKA 1 - OBSAH. Přednáška 1 - Obsah
PŘEDNÁŠKA 1 - OBSAH Přednáška 1 - Obsah i 1 Analogová integrovaná technika (AIT) 1 1.1 Základní tranzistorová rovnice... 1 1.1.1 Transkonduktance... 2 1.1.2 Výstupní dynamická impedance tranzistoru...
Z čeho se sběrnice skládá?
Sběrnice Co je to sběrnice? Definovat sběrnici je jednoduché i složité zároveň. Jedná se o předávací místo mezi (typicky) více součástkami počítače. Sběrnicí však může být i předávací místo jen mezi dvěma
Ří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
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ý
Jak do počítače. aneb. Co je vlastně uvnitř
Jak do počítače aneb Co je vlastně uvnitř Po odkrytí svrchních desek uvidíme... Von Neumannovo schéma Řadič ALU Vstupně/výstupní zař. Operační paměť Počítač je zařízení, které vstupní údaje transformuje
Praktické úlohy- 2.oblast zaměření
Praktické úlohy- 2.oblast zaměření Realizace praktických úloh zaměřených na dovednosti v oblastech: Měření specializovanými přístroji, jejich obsluha a parametrizace; Diagnostika a specifikace závad, měření
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á)
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
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
Globální matice konstrukce
Globální matice konstrukce Z matic tuhosti a hmotnosti jednotlivých prvků lze sestavit globální matici tuhosti a globální matici hmotnosti konstrukce, které se využijí v řešení základní rovnice MKP: [m]{
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
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á
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í
Sekvenční logické obvody
Název a adresa školy: Střední škola průmyslová a umělecká, Opava, příspěvková organizace, Praskova 399/8, Opava, 746 01 Název operačního programu: OP Vzdělávání pro konkurenceschopnost, oblast podpory
Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM
Paměti Rambus DRAM (RDRAM) Paměti Flash Paměti SGRAM 1 Požadavky na RDRAM - začátky Nové DRAM musí zajistit desetinásobné zvýšení šířky pásma srovnání výkonu procesoru a paměti. Náklady na výrobu a prodej
Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,
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
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í
XC3000(A) / XC3100(A)
FPGA Xilinx SPARTAN 1. FPGA Xilinx historie Řada XC2000 byla historicky první FPGA (rok 1984), v současné době se již nedodává. Principy použité pro její konstrukci byly natolik geniální, že jsou na nich
Paměť počítače. 0 (neprochází proud) 1 (prochází proud)
Paměť počítače Paměť je nezbytnou součástí jakéhokoli počítače. Slouží k uložení základních informací počítače, operačního systému, aplikačních programů a dat uživatele. Počítače jsou vybudovány z bistabilních
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
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
Počítač jako elektronické, Číslicové zařízení
Počítač jako elektronické, Číslicové Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1135_Počítač jako elektrornické, číslicové _PWP Název školy: Číslo a název projektu: Číslo a název šablony
AGP - Accelerated Graphics Port
AGP - Accelerated Graphics Port Grafiku 3D a video bylo možné v jisté vývojové etapě techniky pracovních stanic provozovat pouze na kvalitních pracovních stanicích (cena 20 000 USD a více) - AGP představuje
KOMBINAČNÍ LOGICKÉ OBVODY
Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty
Moderní systémy pro získávání znalostí z informací a dat
Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:
Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44
Asociativní paměti Asociativní sítě (paměti) Cíl učení Asociace známého vstupního vzoru s daným výstupním vzorem Okoĺı známého vstupního vzoru x by se mělo také zobrazit na výstup y odpovídající x správný
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu
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
Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:
Vzorový příklad. Zadání: Na přípravku realizujte kombinační obvod představující funkci logického součinu dvou vstupů. Mající následující pravdivostní tabulku. x 1 x 0 y 0 0 0 0 1 0 1 0 0 1 1 1 Rovnicí
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
18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry
18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry Digitální voltmetry Základním obvodem digitálních voltmetrů je A/D
Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.
Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:
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í
Mezipaměti počítače. L2 cache. L3 cache
Mezipaměti počítače Cache paměť - mezipaměť Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá vyrovnávací (cache) paměť SRAM. Rychlost
Čí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ží
Integrovaná střední škola, Sokolnice 496
Integrovaná střední škola, Sokolnice 496 Název projektu: Moderní škola Registrační číslo: CZ.1.07/1.5.00/34.0467 Název klíčové aktivity: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Kód výstupu:
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana Kubcová Název
Návrh čítače jako automatu
ávrh čítače jako automatu Domovská URL dokumentu: http://dce.felk.cvut.cz/lsy/cviceni/pdf/citacavrh.pdf Obsah ÁVRH ČÍTAČE JAO AUTOMATU.... SYCHROÍ A ASYCHROÍ AUTOMAT... 2.a. Výstupy automatu mohou být
Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:
Aplikovaná numerická matematika
Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních
Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus
Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná
Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Vzorový příklad. Zadání: Na přípravku realizujte kombinační obvod představující funkci logického součinu dvou vstupů. Mající následující pravdivostní tabulku. x 1 x 0 y 0 0 0 0 1 0 1 0 0 1 1 1 Rovnicí
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
Počítačová sestava paměti, operační paměť RAM
Pavel Dvořák Gymnázium Velké Meziříčí Počítačová sestava paměti, operační paměť RAM Registrační číslo projektu: CZ.1.07/1.5.00/34.0948 Jazyk: čestina Datum vytvoření: 17. 10. 2012 Cílová skupina: studenti
Souhrn Apendixu A doporučení VHDL
Fakulta elektrotechniky a informatiky Univerzita Pardubice Souhrn Apendixu A doporučení VHDL Práce ke zkoušce z předmětu Programovatelné logické obvody Jméno: Jiří Paar Datum: 17. 2. 2010 Poznámka k jazyku
Paměťový podsystém počítače
Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...
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ž
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy