Projekt do NEU Dokumentace

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

3. Vícevrstvé dopředné sítě

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

NG C Implementace plně rekurentní

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Neuronové sítě. 1 Úvod. 2 Historie. 3 Modely neuronu

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

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

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

Vytěžování znalostí z dat

Rozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

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

Formální jazyky a gramatiky Teorie programovacích jazyků

Testování neuronových sítí pro prostorovou interpolaci v softwaru GRASS GIS

Emergence chování robotických agentů: neuroevoluce

Umělé neuronové sítě

Neuronové sítě v DPZ

Algoritmus a implementace

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Úvod Příklad Výpočty a grafické znázornění. Filip Habr. České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská

VYUŽITÍ NEURONOVÝCH SÍTÍ PROSTŘEDÍ MATLAB K PREDIKCI HODNOT NÁKLADŮ PRO ELEKTRICKÉ OBLOUKOVÉ PECE

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

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

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

PV021 Vícevrstvá neuronová síť pro rozeznávání mikroteček. Matúš Goljer, Maroš Kucbel, Michal Novotný, Karel Štěpka 2011

Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace

přetrénování = ztráta schopnosti generalizovat vlivem přílišného zaměření klasifikátorů na rozeznávání pouze konkrétních trénovacích dat

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

FORTANNS. 22. února 2010

Úvod do zpracování signálů

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Středoškolská technika SCI-Lab

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

1 Nejkratší cesta grafem

1. Dědičnost a polymorfismus

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

2. RBF neuronové sítě

1. Programování proti rozhraní

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Studijní skupiny. 1. Spuštění modulu Studijní skupiny

Přednáška 13 Redukce dimenzionality

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Úloha - rozpoznávání číslic

K možnostem krátkodobé předpovědi úrovně znečištění ovzduší statistickými metodami. Josef Keder

Implementace LL(1) překladů

ANOTACE vytvořených/inovovaných materiálů

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

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

Kybernetika a umělá inteligence, cvičení 10/11

Úvod do optimalizace, metody hladké optimalizace

ALGORITMIZACE A PROGRAMOVÁNÍ

Algoritmizace prostorových úloh

2 Formální jazyky a gramatiky

Algoritmizace prostorových úloh

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Lekce 01 Úvod do algoritmizace

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

1 Test 1 naivní vs standardní

Už bylo: Učení bez učitele (unsupervised learning) Kompetitivní modely

5. Sekvenční logické obvody

Fakulta informačních technologií. Teoretická informatika

Jednoznačné a nejednoznačné gramatiky

Státnice odborné č. 20

Teoretická informatika průběh výuky v semestru 1

IBM SPSS Neural Networks

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

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

Pokročilé metody geostatistiky v R-projektu

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Vytěžování znalostí z dat

2C Tisk-ePROJEKTY

Národní informační středisko pro podporu kvality

13 Barvy a úpravy rastrového

Základy algoritmizace

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

3. Sekvenční logické obvody

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Učební pomůcka Simulace Witness

SEMESTRÁLNÍ PRÁCE. Leptání plasmou. Ing. Pavel Bouchalík

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

5. Optické počítače. 5.1 Optická propojení

12 Metody snižování barevného prostoru

Geografické informační systémy p. 1

Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.

1 Uživatelská dokumentace

Úvod do programovacích jazyků (Java)

První kroky s METEL IEC IDE

Základy logického řízení

PREDIKCE POČTU UCHAZEČŮ O STUDIUM S VYUŽITÍM NEURONOVÝCH SÍTÍ

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

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Pravděpodobnost v závislosti na proměnné x je zde modelován pomocí logistického modelu. exp x. x x x. log 1

Inferenční statistika - úvod. z-skóry normální rozdělení pravděpodobnost rozdělení výběrových průměrů

Transkript:

