VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
|
|
- Daniela Soukupová
- před 5 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA ROZPOZNÁVÁNÍ ČÍSLIC POMOCÍ NEURONOVÉ SÍTĚ BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR ZDENĚK DOUPOVEC BRNO 2009
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA ROZPOZNÁVÁNÍ ČÍSLIC POMOCÍ NEURONOVÉ SÍTĚ NEURAL NETWORK NUMBER RECOGNITION BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR ZDENĚK DOUPOVEC Ing. JANA ŠILHAVÁ BRNO 2009
3 Abstrakt Tato práce popisuje základními pojmy a principy v oboru neuronových sítí. Blíže se pak věnuje problematice vícevrstvých perceptronových sítí, konkrétně metodě back-propagation. Jsou zde rozebrány výhody a nevýhody zmíněné metody, návrh možného systému rozpoznávání číslic pomocí back-propagation. Cílem je získat konkrétní výsledky z programu schopného rozpoznávat čísla. Abstract This work describes the basic concepts and principles in the field of neural networks. Closer then deals with the problem of multilayer perceptron networks, namely back-propagation method. There are analyzed the advantages and disadvantages of these methods, the proposal of possible digits recognition system using back-propagation. The aim is to obtain concrete results from the program whitch is able to recognize numbers. Klíčová slova Neuron, neuronová síť, perceptron, back-propagation, rozpoznávání číslic, učení, rozpoznávání. Keywords Neuron, neural network, perceptron, back-propagation, number recognition, learning, recognition. Citace Zdeněk Doupovec: Rozpoznávání číslic pomocí neuronové sítě, bakalářská práce, Brno, FIT VUT v Brně, 2009
4 Rozpoznávání číslic pomocí neuronové sítě Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením Ing. Jany Šilhavé. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. Zdeněk Doupovec 10. Května 2009 Poděkování Chtěl bych poděkovat své vedoucí Ing. Janě Šilhavé za odborné vedení, za ochotu poskytnout mi informace a rady, a za čas, který mi věnovala. Dále pak kamarádu Tomáši Janíkovi a své rodině za podporu. Zdeněk Doupovec, 2009 Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů. 4
5 Obsah Obsah Úvod Neuron a neuronové sítě Biologický model neuronu Umělý model neuronu Srovnání modelů Modely neuronových sítí Perceptronová síť Učení Vybavování Metoda Back-Propagation Uvedení Algoritmus Problémy metody Back-propagation Učení větších datových sad Návrh Návrh systému pro učení Vstupní vrstva Skrytá vrstva Výstupní vrstva Algoritmus Návrh systému pro rozpoznávání Prahování Zjištění úhlu a pootočení Segmentace Implementace a výsledky Učení dle vzoru Testy počtu epoch Vyhodnocení testu počtu epoch Testy rychlosti učení Vyhodnocení testu rychlosti učení Testy závislostí počtu vrstev a počtu neuronů Vyhodnocení testů Rozpoznání jedné číslice
6 4.2.1 Šum v obraze Posunutí v obraze Nakloněný obraz Přílišná adaptace Vyhodnocení testů rozpoznání jedné číslice v obraze Rozpoznání sady číslic s určením pozice na papíře Obecné rozpoznání Rozpoznání naskenovaného dokumentu Rozpoznání číslic v obraze Závěr
7 1 Úvod V současné době se problému neuronových sítí věnuje nespočet vědců. Uvědomujeme si možný potenciál, který v sobě skrývají. Můžeme směle tvrdit, že neuronové sítě se využívají téměř všude a s postupem času doufejme, že se tento trend bude dále rozšiřovat. Nezastupitelné uplatnění nalezneme v lingvistice, vědě o neuronech, řízení procesů, přírodních a společenských vědách, kde se pomocí nich modelují nejen procesy učení a adaptace, ale i široké spektrum různých problémů klasifikace objektů a také problémů řízení složitých průmyslových systémů. Při vytváření modelů umělých neuronových sítí nám nejde o vytvoření identických kopií lidského mozku, ale napodobujeme pouze některé jeho základní funkce. Tato práce má za úkol vyzkoušet a testovat neuronové sítě k řešení konkrétních problémů, ověřit funkční metody a principy, případně navrhnout modely, které by stávající dále rozšiřovaly. Chci na neuronové sítě nahlížet jako na neoddělitelný celek mnoha oborů, počítačové grafiky, umělé inteligence, zpracování obrazu a videa apod., a pokusit se tento fakt zohlednit i ve své práci. V kapitole [2] seznamuje čtenáře s modelem biologického neuronu, který vytvořila příroda, protože je považován za základní kámen celého oboru. Nalezneme zde matematický model a vůbec popis biologického neuron a neuronové sítě tak, jak jej vytvořil člověk. Bližší seznámení s konkrétní neuronovou sítí (metoda back-propagation) používanou pro rozpoznávání číslic pak v podkapitole [2.5]. Další částí je návrh možné implementace [3]. Zde narazíme na konkrétní problémy, jež se mohou při vytváření systému objevit, metody jako prahování, vyhledávání objektů v obraze apod., návrh systému pro učení [3.1] a rozpoznávání[3.2]. Poslední částí [4] je pak samotná implementace a porovnání dosažených výsledků. Závěrem celé práce [5] je hodnocení, návrhy na další možnosti rozšiřování a poslední slovo autora. 3
8 2 Neuron a neuronové sítě V této kapitole popisuji biologický neuron a jeho neživou reprezentaci používanou v informačních technologiích. Vysvětluji principy fungování neuronů, nechybí zde ani jejich srovnání. Podrobněji je zde popsána metoda back-propagation, kterou jsem si zvolil jako vhodnou pro rozpoznávání. 2.1 Biologický model neuronu Lidský mozek se skládá z asi bohatě rozvětvených nervových buněk, neuronů, vedoucích vzruchy. Ty spolu komunikují prostřednictvím sítě vazeb, vstupů a výstupů a pomocí elektrických výstupů v chemickém prostředí. Neurony jsou základními stavebními prvky nervové soustavy, které se zaměřují na sbírání, uchovávání, zpracování a přenos informací. Existuje celá řada různých neuronů lišících se ve tvaru a velikosti. Většina má ale shodné části s typickým míšním motoneuronem (viz Obr. 2.1) [8]. Obr. 2.1 Biologický model neuronu Neuron se skládá z několika hlavních částí. Tělo, z něhož vychází jeden výstup (axon) a množství dendritů, které tvoří vstup neuronu. Axon může být velmi dlouhý, i několik metrů u velkých zvířat. U člověka je nejdelší axon asi 1 m dlouhý. Vede od páteře až po konečky prstů na nohou. Axon je chráněn Myelinovou pochvou, tvořenou Schwannovými buňkami. Ta není souvislá, vytváří asi 1mm dlouhé segmenty (internodia) členěné Ranvierovými zářezy. V místech zářezu je na membráně axonu velké množství elektricky řízených iontových kanálů. Výplň mezi neurony tvoří drobné, bohatě rozvětvené buňky neuroglie (glie). Tyto buňky vzruchy nevedou, vyživují neurony a odvádějí odpadní látky metabolizmu v nervové tkáni. 4
9 Jeden neuron má v lidském mozku spojení v průměru asi spojů s jinými neurony. Zajímavostí je, že pokud vypadnou některé z neuronů dodávajících informace, tak se výsledné chování neuronové sítě nezmění. Dendrity se s axony sousedních neuronů stýkají prostřednictvím synapse. Přenášené signály jsou elektrické impulsy, jejichž přenos je ovlivněn uvolňováním chemických látek v synapsích. Synapse působí nejen jako rozhraní mezi jednotlivými neurony, ale také přispívají na vytváření paměťových stop. Neuron má svou vnitřní aktivitu, která je závislá na jeho historii (např. dosavadním průběhu aktivity) a na dráždění ostatními neurony nebo receptory. Aktivace neuronu nastane tehdy, překročí-li hodnota budících vstupních signálů hodnotu tlumících signálů o určitou prahovou hodnotu. V praxi situace vypadá tak, že neuron přijímá signály (podněty) ze sousedních neuronů. Podnět může být elektrický, chemický nebo mechanický. Teprve až nashromážděné hodnoty překročí prahovou, pošle po neuritu svůj signál (toto je označováno jako pálení neuronu). Tento signál můžeme registrovat jako elektrický děj. Rychlost signálu (vzruchu) závisí na síle myelinové vrstvy (ta izoluje neurit od ostatních neuronů) a pohybuje se od 0.5 m/s do 120 m/s. Když vzruch dojde k synapsi, elektrický signál se mění na chemický. V zakončení neuritu jsou váčky obsahující mediátor. Ten se uvolní do synaptické štěrbiny. Na druhé straně synapse je mediátor zaznamenán chemoreceptory a vzruch je opět převeden na elektrický signál. Tímto způsobem se síří signál po celé neuronové síti [2]. 2.2 Umělý model neuronu K reprezentaci biologického neuronu se používá formální neuron. Často se v literatuře setkáváme s pojmem perceptron. Jde o formální neuron použitý ke konkrétním příkladům. Formální neuron (dále jen neuron) je umělý zjednodušený model biologického neuronu, od kterého očekáváme stejné (nebo alespoň podobné) chování. Neuron se skládá z několika vstupů a právě jednoho výstupu. Každému vstupu x i přiřazujeme určitou váhu w i. Neuron má jeden trvalý vstup o váze w 0, který je se nazývá práh. Pro vyjádření vztahu vstupních a výstupních hodnot neuronu se používá následující vzorec [7]: (2.1) x i w i Θ ƒ y Vstupy neuronu, počet vstupů je N Váhové vstupy neuronu (také označované jako synaptické váhy), počet je N Práh neuronu Aktivační funkce, přenosová funkce. Argument je označován jako vnitřní potenciál neuronu Výstup neuronu 5
10 Obr. 2.2 Formální model neuronu Výstup neuronu je určen funkční hodnotou aktivační funkce vnitřního potenciálu neuronu. Podle toho, jakou aktivační funkci použijeme, dostáváme jiné výstupy a tedy jiné neurony. Základní typy aktivačních funkcí jsou: Lineární Skoková Sigmoida Hyperbolický tangens Na obrázku č. 2.3 [3] jsou znázorněny průběhy jednotlivých funkcí. Z hlediska neuronů a neuronových sítí jsou nejzajímavější sigmoida a hyperbolický tangens. Obě jsou rostoucí a liší se jen oborem hodnot. Sigmoida je definovaná na intervalu (0,1) a hyperbolický tangens na intervalu (-1,1). Obr. 2.3 Aktivační funkce Za pozornost stojí rovnice zmiňovaných funkcí sigmoidy a hyperbolické tangenty [10]. Zde totiž hodnota λ určuje roztažení funkce po ose x. Tato vlastnost nám dovoluje vkládat do funkce větší hodnoty. (2.2) 6
11 Hlavní důvod používání právě těchto funkcí je ale možnost je jednoduše derivovat. Její derivace se nikde neblíží nekonečnu [4]. 2.3 Srovnání modelů (2.3) Při porovnávání obou modelů lze narazit na části, které se chovají naprosto stejně, což je zřejmé, pro tento účel byl model neuronu vytvořen. Nyní konkrétněji. Vstupní signály přicházející po dendritech odpovídají vstupům u formálního neuronu. V případech obou neuronů existuje mezní hodnota (ekvivalent prahu), která neuron aktivuje. Aktivační funkci bychom mohli přirovnat k mechanismu, který v živém neuronu zabezpečí aktivaci pouze, je-li celkový potenciál větší než asi 15mV [2]. Výstup formálního neuronu odpovídá axonu. Je nepopiratelné, že biologický model je dokonalejší. Pokud vytvoříme neuronovou síť, musíme zohledňovat fakt, že počítače ještě stále pracují sekvenčně a nejsou schopny vypočítávat souběžně několik operací. I u více-jádrových procesorů dochází k sekvenčnímu zpracování a k nutné synchronizaci Modely neuronových sítí Vzhledem k sekvenčnímu zpracovávání dat procesorem, bylo nutné přistupovat takto i k neuronovým sítím. Byly vytvořeny modely, které maximálně zohledňují zmíněnou problematiku. Příklady základních modelů: model Sutton-Barto, model Hebb Tyto modely považují statický pohled na problematiku za nedostatečný. Jsou inspirovány Darwinovskou představou sobeckého chování základního elementu, který se snaží maximálně využít své vstupy podle svého měřítka hodnot. Byly navrženy tak, aby pro dostatečný počet neuronů byly schopny ovlivňovat vnitřní parametry, respektive že se neurony mohou upravit sami podle opakovaných vstupních podnětů a stát se stabilní. Učení nastává tehdy, když jsou neurony stabilizovány. model Hopfield, model Bolzmann - Topologie sítí je naprosto homogenní, každý neuron je spojen se všemi ostatními, spojení jsou symetrická. Hopfieldova síť používá dvě různé binární prahové jednotky (-1,1 a 0,1), takže existuji dvě možnosti její aktivace. Je vhodná pro data s binární reprezentací např. černo-bílé obrazy. Často se používá jako asociativní paměť nebo pro řešení optimalizačních problémů. Síť se velice rychle a snadno adaptuje vytváří si 7
12 tzv. stabilní stavy podle tréninkových vzorů. S jistotou konverguje k lokálnímu minimu, ale nezaručuje konvergenci k jednomu z uložených vzorů. Bolzmanův stroj (model) definuje síť jako soustavu stochastických částic, které se snaží dosáhnout stavu s nejmenší energií. V tomto (definicí částic) se od Hopfieldova modelu liší. Jinak jsou si ale oba modely velmi podobné, oba uvažují jednotky s energií, výpočetní vzorce pro celkovou energii jsou stejné. Hammingův model - Tato síťje nejjednodušším příkladem kompetičního modelu. Ten se skládá se ze dvou vrstev neuronů: z vrstvy receptorů a z vrstvy vstupních neuronů (selfish neurony). Výstupní neurony nemají fiktivní vstup. Výstup každého vstupního neuronu je propojen se všemi výstupními neurony. Jedná se o variantu s učitelem a binárním vstupem. Lze ji také popsat jako třídič dle nejmenší chyby: k danému vstupu najde kategorii, jejíž reprezentant má od vstupu nejmenší tzv. Hammingovu vzdálenost (tj počet odlišných vstupů). První vrstva sítě počítá Hammingovu vzdálenost (respektive doplněk), druhá laterální inhibicí vybírá maximum (správnou kategorii). Kohonenův model - Kohonenova samo-organizující se sít je typ sítě, které při učení nepotřebují učitele. Je založena na algoritmu shlukové analýzy, tj. na schopnosti nalézt určité navzájem závislé vlastnosti přímo v překládaných trénovacích datech bez přítomnosti nějaké vnější informace. Algoritmus vytváří nízko-dimenzionální (obvykle dvou-dimenzionální) rozlišitelné reprezentace vstupních tréninkových sad, které se nazývají mapy. Každý neuron ve výstupní vrstvě je výstupem a jejich počet (výstupů) je tedy roven počtu neuronů. Učení v Kohonenově síti probíhá tak, že se učící algoritmus snaží uspořádat neurony v mřížce do určitých oblastí tak, aby byly schopny klasifikovat předložená vstupní data. Feed-forward model nerekurentní, nejjednodušší a vůbec první model neuronové sítě. Informace se pohybuje pouze jedním směrem, od vstupní vrstvy přes vrstvu skrytých neuronů na vrstvu výstupní. Síť neobsahuje žádné smyčky ani cykly. Podrobněji se této metodě, a její konkrétní variantě back-propagation, budu věnovat v následujících kapitolách. 2.4 Perceptronová síť Je síť, která má za vzor biologickou neuronovou síť. Skládá se z perceptronů, které jako celek používají paralelní zpracování informace. Používají se jak k řešení problémů v oboru umělé inteligence, tak k simulaci biologické neuronové sítě. To je velmi výhodné, není totiž potřeba vytvářet biologický model. Dále budu používat pojem perceptron namísto neuronu. I když pojem vznikl později, vyjadřuje totéž. 8
13 Zjednodušeně si lze fungování perceptronové sítě představit jako funkci, která se snaží pro nějaký vektor vstupních hodnot přiblížit vektoru výstupnímu tak, že nastavuje hodnoty vektoru vah. Běžně se používá základní model model se třemi vrstvami: Vrstva vstupních perceptronů Vrstva skrytých perceptronů Vrstva výstupních perceptronů Vrstva vstupních a výstupních perceptronů slouží jako rozhraní, snažící se požadované vstupní a výstupní informace předat skryté vrstvě ke zpracování. Obr. 2.4 Perceptronová síť [5] Protože se při předávání a porovnávání informací s výstupní vrstvou uplatňuje proces změny vah neuronů, říkáme, že se perceptronova síť adaptuje (učí). Hodnoty vah zde reprezentují paměť perceptronové sítě. Po adaptaci nastává vybavování (fáze aktivní). Spočívá ve "vypočítání" výstupu ze vstupních informací, přičemž síť zohledňuje všechny naučené vzory Učení Učení se v perceptronové síti, realizuje nastavováním vah mezi jednotlivými uzly. Vahám se přisoudí počáteční hodnoty, které mohou být náhodně zvolené, nebo vybrané podle nějakého podobného případu. Poté se na vstupní vektor přivede trénovací množina. Síť následně poskytne patřičný výstup. Dle typu porovnání získaných výstupních hodnot rozlišujeme dva typy učení: 9
14 učení s učitelem vždy existuje nějaké vnější kritérium určující, který výstup je správný, a v síti se nastavují váhy pomocí zpětné vazby podle toho, jak blízko je výstup kritériu. Vypočítává se rozdíl mezi žádaným a skutečným výstupem. Váhy se nastavují podle nějakého algoritmu, který zabezpečuje snižování chyby mezi skutečným a žádaným výstupem. Metodika snižování rozdílu je popsána učícím algoritmem. Algoritmus může být jednokrokový, ale velmi často je iterační. učení bez učitele - nemá žádné vnější kritérium správnosti. Algoritmus učení je navržen tak, že hledá ve vstupních datech určité vzorky se společnými vlastnostmi. Do tohoto učení tedy není zapojen žádný vnější arbitr a celé učení je založeno pouze na informacích, které samotná síť během celého procesu učení získala. Říkáme tomu také samo-organizace. Příkladem sítě s učením bez učitele je Kohonenova neuronová síť Vybavování Aktivní (vybavovací) fáze následuje za fází adaptivní. Z hodnot jednotlivých vstupů x i a vah w i se podle vzorce pro výpočet výstupu perceptronu (viz vzorec 2.1) vypočte odpovídající výstup neuronu. Pokud vybavování probíhá v síti, mění se jednotlivé výstupy neuronů tak dlouho, dokud nenastane rovnovážný stav. Časově se mohou obě fáze překrývat, většinou se ale implementují odděleně. Frank Rosenblatt roku 1959 definoval (popsal) algoritmus pro nastavení perceptronů (též znám jako Perceptron convergence teorem) takto: If there is a set of weights that correctly classify the ( linearly seperable ) training patterns, then the learning algorithm will find one such weight set, w * in a finite number of iterations Rosenblatt F (1962) Principles of Neurodynamics. Spartan, New York Volně přeloženo: Máme-li v n-rozměrném prostoru lineárně separabilní třídy objektů, pak lze v konečném počtu kroků učení (iterací optimalizačního algoritmu) nalézt vektor vah w perceptronu, který oddělí jednotlivé třídy bez ohledu na počáteční hodnoty těchto vah. 10
15 2.5 Metoda Back-Propagation Uvedení V této kapitole je popsána metoda s dopředným šířením informace a zpětným šířením chyby (feedforward back-propagation). Je nejznámější a nejpoužívanější metoda ve vícevrstvých perceptronových sítích se snadnou implementací. Jde o metodu s učitelem, jejím hlavním cílem je minimalizovat chybu perceptronů skryté vrstvy gradientní metodou, respektive vyhledáním lokálního minima. Back-propagation dodržuje základní model třívrstvé perceptronové sítě. Back-propagation se učí pomocí vzorů. Síti zadáme vzor, který požadujeme, aby byla schopna rozpoznat, a necháme algoritmus probíhat (měnit váhy, dle zjištěné chyby). Na výstup požadujeme rozpoznání právě toho vzoru (nyní může být i zašuměný. Sítě tohoto typu jsou velmi vhodné pro rozpoznávání sad znaků a pro mapovací úkoly. Obr. 2.5 Ukázka možného vstupu a požadovaného výstupu Pokud na vstup vložíme vzor tak jak je na Obr. 2.5, požadujeme na výstupu reprezentaci 0 a 1. O vzoru a jeho konkrétním výstupu říkáme, že je to trénovací pár. Jakmile je jednou síť naučena, poskytuje požadované výstupy pro jakýkoliv vstupní vzor. 11
16 2.5.2 Algoritmus Celá síť je nejprve inicializována tak, že se všem vahám nastaví náhodné malé číslo, např. z intervalu <0,1>. Na vstup je přiveden vzor a vypočítán výstup celé perceptronové sítě (feed-forward) podle vzorce (2.1). Protože jsou hodnoty vah nastaveny náhodně, výsledek se po prvním průchodu naprosto liší od požadovaného. Proto vypočítáme chybu jako rozdíl požadované výstupní hodnoty (Target) a aktuálně získané výstupní hodnoty (Output) [9]: Error = Output * (1 - Output) * (Target - Output) (2.4) Pro tuto konkrétní chybu byla použita aktivační funkce Sigmoida. Pokud použijeme jako aktivační funkci základní skokovou, výstupní chyba se vypočítá jako (Target - Output). Tato varianta je popsána na začátku další kapitoly [3.1.3]. Přepočítáme pomocí této chyby všechny váhy (back propagation chyby). W new představuje novou, přepočítanou hodnotu váhy, W current aktuální hodnotu váhy[9]: W new = W current + (Error * Input) (2.5) Výstup by se měl v dalším průchodu přiblížit požadovanému a tedy i chyba zmenšit. Celý postup opakujeme, dokud nedosáhneme požadovaného výsledku pro rozpoznávání. Z postupu je vidět, že cílem metody je změnit hodnoty vah tak, aby jako celek konvergovaly k minimu nějaké funkce. Back-propagation pro skokovou aktivační funkci. Algoritmus má jinou topologii, zcela chybí skrytá vrstva, a uplatňuje se Hebbovo pravidlo. To říká, že jestliže dva spolu propojené neurony jsou ve stejném okamžiku aktivní, pak jsou jejich vazby (představované synaptickými váhami) zesíleny. Pokud jsou oba neurony neaktivní, dochází k zeslabení jejich vzájemné vazby. V případě aktivity pouze jednoho neuronu, nejsou synapse modifikovány. Každý uvažovaný neuron má pouze dva stavy aktivní a neaktivní. 12
17 2.5.3 Problémy metody Back-propagation Velká přesnost (přeučení) Metoda není schopna po dokončení učení rozpoznat zašuměná data. Problém nastává, pokud metodu učíme příliš dlouho. Hodnoty vah jsou zcela adaptovány na získání minima funkce a už nezohledňují vstupní sadu vzorů. Obr. 2.6 Přesnost učení Řešení spočívá v zavedení Kontrolní chyby. Ta po každém dokončeném cyklu učení přepočítá chybu v závislosti na vstupních vzorech. Algoritmus nepoužívá při učení zašuměná vstupní data, po zavedení kontrolní chyby je bude schopen ve vybavovací fázi rozpoznat. Nalezení minima Metoda se snaží měnit hodnoty vah tak, aby chyba klesala. Nastává ovšem problém, v případě, že chyba začne růst došlo k nalezení lokálního minima funkce. Zde hrozí, že se metoda zasekne a chyba se nebude dále zmenšovat. Algoritmus chce ve vyhledávání pokračovat, chce dosáhnout globálního minima. Toho ale nedosáhne, protože není schopen procházet funkci směrem vzhůru. Existuje několik způsobů jak odstranit tento problém[9]: Všem vahám nastavíme nové náhodné hodnoty, metoda se bude muset učit znova a bude mít jinou funkci, ve které bude hledat minima Upravíme vzorce pro nastavení nových hodnot vah. Hodnoty nebudou závislé jenom na aktuální chybě, ale také na hodnotách z předešlého průchodu. W new = W current + (Error * Input) + Momentum (2.6) Kde Momentum M vyjádříme následovně: M * (W current W old ) (2.7) 13
18 Momentum (setrvačnost) definované v intervalu <0,1> určuje, jak dlouho bude váhový vektor pokračovat ve stejném směru, než překročí hodnotu gradientního horizontu (než začne počítat gradient pro jiné minimum). Nevýhodou backpropagation s momentem je fakt, že pokud máme funkci, kde problém s lokálním minimem nenastává, pak je metoda bez momenta mnohem rychlejší. Rychlost učení Jeden z nejdůležitějších aspektů pro nalezení globálního minima. Značíme η a rovnice pro výpočet nových hodnot vah vypadá následovně[9]: W new = W current + η(error * Input) (2.8) Algoritmus s příliš malé hodnoty rychlosti učení probíhá velmi pomalu (konverguje velmi pomalu), naopak pro velké hodnoty rychle, ale hrozí riziko oscilace mezi relativně nezajímavými lokálními minimy, případně divergence u globálního minima. Obr. 2.7 Rychlost učení Obě tyto možnosti mohou být vyhledány pomocí experimentování a testování vzorků po pevně daném počtu průchodů. Běžně používané hodnoty rychlosti učení leží v intervalu <0,1>. Ideální by bylo, použít největší hodnotu rychlosti učení, při zachování schopnosti konvergovat k minimálnímu řešení. 14
19 2.5.4 Učení větších datových sad V předchozích kapitolách jsme si popsali, jak úspěšně naučit metodu pro jeden vzor. Nyní popíšeme postup pro naučení sady vzorů například čísel, písmen. Na vstup vložíme první vzorek ze sady a provedeme veškeré výpočty a nastavení vah. Poté aplikujeme druhý, třetí až dokud nepoužijeme všechny vzory z celé sady. Celý proces opakujeme pro požadovaný počet průchodů epoch (dále jen epocha). Je důležité, nejprve naučit celou sadu a teprve potom pokračovat další epochou. Kdybychom síť zcela naučili první vzor, a chtěli pokračovat na další, veškeré učení by bylo zbytečné. Hodnoty vah by byly po prvním průchodu pro druhý vzor přepsány a síť by nebyla schopna první vzorek rozpoznat. Proto je lepší sehnat si vzorovou sadu se stejným počtem vzorků pro každý symbol, v případě chybějícího vzoru v nějaké sadě pak opakovat vzorek reprezentující stejný symbol z předchozí sady. Algoritmus je nutné učit jednotlivé sady postupně, i když vzorky z různých sad reprezentující stejný symbol. V takovém případě se váhy přizpůsobují nejen jednotlivým vzorům, reprezentující různé symboly, ale pokouší se i najít určitou střední hodnotu pro vzory, reprezentující stejný symbol, z jiných vrstev. U větších datových sad musíme algoritmu poskytnout dostatek epoch, aby byl schopen rozpoznat všechny vzory. Můžeme vypočítat celkovou chybu jako součet všech chyb neuronů a algoritmus ukončit po dosažení určité hodnoty, nebo nastavit přesnost, pro kterou se budou váhy měnit. Možností na ukončení je mnoho. Jakmile je síť naučena, je schopna rozpoznat nejen přesné vzory, dle kterých se učila, ale i zašuměné a s chybami. rozpoznání ještě můžeme vylepšit přidáním zašuměného vzoru do učící sady, případně náhodným proházením učících vzorů. 15
20 3 Návrh Celá práce má za cíl popsat využití neuronových sítí ke zpracování obrazu, konkrétně pak k rozpoznání číslic. Požadujeme vytvoření takového systému, který by obsáhl problematiku jako celek. Kapitola popisuje návrhy na vytvoření systému schopného tento úkol řešit, je rozdělena do těchto podkapitol: Návrh systému pro učení Návrh systému pro rozpoznávání K řešení zmíněného problému plně vyhovuje metoda Back-propagation. Návrhy zde popsané uvažují tuto metodu. 3.1 Návrh systému pro učení Základní jednotkou systému pro učení je bezesporu perceptron propojený vstupy a výstupy do perceptronové sítě. Z předchozích kapitol je zřejmé, s jakými typy informací pracuje. Datová struktura perceptronu tedy musí obsahovat informace o vstupech, vahách a výstupu. Struktura reprezentující perceptron může vypadat následovně: struktura Perceptron{ double[] vstup; double[] vaha; double vystup; }; Perceptrony můžeme nyní vložit do pole typu Perceptron[] a přistupovat k jednotlivým perceptronům pomocí indexů. Back-propagation funguje na modelu trojvrstvé sítě, definujeme tedy troje pole. Pole vstupů typu Perceptron[] a výstupů typu Perceptron[] a pole dvojrozměrné pro skrytou vrstvu Perceptron [][] (může být i jednorozměrné pokud skrytá vrstva obsahuje jednu vrstvu). Následují rozdíly a důvody použití polí v jednotlivých vrstvách Vstupní vrstva Systém má rozpoznávat číslice, které jsou ve formě obrázků. Jakýkoliv obrázek si lze představit jako posloupnost pixelů s určitou barvou (v tomto případě s černou nebo s bílou, problematice barevných obrázků se věnuji později). Pro účely rozpoznávání, vyplníme vstupní pole vstup[] perceptronu hodnotami posloupnosti barev obrázku tak, že černá barva bude reprezentována číslem 1 a bílá číslem 0. Dostaneme tedy pole vstupu s hodnotami 1a 0 (případně 1.0 a 0.0, dle typu použitého pole). 16
21 Obr. 3.1 Reprezentace vstupní vrstvy Nezáleží na pořadí, v jakém budeme do pole hodnoty zadávat. Je ale důležité, aby učení a rozpoznávání fungovalo podle jednoho systému Skrytá vrstva Dvojrozměrné pole typu perceptron nabízí jednoduchou obsluhu a snadné ověřování správnosti. Problém, který může u skryté vrstvy nastat, je volba správného počtu perceptronů a vrstev. Neexistuje žádná metoda schopná najít optimální počet, je však dobré, držet se obecně známých doporučení. Počet perceptronů ve všech vrstvách, by neměl být menší než počet informací jdoucí jako vstup vstupní vrstvě a také, by neměl být více než dvojnásobný. Malý počet perceptronů, tedy i vah, vede k nedostatku váhových potenciálů a neschopnosti sítě si zapamatovat všechny vzory. Příliš mnoho vede zase k velké přesnosti, absolutní neúčinnosti vybavování a neschopnosti vůbec. Správný počet perceptronů je potřeba určit prakticky, provést několik cvičných učení a vyvodit výsledky Výstupní vrstva Poslední vrstva určuje, kolik výstupů očekáváme a co je cílem adaptace pro konkrétní vzor ze sady. Perceptronová síť pro rozpoznávání čísel bude obsahovat 10 perceptronů na výstupní vrstvě (každý perceptron reprezentující jednu číslici), pro rozpoznávání písmen abecedy 26 perceptronů (uvažujme písmena anglické abecedy). Počet požadovaných výstupů tedy určuje počet perceptronů ve výstupní vrstvě. Dále každému konkrétnímu vzoru musíme po jednom skončeném průchodu sítí určit chybu získaného výstupu (out) od požadovaného (target). Je dostačující, pokud výstup vedoucí k požadovanému správnému perceptronu ohodnotíme jako 1 a ke špatnému 0. Tato metoda zabezpečuje správné zpětné šíření chyby a správné přepočítávání vah. Existuje několik přístupů k vypočtení chyby. Základní metoda back-propagation používá sumu všech chyb vektorů výstupů výstupní vrstvy ke zjištění chyby u jednotlivých výstupních neuronů: (3.1) 17
22 Back-propagation požívající sigmoidu jako aktivační funkci zase uplatní následující vzorec[9]: (3.2) kde out (1 - out) je první derivací funkce sigmoidy Algoritmus Obecný algoritmus pro adaptaci metody Back-propagarion lze popsat pomocí následujícího diagramu: Celková chyba = 0 Aplikuj první sadu a adaptuj se NE Vypočti chybu všech výstupních perceptronů, udělej z ní absolutní hodnotu a přičti k celkové chybě Je celková chyba menší jak požadovaná ANO NE Byla adaptována i poslední sada ANO Skonči Obr. 3.2 Diagram pro Back-propagation 18
23 3.2 Návrh systému pro rozpoznávání Rozpoznávání není příliš vhodné posuzovat jen z pohledu perceptronových sítí. Mohou nastat situace, kdy je lepší obraz různými metodami upravit před samotným rozpoznáváním. Z praktického života víme, že takové situace nastávají neustále (skenování psaného textu, identifikace poznávací značky rychle jedoucího auta). Na problematiku jsem se proto rozhodl nahlížet z vyšší perspektivy, z pohledu oboru zpracování obrazu. Back-propagation je schopen rozpoznávat i barevné obrázky, jeho implementace však není tak triviální (místo binárních hodnot pixelu se například vkládají přímo vektory, je potřeba si uchovávat hodnoty sousedních pixelů atd.) Existují metody, s jejichž pomocí lze dosáhnout velmi kvalitních výsledků. Nejsou tak efektivní jako backpropagation pro barevný vstup, ale pro tyto potřeby plně dostačují. Nejzákladnější je použití prahování (tresholding) Prahování Každý bod obrazu je reprezentován hodnotou, která je kombinací tří barev (uvažujme standardní RGB model). Intenzita (jas) bodu lze vypočítat pomocí vzorce X. Jde vlastně o převod do stupňů šedi pomocí poměrného zastoupení jednotlivých složek barev [11]. I = 0.299R B G (3.3) Prahování je metoda, která dle intenzity rozhodne, zda pixel vynulujeme, pokud nepřesahuje stanovenou hodnotu prahu, nebo nastavíme na hodnotu černé. Prahovaný obraz má právě jednu hodnotu prahu. Ta může být nastavena pevně (např. na hodnotu středu pro převod na černobílý orázek) nebo dle histogramu globální prahování. Problém globálního prahování spočívá v tom, že není schopno reagovat na lokální změny v jasové funkci. Získaná hodnota prahu pak nemusí být optimální ve všech částech obrazu a nastávají komplikace, např. tmavé skvrny po krajích obrazu podobně těm při skenování zvlněného papíru. Možné řešení je adaptivní prahování, které se snaží nalézt hodnotu prahu na malém okolí pixelu Zjištění úhlu a pootočení Návrh se bude skládat ze dvou částí, nejprve musíme zjistit, o jaký úhel se bude obrázek otáčet, teprve pak můžeme samotné otočení provést. K vyhledání úhlu použijeme Houghovu metodu (transformaci). Vyhledává parametrický popis objektů v obraze. Při implementaci je třeba znát analytický popis tvaru hledaného objektu (v našem případě přímky). Metoda je používána především pro segmentaci objektů, jejichž hranici lze popsat právě zmíněnými křivkami. Hlavní výhodou je schopnost rozpoznat i objekt s nepravidelnostmi, zašumělý objekt a objekt s chybějícími částmi. Metoda je výpočetně velmi náročná. Je důležité si uvědomit, že bude fungovat jen pro nějaký soubor znaků, např. text. Pro jeden samotný znak můžeme obrázek pootočit o několik stupňů a zkusit rozpoznat, pak opět pootočit a tak 19
24 pokračovat dokud neopíšeme kružnici nebo dokud je chyba rozpoznání tak malá, že můžeme považovat rozpoznávání za úspěšné. Pootočení [12] se provádí pro každý pixel samostatně. Využijeme k tomu počátku souřadnicového systému, kdy úhel otočení určujeme podle něj. Nejprve pixel P převedeme do homogenního tvaru: Kde w je váha, kterou vynásobíme souřadnice x a y. A transformujeme pomocí matice M: (3.4) Nové souřadnice pixelu tedy budou: (3.5) Získali jsme novou pozici pixelu. Pro naše účely je však lepší využít rotaci podle zvoleného středu (středu stránky). Použijeme počátku jako bodu, kolem kterého se bude rotace provádět. Pixel tedy pomocí transformační matice přesuneme k počátku, otočíme a přesuneme zpět na původní místo. (3.6) I když nebude pootočení úplně přesné, perceptronová síť by měla znak poznat. V případě textu je potřeba ještě provést segmentaci, tzn. oddělení jednotlivých znaků. (3.7) Segmentace Pro určení pozice znaku pro rozpoznávání použijeme opět převod do stupňů šedi. Konkrétněji použijeme vertikální a horizontální histogram stupňů šedi v celém obraze. Vertikální nám oddělí řádky a horizontální znaky a mezery. Určíme si prahovou hodnotu, podle které budeme považovat data z histogramů za znak a naopak za mezeru, řádek nebo šum. Můžeme tedy jednotlivé znaky vysekávat a posílat na analýzu perceptronové síti, známe totiž jejich souřadnice. Problém může nastat u spojených nebo jinak deformovaných znaků. Tato problematika je však zcela nad rámec této práce. Obr. 3.3 Vertikální a horizontální histogram 20
25 4 Implementace a výsledky Součástí bakalářské práce je program, schopný rozpoznat čísla pomocí metody back-propagation. V této kapitole popíši implementovaný systém s názornou ukázkou výsledků. Program jsem rozdělil do tří hlavních částí: Učení dle vzoru Rozpoznání jedné číslice Rozpoznání sady číslic s určením pozice na papíře Pro testování jsem použil několik sad číslic. Základem je jednoduchá sada deseti číslic vytvořená v malování, pro ověření správné funkčnosti algoritmu. Tuto sadu jsem různě upravoval a přidával šum, posunoval pozice apod. Další sady číslic jsou převážně převzaty z různých typů písem (fontů), dále pospojovány pro vytvoření souboru sad. Je možné vkládat i barevné číslice, program je ale prahuje dle střední hodnoty 127 (rozsah 0-255). Samozřejmostí je vkládání různých typů souborů obrázků: bmp, jpeg (jpg), png, gif, tiff. Pokud nebude řečeno jinak, jako standardní budu používat formát bmp. U ostatních jsem díky různým metodám komprimací, úpravy barev apod. dosáhl nežádoucích efektů. Jako nejméně vhodný (zejména pro adaptaci) se pak ukázal formát jpeg, právě kvůli zmíněné metodě prahování. Ve fázi rozpoznávání jsem proto pro jistotu implementoval nastavitelnou hodnotu prahu. V následujících kapitolách je pro názornost uvedeno jaké sady, případně formátu, bylo použito. 4.1 Učení dle vzoru Program je implementován tak, aby poskytl uživateli maximální možnou volbu přednastavení. Taková flexibilita je nezbytná při samotném testování a určování nejlepších výsledků. Při dosažení vhodných výsledků je možné neuronovou síť uložit pro pozdější použití. Je nutné opět podotknout, že každé nové učení nastavuje nové hodnoty vah neuronům. Pro co možná největší objektivnost bylo nutné některé učení provádět opakovaně tak, aby se celkové výsledné chyby co nejvíce blížily (funkce hodnot vah měly podobné minimum). Jako základní vzorovou sadu jsem použil vlastní obrázky 5x7 pixelů reprezentující 10 číslic. Záměrně jsem se snažil použít takovou sadu, jejíž číslice by se navzájem podobaly. Obrázky reprezentující číslice 5 a 6 se liší pouze ve dvou pixelech. Obr. 4.1 Číslice 5 a 6 21
26 Nastavení sítě Počty neuronů: 7 ve vstupní vrstvě 7 v jedné skryté vrstvě 10 ve výstupní vrstvě Aktivační funkce: sigmoida Vstup: 10 obrázků s rozměry 5*7 pixelů reprezentující 10 číslic Výstup porovnávám se vzorovými obrázky číslic 5 a 6. Výsledky testů pro různé hodnoty počtu epoch, rychlostí učení, zvolené přesnosti. Vždy je provedena sada dvaceti testů, je vybrán nejlepší a nejhorší výsledek (největší a nejmenší celková chyba), jde vlastně o součet chyb ve všech vrstvách sítě. Porovnávám úspěšnost (hodnotu na výstupu výstupní vrstvy) na dvou nejvíce si podobných číslicích, konkrétně 5 a Testy počtu epoch Počet epoch Nejmenší celk. chyba 5 pro 5 6 pro NE NE ANO ANO ANO ANO Tabulka 4.1 Test počtu epoch s nejmenší celkovou chybou pro 20 testovaných sítí Počet epoch Největší celk. chyba 5 pro 5 6 pro NE Ne ANO ANO ANO ANO Tabulka 4.2 Test počtu epoch s největší celkovou chybou pro 20 testovaných sítí Vyhodnocení testu počtu epoch Výsledné testy dopadly dle předpokladu a potvrdily teorii. Pro malý počet epoch se váhy nebyly schopny adaptovat a číslice nebyly rozpoznány. Hodnoty úspěšnosti u ostatních číslic se pohybovaly na stejném číselném řádu nebo o řád níže. Tento počet epoch je nedostatečný pro rozpoznání. Pro epoch dopadly testy lépe. Číslice byly rozpoznány. Váhy se stačily dostatečně adaptovat. Je zajímavé, že při tomto počtu epoch hraje roli největší / nejmenší celková chyba naučené 22
27 sítě. Z tabulky můžeme vidět znatelný rozdíl v úspěšnosti. I přes tento rozdíl lze považovat síť za schopnou rozpoznat číslice, chyby pro ostatní číslice se pohybovaly ve stejném desetinném řádu, maximálně o dva řády níž, proto může dojít k chybě rozpoznání u zašuměných dat. Epochy s největším testovaným počtem průchodů dopadly nejlépe. To zajisté potvrzuje i úspěšnost. Ta se u ostatních číslic pohybovala o jeden až šest desetinných řádů níže. U největších rozdílů jsou tedy číslice pro takovouto síť nezaměnitelné. Problémem této sítě byla velmi dlouhá doba učení. Pokud bychom použili vzorový obrázek s desetinásobnými rozměry (samozřejmě i jinou neuronovou síť, viz podkapitola ), doba trvání adaptace by neúměrně stoupla na několik hodin. Síť byla naučena s menším počtem neuronů (24), než je počet vstupů (35). Rozhodl jsem se proto, provést ještě několik testů, zohledňující tuto skutečnost. Vstupní vrstva obsahovala 12 neuronů, jedna skrytá vrstva 12 a výstupní 10. Pro počet epoch 4000 dopadly testy v porovnání s původními o něco lépe, nejmenší nalezená chyba dosahovala hodnoty 0,98, rozdíl oproti hodnotám z tabulky 4.1 činí nezanedbatelných 0,4. Přesto síť nebyla dostatečně adaptována pro rozpoznávání. Nepodařilo se úspěšně rozpoznat žádnou číslici. Zkoumat podrobně závislosti počtu neuronů a topologii budu později. Další testy jsou provedeny s hodnotou počtu epoch Tento počet nepochybně bude stačit, vzhledem k získaným výsledkům (uvažuji podobný počet neuronů) Testy rychlosti učení Stejná konfigurace sítě jako předchozí test, počet epoch Rychlost učení Nejmenší cel. chyba 5 pro 5 6 pro ANO ANO ANO ANO ANO ANO Tabulka 4.3 Test rychlosti učení s nejmenší celkovou chybou pro 20 testovaných sítí Rychlost učení Největší cel. chyba 5 pro 5 6 pro ANO ANO ANO ANO ANO ANO Tabulka 4.4 Test rychlosti učení s největší celkovou chybou pro 20 testovaných sítí 23
28 4.1.4 Vyhodnocení testu rychlosti učení Rychlost učení nemá vliv na takovéto konkrétní nastavení sítě, pro všechny hodnoty dopadl test téměř shodně. V průběhu testu došlo v jednom případě k absolutní odchylce, kdy se největší celková chyba pohybovala kolem hodnoty 1,7. Tuto hodnotu jsem anuloval. Dále bylo zjištěno, že pokud se hodnota celkové chyby pohybuje kolem 0.2, pak je úspěšnost pro rozpoznání čísla velmi vysoká. Mám tedy jistotu, že hodnota počtu epoch byla vybrána vhodně. Neuronové sítě z tabulky jsou uloženy na přiloženém médiu Testy závislostí počtu vrstev a počtu neuronů V této kapitole zkusím ověřit teorii z kapitoly návrhy. Otestuji funkčnost základního vertikálního a horizontálního modelu skryté vrstvy, jejich kombinace, model bez skryté vrstvy a schopnost sítě poradit si s nedostatkem a přebytkem počtu neuronů. Stále uvažuji počet epoch, budu testovat 20 sítí na jeden model, dokud nedosáhnu počtu epoch nebo nedosáhnu minimální celkové chyby Celkový počet neuronů v testech je 30. Nejúspěšnější model budu používat v dalších testech rozpoznávání. Obr. 4.2 Testování topologie a počtu 24
29 Model 1 Neuronovou síť bez skryté vrstvy. Vstupní vrstva 25 neuronů, výstupní 10. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek ANO ANO Nejhorší výsledek ANO NE Tabulka 4.5 Výsledky pro Model 1 Tetování skončilo po dosažení počtu epoch. Z výsledků byla zřejmá podobnost obou číslic. Hodnoty úspěšnosti se pohybovaly na stejném desetinném řádu, ostatní o jeden až tři řády níže. Model 2 Test horizontálního modelu. Vstupní vrstva 5 neuronů, jedna skrytá vrstva 20 neuronů, výstupní 10. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek ANO ANO Nejhorší výsledek ANO ANO Tabulka 4.6 Výsledky pro Model 2 Při testu bylo dosaženo velmi uspokojivých výsledků. Přestože při adaptaci docházelo k častějším divergencím (4 z 20), síť se při konvergenci perfektně adaptovala. Rozdíly mezi identifikovanými čísly 5 a 6 tvořily téměř jeden celý desetinný řád. Tento model je vhodným kandidátem pro rozpoznávání. Model 3 Test vertikálního modelu. Vstupní vrstva 5 neuronů, 20 skrytých vrstev po jednom neuronu, výstupní 10 neuronů. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek NE NE Nejhorší výsledek NE NE Tabulka 4.7 Výsledky pro Model 3 Testování ukončeno po pěti náhodných sítích. Již během testu se celková chyba pro každou novou epochu měnila na šestém desetinném místě. Tato topologie je zcela nevhodná pro další použití. 25
30 Model 4 Test modelu s různým počtem skrytých vrstev. Pro názornost provedu dva testy. Test 1: Vstupní vrstva 5 neuronů, 2 skryté vrstvy po deseti neuronech, výstupní vrstva 10 neuronů. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek NE NE Nejhorší výsledek NE NE Tabulka 4.8 Výsledky pro Model 4, Test 1 Test 2: Vstupní vrstva 5 neuronů, 4 skryté vrstvy po pěti neuronech, výstupní vrstva 10 neuronů. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek STORNO STORNO STORNO STORNO Nejhorší výsledek STORNO STORNO STORNO STORNO Tabulka 4.9 Výsledky pro Model 4, Test 2 Provedené testy nedopadly dobře, druhý test musel být po pěti pokusech ukončen. Po 5000 pokusech bylo zřejmé, že tato topologie konverguje k minimu velmi pomalu. U obou docházelo jen k malé změně celkové chyby. Oba případy se velmi podobají vertikálnímu modelu. Z výsledků modelů jedna až čtyři tedy vyplývá, že sítím tohoto typu vyhovuje méně vrstev, zato s větším počtem neuronů. Pro další testy jsem se tedy rozhodl použít model 2. Model 5 V posledním modelu testuji vliv neadekvátního počtu neuronů ve skryté vrstvě vzhledem ke vstupu. Je požadováno 35 neuronů. Test 1 zaměřím na nedostatek a test 2 na přebytek. Jako topologii jsem zvolil model 2. Test 1: Vstupní vrstva 5 neuronů, jedna skrytá vrstva se dvěma neurony, výstupní vrstva 10 neuronů. Celkem 17 neuronů, polovina požadavku. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek STORNO STORNO STORNO STORNO Nejhorší výsledek STORNO STORNO STORNO STORNO Tabulka 4.10 Výsledky pro Model 5, Test 1 Test byl stornován, metoda konvergovala velmi krátce, značně divergovala s celkovou chybou přesahující 2. Je ale velmi zajímavé, že změna celkové chyby po jednotlivých epochách byla mnohem větší než v modelu 3. 26
31 Test 2: Vstupní vrstva 5 neuronů, jedna skrytá vrstva se 37 neurony, výstupní vrstva 10 neuronů. Celkem 52 neuronů, o polovinu více neuronů. Celková chyba Počet epoch 5 pro 5 6 pro 6 Nejlepší výsledek ANO ANO Nejhorší výsledek ANO ANO Tabulka 4.11 Výsledky pro Model 5, Test 2 Metoda konvergovala a divergovala velmi prudce, a pokud dosáhla požadované celkové chyby resp. počtu epoch, rozpoznávala číslice s velkou přesností. Nepochybně hlavním faktorem ovlivňující toto chování je moment nastavení počátečních vah. Pokud jsou váhy nastaveny dostatečně náhodně tedy vhodně, můžeme i pro velký počet neuronů po krátkém časovém úseku získat požadované řešení. Velmi užitečné by pak bylo použít nadbytek neuronů pro větší rozměry vstupu. Prudkost a náhlost konvergence by zaručila řešení. Vše je nutné ověřit testováním, síť musí projít určitým počtem epoch s naučením Vyhodnocení testů U většiny neúspěšných testů vidíme, že síť rozpoznává obraz jako číslici 9. Je to zapříčiněno nedokončenou adaptací. Algoritmus prochází výstupy a vypočítává výstupní chybu sekvenčně tak, že pokud nastal problém s adaptací, nejlepší šanci na úspěch má vždy 9 (např. Model 4, Test 1). S každou další epochou se výstupní chyba u všech číslic vyrovnává. Síť se dostává do fáze, kdy už je schopna číslice rozpoznat. takové identifikace bývá v průměru kolem 0,6. Taková síť ještě není připravena dostatečně (Model 1). Jako dostatečně naučenou můžeme klasifikovat síť, jejíž celková chyba je menší jak 0.25 (Model 2). Taková síť by měla být schopna rozpoznávat i silně zašumělá data. Více v další kapitole. Nejdůležitější poznatek z této kapitoly je však zjištění, že pokud obsahuje neuronová síť alespoň podobný počet neuronů, jaký je počet vstupních informací, pak nezáleží ani tak na počtu neuronů, jak na správné topologii. Test horizontálního modelu (Model 2) téměř vždy končil před hraničním počtem epoch s dostatečně malou celkovou chybou. Tento model budu používat i v dalších testech. Všechny testy úspěšně proběhly i pro větší rozměry obrázků. Bylo potřeba provést několik zkušebních epoch pro získání představy fungování sítě pro větší počty neuronů. Na přiloženém CD je možné najít přednastavené sítě pro testy jednotlivých modelů. 27
32 4.2 Rozpoznání jedné číslice V této kapitole budu dále testovat neuronovou síť, zaměřím se na samotné rozpoznávání. Pokusím se testovat různě zašumělé datové vstupy, s tím související nežádoucí vlastnost sítě přílišnou adaptaci (přeučení), nakloněný obraz apod. Raději zvolil rozměrnější objekt. Vzorem je znaková sada MS PMincho s velikostí písma 11 bodů, obrázky v rozměru 9 x 13 pixelů. Neuronová síť třívrstvá, vstupní vrstva 20 neuronů, jedna skrytá vrstva 100 neuronů a výstupní vrstva 10 neuronů Šum v obraze Testuji výskyt nežádoucích objektů v obraze. Červeně je vyznačen původní obrázek. Obr 4.3 Vzorová sada se šumem Výstupní chyba ANO ANO ANO ANO Výstupní chyba ANO ANO ANO ANO Tabulka 4.12 Zašuměná data Zjistil jsem, že metoda velmi úspěšně rozpoznává zašuměné datové sety. V pátém testu byla číslice úspěšně rozpoznána i s velmi malou výstupní chybou. V dalším testu budu zjišťovat schopnost rozpoznat posunuté číslice. 28
33 4.2.2 Posunutí v obraze Vzor jsem posouval o jeden pixel doleva. Posunutí vlevo 1 pixel 2 pixely 3 pixely Výstupní chyba ANO NE - 7 NE - 7 Tabulka 4.13 Posunutí v obraze Testováním jsem dokázal, že metoda není vhodná k identifikaci posunutých objektů oproti vzorové sadě. Před rozpoznáváním je potřeba objekt vycentrovat nebo použít jiné metody zpracování obrazu. Posunutí pro jeden pixel dopadlo úspěšně, protože šířka původního vzorového obrázku byla 2 pixely. Síť tedy rozpoznávala pětku se šumem Nakloněný obraz Při naklánění do obrázku přibyly odstíny šedi, u rozpoznávání jsem proto požil metodu prahování k odstranění tohoto jevu. Testovaný obrázek je pootočen o 5 stupňů a každý o dalších 5. Rotuji po směru hodinových ručiček. Obr. 4.4 Nakloněný obraz Rotace ve stupních Hodnota prahu Výstupní chyba ANO ANO NE - 6 NE - 6 NE - 6 NE - 4 Tabulka 4.14 Nakloněný obraz Test potvrdil předpoklad, že nakloněná pětka je snadno zaměnitelná se šestkou. I s různými hodnotami prahu jsem dosahoval stejných výsledků, pouze pro rotaci +30, síť identifikovala obrázek jako čtyřku pro prahové hodnoty 100 ± 20, pro ostatní opět jako šestku. Problém se zaměnitelností může být způsoben i drobným posunutím. Je nutné přesně určit střed vzoru a teprve rotovat. Posunutí ve výsledku způsobí velmi malé výstupní hodnoty pro požadované číslo. Obecně jsem dosahoval malých výstupních hodnot pro všechny čísla. 29
34 4.2.4 Přílišná adaptace Síť budu testovat pro celkový počet epoch a pokusím se dokázat existenci tohoto problému. Testováním i s takto velkým počtem epoch neprokázalo efekt přeučení. Pokusím se test opakovat s menší znakovou sadou a jinou neuronovou sítí. Použiji stejnou jako v Modelu 2 kapitoly Počet epoch Ani výsledky tohoto testu nezjistili přítomnost přeučení. Výstupní hodnota vzoru pro pětku byla 0.997, se šumem Obrázky se přitom lišily v 6 pixelech z 35 (téměř 20% chyba). Problém přílišné adaptace se mi nepodařilo potvrdit Vyhodnocení testů rozpoznání jedné číslice v obraze Algoritmus Back-propagation výborně rozpoznává obraz se šumem. I hodně znehodnocené číslice se podařilo identifikovat s velkou úspěšností. Problém nastal, pokud byl obraz nějakým způsobem vychýlen, ať už posunem, nebo rotací. Poměrně úspěšně byla síť schopna rozpoznat mírně pootočené číslice. Ostatní se nedařilo. Jde o důležité zjištění, které je potřeba si uvědomit, pokud budeme chtít rozpoznávat objekty ve větším obraze (viz kapitola 3.2 Návrh systému pro rozpoznávání). V další části se takové rozpoznání pokusím provést. 30
35 4.3 Rozpoznání sady číslic s určením pozice na papíře V poslední části se pokusím otestovat schopnost programu rozpoznat čísla na papíře a v obraze. Dle zjištění nemožnosti identifikovat posunuté znaky jsem se rozhodl, že celý obrázek budu procházet po jednotlivých pixelech a podle úspěšnosti budu symboly vyhodnocovat. Neuvažuji zcela otočených symbolů, předpokládám správné vložení obrázku (uživatel vložil papír do skeneru podle návodu). Takové rozšíření je možné implementovat později, i tak je tato část jistým nadstandardem zadané bakalářské práce. Chtěl jsem ověřit schopnost adaptovat se na problémy z praxe Obecné rozpoznání Vytvořil jsem obrázek se vzory dle předchozích kapitol. Použitá neuronová síť se shoduje s použitou v kapitole 4.2. Obr 4.5 Obecné rozpoznání V obrázku bylo nalezeno 20 objektů, z nichž 6 bylo rozpoznáno chybně a 14 správně, i s pozicí na papíře. rozpoznání správného rozpoznání z nalezených objektů je tedy 70%. Tvrdit, že je metoda úspěšná, zatím nelze. Obrázek je vytvořen na počítači a nezohledňuje problémy v praxi. Další test provedu na naskenovaném dokumentu. 31
36 4.3.2 Rozpoznání naskenovaného dokumentu Neuronová síť je naučena vzory písmen řady MS PMincho. Vybranému dokumentu jsem celý text převedl do uvedeného druhu písma, dokument vytisknul, polil nápojem, pomačkal a naskenoval. Následně byla aplikována neuronová síť. Obr. 4.6 Rozpoznání naskenovaného dokumentu Vyhodnocení Snažil jsem se docílit věrohodnosti tím, že maximálně přiblížím testování běžnému kancelářskému prostředí. Naskenovaný obraz po rozpoznání nevykazoval velkou úspěšnost vyhledávání, bylo tedy nutné chvíli hledat vhodnou hodnotu při prahování. Každé nové rozpoznání pro jiné hodnoty prahu označily i jiné místa výskytu číslic. Některá místa výskytu se však opakovala a jak je vidět na obrázku 4.6, takové lokace skutečně číselné hodnoty obsahují (pravý horní obrázek je sloučením všech tří ostatních dohromady). Existovaly číslice vykazující velmi slušnou stabilitu i při změně vah. Pro rozpoznávání číslic v obrázku takovéhoto typu je zcela nezbytné jej nejprve předpřipravit, např. použitím metod zvětšení ostrosti obrazu, adaptivním způsobem prahování apod. 32
37 4.3.3 Rozpoznání číslic v obraze Pro identifikaci jsem zvolil fotku. Obr. 4.7 Rozpoznání číslic v obraze Podobně jako u rozpoznání textu, metoda spíše než nalezení konkrétních hodnot označila místa, kde se s největší pravděpodobností číslice budou vyskytovat. Správně určila hodnoty číslic 5 a 7 i s jejich pozicí, dvojku a devítku neidentifikovala vůbec. Zajímavé výsledky můžou nastat, pokud namísto fotky použijeme video. Chybné lokality by v několika snímcích neexistovaly a vykrystalizovaly by tak správně určené hodnoty a pozice (v našem případě SPZ Sanitky). 33
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íceFiala 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íceAlgoritmy 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íce5. 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íceNeuronové 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íceRosenblattů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íceANALÝ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
VíceÚ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í
VíceArchitektura - 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íceNeuronové 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íceAlgoritmy 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íceUmě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íce3. 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
VíceNeuronové sítě (11. přednáška)
Neuronové sítě (11. přednáška) Machine Learning Naučit stroje se učit O co jde? Máme model výpočtu (t.j. výpočetní postup jednoznačně daný vstupy a nějakými parametry), chceme najít vhodné nastavení parametrů,
VíceNeuronové č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íceVyuž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ícePV021: 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íce5. 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íceAmbasadoř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íceNeuropočí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íceNeuronové 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íceAsociativní 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ý
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela
VíceAlgoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)
Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů) Autor: Vladimir Vapnik Vapnik, V. The Nature of Statistical Learning Theory.
VíceTré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íceAlgoritmy 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ícePokroč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íce12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
Více13 Barvy a úpravy rastrového
13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody
VíceStátnice odborné č. 20
Státnice odborné č. 20 Shlukování dat Shlukování dat. Metoda k-středů, hierarchické (aglomerativní) shlukování, Kohonenova mapa SOM Shlukování dat Shluková analýza je snaha o seskupení objektů do skupin
Více5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
VíceMatematické modelování dopravního proudu
Matematické modelování dopravního proudu Ondřej Lanč, Alena Girglová, Kateřina Papežová, Lucie Obšilová Gymnázium Otokara Březiny a SOŠ Telč lancondrej@centrum.cz Abstrakt: Cílem projektu bylo seznámení
VíceAlgoritmy 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íceAlgoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
VíceNG 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íceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
VíceRozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005
Rozpoznávání písmen Jiří Šejnoha Rudolf Kadlec (c) 2005 Osnova Motivace Popis problému Povaha dat Neuronová síť Architektura Výsledky Zhodnocení a závěr Popis problému Jedná se o praktický problém, kdy
VíceDiskrétní řešení vzpěru prutu
1 z 5 Diskrétní řešení vzpěru prutu Discrete solution of beam buckling Petr Frantík Abstract Here is described discrete method for solution of beam buckling. The beam is divided into a number of tough
VíceKybernetika a umělá inteligence, cvičení 10/11
Kybernetika a umělá inteligence, cvičení 10/11 Program 1. seminární cvičení: základní typy klasifikátorů a jejich princip 2. počítačové cvičení: procvičení na problému rozpoznávání číslic... body za aktivitu
VíceNeuronové sítě. 1 Úvod. 2 Historie. 3 Modely neuronu
Neuronové sítě L. Horký*, K. Břinda** Fakulta jaderná a fyzikálně inženýrská, Břehová 7, 115 19 Praha 1 *horkyladislav@seznam.cz, **brinda@fjfi.cvut.cz Abstrakt Cílem našeho příspěvku je získat uživatelský
Více3. Optimalizace pomocí nástroje Řešitel
3. Optimalizace pomocí nástroje Řešitel Rovnováha mechanické soustavy Uvažujme dvě různé nehmotné lineární pružiny P 1 a P 2 připevněné na pevné horizontální tyči splývající s osou x podle obrázku: (0,0)
VíceÚvod do optimalizace, metody hladké optimalizace
Evropský sociální fond Investujeme do vaší budoucnosti Úvod do optimalizace, metody hladké optimalizace Matematika pro informatiky, FIT ČVUT Martin Holeňa, 13. týden LS 2010/2011 O čem to bude? Příklady
VíceÚ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íceOPTIMALIZACE. (přehled metod)
OPTIMALIZACE (přehled metod) Typy optimalizačních úloh Optimalizace bez omezení Nederivační metody Derivační metody Optimalizace s omezeními Lineární programování Nelineární programování Globální optimalizace
VíceCo je obsahem numerických metod?
Numerické metody Úvod Úvod Co je obsahem numerických metod? Numerické metody slouží k přibližnému výpočtu věcí, které se přesně vypočítat bud nedají vůbec, nebo by byl výpočet neúměrně pracný. Obsahem
Více7. přednáška Systémová analýza a modelování. Přiřazovací problém
Přiřazovací problém Přiřazovací problémy jsou podtřídou logistických úloh, kde lze obecně říci, že m dodavatelů zásobuje m spotřebitelů. Dalším specifikem je, že kapacity dodavatelů (ai) i požadavky spotřebitelů
VíceRozpoznávání izolovaných slov (malý slovník, např. číslovky, povely).
Rozpoznávání řeči Každý člověk má originální hlasové ústrojí a odlišný způsob artikulace, to se projevuje rozdílnou barvou hlasu, přízvukem, rychlostí řeči atd. I hlas jednoho řečníka je variabilní a závislý
VíceVYSOKÉ 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
VícePřipomenutí co je to soustava lineárních rovnic
Připomenutí co je to soustava lineárních rovnic Příklad 2x 3y + z = 5 3x + 5y + 2z = 4 x + 2y z = 1 Soustava lineárních rovnic obecně Maticový tvar: a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a
VíceVolba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D
Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D Jiří Stančík Fakulta chemická, Vysoké učení technické v Brně Purkyňova 118, 61200 Brno e-mail: HTUxcstancik@fch.vutbr.czUTH Úkolem této práce
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
VíceTSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY
TSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY V PROSTŘEDÍ MATLAB K. Nováková, J. Kukal FJFI, ČVUT v Praze ÚPŘT, VŠCHT Praha Abstrakt Při rozpoznávání D binárních objektů z jejich diskrétní realizace se využívají
VíceOperace s obrazem II
Operace s obrazem II Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 Osnova Matematická morfologie Segmentace obrazu Klasifikace objektů
VíceLineární diskriminační funkce. Perceptronový algoritmus.
Lineární. Perceptronový algoritmus. Petr Pošík Czech Technical University in Prague Faculty of Electrical Engineering Dept. of Cybernetics P. Pošík c 2012 Artificial Intelligence 1 / 12 Binární klasifikace
Více1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.
Kapitola 5 Řešení viditelnosti Řešit viditelnost ve scéně umí většina grafických programů. Cílem je určit ty objekty, resp. jejich části, které jsou viditelné z určitého místa. Tyto algoritmy jsou vždy
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
VíceJana Dannhoferová Ústav informatiky, PEF MZLU
Počítačová grafika Křivky Jana Dannhoferová (jana.dannhoferova@mendelu.cz) Ústav informatiky, PEF MZLU Základní vlastnosti křivek křivka soustava parametrů nějaké rovnice, která je posléze generativně
VíceVYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
VíceIterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
VíceKřivky a plochy technické praxe
Kapitola 7 Křivky a plochy technické praxe V technické praxi se setkáváme s tím, že potřebujeme křivky a plochy, které se dají libovolně upravovat a zároveň je jejich matematické vyjádření jednoduché.
VíceUNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek
UNIVERZITA PARDUBICE Licenční Studium Archimedes Statistické zpracování dat a informatika 4.4 Aproximace křivek a vyhlazování křivek Mgr. Jana Kubátová Endokrinologický ústav V Praze, leden 2012 Obsah
VíceEmergence chování robotických agentů: neuroevoluce
Emergence chování robotických agentů: neuroevoluce Petra Vidnerová, Stanislav Slušný, Roman Neruda Ústav Informatiky, AV ČR Kognice a umělý život VIII Praha 28. 5. 2008 Evoluční robotika: EA & neuronové
VíceANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ
ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ Parametrické vyjádření přímky v rovině Máme přímku p v rovině určenou body A, B. Sestrojíme vektor u = B A. Pro bod B tím pádem platí: B = A + u. Je zřejmé,
VíceKlasifikace předmětů a jevů
Klasifikace předmětů a jevů 1. Úvod Rozpoznávání neboli klasifikace je základní znak lidské činnosti. Rozpoznávání (klasifikace) předmětů a jevů spočívá v jejich zařazování do jednotlivých tříd. Třídou
Vícekamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická
Odstranění geometrických zkreslení obrazu Vstupní obraz pro naše úlohy získáváme pomocí optické soustavy tvořené objektivem a kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická
VíceREGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB
62 REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB BEZOUŠKA VLADISLAV Abstrakt: Text se zabývá jednoduchým řešením metody nejmenších čtverců v prostředí Matlab pro obecné víceparametrové aproximační funkce. Celý postup
VíceStatistická teorie učení
Statistická teorie učení Petr Havel Marek Myslivec přednáška z 9. týdne 1 Úvod Představme si situaci výrobce a zákazníka, který si u výrobce objednal algoritmus rozpoznávání. Zákazník dodal experimentální
VíceVektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
VíceModerní 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:
VíceJaroslav Tuma. 8. února 2010
Semestrální práce z předmětu KMA/MM Odstraňování šumu z obrazu Jaroslav Tuma 8. února 2010 1 1 Zpracování obrazu Zpracování obrazu je disciplína zabývající se zpracováním obrazových dat různého původu.
VíceKatedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group
Vytěžování dat Miroslav Čepek, Filip Železný Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group Evropský sociální fond Praha & EU: Investujeme
Více5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
VíceMgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17
Mgr. Tomáš Kotler I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán rovinný obrazec, v obrázku vyznačený barevnou výplní, který představuje
VíceÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU
ÚLOHY S POLYGONEM Polygon řetězec úseček, poslední bod je totožný s prvním 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU 3 úsečky (segmenty) v horní části 2 úsečky ve spodní části
VíceRasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1
Kapitola 4 Rasterizace objektů Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na rastrově definované obrazy. Při zobrazení reálného modelu ve světových souřadnicích na výstupní
Více1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
VíceNeuronové sítě Učení bipolárního perceptronu
Neuronové sítě Učení bipolárního perceptronu Základní pojmy bipolární perceptron vstupy a výstupy jsou ± Učení: vycházíme z kladných a záporných vzorů a učíme váhy w, w,..., w n ( n ) y = sign w k x k,
Více6 Algebra blokových schémat
6 Algebra blokových schémat Operátorovým přenosem jsme doposud popisovali chování jednotlivých dynamických členů. Nic nám však nebrání, abychom přenosem popsali dynamické vlastnosti složitějších obvodů,
VíceHledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012
Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012 Problém hledání kořenů rovnice f(x) = 0 jeden ze základních problémů numerické matematiky zároveň i jeden
VíceLineární klasifikátory
Lineární klasifikátory Lineární klasifikátory obsah: perceptronový algoritmus základní verze varianta perceptronového algoritmu přihrádkový algoritmus podpůrné vektorové stroje Lineární klasifikátor navrhnout
Více3.1. Newtonovy zákony jsou základní zákony klasické (Newtonovy) mechaniky
3. ZÁKLADY DYNAMIKY Dynamika zkoumá příčinné souvislosti pohybu a je tedy zdůvodněním zákonů kinematiky. K pojmům používaným v kinematice zavádí pojem hmoty a síly. Statický výpočet Dynamický výpočet -
VíceZpracování digitalizovaného obrazu (ZDO) - Popisy III
Zpracování digitalizovaného obrazu (ZDO) - Popisy III Statistické popisy tvaru a vzhledu Ing. Zdeněk Krňoul, Ph.D. Katedra Kybernetiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Zpracování
Více7. Rozdělení pravděpodobnosti ve statistice
7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,
VíceZákladní spádové metody
Základní spádové metody Petr Tichý 23. října 2013 1 Metody typu line search Problém Idea metod min f(x), f : x R Rn R. n Dána počáteční aproximace x 0. Iterační proces (krok k): (a) zvol směr d k, (b)
VíceKAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat
VíceVýhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
VícePokročilé metody učení neuronových sítí. Tomáš Řehořek tomas.rehorek@fit.cvut.cz
Pokročilé metody učení neuronových sítí Tomáš Řehořek tomas.rehorek@fit.cvut.cz Problém učení neuronové sítě (1) Nechť N = (V, I, O, S, w, f, h) je dopředná neuronová síť, kde: V je množina neuronů I V
VíceVYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ
Úvod do problematiky VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ Databáze je uspořádaná množina velkého množství informací (dat). Příkladem databáze je překladový slovník, seznam PSČ nebo telefonní seznam. Databáze
VíceDobý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á,
VíceFakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky v Brně
Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky Algoritmy řízení topného článku tepelného hmotnostního průtokoměru Autor práce: Vedoucí
Více2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
Více6 Samodružné body a směry afinity
6 Samodružné body a směry afinity Samodružnými body a směry zobrazení rozumíme body a směry, které se v zobrazují samy na sebe. Například otočení R(S má jediný samodružný bod, střed S, anemá žádný samodružný
VíceNárodní informační středisko pro podporu kvality
Národní informační středisko pro podporu kvality Nestandardní regulační diagramy J.Křepela, J.Michálek REGULAČNÍ DIAGRAM PRO VŠECHNY INDIVIDUÁLNÍ HODNOTY xi V PODSKUPINĚ V praxi se někdy setkáváme s požadavkem
VíceVYSOKÉ 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 AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION
Víceřešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky
řešeny numericky řešeny numericky Břetislav Fajmon, UMAT FEKT, VUT Brno Na minulé přednášce jsme viděli některé klasické metody a přístupy pro řešení diferenciálních rovnic: stručně řečeno, rovnice obsahující
VíceVZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) max. 3 body 1 Zjistěte, zda vektor u je lineární kombinací vektorů a, b, je-li u = ( 8; 4; 3), a = ( 1; 2; 3), b = (2; 0; 1). Pokud ano, zapište tuto lineární kombinaci.
VíceVyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
VícePřednáška 3: Limita a spojitost
3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice
VícePočítačové simulace fyzikálních problému TASEP
Počítačové simulace fyzikálních problému TASEP Jakub Doležal 1, Jakub Kantner 2, Tomáš Zahradník 3 1 Gymnázium Špitálská Praha, 2 Gymnázium Českolipská Praha, 3 Gymnázium Oty Pavla Praha 1 janjansen@centrum.cz,
VíceData 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)
Více