Projekt do NEU Dokumentace Vypracoval: Zbyně k Křivka (xkrivk01) Datum: 10. 12. 2003 Zadání: Demonstrace využ ití neuronovésítě typu BP a RCE při analýze jazyků v teoretické informatice. Analý za problé mu: V teoretickéinformatice se pro analýzu jazyků používá tzv. syntaktického analyzátoru, což bývá matematický stroj určitéobtíž nosti závisející na slož itosti gramatiky (případně do jakétřídy Chomského hierarchie patří). Třída jazyků Potř ebný stroj pro analý zu Využití 3. regulá rní konečný automat sekvenční popis textu (kontrola výskytu) 2. bezkontextové zásobníkový automat zanoření (kontrola struktury), programovací jazyky 1. kontextové turingů v stroj přirozený jazyk? 0. třída 0 turingů v stroj vyčíslitelnéfunkce; přirozený jazyk? Motivace: Protož e analýza většiny jazyků je dosti nákladná (především kontextových jazyků a jazyků typu 0, kam patří i přirozený jazyk - nejasná sémantika, náhodnéprvky), tak by se mohlo v některých konkrétních případech uvaž ovat o jakési předselekci vět, kterémá smysl dále analyzovat. K tomuto účelu by se mož ná mohly hodit právě neuronovésítě, jejichž výpočet (ne učení) je sám o sobě už poměrně rychlý proces. Představme si, ž e máme zadaný jazyk a i b i c i, kde i je přirozenéčíslo, a dále máme velkémnož ství vět, o kterých se má rozhodnout, zda patří do tohoto jazyka. Proč si tedy prostřednictví neuronovésítě nevytipovat kandidáty na členství v zadaném jazyce a naopak. Problém zadá ní jazyka a věty neuronové síti: - Většina jazyků potenciálně obsahuje věty nekonečnédélky; NS však neumí pracovat s nekonečnými vstupními vektory (nebo alespoň proměnnédélky), tak budu nucen stanovit horní mez délky vstupního řetězce. Jiným řešením by bylo rozsekání věty na několik okének, ale nejsem si jist, zda by byla neuronová síť schopna reflektovat jejich úzkou návaznost. - Konečná gramatika popisuje nekonečný jazyk, ale neuronovou síť, jež by měla na vstupu gramatiku si nedokáž i dost dobře představit resp. myslím, ž e by nebyla schopna příliš dobře odvozovat věty právě z gramatiky (k tomu účelu máme právě ty zmiňovanéexaktní analyzátory). Poznámka: Námět na další experiment: Rozpoznávat třídu zadaného jazyka, ať už podle vět nebo spíš podle pravidel.

Vybraný přístup k ř ešení a vý běr typu neuronové sítě: Pro experimenty s výše nastíněnou problematikou jsem vybral 2 druhy neuronových sítí: 1. Back Propagation Neural Network (LBF, skoková aktivační fce) síť se širokým spektrem použ ití 2. Restricted Coulomb Energy = RCE (RBF, skoková aktivační fce) klasifikace do tříd pomocí omezování prostoru hyperkoulemi. Reprezentace vstupů: Všechny jazyky přijímanéimplementovaným programem jsou podmnož inou jazyka {a,b,c}*. To znamená, ž e jsem použ il pouze čtyři terminály s následujícím binárním zakódováním: ε = 00 a = 001 b = 010 c = 100 Délka řetězce je omezena na maximálně 35 znaků => 70 vstupních neuronů. ε značí prázdný znak (pro případy řetězců kratších než maximum) Druhý přístup je zakódovat terminály do celých čísel: ε = 3; a = 0; b = 1; c = 2; atd Tento přístup využívám v příkladech. Algoritmy: BP i RCE viz. přednášky předmětu NEU. Implementace Program by napsán v jazyce Squeak Smalltalk 3.6. Grafická implementace využívá standardně dodávaných kolekcí tříd Morphic. Smalltalk je jazyk pro objektově orientovanéprototypování, takž e byl mož nou využít již vytvořený základní framework pro práci s neuronovými sítěmi s vytvořenou implementaci Back Propagation algoritmu. Takž e já osobně jsem programoval pouze implementaci RCE, což si však vyžádalo podrobnéprostudování celého frameworku (včetně pár oprav a úprav) i vzorovéimplementace BP. Všechny třídy projektu je nachází v kolekci tříd Neural-Networks. 1. Neural-Networks framework & BP síť : Framework se skládá z těchto základních tříd: Neuron jednoduchý model počítačového neuron, který obsahuje odkazy na vstupy a váhy. Odkazy na vstupy mohou ukazovat takéna speciální třídu NeuronInput, která již nemá vlastní vstupy (jedná se o neurony vstupní vrstvy, kterénemají veškerou funkčnost jako plnohodnotnéneurony). Vstupní hodnotu neuronu uchovává proměnná signal. Pro výpočet bázovéfunkce slouží u LBF metoda sum a u RBF distanceofcenterandinputvector. Pro výpočet výsledku aktivační funkce slouží odkaz na funkční objekt odvozený od abstraktní třídy ActivationFunction (viz obr. UML1). Metoda step slouží pro synchronní výpočet výsledku celéneuronovésítě (po krocích). NeuronInput zjednodušený neuron (pouze signál a reset). NeuralNetwork model neuronovésítě (sice ne pouze dopředné, ale implementace v některých pasážích nepočítá s cykly apod.). Obsahuje seznamy vstupní, skrytých a výstupních neuronů. Kaž dý neuron zná svévstupy/vstupní neurony, ale neznají do jakých neuronů směřuje jejich výstup (u backpropagation nevadí, protož e se stejně provádí výpočet od výstupní vrstvy směrem ke vstupní; u RCE je to takéjedno, protož e pracuje pouze s 1 skrytou vrstvou).

obr. UML1 SignFunction, StochasticFunction, TanhFunction, ThresholdFunction, SigmoidFunction, PiecewiseLinearFunction, třídy pro vytvoření funkčních objektů, kteréjsou přiřazený kaž dému neuronu a ten je používá jako aktivační funkci. V projektu se využívají pouze DiscreteRBFFunction pro skokovou aktivační RBF funkci (pro simulaci logického OR na výstupních neuronech RCE je použ ita SignFunction) a SigmoidFunction u BP. obr. UML2

obr. UML3 PerceptronNetwork ukázka sítě perceptronů. Implementuje pouze pomocné metody. NeuralNetworkTrainer třída starající se o učení neuronovésítě, na kterou obsahuje odkaz. Hlavní 3 metody: o sample: vstupnívektor desired: výstupnívektor provede 1 krok učení na 1 vzorku o epoch: seznamdvojic_vzor+vystup provede 1 krok učení pro všechny vzorky o epoch: seznam times: početopakování udává počet kroků učení Není implementováno učení až do určitéchyby nebo procenta klasifikace. Backpropagation třídy: BackPropagationUnit - stará se o výpočet 1 vrstvy zpětně BackPropagationTrainer - koordinuje BackPropagationUnit(s) Doplnění: Transformer třída se stará o převod řetězce na vstupní hodnoty akceptované NeuronInput. Existují 2 základní varianty (viz analýza). Implementovány jsou obě. Kaž dá neuronová síť má svů j transformer. StringTransformerNumeric převod znaku na signál velikosti 0, 1, N. Tento transformer je využ it v demonstrační aplikaci RCEApp. StringTransformerBinary převod znaku na více binárních signálů (0 nebo 1). 2. RCE síť : Implementováno je pouze nezbytně nutnéchování odvozených tříd. DiferentialRBFFunction, DiscreteRBFFunction slouží jako aktivační funkce (Radial Base): spojitá a skoková.

NeuronRCE neuron s Radial Based Funkcí (tj. nahrazuje sumu součinů vstupů a vah, eukleidovskou vzdáleností vektoru vstupu a středového vektoru skrytého neuronu), RCE neurony jsou pouze v 1 skrytévrstvě RCE sítě. RCENetwork nově obsahuje pouze vytvoření RCE neuronu, jeho navázání na vstupní vrstvu a výstupní neuron (jen jeden; simulace log. fce OR pomocí vah 1.0 u všech vstupu neuronů výstupní vrstvy). Pokud odpovídající výstupní neuron (třída klasifikace) neexistuje, tak je vytvořen. Atribut rate slouží pro míru sniž ování poloměru hyperkoule při špatném zásahu. Pozná mka: RCENetwork používá pro klasifikaci do tříd kolekci Array, která umožňuje indexovat pouze od 1 výše, takž e nelze vytvářet klasifikaci do třídy 0. Takénedělá dobrotu tvořit očíslování tříd nesouvislé(např. třídy označené1, 2, 4, 7 označte raději 1, 2, 3, 4). RCENetworkTrainer učení probíhá pouze v 1 kroku (nemá smysl epoch:times:). Hlavním problémem je nastavení správných konstant zmenšování se hyperkoulí, aby síť dobře klasifikovala a zároveň byla dost obecná. 3. Aplikace: Je mož no si nechat vypisovat prů běh učení RCE sítě zapnutím debug výpisů : RCENetworkTrainer enabledebug. Výpisy do pomocného textového okna, kteréznačně zpomalují výpočet vypnete: RCENetworkTrainer disabledebug. Vykreslení 2D grafu RCE sítě (vhodnépro vstupy dimenze 2) lze: RCEPlotMorph plotnn: neuronnetwork nebo RCEPlotMorph plotnn: trainer network. Celá aplikace se nachází ve třídě RCEApp. Spuštění aplikace se provede následovně: 1. otevřete si workspace (kontextovémenu -> open -> workspace) 2. napíšete výraz: RCEApp new openinworld 3. výraz označíte a stisknete Alt + D (nebo kontextovémenu->do It) 4. aplikace je jednoduchá a ovladatelná intuitivně. Aplikace využívá kolekci tříd PlotMorph, kteréslouží k tvorbě 2D grafů (podobně jako GNU Plot), takž e je mož no u sítí RCE zobrazovat první 2 rozměru vstupní vektorů a středových vektorů skrytých neuronů. Experimenty a vý sledky: Logický OR: Ukázky učení jednoduchého OR s nahlédnutím na 2D graf vytvořených neuronů a učebních vstupů je dostatečně demonstrativní, takž e nejsou nutnétestovací prvky.

Vytvořil jsem 3 příklady učení, kterémění pořadí učebních vstupních vektorů, takž e jsou vytvářeny mírně odlišnékonfigurace RCE sítě. Spuštění pomocí výrazu (jedná se o třídní metody): RCENetworkTrainer exampleor1; exampleor2; exampleor3. Příklady demonstrují citlivost RCE na pořadí vstupních vektorů při učení: nemusí vž dy prospět náhodný výběr, vhodnější může být začít nejobecnějšími vektory (ty s největší vzájemnou vzdáleností) střídání pozitivních a negativních neuronů je velmi vhodné! Zmenší to počet nutných plných cyklů. sníž ení počtu skrytých neuronů RCE často vede k nižší obecnosti sítě. Optimalizace RCE pro klasifikaci ANO/NE tj. 1 třída nebo neúspěch (porovnat a zjistit zda se zlepšily vlastnosti nebo ne) Ještě lepší přístup: 2 výstupní neurony (ANO, NE), pokud nefajruje ani jeden, tak síť neví a je potřeba provést klasickou SA => využ ití: předvoj syntaktickéanalýzy (předrozhodnutí). Maximální délka řetězce je 12 znaků. Způ sob kódování: 1 znak na 1 číslo (0 2), žádný znak označuje číslo 3. Trénovací množ iny jsou v příkladech sítí ve workspace (pro BP) nebo v jednotlivých metodách RCEApp>>testingData1,2,3,4 a je jich přibliž ně stejně jako testovacích vzorků tedy kolem 15. Spuštění: tento výraz vložím do workspace, oznáčím a z kontextového menu vyberu DoIt. RCEApp new testingdata1; openinworld. Testovací množ ina měla vž dy po 10-20 řetězcích, z nichž polovina patřila do jazyka a polovina ne. BP: počet epoch = 100 1000 (pro 15 100 neuronů ), tabelován je vž dy nejlepší výsledek. RCE: rate = 1.0 (nezměněn) Testovaný jazyk BP RCE a i b i c i (kontextový) 30 neuronů => 85% 100 % (testingdata1) (2 chyby z trén.množ iny) a i b i (bezkontextový) 50 neuronů => 81% 100% (dokonce i zobecněný vzorek) (testingdata2) (2 chyby z trén. množ iny) (ab) * (regulární) 50 neuronů => 76% 82% (testingdata3) (4 chyby z trén. mny) 1 chyba, 1 neví z trén. množ iny a*b* (regulární) (testingdata4) nerozeznala žádný prvek trénovací množ iny nepodařilo se správně nastavit parametry 77% 2 chyby, 2 neví z trén. mny.

Diskuse vý sledků : pro tak malévstupní problémy je RCE PODSTATNĚ rychlejší než BP, protož e nepracuje na epochy. Nevýhodou je však to, ž e RCE trénování zastaví, až začne správně klasifikovat všechny vzorky (pro malévstupy to ale nemělo význam). trénovací množ iny by měli nejlépe obsahovat všechny přijímanéřetězce a pak jejich nejbližší okolí reprezentující řetězce již nepřijímané=> náročnost RCE na počet trénovacích vzorků přestož e jsem zvolil jazyky podobnéstruktury z rů zných tříd jazyků, tak překvapivě směrem k jednodušším jazyků m (regulárním) se výsledky zhoršovali podle intuice by se řeklo, ž e obecnost je horší u RCE (především kvů li náhodnému pořadí trénovacích vzorků ), ale podle testů vychází RCE oproti BP překvapivě vítězně. nastavení RCE je takékapitola sama pro sebe, protož e do značnémíry určuje míru obecnosti; další optimalizaci pro konkrétní problémy (jazyky) by mohlo být stanovení maximálního poloměru hyperkoule (v projektu uvaž uji nekonečno: Float infinity) => problém překrytí hyperkoulí pro rů znétřídy (na kolik povolit/omezit). Závě r: Vyzkoušel jsem si jednoduchou implementaci neuronovésítě RCE a ověřil její funkčnost. Bohuž el omezení velikosti vstupního vektoru značně zmenšuje využ itelnost neuronových sítí v naznačovanéoblasti analýzy jazyků. Taképřesnost sítí pro slož itější jazyky je nevalná a množ ství nutných trénovacích řetězců se blíží výčtu celého omezeného jazyka. Pro konsolidovanější závěry bychom samozřejmě museli provést mnohem více pokusů pro rů znémodifikace (vytvořenéprostředí by se muselo doplnit o mož nost automatické mutace sítě např. upravování sniž ování vzdálenosti nebo změny pořadí vzorků, takéby bylo nutno mít k dispozici automatizovanéstatistickénástroje), to však nebylo cílem tohoto projektu (návrh spíše na ročníkový projekt).