Vysoká škola báňská – Technická univerzita Ostrava
SYSTÉMY S UMĚLOU INTELIGENCÍ učební text a návody do cvičení
Prof. Dr. Ing. Miroslav Pokorný Ing. Vilém Srovnal, Ph.D.
Ostrava 2012
SYSTÉMY S UMĚLOU INTELIGENCÍ
Recenze: Doc. RNDr. Jindřich Černohorský, CSc.
Název: Systémy s umělou inteligencí Autoři: Miroslav Pokorný, Vilém Srovnal Vydání: první, 2012 Počet stran: Náklad: Studijní materiály pro studijní obor Měřicí a řídicí technika Fakulty elektrotechniky a informatiky Jazyková korektura: nebyla provedena. Určeno pro projekt: Operační program Vzdělávání pro konkurenceschopnost Název: Inovace oboru Měřicí a řídicí technika na FEI, VŠB - TU Ostrava Číslo: CZ.1.07/2.2.00/15.0113 Realizace: VŠB – Technická univerzita Ostrava Projekt je spolufinancován z prostředků ESF a státního rozpočtu ČR © Miroslav Pokorný, Vilém Srovnal © VŠB – Technická univerzita Ostrava ISBN
2
SYSTÉMY S UMĚLOU INTELIGENCÍ - Obsah
OBSAH Pokyny ke studiu 1 - UMĚLÁ INTELIGENCE 1.1 Umělá inteligence – vědní disciplína 1.2 Kvantitativní a kvalitativní modelování reálných soustav 2 - SYSTÉMY FUZZY-LOGICKÉ 2.1 Základy teorie fuzzy množin a jazykové fuzzy logiky 2.2 Jazykové fuzzy modely a aproximativní vyvozování 3 - FUZZY EXPERTNÍ SYSTÉMY 3.1 Funkce a architektura fuzzy orientovaných expertních systémů 4 - FUZZY ŘÍDICÍ SYSTÉMY 4.1 Fuzzy regulátory 4.2 Inteligentní regulátory 5 - KOGNITIVNÍ ANALÝZA FUZZY MODELU 5.1 Test konzistence a ternární diagram 6 - PRAVDĚPODOBNOSTNÍ EXPERTNÍ SYSTÉMY 6.1 Pravděpodobnostní systémy MYCIN a PROSPECTOR 7 - SYSTÉMY S UMĚLÝMI NEURONOVÝMI SÍTĚMI 7.1 Vícevrstvá neuronová síť 7.2 Hopfieldovy a Kohonenovy neuronové sítě 8 - SYSTÉMY S GENETICKÝMI ALGORITMY 8.1 Evoluční teorie a genetické algoritmy 8.2 Implementace genetických algoritmů 9 - SYSTÉMY VÝPOČTOVÉ INTELIGENCE 9.1 Integrace metod umělé inteligence KLÍČ K ŘEŠENÍ CVIČENÍ 1
Fuzzy množiny a logika – problém udělení výše spropitného
CVIČENÍ 2
Fuzzy řízení výšky hladiny vodní nádrže
CVIČENÍ 3
Fuzzy řízení inverzního kyvadla
CVIČENÍ 4
Regulace teploty pomocí fuzzy řízení typu PSD
CVIČENÍ 5
Genetický algoritmus – hledání extrémů funkcí 3
SYSTÉMY S UMĚLOU INTELIGENCÍ - Obsah
CVIČENÍ 6
Genetický algoritmus – symbolická regrese
CVIČENÍ 7
Genetický algoritmus – predikce časově omezených výstupů
CVIČENÍ 8
Genetický algoritmus – problém obchodního cestujícího
CVIČENÍ 9
Neuronové sítě – aproximace pomocí vícevrstvé neuronové sítě na základě metody back‐propagation
CVIČENÍ 10 Neuronové sítě – predikce pomocí vícevrstvé neuronové sítě na základě metody back‐propagation CVIČENÍ 11 Neuronové sítě – jednoduché učící se neurony CVIČENÍ 12 Samo‐organizující se neuronové sítě – 2D Kohonenova mapa bodů CVIČENÍ 13 Samo‐organizující se neuronové sítě – Třídění barevných segmentů pomocí Kohonenovy mapy CVIČENÍ 14 Elastické neuronové sítě – problém obchodního cestujícího
4
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pokyny ke studiu
POKYNY KE STUDIU Systémy s umělou inteligencí Pro předmět zimního semestru oboru Měřicí a řídicí technika jste obdrželi studijní balík obsahující • integrované skriptum pro distanční studium obsahující i pokyny ke studiu • CD-ROM s doplňkovými animacemi vybraných částí kapitol • harmonogram průběhu semestru a rozvrh prezenční části • rozdělení studentů do skupin k jednotlivým tutorům a kontakty na tutory • kontakt na studijní oddělení Předpoklady studia Pro studium tohoto předmětu se předpokládá absolvování předmětu (bude doplněno) Cílem předmětu je seznámení se základními pojmy vědního oboru Umělá inteligence a aplikačních systémů, které využívají jejích přístupů. Po prostudování modulu by měl student být schopen porozumět principům systémů s prvky umělé inteligence a pochopit výhody jejich použití v technické praxi. Pro koho je předmět určen Modul je zařazen do bakalářského / magisterského studia oborů (bude doplněno) studijního programu Měřicí a řídicí technika, ale může jej studovat i zájemce z kteréhokoliv jiného oboru, pokud splňuje požadované předpoklady kurzu. Skriptum se dělí na části, kapitoly, které odpovídají logickému dělení studované látky, ale nejsou stejně obsáhlé. Předpokládaná doba ke studiu kapitoly se může výrazně lišit, proto jsou velké kapitoly děleny dále na číslované podkapitoly a těm odpovídá níže popsaná struktura. Při studiu každé kapitoly doporučujeme následující postup:
Čas ke studiu: xx hodin Na úvod kapitoly je uveden čas potřebný k prostudování látky. Čas je orientační a může vám sloužit jako hrubé vodítko pro rozvržení studia celého předmětu či kapitoly. Někomu se čas může zdát příliš dlouhý, někomu naopak. Jsou studenti, kteří se s touto problematikou ještě nikdy nesetkali a naopak takoví, kteří již v tomto oboru mají bohaté zkušenosti.
Cíl: Po prostudování tohoto odstavce budete umět 5
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pokyny ke studiu • •
popsat ... definovat ... • vyřešit ... Ihned potom jsou uvedeny cíle, kterých máte dosáhnout po prostudování této kapitoly – konkrétní dovednosti, znalosti.
Výklad Následuje vlastní výklad studované látky, zavedení nových pojmů, jejich vysvětlení, vše doprovázeno obrázky, tabulkami, řešenými příklady, odkazy na animace.
Shrnutí pojmů Na závěr kapitoly jsou zopakovány hlavní pojmy, které si v ní máte osvojit. Pokud některému z nich ještě nerozumíte, vraťte se k nim ještě jednou.
Otázky Pro ověření, že jste dobře a úplně látku kapitoly zvládli, máte k dispozici několik teoretických otázek.
Další zdroje Seznam další literatury, www odkazů ap. pro zájemce o dobrovolné rozšíření znalostí popisované problematiky.
CD-ROM Informace o doplňujících animacích, videosekvencích apod., které si může student vyvolat z CD-ROMu připojeného k tomuto materiálu.
Klíč k řešení Výsledky zadaných příkladů i teoretických otázek výše jsou uvedeny v závěru učebnice v Klíči k řešení. Používejte je až po vlastním vyřešení úloh, jen tak si samokontrolou ověříte, že jste obsah kapitoly skutečně úplně zvládli.
Úspěšné a příjemné studium s touto učebnicí Vám přejí autoři výukového materiálu Miroslav Pokorný Vilém Srovnal
6
SYSTÉMY S UMĚLOU INTELIGENCÍ – Umělá inteligence
1
UMĚLÁ INTELIGENCE
1.1
Umělá inteligence – vědní disciplína Čas ke studiu: 1,5 hodiny
Cíl: Po prostudování tohoto odstavce budete umět • • •
vysvětlit pojem umělé inteligence a její náplň jako vědního oboru pojednat o hlavních etapách jejího vývoje a nejvýznamnějších výsledcích charakterizovat význam umělé inteligence v moderní vědě
Výklad Co je to umělá inteligence? Pojem inteligence [1] je spjat s některými vlastnostmi vyšších organizmů, zvláště člověka. Stručně lze říci, že inteligentní schopnosti umožňují reagovat na složité projevy životního prostředí a aktivně je využívat ve svůj prospěch, k dosažení svých cílů. Vlastní pojem „inteligence“ je velmi složitý a nebyl nikdy přesně vymezen. Nicméně existují metody pokoušející se kvantifikovat stupeň lidské inteligence (např. IQ-testy). Každá z nich má však své omezení a žádnou nelze považovat za zcela objektivní. Přesto je chování živých organizmů, které je možno považovat za projev jejich inteligence, natolik zajímavé, že neuniklo pozornosti vědců zkoumajících metody a prostředky, jak takové inteligentní chování strojově napodobit – tj. vytvořit umělé systémy, které by vlastnosti inteligentního chování vykazovaly. Postupy a algoritmy, které by ve svých důsledcích vedly k jistému napodobení projevů inteligentního chování člověka, se s vývojem poznání a vědy staly předmětem zkoumání nové vědní disciplíny – umělé inteligence (1956). (Tento termín se postupně zcela vžil a odsunul do pozadí pokusy o jiné interpretace, např. „strojový intelekt“). Není-li pojem inteligence u živých organizmů přesně definován, nelze ani čekat přesné vymezení pojmu inteligence umělé. Nehledě na skutečnost, že pokusů bylo v tomto směru provedeno na stovky (např. na VIII. Mezinárodní konferenci IJCAI v roce 1983 v Karlsruhe bylo předloženo na 180 definic umělé inteligence). V současné době převládá názor, že pro vytvoření praktických aplikací nejde ani tak
7
SYSTÉMY S UMĚLOU INTELIGENCÍ – Umělá inteligence o přesné vymezení pojmu umělá inteligence, jako spíše o vytvoření intuitivní představy o jejím obsahu. Jestliže expertní systémy ve svých různých variantách patří k dnes nejvíce prakticky rozšířeným nástrojům vědního oboru umělé inteligence, věnujme pozornost alespoň třem definicím umělé inteligence, které můžeme označit jako zdařilé. Minského definice umělé inteligence Marvin Minsky předložil v roce 1961 definici, která imitačního testu:
vychází z tzv. Turingova
“Umělá inteligence je věda o vytváření strojů a systémů, které budou při řešení určitého úkolu užívat takového postupu, který – kdyby tak postupoval člověk – bychom považovali za projev jeho inteligence.“ Hovoří-li definice o řešení určitých úkolů, má na mysli zřejmě úkoly komplikované, složité. Složitost úkolu pak lze ohodnotit počtem všech variant jeho řešení, které připadají v úvahu. Rozhodně nelze považovat za inteligentní způsob řešení postup, při němž jsou postupně přebírány a ověřovány varianty postupně jedna za druhou. Inteligentním naopak nazveme takový postup, při němž budou ověřovány pouze varianty nadějné. Ty, které neposkytují dostatečnou šanci na úspěch řešení, budou apriorně vynechány. Přitom mechanizmus, který umožňuje řešiteli některé varianty apriori odmítnout, je nesporně založen na využívání informací, znalostí o řešeném problému. Ukazuje se, že využití znalostí je pro konstrukci inteligentních postupů zcela relevantní. Znalosti mohou být získány jednak převzetím od člověka, který je schopen úlohu inteligentně řešit (tedy nutně experta v daném oboru), jednak analýzou příkladů a jejich inteligentních řešení. Lidské znalosti můžeme rozdělit do dvou skupin. Předně jsou to znalosti objektivní, obecné či exaktní (někdy nazývané také znalosti hluboké), k nimž mají přístup odborníci např. při studiu daného oboru (teorémy, fyzikální zákony apod.). Druhou skupinu tvoří znalosti subjektivní, často heuristické až meta-heuristické (někdy nazývané znalosti mělké – nikoli však ve smyslu povrchní!), získané vlastním poznáním a dlouholetou praxí. Ukazuje se, že pro kvalitu řešení z hlediska umělé inteligence sehrávají tyto subjektivní znalosti podstatnou roli. Zvláštní význam pak budou tyto subjektivní znalosti vykazovat při konstrukci expertních systémů. Richova definice umělé inteligence Richova definice umělé inteligence se úspěšně vyhýbá filozofickým úvahám, které většině pokusů o definici inteligence či umělé inteligence dominují. Říká, že „Umělá inteligence se zabývá tím, jak počítačově řešit úlohy, které dnes zatí lépe zvládají lidé“.
8
SYSTÉMY S UMĚLOU INTELIGENCÍ – Umělá inteligence Podle tohoto vymezení je obsah umělé inteligence bezprostředně vázán na aktuální stav počítačových věd a lze tedy očekávat, že s rozvojem počítačové techniky se bude těžiště umělé inteligence posouvat a měnit. Jde o velmi stručné a poměrně přesné vymezení toho, co tvoří skutečný obsah umělé inteligence jako vědní disciplíny. Kotkova definice umělé inteligence Kotkova definice je blíže spjata s pojmem a posláním technické kybernetiky jako praktické vědy o sdělování a řízení v živých organizmech, strojích a společnosti: „Umělá inteligence je vlastnost člověkem uměle vytvořených systémů vyznačujících se schopností rozpoznávat předměty, jevy a situace, analyzovat vztahy mezi nimi a tak vytvářet vnitřní modely světa, ve kterých tyto systémy existují, a na tomto základě pak přijímat účelná rozhodnutí, předvídat důsledky těchto rozhodnutí a objevovat nové zákonitosti mezi různými modely nebo jejich skupinami“. Zavedení definice vnitřních modelů dovoluje definovat postup řešení úlohy takto: je dán model počátečního stavu prostředí a model cílového stavu prostředí. Dále jsou dány přípustné akce, kterými lze stav prostředí měnit. Úkolem je nalézt takové posloupnosti akcí, které převedou počáteční stav do stavu cílového při respektování předem zadaných omezení. Takto formulovaný problém nazýváme v umělé inteligenci řešením úloh (jak uvidíme později, vystihuje tato formulace paradigma třídy plánovacích expertních systémů). Formulace modelů a akcí je pak zahrnována do problematiky reprezentace znalostí. Kotkova definice umělé inteligence umožňuje také explicitně určit a vyjmenovat dílčí teoretické úlohy, které do ní jako vědní disciplíny spadají (rozpoznávání, reprezentace znalostí vč. logiky jako nástroje pro tuto reprezentaci, řešení úloh, adaptace a učení, expertní systémy a komunikace se strojem v přirozeném jazyce). Problematika expertních systémů je pak spjata s problematikou efektivního strojového využívání znalostí špičkových expertů pro obecné úlohy diagnostiky a plánování. Trocha historie úvodem Dnes můžeme říci, že umělá inteligence je jednou z nejrychleji se rozvíjejících vědních disciplín v celé historii. Až v létě roku 1956 byla totiž na Darmtouth College v New Hampshire (USA) zorganizována poměrně malá konference „The Darmouth Summer Research Project on Artificial Intelligence“, na kterou byli pozváni přední odborníci zabývající se mentálními schopnostmi lidí a strojů. Sešli se tak odborníci z oblasti matematiky, elektrotechniky, elektroniky, lingvistiky, neurologie, psychologie a filozofie. Tato konference se zapsala do dějin umělé inteligence zlatým písmem. Jejím náplní byla diskuze domněnky, že „Každé hledisko učení nebo jakýkoliv jiný příznak inteligence může být v principu tak přesně popsán, že může být vyvinut stroj, který ho simuluje“.
9
SYSTÉMY S UMĚLOU INTELIGENCÍ – Umělá inteligence Byla poprvé vyslovena myšlenka, že počítače by mohly pracovat se symboly stejně dobře jako s čísly. Díky návrhu organizátora konference – J. McCarthyho – byla nově se rýsující vědní disciplína nazvána – již v názvu konference - umělou inteligencí. Představy odborníků v polovině padesátých let byly velmi optimistické. Vědci předpovídali, že do 25 let nahradí počítače veškerou lidskou intelektuální činnost. Bohužel, historie vývoje umělé inteligence jim za pravdu nedala. Celá – byť relativně krátká – historie rozvoje umělé inteligence je velmi zajímavá, vymyká se však poněkud poslání této učebnice. V krátkosti lze říci, že historický vývoj umělé inteligence prošel třemi základními etapami. První etapa je datována do zbytku 50. a celých 60. let minulého století. Je typická nadšeným úsilím odborníků a rozvojem prvních nástrojů umělé inteligence. Především je třeba jmenovat LISP (1960) – dodnes jeden z nejpoužívanějších jazyků umělé inteligence a dále systém GPS – General Problem Solving (1960) – nejznámější program pro řešení obecných problémů. Přes řadu úspěšných výsledků se již koncem 60. let začalo ukazovat, že původní optimistické předpovědi byly značně přemrštěné a řešení problémů umělé inteligence bude spojeno s celou řadou problémů. Druhá etapa, situovaná do 70. let minulého století, je označována jako etapa skepse a stagnace. Bylo omezeno či dokonce zrušeno financování celé řady projektů a omezen výzkum umělé inteligence. Přece však úsilí nadšenců přineslo i v této situaci pozitivní výsledky, soustředěné hlavně do oblasti reprezentace znalostí, prohledávacích technik, zpracování přirozeného jazyka a počítačového vidění. Objevily se první expertní systémy, které se staly prototypy dodnes používaných technik (DENDRAL-1971, MYCIN-1976, PROSPECTOR-1978). Byl publikován dodnes široce používaný jazyk umělé inteligence PROLOG (1975). Třetí etapa z let 80. navázala na výsledky etapy druhé. Je považována za období nového rozvoje umělé inteligence, charakterizované především komercionalizací vyvinutých nástrojů, vytvoření odborné terminologie, publikací monografií k jednotlivým oblastem umělé inteligence, návrhy počítačů s architekturami vhodnými pro umělou inteligenci (LISPovské a PROLOGovské počítače). Byly zahájeny rozsáhlé výzkumné programy, především japonský projekt počítačů páté generace (1981-1990). Z hlediska dnešního pohledu je místo umělé inteligence v moderní vědě, společnosti i praxi zcela pevné. Její výzkum se stal systematickou součástí odborných pracovišť univerzit a akademií, její produkty jsou postupně rozšiřovány jak v průmyslové tak i ve spotřební elektronice. Uplatňují se v celé řadě technických i netechnických oborů.
10
SYSTÉMY S UMĚLOU INTELIGENCÍ – Umělá inteligence
Shrnutí pojmů Expertní systémy jsou specializované počítačové programy, které simulují rozhodovací činnost člověka při řešení složitých problémů. Kvalita lidských rozhodnutí je závislá na úrovni jeho intelektu – komplexu jeho mentálních schopností. Rozhodovací činnosti počítače, pokud mají být kvalitní, musí vykazovat specifické vlastnosti svých procedur, které jsou řešeny v rámci vědního oboru umělá inteligence. Historický vývoj umělé inteligence prošel třemi etapami. První představovala nadšený vstup do výzkumu a vývoje specializovaných prostředků, které měly být praktickými nástroji umělé inteligence (programovací jazyk LISP, prostředek pro řešení problémů GPS). Druhá etapa přinesla skepsi a stagnaci, přesto vyprodukovala některé užitečné výstupy (programovací jazyk PROLOG, první použitelné expertní systémy). Třetí etapa přinesla opět oživení zájmu, hlavně díky dlouhodobému japonskému projektu počítačů páté generace. Jediná exaktní definice umělé inteligence neexistuje, z mnoha pokusů lze však vybrat takové, které lze intuitivně označit jako zdařilé. Patří sem především definice Minského (stroje řeší problém postupy, které lze s ohledem na obdobu postupů člověka označit jako inteligentní), definice Richova (počítače zvládají úlohy, dostupné doposud jen člověkovi) a definice Kotkova (definuje pojem vnitřního modelu světa a umožňuje označit technické úlohy, které jsou pro metody umělé inteligence typické).
Otázky 1.1 1.1.1 1.1.2 1.1.3 1.1.4
Kdy a čím je datován vznik vědního oboru umělá inteligence? Jakými etapami prošel vývoj umělé inteligence do dnešních dnů? Jaké jsou nejznámější definice vědního oboru umělá inteligence? Jaké jsou praktické aspekty Kotkovy definice umělé inteligence?
Další zdroje [1] Mařík, V. a kol.: Umělá inteligence I, II, Academia Praha, 1997, ISBN 80-2000504-8
11
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování
1.2
Kvantitativní a kvalitativní modelování reálných soustav Čas ke studiu: 3 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• • •
porozumět paradigmatům numerického a nenumerického modelování vysvětlit principy kvalitativního modelování a simulací vysvětlit pojem kvalitativní proměnné a jejích kvalitativních hodnot • provádět počítání s kvalitativními hodnotami kvalitativních proměnných • sestavovat kvalitativní modely
Výklad Konvenční matematicko-statistické analytické modely představují modely, pro jejichž sestavení je k dispozici (předem nebo následně) přesná a úplná informace. Pod přesnou a úplnou informací si zpravidla představujeme takovou informaci, která se dá reprezentovat či modelovat tak, že jak struktura tak i všechny parametry jsou jednoznačně určeny. Modely, vykazující takovou formální dokonalost, nejsou zpravidla adekvátní skutečnosti, která je vágní a složitá. Představa, že dostatečně složitý matematický model může reprezentovat realitu s libovolnou přesností či adekvátností, není zřejmě správná. Formálně složité matematické modely vyžadují informace, které jsou náročné jak způsobem svého objektivního získávání, tak i nároky na svoji kvalitu. Tato skutečnost je zvláště závažná u modelů, určených pro práci v informačních nebo řídících systémech reálného času. Potřebná rozsáhlá a náročná měření jsou v těžkých provozních podmínkách buď zcela nemožná, nadměrně náročná na údržbu, nebo při zajištění potřebné robustnosti je kvalita jejich informace tak nízká, že jsou nepoužitelná. Na tuto skutečnost poprvé upozornil L.A.Zadeh [1], když v r. 1973 formuloval princip inkompatibility slovy: "Tak, jak roste složitost nějakého systému, klesá naše schopnost činit precizní a přitom ještě použitelná tvrzení o jeho chování, dokud není dosaženo prahu, za nímž se stávají preciznost a použitelnost (nebo relevantnost) téměř vzájemně se vylučujícími charakteristikami." Studovaná část reálného světa vykazuje zpravidla mnoho nejasného a vágního. Klasické metody pro formalizaci nepřesnosti předpokládají stochastický charakter ne zcela přesně determinovaných jevů. Takový stochastický přístup ke zpracování neurčitosti pomocí aparátu pravděpodobnosti a matematické statistiky vyžaduje, aby
12
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování příslušné jevy byly dobře definovanými prvky množiny a měly právě tak dobře definovaný význam výpovědí o nich. Dále je nutno dodržet řadu předpokladů o datech a mít k dispozici dostatečný počet pozorování. Inženýrské projekty řízení složitých technologických procesů ukázaly, že klasická matematická statistika se svým principiálním pojetím a řadou omezení není prostředkem k formalizaci a efektivnímu využití takového typu neurčitosti, který nazýváme vágností (pojmovou neurčitostí), jež je při jazykovém popisu složitých systémů podstatná. Definujme složkovou charakteristiku objektu vztahem [2] RC = (ruv )
kde ruv = r (a u , a v )
představuje souvislosti vstupních a výstupních veličin složek zkoumaného objektu. Matematické modely vycházejí z předpokladu, že relační charakteristika objektu je definována ostře, precizně a odchylky mezi odhadovanými a pozorovanými hodnotami závisle proměnné jsou tudíž výsledkem chyb pozorování. Původ odchylek mezi pozorovanými a vypočítanými hodnotami závisle proměnné veličiny mohou však být nezanedbatelnou měrou způsobeny špatnou definovaností systémové struktury. Příčiny těchto odchylek můžeme hledat i v ne zcela ostrém charakteru systémových parametrů. V této souvislosti vyvstává relevantní problém metod formalizace a efektivního zpracování neurčitých informací. Ukazuje se, že právě schopnost lidského mozku konstruovat a využívat jednoduché algoritmy pro vyvozování závěrů v podmínkách neurčitosti je hlavní příčinou kvality lidského uvažování. Problematika poznávání obecných zákonitostí kognitivních procesů prostřednictvím modelování a simulací a snaha vytvořit metody a jim odpovídající systémy pro řešení složitých úloh takovými způsoby, které bychom považovali při řešení stejných úloh člověkem jako projevy jeho intelektu, je jednou z definicí předmětu zájmu vědního oboru umělá inteligence. Za jedny z jejích dosavadních výsledků můžeme považovat i nekonvenční techniky modelování, simulací a řízení takových procesů, jejichž popis je vágní a pro jejich formalizaci nelze dobře použít klasickou metodu popisu neurčitosti - matematickou statistiku. V řadě inženýrských aplikací, které využívají statistických metod pro vyjádření míry neurčitosti jevů, narážíme na problém malých rozsahů výběrových souborů. Počty vykonaných experimentů bývají často nedostatečné. Doplňková pozorování přitom často nejsou z technických nebo ekonomických důvodů dostupná. Rozpor mezi informační náročností statistiky a omezenými informačními zdroji není jediný, na nějž se při použití klasických formálních prostředků na zpracování informací naráží. Další problémem může vyplývat ze složitosti studovaných soustav 13
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování a dějů, které v nich probíhají. Nemáme-li k dispozici dostatečný počet pozorování za reprodukovatelných podmínek, nelze variabilitu přírodních dějů eliminovat tím, že vyhovíme požadavkům reprodukovatelnosti stanovením příliš obecných podmínek. Získáme tím výsledky, jejichž rozptyl či konfidenční intervaly jsou natolik široké, že výsledky znehodnotí. Potíže přetrvávají tehdy, pokud se snažíme pracovat pouze s objektivně zjištěnými informacemi. Problémy řeší metody, které připouštějí využití subjektivně zabarvených informací To jsou objektivní důvody, proč se ve zvýšené míře v řadě aplikací uplatňují metody umělé inteligence. Od ní se očekává, že nabídne východisko z problémů, které vznikly snahou o objektivizaci jak v přírodovědeckých, tak i inženýrských disciplínách. V souladu s rozvojem aplikací metod umělé inteligence vzniká trend přechodu od zpracování údajů ke zpracování znalostí [3], [4]. Lidské znalosti můžeme rozdělit do dvou kategorií: a) v první jsou tak tzv. znalosti hluboké, jejichž zdrojem je vlastní poznání přírodních dějů ve formě přírodních zákonů. Jsou to znalosti objektivní, dostupné více či méně široké odborné veřejnosti. Jsou produktem analytických, abstraktních a teoretických postupů zkoumání jevů reality. Hluboké znalosti jsou vyjadřovány formou analytických matematických vztahů. b) druhou kategorii znalostí označujeme jako znalosti mělké, povrchové (nikoli však povrchní!). Jsou to poznatky, jejichž zdrojem je dlouhodobá zkušenost, praxe a vlastní experimentování. Jsou to subjektivní znalosti, které kvalifikují úroveň experta. Mělké znalosti jsou vyjádřitelné formou predikátových kalkulů, heuristických pravidel, rámců či kvalitativních vztahů. V procesu modelování hraje rovněž významnou roli dělení znalostí na znalosti apriorní, známé již ve fázi tvorby modelu a znalosti aposteriorní, získávané až v etapě jeho identifikace a využívání. Využití hlubokých znalostí je typické pro metody konstrukce konvenčních, matematických statisticko-analytických modelů. Tyto modely, formalizované soustavami algebraických či diferenciálních rovnic, odrážejí díky aplikaci objektivních znalostí a metod obvykle širší třídy problémů a mají ponejvíce obecnou platnost. Uplatnění subjektivních znalostí v takových modelech není typické. Cesta uplatnění specifických (subjektivních, heuristických) znalostí vede k metodám tvorby nekonvenčních nenumerických (jazykových) modelů, které využívají vícehodnotové logiky a různé formální aparáty jak pro reprezentaci neurčitých pojmů, tak i pro aproximativní (přibližné) vyvozování. Mělké znalosti však nepodchycují podstatu vztahů uvnitř modelované soustavy. Nedostatečnost mělkých znalostí vede k odkazům na metaznalosti - znalosti o znalostech. Použití mělkých znalostí vede mnohdy ke zjednodušení principů a mechanizmů metod vyvozování. Přesto, že řada takto koncipovaných přístupů dosáhla komerčního úspěchu,
14
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování v mnohých případech se projevila významnost limit jejich funkčních schopností. V první řadě zde stojí skutečnost, že konstrukce a kvalita takového modelu je plně závislá na existenci kvalitního experta v dané problémové oblasti. Dále pak celou řadu problémů přináší role znalostního inženýra, jehož úkolem je vedení dialogu s expertem, čerpání jeho znalostí, volba vhodné metody jejich formalizace a způsobu aproximativního vyvozování. Vyvození, která takové systémy poskytují, mají vyhraněně lokální charakter. Obecně je možno říci, že systémy, založené výhradně na mělkých znalostech, trpí ohraničenými možnostmi efektivního strukturování jimi realizovaných rozhodovacích procesů a zjednodušenými principy odvozovacích a vysvětlovacích mechanizmů. Snaha o přiměřené uplatnění hlubokých znalostí v nekonvenčních modelech z oblasti umělé inteligence vedla k přístupům, které umožňují integraci objektivních a subjektivních informací. Jejich výraznou charakteristikou je uplatnění globálních pohledů při rozhodování, plynoucích právě z uplatnění objektivních informací. Hluboké znalosti jsou rovněž nazývány znalostmi kvantitativními, mělké znalosti pak znalostmi kvalitativními. Možnost jejich integrace má zvláště velký význam v oblasti diagnostiky technologických procesů s ohledem na možnost predikce jejich poruchových stavů (bezpečnostní inženýrství). Kvalitativní modelování Přechodem mezi numerickým a jazykovým popisem chování složitých soustav je kvalitativní modelování. Ke kvalitativnímu popisu zkoumaných jevů přistupujeme tehdy, pokud nechceme (nebo neumíme) analyticky přesně (analyticky) popsat vztahy mezi proměnnými veličinami popisovaných dějů [4], [5]. Důležitým znakem kvalitativního uvažování (Common Sense - naivní fyzika) je přechod k novému oboru proměnných. Místo reálných čísel, typických pro matematický (numerický, kvantitativní) popis, je oborem hodnot množina hodnot, která umožňuje kvalitativně charakterizovat aktuální hodnotu číselné proměnné relativně vůči jejím významným hodnotám. Kvalitativní hodnota proměnné je pak dána údajem o velikosti hodnoty, charakterizující polohu aktuální hodnoty proměnné vůči významným mezním hodnotám (kladná – větší než nula, záporná – menší než nula a nulová) a údaji o vývojové tendenci proměnné (její velikost roste, klesá, je konstantní). Čas je reprezentován uspořádanou množinou symbolů, odpovídající významným okamžikům. Kvalitativní průběh proměnné v čase je funkce, která přiřazuje významným okamžikům a intervalům mezi nimi kvalitativní hodnoty. Chování soustavy (kvalitativní model) je vyjádřeno pomocí formulí (kvalitativních rovnic neboli konfluencí), vytvořených z množiny kvalitativních
15
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování proměnných a kvalitativních vazeb. Vazby jsou relace, definované na kvalitativních hodnotách tak, aby co nejpřesněji popisovaly běžné aritmetické operace, vztahy derivací, rovností a nerovností. Zde je třeba zdůraznit, že na rozdíl od kvantitativního popisu, kde jsou vazby funkcemi, jde v případě kvalitativních vazeb o relace, neboť výsledek aplikace kvalitativní operace na kvalitativní hodnoty nelze určit jednoznačně Kvalitativní simulace systému spočívá v odvození kvalitativního průběhu jeho proměnných ze soustavy konfluencí, které systém charakterizují a z kvalitativních hodnot nezávisle proměnných ve zvoleném časovém okamžiku. Kvalitativní proměnné jsou v přístupech kvalitativního modelování značeny X: X(1), X(2) , ... , X(n). Kvalitativní proměnné mohou nabývat tří kvalitativních hodnot, a to [K+, K0, K-]. Kvalitativní hodnota proměnné X může být tedy pozitivní (K+), negativní (K-) nebo nulová (K0). Kvalitativní dynamické chování systému je dáno hodnotami kvalitativních derivací jeho proměnných. DX(1) je první a DDX(1) druhá derivace proměnné X(1). Zkušenosti s řešením reálných inženýrských problémů ukazují, že pro postačující popis chování systému je dostatečné uvažovat kvalitativní specifikaci proměnné X(1) ve tvaru tzv. kvalitativního tripletu [ X(1), DX(1), DDX(1)] Pro n- proměnných je pak užito n-tripletů [X(1),DX(1),DDX(1);X(2),DX(2),DDX(2);...;X(n),DX(n),DDX(n)] n-triplet pak udává kvalitativní stav soustavy ve zvoleném časovém okamžiku. Kvalitativní algebra Kvalitativní algebra je tvořena kvalitativními operacemi, které jsou specifikovány následujícími předpisy. a) Kvalitativní součet je definován podle Tab.1 X (i) + X ( j ) = X ( s)
16
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování [+]
X(j)
X(i)
K+
K0
K-
K+
K+
K+
?
K0
K+
K0
K-
K-
?
K-
KTab.1
b) Kvalitativní součin je definován předpisem podle Tab.2. X (i ) ∗ X ( j ) = X ( s )
X(j)
[∗]
X(i)
K+
K0
K-
K+
K+
K0
K-
K0
K0
K0
K0
K-
K-
K0
K+ Tab.2
c) Kvalitativní derivace součtu je definována vztahy DX ( s ) = DX (i ) + DX ( j ) DDX ( s) = DDX (i) + DDX ( j )
d) Kvalitativní derivace součinu je definována vztahy
DX ( s) = (DX (i ) ∗ DX ( j ) ) = X (i ) ∗ DX ( j ) + X ( j ) ∗ DX (i ) e) Druhou kvalitativní derivaci součinu lze vyjádřit pomocí vztahu pro derivaci první. Zkušenosti však ukazují, že toto vyjádření je příliš složité a výsledek je vágní. Proto je v inženýrské praxi hodnota druhé derivace součinu implicitně považována jako hodnota "?", tedy pro triplet proměnné X(s)
X ( s) DX ( s) DDX ( s) A
B
?
f) Kvalitativní časová derivace je dána jednoduchými vztahy X ( j ) = DX ( j ) DX ( j ) = DDX ( j ) DDX ( j ) = DDDX ( j )
Kvalitativní model QM je pak dán soustavou kvalitativních rovnic, kterou lze rozdělit 17
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování do dvou podsoustav. První podsoustava SMD je soustavou takových kvalitativních rovnic, které jsou odrazem přírodních zákonů a reprezentují tedy tzv. hluboké znalosti. Jejich zdrojem je obvykle kvalitativní transformace rovnic matematických. Naproti tomu druhá podsoustava SMS je soustavou kvalitativních rovnic, generovaných využitím zkušeností, experimentů nebo heuristik, tedy znalostí mělkých. Charakteristickým rysem obou submodelů SMD a SMS je skutečnost, že společně reprezentují znalost úplnou. Kvalitativní modelování lze tedy považovat za jednu z metod, umožňující integraci znalostí. Kvalitativní simulace probíhá metodou položení kvalitativního dotazu QU. Dotaz QU je tvořen množinou kvalitativního zadání
[X (1), DX (1), DDX (1)] ← [T1 , T2 , T3 ] kde Ti ∈ (K +, K −, K 0, ?)
Kvalitativní řešení kvalitativního modelu QM je množina M všech n-tripletů takových, které neodporují žádné modelové relaci. Nejjednodušším algoritmem odvození množiny řešení M je postupné generování všech možných n-tripletů a jejich testování proti modelu QM. Metodologie vytvoření kvalitativního modelu závisí v prvé řadě na dostupnosti matematického (kvantitativního) modelu konvenčního. V případě jeho existence lze kvalitativní model získat metodou kvalitativní transformace a jsou-li navíc známy i velikosti Obr.1.2.1 numerických konstant, lze výsledky kvalitativních řešení s výsledky kvantitativními konfrontovat. Typičtější je však situace, kdy kvantitativní model je znám jen částečně a velikosti numerických konstant jsou známy v nejlepším případě jen přibližně. Pro konstrukci kvalitativního modelu lze téměř vždy inženýrskou analýzou problému sestavit alespoň výchozí rovnice, odrážející platnost základních přírodních zákonů - zákona zachování hmoty nebo energie. Jiný přístup ignoruje algebraické (hluboké) znalosti a staví kvalitativní model pouze na "chování" soustavy a ne na interpretaci algebraických vztahů. Stavový graf Další formou výstupní informace kvalitativního modelu je tzv. stavový graf. Stavový graf udává možné přechody jednoho kvalitativního stavu do stavu druhého. Jako příklad lze uvést přechod, který je graficky interpretován na Obr.1.
18
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování
ČASOVÝ INTERVAL [++-]
BOD [+0-]
→
ČASOVÝ INTERVAL → [+ - - ]
Obr.1.2.2 Označení možných přechodů kvalitativních stavů dává kvalitativnímu modelu významnou predikční schopnost. Kvalitativní interpretace časového průběhu proměnné X na Obr.1.2.1 je tedy dána sekvencí tripletů [+ - +] [+ 0 +] [+ + +] Kvalitativní znalost, popsaná touto sekvencí, není tak specifická, jako kvantitativní informace na Obr.1.2.1 Kvalitativní transformace tedy představuje jistou "degeneraci" kvantitativního popisu, je však schopna vyjádřit integrovaně v jednom modelu jak znalost kvantitativní (hlubokou), tak kvalitativní (mělkou - experimentálně zjištěnou či expertní nebo hypotetickou).
Řešené úlohy 1.2 Příklad 1.2.1 Převeďte kvantitativní konvenční rovnici 2y + x/3 - z = 2 na kvalitativní transformací převést na kvalitativní rovnici (konfluenci) Řešení: Y + X - Z = K+
19
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování
Příklad 1.2.2 Konstrukce kvalitativního vyjádření jednoduchého vyjádřeného jeho časovou funkcí, je uvedeno na Obr.1.
kvantitativního
průběhu,
Obr.1 Interval AB je kvalitativně reprezentován jako AB = [X = PLUS ( + ), DX = MINUS ( −), DDX = PLUS ( + )] = [+ − + ]
Bod B a interval BC jsou kvalitativně charakterizovány triplety B = [+ 0 + ],
BC = [+ + + ]
Příklad 1.2.3 Na Obr.2 je nakreslen příklad jednoduchého chemického reaktoru, který lze popsat jednoduchou diferenciální rovnicí
dVr / dt = Fi − Fo
20
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování
Obr.2 Jelikož nebyla definována funkce kvalitativního rozdílu, je třeba přepsat rovnici do tvaru
dVr / dt + Fo = Fi Tuto rovnici lze vyjádřit blokovým schématem na Obr.3, které je pro konstrukci kvalitativního modelu velmi vhodné.
Obr.3 Toto blokové schéma lze zapsat ve formě soustavy dvou konfluencí s jednou pomocnou proměnnou P1 jako P1 = dVr / dt Fi = P1 + F0
Soustavu těchto konfluencí lze dále zapsat ve formě matice, vhodné pro počítačové programování
21
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování
1 d / t VR P1 0 2 add P1 F 0 F1
Řešením tohoto kvalitativního modelu je množina n-tripletů, kde n je celkový počet kvalitativních proměnných modelu. Každá proměnná je popsána svým jednoduchým tripletem. Všechna možná řešení modelu jsou uvedena v následující tabulce Tab.1. DDV
DF0
DFI
1
+
+
+
2
0
+
+
3
+
0
+
4
+
-
+?
5
-
+
+?
6
0
0
0
7
-
+
0?
8
+
-
0?
9
-
-
-
10
0
-
-
11
-
0
-
12
-
+
-?
13
+
-
-?
Tab.1 Všechny proměnné jsou uvažovány jako pozitivní. V tabulce jsou jako příklad vybrány z tripletů proměnných pouze hodnoty jejich prvních derivací. Otazníky označují sporná (nejednoznačná) kvalitativní řešení, neboť např. v řešení č.4
(DDV = + ) + (DF 0 = − ) = + ? závisí polarita součtu na absolutní velikosti sčítanců.
Shrnutí pojmů Ke kvalitativnímu popisu zkoumaných jevů přistupujeme tehdy, pokud nechceme (nebo neumíme) analyticky přesně popsat vztahy mezi proměnnými veličinami popisovaných dějů. Důležitým znakem kvalitativního modelování je přechod k novému oboru proměnných. Místo reálných čísel, typických pro matematický popis, je oborem hodnot množina hodnot, která umožňuje kvalitativně charakterizovat aktuální hodnotu číselné proměnné relativně vůči jejím významným hodnotám. Kvalitativní
22
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování hodnota proměnné je pak dána údajem o velikosti hodnoty, charakterizující polohu aktuální hodnoty proměnné vůči významným mezním hodnotám (kladná – větší než nula, záporná – menší než nula a nulová) a údaji o vývojové tendenci proměnné (její velikost roste, klesá, je konstantní). Kvalitativní model je vyjádřen pomocí kvalitativních rovnic neboli konfluencí, vytvořených z množiny kvalitativních proměnných a kvalitativních vazeb. Kvalitativní simulace systému spočívá v odvození kvalitativního průběhu jeho proměnných ze soustavy konfluencí. Kvalitativní hodnota proměnné X může být pozitivní (K+), negativní (K-) nebo nulová (K0). Kvalitativní dynamické chování systému je dáno hodnotami kvalitativních derivací jeho proměnných. DX(1) je první a DDX(1) druhá derivace proměnné X(1). Pro popis stavu kvalitativní proměnné se používá kvalitativního tripletu [X(1), DX(1), DDX(1)]. Kvalitativní algebra je tvořena kvalitativními operacemi, které umožňují aritmetické operace s kvalitativními hodnotami. Operace jsou specifikovány předpisy pro kvalitativní součet, součin, derivaci součtu, derivaci součinu a časovou derivaci. Kvalitativní simulace probíhá metodou položení kvalitativního dotazu QU. Dotaz QU je tvořen množinou kvalitativního zadání. Kvalitativní řešení kvalitativního modelu QM je množina M všech n-tripletů takových, které neodporují žádné modelové relaci. Nejjednodušším algoritmem odvození množiny řešení M je postupné generování všech možných N-tripletů a jejich testování proti modelu QM. Stavový graf udává možné přechody jednoho kvalitativního stavu do stavu druhého.
Otázky 1.2 1.2.1 Jaký je rozdíl mezi kvantitativním (matematickým) a kvalitativním popisem (modelováním) chování složité soustavy ? 1.2.2 Co je to kvalitativní triplet ? 1.2.3 Proč jsou některé kvalitativní operace nejednoznačné ? 1.2.4 Jak probíhá proces kvalitativní simulace ? 1.2.5 Čím je významný kvalitativní stavový graf ?
Úlohy k řešení 1.2 1.2.1 Vymyslete sami matematickou rovnici (nebo soustavu rovnic), reprezentující fyzikální soustavu. Určete parametry takto napsaného modelu soustavy a pouvažujte o možnosti přesného stanovení jejich číselných hodnot ! 1.2.2 Uveďte objekt, který považujete z hlediska jeho matematického modelování za složitý.
23
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kvantitativní a kvalitativní modelování 1.2.3 Uveďte příklad mělké a hluboké znalosti v oboru, který je Vám blízký (řízení automobilu, hra v šachy apod.). 1.2.4 Promyslete kvalitativní popis řízení směru jízdy automobilu řízením natočení kol přední nápravy. 1.2.5 Popište kvalitativním tripletem kladnou kvalitativní proměnnou X, jejíž hodnota exponenciálně roste 1.2.1 Popište kvalitativním tripletem proměnnou, jejíž hodnota exponenciálně roste 1.2.6 Převeďte do kvalitativní formy následující rovnici
(3 x 2 + 2 x) ⋅ (−2 z ) = y 2 1.2.7 Sestavte kvalitativní model funkce popsané jejím průběhem na obrázku Obr.4.
. Obr.4 Další řešené příklady naleznete v kapitole: CVIČENÍ 1
Fuzzy množiny a logika – problém udělení výše spropitného
Další zdroje [1] Zadeh,L.A.: The Concept of Linguistic Variable and its Application to Aproximate Reassoning, American Elsevier P.C., New York, 1973 [2] Noskievič,P.: Modelování a identifikace systémů, MONTANEX a.s., 1999. ISBN 807225-030-2 [3] Mařík, V. a kol.: Umělá inteligence I, II, Academia Praha, 1997. ISBN 80-2000504-8 [4] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80901984-4-9 [5] Dohnal,M.: Methodology of Qualitative Modelling, Proc. SCAI´89, Tampere, 1989
24
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
2
SYSTÉMY FUZZY-LOGICKÉ
2.1
Základy teorie fuzzy množin a jazykové fuzzy logiky Čas ke studiu: 3 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• • • •
objasnit pojem fuzzy množiny použít fuzzy množinu pro formalizaci vágního slovního výrazu definovat pojem jazykové proměnné jazykového modelu a její hodnoty použít fuzzy množiny v jazykových modelech • vyložit principy fuzzy logiky
Výklad Fuzzy množinová teorie V první části učebnice jsme zdůraznili úlohu zkušeností jako zdroje informací, které má k dispozici lidský expert a dovede jich velmi efektivně využívat při řešení složitých problémů, tedy např. i k řešení problému popisu chování či řízení složité soustavy. Lidské zkušenosti lze vyjádřit větami přirozeného jazyka, tedy jazykovým popisem. Slova, která jsou v takových popisech relevantními prvky, jsou nositeli neurčitosti, zvané, jak jsme již uvedli, pojmovou neurčitostí čili vágností. Jestliže jsme došli k závěru, že právě efektivní využití vágnosti spolu s exploatací jednoduchých, ale výkonných nenumerických algoritmů umožňují člověku činit dobré závěry, je potom jednou z principielních otázek nalezení formálního aparátu pro reprezentaci vágnosti a efektivní práci s ní. Vágnost, jako průvodní jev všech složitých, špatně popsatelných soustav, případně soustav, v jejichž funkci se uplatňuje lidský faktor, je nejčastěji formalizována pomocí aparátu fuzzy množinové teorie, jejímž zakladatelem je profesor kalifornské university v Berkeley Lotfi A. Zadeh [1], [2]. Ukázalo se, že fuzzy množiny jsou přirozeným prostředkem pro formalizaci vágnosti. V další části této kapitoly uvedeme základní principy fuzzy množinové matematiky, které jsou nezbytné pro pochopení jejích aplikací. V teorii klasických množin prvek do množiny buď patří nebo nepatří. Hovoříme pak o (plné) příslušnosti nebo o nepříslušnosti prvku do dané množiny. V Zadehově fuzzy množinové teorii, která je zobecněním teorie abstraktních množin, je fuzzy 25
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické množina definována jako třída, která přiřazuje prvkům neurčitost pomocí vlastnosti jejich částečné příslušnosti formou tzv. míry příslušnosti. Nechť X ≠ 0 je klasická množina a µA : X → <0,1> nechť je zobrazení. Fuzzy množinou pak budeme nazývat uspořádanou dvojici A = (X , μ A )
Množinu X přitom nazveme univerzem fuzzy množiny A , µA nazveme funkcí příslušnosti fuzzy množiny A. Pro každé x∈ X nazveme reálné číslo µA(x) stupněm příslušnosti prvku x k fuzzy množině A, přičemž µA(x) budeme interpretovat takto:
je
µA(x) = 0 ..…... prvek x do množiny A nepatří µA(x) = 1 ..…... prvek x do množiny A patří µA(x)∈ (0,1) ... nelze s jistotou určit, zda x patří do A, přičemž velikost µA(x) vyjádřením stupně příslušnosti x k A.
Klasifikace určitého objektu stupněm příslušnosti k určité fuzzy množině je ryze subjektivní a její velikost záleží čistě na vnitřním přesvědčení lidského experta. Z tohoto hlediska nelze zaměňovat stupeň příslušnosti µ(x) se statistickou, objektivně vypočitatelnou hodnotou pravděpodobnosti P(x)∈ <0,1> ! Jak jsme již uvedli, má člověk k popisu reality k dispozici přirozený jazyk. Jednou z jeho hlavních schopností je efektivní používání vágních pojmů. Typickou vlastností vágního pojmu je při tom skutečnost, že charakterizuje určitou třídu problémů, jejíž hranice bychom velmi těžce určovali. Kdy lze např. o daném objektu prohlásit, že to je (není) vysoký strom, že to je (není) červená barva a pod.? Konvenční přístupy modelují vágní pojmy pomocí klasických množin a hraniční prvky tedy musí být zařazeny do množiny (míra příslušnosti 1), nebo mimo ni (míra příslušnosti 0). Ukazuje se, že v tom je hlavní příčina časté neadekvátnosti matematických metod v praxi.
Fuzzy množinové operace Stejně jako v konvenční množinové matematice, která definuje operace mezi obyčejnými množinami, jsou ve fuzzy množinové matematice definovány operace mezi fuzzy množinami. A.Operace s fuzzy množinami definovanými na jednom univerzu Uvažujme dvě fuzzy množiny A a B s prvky x, definovanými na univerzu U, s funkcemi příslušnosti A(x) a B(x) a stupni příslušnosti μ A (x) resp. μ B (x) ∈ 0,1 . Operace sjednocení
26
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Sjednocením dvou fuzzy množin A a B nazýváme fuzzy množinu C = A ∪ B , jejíž funkci příslušnosti určíme podle vztahu
C ( x) = A( x) ∨ B( x) = max[A( x), B( x)] , x ∪ U . x
(2.1.1)
(1) Poznamenejme, že operace maxima, použitá v takové definici sjednocení, odpovídá v matematické logice disjunkci dvou logických tvrzení. Ve fuzzy množinové matematice však můžeme definovat operaci sjednocení i pomocí jiných vztahů než (2.1.1). Velmi často je používána operace Lukasiewiczova sjednocení, definovaného vztahem
C ( x) = A( x) ⊕ B( x) = 1 ∨ ( A( x) + B( x)) , x ∪ U . (2)
(2.1.2)
Operace průnik Sjednocením dvou fuzzy množin A a B nazýváme fuzzy množinu C = A ∩ B , jejíž funkci příslušnosti určíme podle vztahu
C ( x) = A( x) ∧ B( x) = min[A( x), B( x)] , x ∪ U . x
(2.1.3)
(3) Poznamenejme opět, že operace minima, použitá v takové definici průniku, odpovídá v matematické logice konjunkci dvou logických tvrzení. Podobně jako v případě operace sjednocení, můžeme ve fuzzy množinové matematice definovat operaci průniku i pomocí jiných vztahů než (3). Velmi často je používána operace Lukasiewiczova průniku, definovaného vztahem
C ( x) = A( x) ⊗ B( x) = 0 ∨ ( A( x) + B( x) − 1) , x ∪ U (4)
(2.1.4)
Operace doplněk Doplněk A fuzzy množiny A je definován nejčastěji používaným vztahem A ( x) = 1 − A( x) , x ∪ U . (5)
(2.1.5)
Rozšíření fuzzy množinových operací Přirozený jazyk, který používáme k vzájemné komunikaci, je tak složitý, že interpretace významu jeho výrazů pomocí fuzzy množin a významu jeho jazykových konstrukcí s použitím základních operací (1) až (5) je mnohdy nedostačující.
27
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Základní fuzzy množinové operace jsou proto rozšířeny o jejich další varianty, které vzniknou jejich zobecněním. Tato skutečnost je pro fuzzy množinovou matematiku (a také, jak bude uvedeno dále, fuzzy logiku) specifická a v konvenční matematice nemá obdobu. Variantní operace se definují pomocí tzv. t-norem (triangulační normy) [Novák ZFM]. Binární funkce T : [0,1] x [0,1] → [0,1] se nazývá t-norma, pokud splňuje pro všechna x, y, z ∈ [0,1] následující vztahy: T(x,y) = T(y,x) T(x, T(y,z)) = T( T(x,y), z) jestliže x ≤ y, pak T(x,z) ≤ T(y,z) T (0,x) = 0 a T(1,x) = x
komutativnost asociativnost monotónnost omezenost
Platí,že t-normy mohou být spojité i nespojité. Základní t-normy jsou: M ( x, y ) = x ∧ y = min( x, y )
obyčejná (minimum) konjunkce
P ( x, y ) = x. y
Larsenova konjunkce
T∞ ( x, y ) = 0 ∨ ( x + y − 1)
Lukasiewiczova konjunkce
W ( x, y ) = x ∧ y , → x ∨ y = 1 0 jinak
drastický součin
Pro jednotlivé t-normy platí vztah uspořádání
W ( x, y ) ≤ T( x, y ) ≤ M ( x, y ) . Drastický součin dává tedy nejmenší a minimum největší hodnotu mezi všemi tnormami. t-normy lze definovat různými způsoby. Tak např. existuje tzv. Frankova rodina t-norem nebo Hanacherova rodina t-norem [2]. Prakticky významné je, že pomocí t-norem se pak definují operace, realizující ve fuzzy systémech průnik fuzzy množin C = A ∩T B ,
právě když
C ( x) = T( A( x), B( x) ).
Obdobně jako pomocí t-norem se definují operace realizující průnik fuzzy množin, sjednocení fuzzy množin je definováno pomocí odpovídajících s-norem (tkonorem). Vztahy mezi t-normami a s-normami můžeme vyjádřit pomocí výrazu
S( x, y ) = 1 − T(1 − x), (1 − y ) Základní s-normy odpovídají základním t-normám a jsou vyjádřeny vztahy 28
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
N ( x, y ) = x ∨ y = max( x, y )
obyčejná (maximum) disjunkce
Q( x, y ) = x + y - x. y
Larsenova disjunkce
T∞ ( x, y ) = 0 ∨ ( x + y − 1)
Lukasiewiczova disjunkce
W ( x, y ) = x ∨ y , → x ∧ y = 0 1 jinak
drastický součet
Pro jednotlivé s-normy platí vztah uspořádání
N ( x, y ) ≤ S ( x, y ) ≤ V ( x, y ) . Jak již byl uvedeno, prakticky významné je, že pomocí s-norem se pak definují operace, realizující ve fuzzy systémech sjednocení fuzzy množin C = A ∪S B ,
právě když
C ( x) = S( A( x), B( x) ).
B.Operace s fuzzy množinami definovanými na různých univerzech Kartézský součin Jsou-li A ⊆ U , B ⊆ V fuzzy množiny, pak jejich kartézským součinem je fuzzy množina A × B ⊆ U × V definovaná jako ( A × B )( x, y ) = A( x) ∧ B ( y )
pro všechna x∈ U a y∈ V. Symbol x, y pak představuje uspořádanou dvojici prvků x a y. Tato definice představuje základ definice fuzzy relací. Namísto operace minima ∧ můžeme obecně použít kteroukoliv t-normu. Pak lze definovat kartézský součin dvou fuzzy množin vztahem ( A ×T B)( x, y ) = A( x)TB( y ) .
Fuzzy relace Obecně n-ární fuzzy relace je definována jako fuzzy množina na vícerozměrném (n-rozměrném) univerzu U1, … , Un. R ⊆ U 1 × ... × U n .
29
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Fuzzy relace R je neostrá relace mezi prvky vybíranými z univerz U1, … , Un. Stupeň příslušnosti R(x1, … ,xn) ∈<0,1> vyjadřuje náležení prvku n-rozměrného univerza k této relaci. Graficky si můžeme fuzzy relaci představit jako vícerozměrnou fuzzy množinu, jejíž funkce příslušnosti je reprezentována vícerozměrnou plochou.
Jazyková proměnná Při konstrukci jazykových popisů chování či řízení systémů se dostáváme do nenumerické oblasti, v níž musíme definovat základní prvky a operace. Jedním ze základních pojmů nenumerické matematiky je bezpochyby jazyková proměnná. Podle definice, kterou podal L. A. Zadeh [1], [2] nazýváme jazykovou proměnnou p uspořádanou pětici p : {P * , T ( P * ), U , SY , SE}
kde P* je jméno (identifikátor) jazykové proměnné p, T(P*) je množina jazykových hodnot, kterých může P* nabývat, U je univerzum, SY je syntaktické pravidlo, pomocí kterého jsou generovány prvky T(P*) a SE je sémantické pravidlo, které přiřazuje každé jazykové hodnotě její význam ve formě fuzzy množiny s univerzem U. Uvedenou obecnou definici obvykle interpretujeme takto: a) T(P*) je konečná množina jazykových hodnot J = {J1,J2,...,Jn} b) Syntaktické pravidlo SY je omezeno na výčet prvků množiny T(P*). c) Sémantické pravidlo SE interpretuje každou jazykovou hodnotu Ji, i = 1,2,3,...,n, jako fuzzy množinu Ji = (R,µLi) kde R je univerzum reálných čísel. Znamená to tedy, že pravidlo SE označuje jednotlivé fuzzy množiny přímo názvy jejich odpovídajících jazykových hodnot. Tím je každá jazyková hodnota Ji jazykové proměnné p formalizována pomocí fuzzy množiny Ji. Tím je realizována fuzzy interpretace neurčitosti, kterou každá lingvistická hodnota obsahuje. Fuzzy množina Ji, daná funkcí µ , tak reprezentuje hodnotu jazykové proměnné p, která bude vystupovat jako proměnná v jazykovém modelu. Fuzzy jazyková logika Binární ohodnocování situací, které je typické pro klasickou logiku (ano-ne, černý-bílý, 0-1), se - jak jsme již konstatovali - stává na určité úrovni popisu chování a řízení systémů neefektivním. Je-li naším cílem vybudovat formální aparát pro reprezentaci a efektivní využití neurčitosti, je nezbytné nahradit binární logiku logikou vícehodnotovou. Vícehodnotová logika je jedním z typických nástrojů metod umělé inteligence.
30
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Vícehodnotovou nazýváme logiku, jejíž pravdivostní hodnoty mohou nabývat více než dvou stavů, nejčastěji z intervalu <0,1>. Jazykovou je pak nazývána taková vícehodnotová logika, ve které jsou pravdivostní hodnoty vyjádřeny pomocí slovního ohodnocení. Interpretace jednotlivých pravdivostních hodnot je přitom vágní. Logickou proměnnou je zde tedy nazývána taková proměnná, která může nabývat hodnot z intervalu <0,1>. Fuzzy logika je vícehodnotová jazyková logika, která využívá aparát a zákony fuzzy množinové matematiky. Pro potřebu fuzzy logiky budeme dále uvažovat množinu logických spojek {and, or, =>} jako konjunkci (logický součin), disjunkci (logický součet) a implikaci (logické vyplývání). Spojením logických proměnných pomocí logických spojek získáme logické výroky.
Řešené úlohy 2.1 Příklad 2.1.1 Pokusme se popsat pomocí fuzzy množiny vágní pojem "středně vysoký strom". Každé výšce, která připadá v úvahu, přiřadíme číslo <0,1> vyjadřující stupeň našeho přesvědčení, že takový strom je "středně vysoký". Tento stupeň vyplývá z toho, jak rozumíme pojmu "vysoký strom", jak hluboká je v tomto ohledu naše zkušenost, jak dalece jsme v této oblasti experty. Přiřazení takových stupňů (měr příslušnosti) závisí tedy na subjektu a také na kontextu. Po přiřazení funkce příslušnosti prvkům fuzzy množiny je z principu subjektivní a odráží obecně koncept, z něhož je problém posuzován. Pokusme se tedy definovat fuzzy množinu, formalizující vágní pojem "středně vysoký strom". Jedna z možností znázornění takové fuzzy množiny je grafický způsob, kdy na vodorovnou osu budeme vynášet výšky, na svislou osu odpovídající míry příslušnosti. Naše definice je takto zobrazena na Obr.6. Takto jsou definovány jako "zcela určitě středně vysoké" stromy s výškou mezi 3m a 5m, (míra příslušnosti 1); naproti tomu mezi "středně vysoké" nejsou zařazeny zcela určitě stromy nižší než 2m a vyšší než 7m (míra příslušnosti 0). Čtenář si zcela určitě vytvoří podobné fuzzy množiny sám ("staré auto", "mladý člověk", "hodně peněz" a pod.). Spojitá křivka zvonového tvaru, představující průběh velikosti míry příslušnosti v závislosti na velikosti prvku univerza, je nazývána fuzzy charakteristikou formalizovaného pojmu.
31
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Obr.6 Taková křivka bývá často parametrizována čtyřmi body zlomu (a,b,c,d) a aproximována lomenými přímkovými úseky, jak je uvedeno na Obr.2.
Obr.2
Příklad 2.1.2 Jako příklad můžeme uvést již zmíněnou jazykovou proměnnou "výška stromu", která může nabývat tří jazykových hodnot "nízký" J1, "středně vysoký" J2 a "vysoký" J3. Tyto tři jazykové hodnoty jsou reprezentovány třemi fuzzy množinami, a to typy Z, Π a S, podle Obr.3.
32
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Obr.3 Nyní definujme funkci příslušnosti µJi(x) takto: µ (x) = (x - ai)/(bi - ai) pro ai< x < bi; µ (x) = (x - di)/(ci - di) pro ci< x < di; µ (x) = 1 pro bi > x < ci µ (x) = 0 pro ai;< x > di Každá jazyková hodnota Ji je pak určena uspořádanou čtveřicí (ai,bi,ci,di). Uspořádaná čtveřice představuje body zlomu aproximační přímky a čtyři hodnoty tvoří v takovém případě čtyři parametry zde lichoběžníkové fuzzy množiny.
Shrnutí pojmů Lidské zkušenosti lze vyjádřit větami přirozeného jazyka, tedy jazykovým popisem. Slova, která jsou v takových popisech relevantními prvky, jsou nositeli neurčitosti, zvané, jak jsme již uvedli, pojmovou neurčitostí čili vágností. Ukázalo se, že fuzzy množiny jsou přirozeným prostředkem pro formalizaci vágnosti. Funkci µA nazýváme funkcí příslušnosti fuzzy množiny A. Pro každé x ∈ X nazveme reálné číslo µA(x) stupněm příslušnosti prvku x k fuzzy množině A, přičemž µA(x) budeme interpretovat takto: µA(x) = 0, když prvek x do množiny A nepatří, µA(x) = 1 když prvek x do množiny A patří a µA(x)∈ (0,1) kdy nelze s jistotou určit, zda x patří do A, přičemž velikost µA(x) je vyjádřením stupně příslušnosti x k A. Jedním ze základních pojmů nenumerické matematiky je bezpochyby jazyková proměnná. Podle definice, kterou podal L. A. Zadeh, nazýváme jazykovou proměnnou p, danou pětici symbolů : P* - jméno (identifikátor) jazykové proměnné p, T(P*) - množina jazykových hodnot, kterých může P* nabývat, U - univerzum, SY 33
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické syntaktické pravidlo, pomocí kterého jsou generovány prvky T(P*) a SE - sémantické pravidlo, které přiřazuje každé jazykové hodnotě její význam. Fuzzy množina, daná funkcí µ(x) , tak reprezentuje hodnotu jazykové proměnné p, která bude vystupovat jako proměnná veličina v jazykovém modelu.
Otázky 2.1 2.1.1 Jaký je rozdíl mezi klasickými a fuzzy množinami ? 2.1.2 Jakou výhodu mají fuzzy množiny oproti množinám klasickým ? 2.1.3 Jaký je princip použití fuzzy množin jako reprezentantů jazykových pojmů ?
Úlohy k řešení 2.1 2.1.1 Formalizujte jazykovou proměnnou „TEPLOTA V PECI“ a navrhněte tři její vhodné jazykové hodnoty. 2.1.2 Popište tyto fuzzy množiny jejich parametry !
Další řešené příklady naleznete v kapitole: CVIČENÍ 2
Fuzzy řízení výšky hladiny vodní nádrže
Další zdroje [1] Zadeh,L.A.: The Concept of Linguistic Variable and its Application to Aproximate Reassoning, American Elsevier P.C., New York, 1973 [2] Novák, V.: Fuzzy množiny a jejich aplikace, SNTL Praha, 1992. ISBN 80-0300325-3
34
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
2.2
Jazykové fuzzy modely a aproximativní vyvozování
Čas ke studiu: 3 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• použít fuzzy množiny v jazykových modelech • •
popsat způsob použití fuzzy modelů v praxi vysvětlit způsob vyvození velikosti výstupní proměnné fuzzy modelu
Výklad Jazykový model můžeme definovat jako složitý fuzzy výrok, v němž se vyskytují jména jazykových proměnných, jména jejich jazykových hodnot, logické spojky a pravdivostní hodnoty logických výroků, které nabývají hodnot z intervalu <0,1> [1], [2], [3]. Významnou výhodou jazykového modelu je možnost vytvoření formálního zápisu, který nám umožní zapsat jazykový model tak, jak je běžným způsobem napsána česká věta. Tato skutečnost je základem pro použití jazykového modelu k formalizaci lidské znalosti resp. pro slovní popis chování a řízení soustav. Máme-li např. jazykovou proměnnou p = {TEPLOTA, J0, R} a množina jejích jazykových hodnot je J0 = {NÍZKÁ, STŘEDNÍ, VYSOKÁ}, µVYSOKA(p) píšeme větu " TEPLOTA p je VYSOKÁ " . Dosadíme-li za teplotu p její určitou (konkrétní) hodnotu p0, pak tento výrok bude mít pravdivostní hodnotu µVYSOKA(p0). Pro formalizaci zkušeností (znalostí) mají zásadní význam tzv. podmíněná tvrzení, která vzniknou formální úpravou zápisu logické implikace. Implikaci
35
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
" => " píšeme ve formě podmíněného výrazu "Jestliže
(IF)
podmínka ,
pak
(THEN)
důsledek ".
Výše uvedené úpravy umožňují, aby se formální zápis jazykového modelu blížil co nejvíce běžnému vyjadřování v přirozené lidské řeči. Je zřejmé, že jednoduché podmíněné výrazy ještě neumožňují zápis složitějších chování. K tomu je třeba vytvořit tzv. složené podmíněné výrazy. Složeným podmíněným výrazem (prohlášením) je např. jazykový model, představující větu: Jestliže (IF) TEPLOTA t je NÍZKÁ nebo TLAK p je VYSOKÝ, pak (THEN) RYCHLOST PROUDĚNÍ v je VYSOKÁ a STABILITA SOUSTAVY s je MALÁ. Část podmíněného výrazu vlevo od implikace "THEN" se nazývá jeho předpokladem (antecedentem, premisou), pravá část pak jeho důsledkem (konsekventem). Pravidlový fuzzy model typu Mamdani Jediné pravidlo popisuje chování modelované soustavy velice omezeně. Uvažujeme-li soustavu s n- vstupními a jednou výstupní proměnnou s n- rozměrnou funkční závislostí mezi vstupy a výstupem
y = f ( x1 , x 2 ,..., x n ) potřebujeme pro dostatečně bohatý popis takové funkce vyslovit pravidel více. Označíme-li jazykové hodnoty vstupních proměnných jako A a jazykové hodnoty výstupní proměnné jako B, potom množina pravidel popisující chování soustavy má tvar R1: R2: . . . . . .
. . . Rr: . . . RR:
IF(x1 is A11) and (x2 is A12) and … and (xn is A1n) THEN (y is B1) ELSE IF(x1 is A21) and (x2 is A22) and … and (xn is A2n) THEN (y is B2) ELSE
IF(x1 is Ar1) and (x2 is Ar2) and … and (xn is Arn) THEN (y is Br) ELSE
IF(x1 is AR1) and (x2 is AR2) and … and (xn is ARn) THEN (y is BR)
36
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
kde r = 1,2,…,R je počet pravidel. Takové množině IF-THEN pravidel říkáme pravidlový fuzzy model. Konsekventy pravidel takového fuzzy modelu mají tvar fuzzy výroku o velikosti výstupní jazykové proměnné (y is B) a model je nazýván podle svého tvůrce pravidlovým modelem typu Mamdani. Fuzzy logické spojky v modelu V pravidlovém fuzzy modelu Mamdani můžeme nalézt několik typů fuzzy logických spojek. Předně jednotlivá dílčí tvrzení o nezávisle proměnných v antecedentech pravidel jsou vázána spojkou „and“. Je to fuzzy spojka reprezentující fuzzy logický součin („a“) neboli fuzzy konjunkci. Toto fuzzy logické spojení je v antecedentech fuzzy modelů nejčastější, velmi málo se pro spojení v antecedentu používá logické spojky disjunkce „or“ (nebo). Podmínková (IF) a důsledková (THEN) část pravidel je spojena spojkou „THEN“. Tato spojka má charakter logické implikace a je opět v pravidlech standardní. Jednotlivá pravidla jsou spojena v modelu logickou spojkou „ELSE“ (jinak). Interpretace fuzzy logických spojek – funkce t-normy a funkce s-normy V klasické logice je význam (interpretace) všech logických spojek jednoznačná. Fuzzy logika se naopak vyznačuje tím, že interpretace fuzzy logických spojek jednoznačná není, každá spojka může být interpretována (vyhodnocována) několika možnými způsoby. Tato skutečnost je dána faktem, že fuzzy logické jazykové modely reprezentují lidskou (jazykovou) formulaci výroků o chování popisované soustavy a způsob chápání vazeb mezi výroky bývá interpretován různě, podle povahy popisovaného objektu. Velmi úzký vztah mají fuzzy množinové operace t-normy a s-normy k fuzzy logickým funkcím. Je-li ϕ výrok se stupněm pravdivosti a ∈ <0,1> a ψ výrok se stupněm pravdivosti b ∈ <0,1>, pak stupeň pravdivosti výroku “ϕ a současně ψ “ lze vypočítat pomocí kterékoliv T(a,b), kde T je nějaká t-norma. Analogicky je pomocí s-norem interpretována fuzzy logická disjunkce. Stupeň pravdivosti výroku “ϕ nebo ψ “ lze vypočítat pomocí kterékoliv S(a,b), kde S je nějaká s-norma. Jako příklad uveďme interpretaci spojky ELSE mezi pravidly. Tato spojka sjednocuje všechna dílčí pravidla Rr do jednoho celkového modelu. Jestliže vyslovujeme dílčí výroky a slovně je spojujeme mezi sebou, můžeme použít dvou způsobů. První z nich je charakterizování interpretací spojky ELSE jako konjunkce (A), tedy slovně „Platí pravidlo R1 – A – pravidlo R2 – A – pravidlo R3 – A – … - A - pravidlo RR“ Druhý ze způsobů interpretuje spojku ELSE jako disjunkci (NEBO) a slovní vyjádření má tvar 37
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
„Platí pravidlo R1 – NEBO – pravidlo R2 – NEBO – pravidlo R3 – NEBO – …NEBO - pravidlo RR“ Intuitivně jistě chápeme rozdíl v charakteru obou případů a můžeme tedy konstatovat, že máme možnost vytvořit dva různé modely, které mají sice stejná pravidla, avšak jinak lidsky chápaný význam. Základní fuzzy logické operace disjunkce (sjednocení) a konjunkce (průnik) dvou fuzzy množin A a B (definovaných na jednom univerzu) jsou dány vztahy
μ AU B ( x) = max{μ A ( x), μ B ( x)}
μ A×B ( x) = min{μ A ( x), μ B ( x)}
Situace, kterou jsme popsali v případě víceznačné (zde dvojznačné) interpretace logické spojky ELSE, platí ve fuzzy logice i u spojek fuzzy konjunkce, fuzzy disjunkce a a také u fuzzy negace. Je to sice komplikace, která ale představuje velmi silný prostředek fuzzy logiky vytvářet modely s jemně odstupňovaným charakterem svého „chování“, tak jak je to obvyklé při lidském uvažování. Vezmeme-li v úvahu možné interpretace fuzzy logické spojky disjunkce (NEBO), musíme v první řadě zdůraznit, že všechny interpretace musí splňovat základní teoretické předpoklady kladené na logickou disjunkci, musí zachovat její typický logický charakter [6]. Množina možných fuzzy interpretací logické spojky disjunkce tvoři skupinu fuzzy logických funkcí zvaných funkce t-konormy (triangulární konormy). Uvedeme příklad dvou různých (a často používaných): Algebraický součet
μ A + B ( x ) = μ A ( x ) + μ B ( x) − μ A ( x ) ⋅ μ B ( x) Omezený součet
μ A⊕ B ( x) = min{1, μ A ( x) + μ B ( x)} Obrátíme-li pozornost na interpretace fuzzy logické spojky konjunkce (A), pak platí totéž co bylo řečeno o fuzzy disjunkci. Příslušná skupina možných interpretací fuzzy konjunkce je zde nazývána funkcemi t- normy (triangulární normy). Uveďme opět příklad dvou takových často používaných funkcí. Omezená diference
μ A( − ) B ( x) = max{0, μ A ( x) + μ B ( x) − 1} Algebraický součin
μ A× B ( x ) = μ A ( x ) ⋅ μ B ( x )
38
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Spojka ELSE mezi pravidly fuzzy modelu může být tedy interpretována jakoukoliv funkcí s charakterem disjunkce (t-konormy) nebo s charakterem konjunkce (t-normy). Mamdaniho pravidlové modely, používajících zde funkce t-konormy se nazývají modely disjunktivní (součtové), modely používající funkci t-normy se nazývají modely konjunktivní (součinové). Pro charakter (chování) modelu je toto spojení určující. To, co bylo řečeno o spojkách ELSE, OR či AND, platí i pro třetí základní logickou spojku – spojku NEGACE. Ve fuzzy logice existuje množina možných interpretací této funkce, která se nazývá Sugenovy negace. Vztah pro možné interpretace fuzzy negace je analytický s jedním parametrem, který určuje jeho charakter:
μ A' ( x) = 1 − μ A ( x) Ve fuzzy logice je možno použít celou řadu variant negace, vyjádřené parametricky Sugenovým vztahem
C λ (a) =
1− a , λ ∈ ( −1, ∞ ) 1 − λa
Je-li hodnota parametru lambda rovna nule, přechází vztah do formy klasické logické negace. Doposud jsme hovořili pouze o možnosti víceznačné interpretace fuzzy logických spojek disjunkce, konjunkce a negace. Tyto spojky jsou spojkami základními, s jejichž pomocí jsou definovány logické spojky složené. Takovou složenou logickou spojkou je spojka logické implikace (→), která je v našem Mamdaniho fuzzy modelu použita ke spojení THEN mezi antecedenty a konsekventy pravidel. V klasické logice je implikace definována s použitím základních spojek formou
p → q = ¬p ∨ q = ( p ∧ q) ∨ ¬p tedy pomocí spojek konjunkce, disjunkce a negace. Její klasická interpretace je dána tabulkou Tab.2.2.1 p
Q
p→q
0
0
1
0
1
1
1
0
0
1
1
1
Tab.2.2.1 Jestliže můžeme základní spojky disjunkce, konjunkce a negace interpretovat pomocí libovolné funkce t-normy, t-konormy a Sugenovy negace, potom (při jejich kombinacích) existuje také celá řada možností interpretace fuzzy logické spojky THEN - implikace. Uveďme pět nejpoužívanějších.
39
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Kleene – Dienesova implikace
μ ( x, y ) = max (1 − μ A ( x ), μ B ( y ) ) Lukasiewiczova implikace
μ ( x, y ) = min(1, 1 − μ A ( x) + μ B ( y ) ) Zadehova implikace
μ ( x, y ) = max{min{μ A ( x), μ B ( y )},1 − μ A ( x)} Mamdaniho implikace
μ ( x, y ) = min {μ A ( x ), μ B ( y )} Larsenova implikace
μ ( x, y ) = μ A ( x ) ⋅ μ B ( y ) Fuzzy logika tedy umožňuje pro každý řešený případ použít takové interpretace logických spojek modelu, které „doladí“ chování modelu přesně podle vlastností a chování modelované soustavy. Je potřeba zdůraznit, že v praxi používáme jen určitý omezený počet interpretací, které volíme podle charakteru modelované soustavy. Často je potřeba postupovat ve fázi ladění fuzzy modelu metodou „pokus-omyl“ a nejvhodnější interpretaci experimentálně vyhledat. Je třeba znovu zdůraznit, že použitý konkrétní způsob interpretace fuzzy logických spojek v pravidlovém fuzzy modelu určuje způsob vyhodnocování modelu (tzv. vyvozování) v procesu simulačních výpočtů a určuje také chování modelu a tím i velikost vypočtené (vyvozené) závisle proměnné. Pravidlový fuzzy model typu Takagi-Sugeno V dosavadním pojednání o fuzzy modelech jsme uvažovali model typu Mamdani, jehož konsekventy jsou tvořeny fuzzy výroky o velikosti závisle proměnné. Jiným, velmi rozšířeným pravidlovým fuzzy modelem je model typu TakagiSugeno [2], [4]. Tento model je typický tím, že konsekventem pravidel je funkce vstupních proměnných ve tvaru IF (x1 is A1) and (x2 is A2) and … and (xn is An) THEN y = f(x1,x2,…,xn) Funkce konsekventu je realizována ve formě lineární kombinace vstupních proměnných, tedy
y = k o + k1 x1 + k 2 x 2 + ... + k n x n
40
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Z matematického hlediska jde o lineární regresní funkci. Význam modelu TakagiSugeno spočívá v tom, že antecedent pravidla vymezuje fuzzy prostor, v němž lineární regresní funkce konsekventu platí. Máme-li pak více pravidel a každé pravidlo reprezentuje část fuzzy prostoru vstupních proměnných v němž platí příslušná lineární regresní funkce konsekventu, lze tímto modelem formalizovat libovolnou R- rozměrnou nelineární funkci, kde R je počet pravidel modelu. Uvažujme model Takagi-Sugeno ve tvaru R1: IF(x1 is A11) and (x2 is A12) and … and (xn is A1n) THEN y = k01+k11x1+…+k1nxn R2: IF(x1 is A21) and (x2 is A22) and … and (xn is A2n) THEN y = k02+k21x1+…+k2nxn . . . . . . RR:F(x1 is AR1) and (x2 is AR2) and … and (xn is ARn) THEN y = k0R+kR1x1+…+kRnxn Označíme-li obecně r- té pravidlo Rr a hodnotu jeho funkce v konsekventu yr, výsledná globální výstupní hodnota modelu je dána váženým součtem hodnot ze všech jeho pravidel ve tvaru R
y=
∑w r =1 R
r
yr
∑w r =1
, r = 1,..., R
r
kde váhové koeficienty jednotlivých pravidel wr, r = 1,…,R jsou pravdivostní hodnoty antecedentů pravidel pro dané vstupní hodnoty x*i, kde i = 1,…,a je počet vstupních proměnných modelu
wr = min[ μ Ari ( xi∗ )] i
Globální výstupní hodnota modelu Takagi-Sugeno je obyčejné (ostré) číslo, zatímco výstupem modelu typu Mamdani je fuzzy množina. Aproximativní vyvozování Jazykové fuzzy modely se používají pro studium chování namodelované soustavy, predikci jejích stavů nebo pro její řízení (fuzzy regulátory). V těchto případech postupujeme jako při simulaci chování soustav pomocí modelů konvenčních (matematických, numerických) tak, že dosadíme konkrétní (aktuální) hodnoty vstupních proměnných a vypočítáme odpovídající hodnotu veličiny výstupní. V případě jazykových fuzzy modelů, které využívají neurčitosti formalizované fuzzy množinami, je výsledkem výstupní hodnota opět ve formě fuzzy množiny. Výstup tedy není numerický (číslo) nýbrž nenumerický, jazykový, zatížený určitým stupněm 41
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické nejistoty, vágnosti. Proto se procedura výpočtu hodnoty výstupní veličiny jazykových modelů nazývá přibližné (aproximativní) vyvozování. Procedura aproximativního vyvozování využívá přístupů a zákonů fuzzy množinové matematiky a fuzzy logiky. Tuto proceduru vysvětlíme na jednoduchém příkladu vyvození velikosti výstupní veličiny fuzzy pravidlového modelu typu Mamdani. Mamdaniho inferenční metoda 1. Uvažujme kompoziční vyvozovací pravidlo
B 0 ( y ) = R o A( x 0j ) kde B 0 ( y ) je vyvozená (výstupní, globální) hodnota z modelu R, R je Mamdaniho pravidlový fuzzy model, o je fuzzy relace kompozice a A( x 0j ) je vektor aktuálních hodnot vstupních proměnných (dotaz), j = 1 ,…, n. Tvar r-tého pravidla Mamdaniho fuzzy modelu IF [ x1 is Ar ( x1 ) and x 2 is Ar ( x2 ) and … and x n is Ar ( x n ) ] THEN [ y is
Br ( y ) ] 2. Pravdivostní hodnota j-tého dílčího fuzzy tvrzení o velikosti j-té vstupní proměnné xj v r-tém pravidle
μ r , j = max { min [ A( x 0j ), Ar ( x j ) ] = Cons [ A( x 0j ), Ar ( x j ) ] } xj
kde Cons je fuzzy relace konzistence. 3. Pravdivostní hodnota antecedentu r-tého pravidla je vypočtena jako fuzzy konjunkce jednotlivých fuzzy tvrzení v antecedentu pravidla, interpretovaného jako Godelova konjunkce (minimum), tedy
μ r = min { μ r , j } = min { Cons [ A( x 0j ), Ar ( x j ) ]} j
j
4. Vyvozená (výstupní, dílčí) hodnota z r-tého pravidla fuzzy modelu R je vypočtena s použitím fuzzy implikační funkce THEN interpretované jako Mamdaniho implikační funkce (minimum)
Br0 ( y ) = min { μ r , Br ( y ) } = min { min { Cons [ A( x 0j ), Ar ( x j ) ], Br ( y ) }} y
y
j
5. Vyvozená (výstupní, globální) hodnota z modelu fuzzy modelu R je vypočtena za předpokladu fuzzy disjunktivního spojení jednotlivých pravidel modelu, kdy fuzzy disjunkce je interpretována jako Godelova disjunkce (maximum) 42
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
B 0 ( y ) = max y
{ B ( y) } = max { min { min { Cons [ A( x ), A ( x ) ], 0 r
y
y
j
0 j
r
j
B r ( y ) }}
}
Uvažujme soustavu s dvěma vstupními a jednou výstupní proměnnou. Tuto soustavu budeme modelovat s využitím fuzzy modelu Mamdani, který bude mít dvě vstupní a jednu výstupní jazykovou proměnnou. Všechny proměnné nechť mají dvě jazykové hodnoty – MALÝ a VELKÝ. Sestavíme jazykový model soustavy s použitím dvou pravidel, z nichž první se bude vyjadřovat k situaci, v níž je hodnota výstupní proměnné MALÁ a druhé k situaci v níž je hodnota výstupní proměnné VELKÁ. R1: R2:
IF(x1 is MALÝ) and (x2 is VELKÝ) THEN (y is MALÝ) IF(x1 is VELKÝ) and (x2 is VELKÝ) THEN (y is VELKÝ)
Jazykové proměnné vstupních veličin x1 a x2 a výstupní veličiny y jsou nakresleny na obrázku Obr.2.2.1, který současně reprezentuje graficky obě pravidla modelu.
Obr.2.2.1 Fuzzy množiny jazykových hodnot, které jsou aktuální v jednotlivých pravidlech jsou zdůrazněny tučnými čarami. Stanovení tvaru výsledné fuzzy množiny výstupní proměnné y při uvažování (dosazení) konkrétních hodnot vstupních proměnných x1 a x2 postupujeme podle obrázku Obr.2.2.2 takto:
43
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Obr.2.2.2 Dosazované konkrétní hodnoty vstupních proměnných jsou označeny x1* a x2*. Nejprve zjistíme tvar výstupní fuzzy množiny pro první pravidlo. V souladu se zněním prvního pravidla zjistíme velikost stupně příslušnosti hodnoty x1* k fuzzy množině M a označíme jej jako μM(x1*). Dále zjistíme velikost stupně příslušnosti hodnoty x2* k fuzzy množině V a označíme jej jako μV(x2*). Porovnáme velikosti μM(x1*) a μV(x2*) a vybereme menší z nich, tedy μV(x2*). Touto hodnotou „ořežeme“ jazykovou hodnotu výstupní hodnoty y v prvním pravidle, tedy fuzzy množinu M. Ořezanou fuzzy množinu označíme jako M* a budeme ji uvažovat jako výstup prvního pravidla. Nyní zjistíme tvar výstupní fuzzy množiny pro druhé pravidlo. V souladu se zněním druhého pravidla zjistíme velikost stupně příslušnosti hodnoty x1* k fuzzy množině V a označíme jej jako μV(x1*). Dále zjistíme velikost stupně příslušnosti hodnoty x2* k fuzzy množině V a označíme jej jako μV(x2*). Porovnáme velikosti μV(x1*) a μV(x2*) a vybereme menší z nich, tedy μV(x1*).
44
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické Touto hodnotou „ořežeme“ jazykovou hodnotu výstupní hodnoty y v druhém pravidle, tedy fuzzy množinu V. Ořezanou fuzzy množinu označíme jako V* a budeme ji uvažovat jako výstup druhého pravidla. Výslednou výstupní fuzzy množinu s uvažováním všech (obou) pravidel Y* získáme sjednocením fuzzy množin M* a V* Y* = M* ∪ V* Výsledkem simulace chování soustavy je tedy fuzzy množina Y*, kterou můžeme jazykově interpretovat jako „SPÍŠE MALÝ“.
Defuzifikace Pokud bychom potřebovali výstup ve formě čísla, provedeme tzv. defuzzifikaci fuzzy množiny Y* tak, že vypočteme polohu těžiště její plochy T a jeho souřadnici y* označíme jako číselný výstup modelu (Obr.2.2.3).
Obr.2.2.3
Řešené úlohy 2.2 Příklad 2.2.1 Uveďme příklad sestavení modelu Mamdani pro jednorozměrnou nelineární funkci f(x) s průběhem podle obrázku Obr.1.
45
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Obr.1 Obor hodnot vstupní proměnné x rozdělme do dvou částí, které pojmenujeme jazykově jako MALÁ a VELKÁ. Tyto jazykové hodnoty vyjádříme pomocí dvou fuzzy množin, a to Mx a Vx. Obdobně obor hodnot závisle proměnné rozdělíme na dvě části – MALÁ a VELKÁ. Tyto jazykové hodnoty budeme formalizovat fuzzy množinami My a Vy. Čárkované přímky rozdělují obor hodnot funkce f(x) na čtyři části, přičemž funkce probíhá oblastí označenou I a II. V těchto dvou částech podprostorech) je funkce f(x) definována dvěma fuzzy pravidly IF (x is Mx) THEN (y is My) IF (x is Vx) THEN (y is Vy) Tyto dvě pravidla tvoří fuzzy model typu Mamdani. V následujícím příkladu ukážeme, jak lze tutéž funkci f(x) popsat pomocí fuzzy modelu typu Takagi-Sugeno. Příklad 2,2,2 Uveďme příklad sestavení modelu Takagi-Sugeno pro jednorozměrnou nelineární funkci f(x) s průběhem podle obrázku Obr.2.
46
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Obr.2 Obor hodnot vstupní proměnné x rozdělme do dvou částí, které pojmenujeme jazykově jako MALÁ a VELKÁ. Tyto jazykové hodnoty vyjádříme pomocí dvou fuzzy množin, a to Mx a Vx. Aproximujme nyní průběh funkce f(x) dvěma vhodnými přímkami, označenými lineárními funkcemi y1 = k01 + k1x y2 = k02 + k2x Přímky jsou voleny tak, že první z nich aproximuje původní nelineární funkci f(x) v oblasti malých hodnot x, druhá pak aproximuje funkci f(x) v oblasti hodnot velkých. Jazykově můžeme nyní aproximaci funkce f(x) popsat dvěma fuzzy pravidly typu Takagi-Sugeno takto: IF (x is Mx) THEN y1 = k01+k1x IF (x is Vx) THEN y2 = k02+k2x Původní nelineární funkce f(x) je popsána pomocí dvou fuzzy pravidel a dvou lineárních funkcí.
Shrnutí pojmů Vícehodnotová logika je jedním z typických nástrojů metod umělé inteligence. Vícehodnotovou nazýváme logiku, jejíž pravdivostní hodnoty mohou nabývat více
47
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické než dvou stavů, nejčastěji z intervalu <0,1>. Fuzzy logika je vícehodnotová jazyková logika, která využívá aparát a zákony fuzzy množinové matematiky. Pro potřebu fuzzy logiky budeme dále uvažovat množinu logických spojek {and, or, =>} jako konjunkci, disjunkci a implikaci. Jazykový model pak můžeme definovat jako výrok, v němž se vyskytují jména jazykových proměnných, jména jejich jazykových hodnot, logické spojky a pravdivostní hodnoty <0,1>. Významnou výhodou jazykového modelu je možnost vytvoření formálního zápisu, který nám umožní zapsat jazykový model tak, jak je běžným způsobem napsána česká věta. Pro formalizaci zkušeností (znalostí) mají zásadní význam tzv. podmíněná tvrzení – fuzzy pravidla IF-THEN.. Množině fuzzy pravidel říkáme pravidlový fuzzy model. Konsekventy pravidel takového fuzzy modelu mají tvar fuzzy výroku o velikosti výstupní jazykové proměnné a model je nazýván podle svého tvůrce pravidlovým modelem typu Mamdani. V klasické logice je význam (interpretace) všech logických spojek jednoznačná. Fuzzy logika se naopak vyznačuje tím, že interpretace fuzzy logických spojek jednoznačná není, každá spojka může být interpretována (vyhodnocována) několika možnými způsoby. Fuzzy logika tedy umožňuje pro každý řešený případ použít takové interpretace logických spojek modelu, které „doladí“ chování modelu přesně podle vlastností a chování modelované soustavy. Jiným, velmi rozšířeným pravidlovým fuzzy modelem je model typu TakagiSugeno. Tento model je typický tím, že konsekventem pravidel je funkce vstupních proměnných ve tvaru lineární kombinace vstupních proměnných. Jazykové fuzzy modely se používají pro studium chování namodelované soustavy, predikci jejích stavů nebo pro její řízení (fuzzy regulátory). V těchto případech postupujeme jako při simulaci chování soustav pomocí modelů konvenčních (matematických, numerických) tak, že dosadíme konkrétní (aktuální) hodnoty vstupních proměnných a vypočítáme odpovídající hodnotu veličiny výstupní. V případě jazykových fuzzy modelů, které využívají neurčitosti formalizované fuzzy množinami, je výsledkem výstupní hodnota opět ve formě fuzzy množiny. Výstup tedy není numerický (číslo) nýbrž nenumerický, jazykový, zatížený určitým stupněm nejistoty, vágnosti. Proto se procedura výpočtu hodnoty výstupní veličiny jazykových modelů nazývá přibližné (aproximativní) vyvozování. Výsledkem simulace chování soustavy pomocí modelu Mamdani je fuzzy množina, jejíž význam můžeme dobře interpretovat slovně (jazykově). Pokud bychom potřebovali výstup ve formě čísla, provedeme tzv. defuzzifikaci fuzzy množiny výstupní hodnoty tak, že vypočteme polohu těžiště její plochy a souřadnici těžiště označíme jako číselný výstup modelu. Výstupní hodnota fuzzy modelu typu Takagi-Sugeno má formu obyčejného čísla a není ji proto třeba defuzzifikovat.
48
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy fuzzy-logické
Otázky 2.2 2.2.1 Co je to vícehodnotová jazyková logika ? 2.2.2 Čím je typická fuzzy logika ? 2.2.3 Co je to IF-THEN fuzzy pravidlo ? 2.2.4 Čím se od sebe liší fuzzy modely typu Mamdani a Takagi-Sugeno ? 2.2.5 Co je procedura aproximativního vyvozování ? 2.2.6 Jaký je postup vyvození fuzzy množiny závisle proměnné veličiny u modelu Mamdani ? 2.2.7 Jaký je postup vyvození hodnoty závisle proměnné veličiny u modelu TakagiSugeno ? 2.2.8 Co je výsledkem procedury defuzzifikace ?
Úlohy k řešení 2.2 2.2.1 Sestavte fuzzy model typu Takagi-Sugeno pro nelineární jednorozměrnou funkci y = f(x), která je klesající (má charakter nepřímé úměrnosti) ! 2.2.2 Proveďte vyvození výstupní hodnoty y modelu Takagi-Sugeno pro model který jste vytvořili v úloze 3.3 pro Vámi zvolenou velikost vstupní proměnné x ! Další řešené příklady naleznete v kapitole: CVIČENÍ 3
Fuzzy řízení inverzního kyvadla
Další zdroje [1] Novák, V.: Základy fuzzy modelování, BEN Praha, 2000. ISBN 80-7300-009-1 [2] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80901984-4-9 [3] Jura,P.: Základy fuzzy logiky pro řízení a modelování, VUT Brno, 2000. ISBN. 802142261-0 [4] Takagi,T.: Fuzzy Identification of Systém and its Application to Modelling and Control, IEEE Trans., SMC, 1, 1985
49
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém
3
FUZZY EXPERTNÍ SYSTÉMY
3.1
Funkce a systémů
architektura
fuzzy
orientovaných
expertních
Čas ke studiu: 2 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• vysvětlit princip a účel expertních systémů • vysvětlit a v praxi použít základní principy znalostního inženýrství a metod tvorby expertních systémů • objasnit způsobu uvažování expertního systému • interpretovat odpověď fuzzy expertního systému
Výklad V minulé části knihy byla probrána problematika popisu ne zcela určitých soustav s využitím metod a prostředků fuzzy množinové matematiky a vysvětleny metody simulace jejich chování. V této části se budeme věnovat nejrozšířenějším fuzzy systémům, kterými jsou speciální programy, používané pro řešení složitých problémů, tzv. expertní systémy. Podrobné rozpracování této problematiky může čtenář nalézt např. v literatuře [1], [2], [3]. Podstatné zde je, že jednou ze základních částí (fuzzy orientovaného) expertního systému je jazykový fuzzy model. Již v úvodu této učebnice jsme zdůvodnili, proč je v určité fázi řešení složitých problémů nutno přejít od zpracování dat ke zpracování znalostí. Znalostí přitom nazýváme vzájemně provázané a měnitelné či doplnitelné struktury souvisejících jazykově vyjádřitelných poznatků. Počítače, vybavené programy, umožňujícími řešit problémy na základě znalostí, se nazývají znalostní systémy. Jejich úkolem je podporovat řešení složitých problémů, které, i když pro ně neznáme algoritmické postupy řešení, jsou řešitelné pomocí produktivních metod využívajících znalostí. Povaha těchto znalostí může být jak odborná tak i všeobecná. Podobně i problémy, řešitelné znalostními systémy, mohou být tedy jak odborné, tak i všeobecné, které lidé na základě všeobecných poznatků a zkušeností řeší v každodenním životě (hlavolamy, hry, testy, interpretace, plánování, monitorování či řízení běžných životních situací a pod).
50
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém Expertními systémy pak nazýváme takové znalostní systémy, které jsou určeny k řešení odborných problémů, vyžadujících na rozdíl od všeobecných především znalosti často velmi úzce specializované. Hlavním posláním expertních systémů je poskytovat závěry o stavech sledované soustavy nebo o postupech řešení úloh. Tyto závěry jsou získávány na základě numerických nebo jazykových informací o konkrétním stavu soustavy. Stěžejním požadavkem je, aby kvalita závěrů expertního systému odpovídala kvalitě závěrů, které by v téže situaci učinil zkušený expert. Základní třídy problémů, které jsou vhodné pro řešení expertními systémy, jsou: - interpretace: je popisují;
rozpoznávání situací z údajů, které
- predikce: tuace;
odvození očekávaných důsledků dané si-
- diagnostika: určení stavu (poruchy) systému z pozorovatelných projevů jeho chování; - konstruování: výběr a sestavení objektů do určitého funkčního celku při daných omezujících podmínkách; - plánování: dosažení požadovaného cíle;
sestavení posloupnosti akcí za účelem
- monitorování: sledování a porovnávání údajů odpovídajících určité situaci za účelem zjišťování a následného odstranění odchylek od očekávané situace; - ladění a opravování: výběr,sestavení a uskutečnění posloupnosti akcí odstraňující odchylky nebo chybové stavy; - učení: mostí studenta;
diagnostika, ladění a upravování vědo-
- řízení:
interpretace, predikce, monitorování a
Z obecného hlediska lze expertní systémy klasifikovat do třídy systémů analyzujících (typickým problémem je diagnostika) a systémů syntetizujících (typickým problémem je plánování). Na těchto hlediscích závisí jejich architektura. Architektura expertního systému vychází ze základní struktury, která je vždy tvořena bází znalostí (fuzzy modelem) na straně jedné a inferenčním (vyvozovacím) mechanizmem na straně druhé. Další rysy jeho architektury jsou však dány jeho typem, tj. jeho určením pro řešení úloh diagnostického nebo plánovacího typu.
51
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém Úlohou diagnostických expertních systémů je provádět efektivní interpretaci dat s cílem určit, která z hypotéz o chování zkoumané soustavy nejlépe koresponduje s reálnými daty, týkajícími se konkrétního případu. Řešení případu (problému) probíhá formou postupného ohodnocování a přehodnocování dílčích hypotéz v rámci pevně daného modelu řešeného problému, který je sestaven expertem. Struktura diagnostického expertního systému je znázorněna na Obr. 3.1.1 Jádro takového systému tvoří řídící (inferenční) mechanizmus, který operacemi nad bází znalostí na základě aktuálních dat (dotazu) upřesňuje (aktualizuje) obecný model a vyvozuje odpověď (závěr) simulace.
Obr.3.1.1 Báze znalostí jako obecný model chování studované soustavy je tvořena expertními znalostmi, které jsou formalizovány vhodnou reprezentací. Kromě fuzzy pravidlové reprezentace, která je preferována v této knize, existuje řada dalších možností. Aktualizace modelu je provedena vstupem konkrétních dat k danému případu. Konkrétní data jsou reprezentována bází dat a mohou být získána jako jazykové hodnoty od uživatele (operátora), přímým měřením nebo kombinovaně. Výsledkem činnosti diagnostického expertního ohodnocených závěrů - cílových hypotéz (diagnóz).
systému
je
seznam
Uživatelsky významnou částí expertního systému je vysvětlovací podsystém. Ten poskytuje informace o konkrétním postupu, jímž bylo dosaženo závěru. Tak může uživatel sám posoudit kvalitu báze znalostí i inference a výsledek odvození případně dodatečně modifikovat. Plánovací expertní systémy jsou určeny k řešení úloh, kdy je znám cíl a počáteční stav řešení a systém má s využitím dat o konkrétním případu nalézt 52
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém (pokud možno optimální) posloupnost kroků (operátorů), kterou lze cíle dosáhnout. Schéma struktury takového systému je uvedeno na Obr.3.1.2. Základní částí plánovacího expertního systému je generátor možných řešení, který automaticky kombinuje posloupnost operátorů a vytváří tak varianty řešení. S rostoucím počtem operátorů však počet možných kombinací velmi rychle narůstá (kombinatorická exploze). Data o konkrétním případu resp. znalosti experta tuto explozi omezují. Výsledkem činnosti plánovacího expertního systému je nabídka ohodnocených přípustných řešení, z nichž uživatel podle svých kriterií vybírá jednu dominantní.
Obr.3.1.2
Tvorba expertních systémů Ve fázi výstavby expertního systému buduje bázi znalostí ve spolupráci s expertem (-ty) znalostní inženýr. Ten musí být dostatečně detailně seznámen nejen s problematikou expertních systémů, formami reprezentace znalostí a inferenčními mechanizmy, ale do nezbytně nutné hloubky i s problémovou oblastí úlohy. Jeho úkolem je získávat znalosti od experta a vhodným způsobem je zakódovat. Proces tvorby báze znalostí je možno rozdělit do těchto fází:
53
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém - identifikace problému, - návrh koncepce báze znalostí, - volba reprezentace znalostí, - implementace, - ladění báze znalostí, - využívání báze znalostí. Speciální místo zajímají systémy, které umožňují tvorbu tzv. automatické báze znalostí. Vycházejí z hodnot nezávisle proměnných xijo a hodnoty závisle proměnné yoj, kde i = 1,2,...,n je množina měřených hodnot vstupních (nezávisle) proměnných a j = 1,2,...,Z je počet měření. Každý vektor xoj = {xo1j, xo2j, ..., xonj, yoj} lze považovat za podmíněné tvrzení o chování soustavy, pokud {xo1j, xo2j, ..., xonj} považujeme za jeho antecedent a {yoj} za jeho konsekvent. Z- měření tak poskytne celkem Z- pravidel znalostní báze. Vstupní i výstupní proměnné jsou fuzzifikovány a ukládány do báze ve formě trojúhelníkových fuzzy čísel. Metoda tvorby automatické báze využívá přímé informace, obsažené v měřených datech a je jednou z metod tvorby tzv. datových modelů, využívajících k simulaci chování soustavy fuzzy datových algoritmů. V průběhu ladění báze znalostí, tj. její optimalizace ve fázi návrhu, se opakuje následující cyklus: - test báze na reálných datech (případech), - konzultace výsledků s expertem, - úprava báze znalostí. Cyklus ladění báze znalostí je časově náročný a klade dosti vysoké požadavky na soustředěnou práci všech zúčastněných odborníků. I když zatím úlohy znalostního inženýra nejsou plně podporovány počítačovými programy, existuje řada prostředků, které mu práci ulehčují. Mezi ně patří především: A. Podpůrné prostředky pro tvorbu báze znalostí, kam řadíme - editory bází znalostí, které podporují kódování znalostí a zabraňují vzniku syntaktických (někdy i sémantických) chyb; - vysvětlovací subsystémy, které usnadňují ladění bází a jsou schopny detailně rekonstruovat logický postup uvažování systému; B. Prostředky pro efektivní získávání znalostí od experta, které - pomáhají analyzovat expertovy znalosti, - vyhledávají znalosti nedostatečně jasně vyjádřené, - kladou expertovi doplňující otázky pro upřesnění a zjemnění struktury znalostí. C. Induktivní algoritmy pro automatizované získávání znalostí, které se opírají o různé metody a techniky induktivního učení s využíváním trénovací množiny případů.
54
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém Význam těchto prostředků spočívá především v tom, že - snižují vysoký podíl lidské účasti na tvorbě expertních systémů, - svým způsobem odstraňují nutnost existence experta pro vytvoření expertního systému. Vysoký význam má existence a komerční nabídka tzv. prázdných (shell) expertních systémů jako programových prostředků, které jsou vybaveny veškerými úlohami expertního systému, mají však prázdnou ("nenaplněnou") bázi znalostí. Problémová orientace (dedikace) expertního systému pak vznikne naplněním báze znalostí (implementace pravidel o chování soustavy) podle konkrétní potřeby uživatele. Interpretace výsledků vyvozování Z inženýrského hlediska je velmi důležitá správná interpretace vyvozených odpovědí. K tomu je třeba správného pochopení nuancí "uvažování", které jsou pro jednotlivé modely charakteristické [3]: a) Součinové modely na začátky předpokládají, že pravda je všechno a potom tvrdí, že pravda je to, co není v rozporu se žádným prohlášením. Způsob jejich uvažování bývá interpretován jako "zbabělý intelektuál". b) Součtové modely na začátku předpokládá, že nic není pravda, a potom tvrdí, že pravda je to, co tvrdí alespoň jedno prohlášení. Způsob uvažování CCD modelu bývá charakterizováno jako "naivní hazardér". Kvalitu odpovědi lze parametrizovat [3]. Parametry kvality pro nejrozšířenější model CIC jsou definovány podle Obr.3.1.3 takto:
Obr.3.1.3 1. Spornost odpovědi: 2. Důvěryhodnost použitých informací: 55
So = 1 - maxµ(y) Do = 1 - minµ(y)
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém 3. Neurčitost odpovědi: 4. Jasnost odpovědi:
No = b - a Jo = maxµ(y) - minµ(y)
Interpretace typických odpovědí jsou pro model CIC a CI& uvedeny na Obr.3.1.4, pro model CCD na Obr.3.1.5.
Obr.3.1.4 Komentář: A - zcela jasná odpověď, B - jasná odpověď s mírným sporem mezi pravidly, C - odpověď vyvozená z málo pravdivých předpokladů, navíc sporná, D - odpověď při absolutním sporu mezi prohlášeními, E - odpověď při pokusu o popis soustavy typu "relace".
Obr.3.1.5
56
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém
Komentář : A - zcela jasná odpověď, B - odpověď při existenci sporu mezi pravidly, C - odpověď při nedostatku informací. Je-li nutno převést fuzzy množinu odpovědi do formy obyčejného čísla, použijeme proceduru defuzzifikace.
Řešené úlohy 3.1 Příklad 3.1.1 Příkladem celosvětově velmi úspěšného a široce rozšířeného expertního systému je americký systém MYCIN (1976), určený pro podporu rozhodování lékaře při diagnóze a terapii infekčních onemocnění. V technické oblasti je velmi známý opět americký systém PROSPECTOR (1978), který je určen pro podporu rozhodování při vyhodnocování geologických vrtů z hlediska nalezišť ložisek barevných kovů. V oblasti plánovacích expertních systémů je známý systém R1/XCON (1986), určený pro návrh optimálních konfigurací počítačů fy Digital Equipment (DEC). Velmi známým expertním systémem české provenience je systém FEL-EXPERT, vyvíjený postupně již od roku 1983 na ČVUT Praha. Prázdný systém diagnostického typu je vybaven celou řadou moderních výkonných procedur.
Shrnutí pojmů Počítače, vybavené programy, umožňujícími řešit problémy na základě znalostí, se nazývají znalostní systémy. Jejich úkolem je podporovat řešení složitých problémů, které, i když pro ně neznáme algoritmické postupy řešení, jsou řešitelné pomocí produktivních metod využívajících znalostí. Expertními systémy pak nazýváme takové znalostní systémy, které jsou určeny k řešení odborných problémů, vyžadujících na rozdíl od všeobecných především znalosti často velmi úzce specializované. Stěžejním požadavkem je, aby kvalita závěrů expertního systému odpovídala kvalitě závěrů, které by v téže situaci učinil zkušený expert. Architektura expertního systému vychází ze základní struktury, která je vždy tvořena bází znalostí (fuzzy modelem) na straně jedné a inferenčním (vyvozovacím)
57
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém mechanizmem na straně druhé. Další rysy jeho architektury jsou však dány jeho typem, tj. jeho určením pro řešení úloh diagnostického nebo plánovacího typu. Ve fázi výstavby expertního systému buduje bázi znalostí s expertem (-ty) znalostní inženýr. Ten musí být dostatečně detailně seznámen nejen s problematikou expertních systémů, formami reprezentace znalostí a inferenčními mechanismy, ale do nezbytně nutné hloubky i s problémovou oblastí úlohy. Jeho úkolem je získávat znalosti od experta a vhodným způsobem je zakódovat. Speciální místo zajímají systémy, které umožňují tvorbu tzv. automatické báze znalostí [6]. Vysoký význam má existence a komerční nabídka tzv. prázdných (shell) expertních systémů jako programových prostředků, které jsou vybaveny veškerými úlohami expertního systému, mají však prázdnou („nenaplněnou“) bázi znalostí. Problémová orientace (dedikace) expertního systému pak vznikne naplněním báze znalostí (implementace pravidel o chování soustavy) podle konkrétní představy uživatele. Součinové modely na začátky předpokládají, že pravda je všechno a potom tvrdí, že pravda je to, co není v rozporu se žádným prohlášením. Způsob jejich uvažování bývá interpretován jako "zbabělý intelektuál". Součtové modely na začátku předpokládá, že nic není pravda, a potom tvrdí, že pravda je to, co tvrdí alespoň jedno prohlášení. Způsob uvažování součtových modelů bývá charakterizováno jako "naivní hazardér". Kvalitu odpovědi lze parametrizovat pomocí kritérií Spornosti odpovědi, důvěryhodnost použitých informací, neurčitosti odpovědi a jasnosti odpovědi.
Otázky 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6
Co je to znalostní systém ? Jaký je účel expertního systému ? Jaký je rozdíl mezi diagnostickými a plánovacími expertními systémy ? Jaký je postup při tvorbě expertního systému? Jaká je úloha znalostního inženýra ve fázi tvorby expertního systému? Vyjmenujte základní parametry pro posouzení kvality odpovědi fuzzy expertníh systému ?
Úlohy k řešení 3.1 3.1.1 Navrhněte Vám známý problém, k jehož řešení by bylo možno vypracovat expertní systém (např. diagnostika automobilového motoru, proč pláče kojenec, apod.). 3.1.2 Navrhněte 4 pravidla báze znalostí expertního systému pro diagnostiku systému, v jehož oblasti jste expertem !
58
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy expertní systém 3.1.3 Jak je třeba postupovat, nedává-li expertní systém odpovědi na dotazy z určité oblasti řešeného problému ? 3.1.4 Pokuste se vyslovit heuristiku, kterou uplatňujete při výkonu svého povolání nebo pěstování svého koníčka ! Další řešené příklady naleznete v kapitole: CVIČENÍ 4
Regulace teploty pomocí fuzzy řízení typu PSD
Další zdroje [1] Mařík, V. a kol.: Umělá inteligence I, II, Academia Praha, 1997. ISBN 80-2000504-8 [2] Provazník,I.: Expertní systémy, VUT Brno, FEI, 1999. ISBN 80-214-1486-3 [3] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80901984-4-9
59
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
4
FUZZY ŘÍDICÍ SYSTÉMY
4.1
Fuzzy regulátory Čas ke studiu: 3 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• • • •
popsat princip fuzzy regulátorů vysvětlit výhody jejich použití vysvětlit funkci a navrhnout fuzzy regulátor typu Mamdani vysvětlit funkci a navrhnout fuzzy regulátor typu Takagi-Sugeno
Výklad Původní myšlenku využití fuzzy přístupů k řízení soustav vyslovil Mamdani. Myšlenka vychází z principu využití jazykového popisu procesu řízení a vyvozovacího kompozičního pravidla, které jsou základem teorie fuzzy regulace (FLC - Fuzzy Logic Control) [1], [2], [3], [4]. Z tohoto hlediska existuje podobnost mezi fuzzy pravidlovými expertními systémy a systémy FLC. Oba vycházejí z modelování lidské zkušenosti a prostředí lidského rozhodování. Mamdani definuje princip fuzzy regulátoru FLC takto: "Základní myšlenkou takového přístupu bylo vtělení zkušenosti operátora do funkce regulátoru. Řídící algoritmus je reprezentován soustavou jazykových pravidel, odrážejících jeho řídící strategii, přičemž jazykové pojmy jsou reprezentovány fuzzy množinami. Hlavní výhodou takového přístupu je možnost implementace heuristických pravidel ("rule of the thumb"), jakož i zkušenosti a intuice jako součásti modelu procesu". Potřebu použití FLC se zdůvodňuje tím, že složité reálné procesy jsou velmi obtížně řiditelné klasickými automaty, neboť se vyznačují nelinearitou, časově proměnným chováním a trpí nedostatkem kvalitních informací o svých stavech (měření). V takových případech je možno automatické řízení realizovat pouze pro nepřímé proměnné, které lze měřit a regulovat, jako teploty, tlaky, průtočná množství a pod. Řízení globálních parametrů, jako kvalita a množství produkce, je pak obvykle v rukou operátora. Moderní metody řízení procesů, realizující vyšší řídící funkce, využívají matematické modely ve složitých počítačových řídících systémech. Obtíže vznikají, jestliže se podmínky procesu mění v širokém rozsahu a podléhají náhodným 60
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy poruchám. V mnohých případech je potvrzeno, že zkušený operátor je schopen řídit takový složitý proces úspěšněji než automatický regulátor. Pokud se operátor rozhoduje obtížně, může to být způsobeno rozsahem nebo způsobem zobrazení měřených dat případně nepřiměřenou hloubkou požadovaného rozhodování. Oproti expertním systémům se však systémy FLC vyznačují jistými odlišnostmi: - systémy FLC jsou řazeny spíše do oblasti inženýrské problematiky řízení než do oblasti umělé inteligence; - modely FLC jsou budovány výhradně formou řídících pravidel; - oblasti použití FLC v regulaci průmyslových procesů jsou širší než oblasti použití expertních systémů; - obecně nemusí být řídící pravidla formulována expertem, nýbrž explicitně tvůrcem FLC systému; - vstupními proměnnými FLC systémů jsou pravidelně informace o chování řízeného systému a výstupními proměnnými jsou velikosti akčních zásahů. Fuzzy regulátory První fuzzy regulátor byl vytvořen v roce 1973 anglickým profesorem Ebrahimem Mamdanim. Ten zjistil, že pro úspěšné řízení i složitější soustavy lze použít jen několika jednoduchých podmíněných fuzzy pravidel a že fuzzy regulační obvod má lepší dynamické vlastnosti než regulátor klasický. Jím použitá struktura fuzzy regulátoru se stala základem pro konstrukci takových regulátorů v celé řadě úspěšných aplikací. Základní konfigurace systému FLC je nakreslena na Obr.4.1.1. Typy a zapojení jednotlivých bloků odpovídají obecnému expertnímu systému.
61
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
Obr.4.1.1 Konfigurace fuzzy regulátoru obsahuje čtyři základní bloky, jejichž funkce jednotlivých částí je tedy následující: Blok FUZZIFIKACE, který zahrnuje funkce - měření hodnot vstupních veličin, - převod rozsahů měřených dat do odpovídajících univerz, - fuzzifikaci, transformující vstupní data (obyčejná čísla) do formy fuzzy množin; Blok BÁZE DAT, provádějící nezbytné operace se vstupními daty, vedoucí k definici funkcí příslušnosti jazykových hodnot jazykových proměnných a ke stanovení měr příslušnosti vstupních dat vzhledem k těmto jazykovým hodnotám; Blok BÁZE ZNALOSTÍ, obsahující jazyková řídící pravidla, charakterizující cíle a strategii řízení; Blok ROZHODOVACÍ LOGIKY, tvořící jádro systému FLC. Provádí vyvození fuzzy řídících zásahů s využitím příslušných fuzzy inferenčních (aproximačních) algoritmů; Blok DEFUZZIFIKACE, zahrnující - proceduru defuzzifikace, transformující vyvozený fuzzy akční zásah do obyčejné číselné formy; - převod rozsahů výstupních veličin do odpovídajících univerz. Inference systému FLC probíhají v jednotlivých krocích podobně jako v případě klasické diskrétní regulace. Proto je možno koncipovat jednotlivá typy fuzzy regulátorů stejně jako v technice klasické, tedy fuzzy regulátory obdobné typům P (regulátor proporcionální), PS (regulátor proporcionálně-sumační), PD (regulátor proporcionálně-derivační) a PSD (regulátor proporcionálně-sumačně-derivační). Jednotlivé typy fuzzy regulátorů se od sebe liší závisle proměnnými, nezávisle proměnnými a strukturou pravidel. Fuzzy regulátor považujeme za regulátor nelineární, čtyř typů, s těmito strukturami: 1. Fuzzy regulátor obdobný typu P IF (e is A) THEN (u is B) 2. Fuzzy regulátor obdobný typu PD IF (e is A) and ( Δe is B) THEN (u is C) 3. Fuzzy regulátor obdobný typu PS
62
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
IF (e is A) and ( Δe is B) THEN (Δu is C) 4. Fuzzy regulátor obdobný typu PSD IF (e is A) and ( Δe is B) and ( Δ2e is C) THEN (Δu is D) kde A, B, C a D jsou příslušné jazykové hodnoty vstupní proměnné e (regulační odchylka) či výstupní proměnné u (akční veličina), reprezentované fuzzy množinami. Operátor Δ je symbolem změny (první diference, druhá diference regulační odchylky e).
Δet = (et − et −1 )
Δ2 et = (Δet − Δet −1 ) Výběr typu fuzzy regulátoru závisí, stejně jako v případě regulátoru klasického, na charakteru regulované soustavy a na požadavcích kvality regulace. Tak např. fuzzy PSD regulátor je používán pro procesy vysoce nelineární a nestabilní. Regulační zákon je popsán IF-THEN pravidly řízení, které tvoří regulační model (bázi znalostí) fuzzy regulátoru. Tvar pravidel je dán typem fuzzy regulátoru (P, PD, PS, PDS). Velmi významná je skutečnost, že tvar řídicích pravidel je závislý na typu regulátoru, pro určitý typ regulátoru jsou však stejná pro kteroukoliv aplikaci. Je to dáno skutečností, že ve všech případech platí základní zákon regulace – akční veličina má vždy takovou velikost a smysl, že vede ke zmenšení (nulování) regulační odchylky. Báze znalostí fuzzy regulátorů jsou tedy tvořeny pravidly s typizovanou strukturou, lišící se pouze parametry fuzzy množin formalizující hodnoty jejich jazykových proměnných. Jako příklad uvedeme tabulku struktur pravidel pro fuzzy PD regulátor [1]. Vstupními proměnnými takového regulátoru sou regulační odchylka e a změna regulační odchylky Δe, výstupní proměnnou je pak velikost akční veličiny u. Tabulka pravidel je dvojrozměrná a lze ji dobře znázornit strukturou na Obr. 4.1.2
Δe
ZV
ZS
ZM
KM
KS
KV
KV
PN
ZS
ZM
ZS
ZV
ZV
KS
KM
PN
ZM
ZS
ZS
ZV
KM
KS
KS
PN
ZM
ZS
ZS
ZM
KS
KS
KM
PN
ZM
ZS
ZS
KV
KS
KS
KM
PN
ZM
ZV
KV
KV
KS
KS
KM
PN
e
63
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
Obr.4.1.2 Pravidla předpokládají následující jazykové hodnoty svých proměnných: ZV ZS ZM PN KM KS KV
záporná velká záporná střední záporná malá nulová kladná malá kladná střední kladná velká
Povšimněme si, jak strategie pravidel vždy směřuje k minimalizaci regulační odchylky a ke snížení rychlosti její změny v nežádoucím smyslu (narůstání). Tím je respektován již zmíněný základní zákon regulace. V praxi je obvykle použito méně pravidel než uvádí jejich úplná tabulka. Jednak se některá pravidla mohou opakovat a jednak některé stavy velikosti proměnných z důvodů fyzikálních omezení nemohou ani nastat. Inferenční mechanizmy v systémech FLC jsou závislé na typu řídicího modelu. Stejně jako u expertních systémů mohou být složeny z pravidel typu Mamdani nebo pravidel typu Takagi-Sugeno. Proto rozeznáváme dva typy inferenčních metod. Mamdaniho metoda vyvození akční veličiny Grafická interpretace vyvození velikosti fuzzy akční veličiny B(u) je na Obr.4.2.3
Obr.4.2.3 Metoda je zcela analogická s vyvozováním odpovědi expertního systému s modelem Mamdani, jak bylo uvedeno v Podkap.3.1. Podstatné je, že výsledná fuzzy množina B0(u) musí být vždy převedena procedurou defuzzifikace na obyčejné číslo, které pak představuje velikost akční veličiny regulátoru. Nejpoužívanější procedurou defuzzifikace je založena na metodě stanovení těžiště. 64
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
Je třeba si uvědomit, že fuzzy regulátory jsou vždy regulátory nelineárními. Jednak proto, že využívají nelineární metodu defuzzifikace, jednak proto, že fuzzy množiny reprezentující jazykové hodnoty proměnných nemusí být uspořádány geometricky rovnoměrně. Sugenova metoda vyvození velikosti akční veličiny Tato metoda je používána v případech, kdy konsekventy pravidel jsou funkcí vstupních jazykových proměnných (pravidlo typu Takagi-Sugeno – hovoříme pak o Sugenovském regulátoru). Potom r-té řídící pravidlo má tvar Rr:
IF (xr1 is Ar1) and ... and (xnm is Arnn) THEN ur = fr(x1,x2,...,xn), r = 1,2,...,m,
kde x1,...,xn a u jsou jazykové proměnné, reprezentující stavové proměnné a řídící veličinu, Ar1,...,Arnn jsou jazykové hodnoty jazykových proměnných x1,...,xn v univerzech X1,...,Xn, pro r=1,2,...,m a f je funkce stavových proměnných x1,...,xn, definovaných ve vstupních podprostorech, které jsou vymezeny antecendenty jednotlivých pravidel. Uvažujme opět dvě fuzzy řídící pravidla a dvě vstupní proměnné R1: IF (x11 is A11) and (x12 is A12) THEN u1 = f1(x1, x2) R2: IF (x21 is A21) and (x22 is A22) THEN u2 = f2(x1, x2). Vyvozená hodnota řídící veličiny z prvního pravidla je g1f1(x1, x2), z druhého pravidla pak g2f2(x1, x2). Řídící veličina (obyčejné číslo) je pak určena váženým průměrem podle vztahu u* = [g1f1(x1, x2) + g2f2(x1, x2)]/(g1 + g2). Inferenční mechanizmus je totožný s inferenčním mechanizmem modelu TakagiSugeno, popsaným v Podkap.2.2.. Tato metoda je výhodná tím, že pravidla regulátoru lze automaticky identifikovat z naměřených dat a výstupem je přímo obyčejné číslo (není třeba jeho defuzifikace).
Řešené úlohy 4.1 Příklad 4.1.1 Příkladem operátorské znalosti (heuristiky) uplatnitelné při řízení je např. informace:
65
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy Jestliže tlak na ukazateli 1 stoupá pomalu a doba od zahájení ohřevu je krátká, surovina je příliš nekvalitní a teplotu je třeba podstatně zvýšit. Příklad 4.1.2 Ilustrujme základní zákon regulace slovní interpretací pravidel fuzzy regulátoru typu P s pravidly typu Mamdani:: Je-li regulační odchylka velká kladná, pak je akční veličina velká záporná. Je-li regulační odchylka malá kladná, pak je akční veličina malá záporná. Je-li regulační odchylka nulová, pak je akční veličina nulová. Je-li regulační odchylka malá záporná, pak je akční veličina malá kladná. Je-li regulační odchylka velká záporná, pak je akční veličina velká kladná. Příklad 4.1.3 Jako příklad konkrétního fuzzy regulátoru uvedeme často publikovanou úlohu regulace inverzního kyvadla (známé balancování svislé tyče). Laboratorní model takové úlohy je na obrázku Obr.1.
Obr.1 Tyč má délku L, hmotnost m, vozík má hmotnost M a působíme na něj silou w takovou, aby byla výchylka tyče e udržována na nule. Matematický model takové soustavy je dosti složitý a jeho rovnice jsou I=
mL3 3
Ie&& = VL sin e − HL cos e
( && + mL(&e& cos e − e H = mw
) sin e )
V − mg = mL e&& sin e + e 2 cos e 2
&& V − H = Mw
66
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy Kdybychom chtěli použít pro regulaci takové soustavy použít klasický regulátor, museli bychom použít regulátor PID jehož nastavení by bylo složité a kvalita jeho funkce by byla silně závislá na stabilitě všech rozměrů a hmotností modelu. V případě použití fuzzy regulátoru se situace značně zjednodušuje, lze použít fuzzy regulátor s pravidly typu PD, jejichž tvar určuje tabulka Tab.1.
e ZV Z
Δe
PN K
ZM
PN
ZM ZV
KM
KV
PN PN
PN
KV KM
Tab.1 Fuzzy regulátor je kvalitní a velmi robustní, protože jeho funkce nezávisí na změnách velikosti parametrů modelu (např. délky tyče). Příklad 4.1.4 Zajímavým příkladem je typová struktura pravidel fuzzy regulátoru typu PID, který má tři vstupní proměnné. Dvourozměrná tabulka využívá faktu, že se některá pravidla opakují a lze ji proto nakreslit podle Obr.2.
Obr.2
67
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
Shrnutí pojmů Základní myšlenkou přístupu znalostního řízení (FLC) je vtělení zkušenosti operátora do funkce regulátoru. Řídící algoritmus je reprezentován soustavou jazykových pravidel, odrážejících jeho řídící strategii, přičemž jazykové pojmy jsou reprezentovány fuzzy množinami. Hlavní výhodou takového přístupu je možnost implementace heuristických pravidel, jakož i zkušenosti a intuice jako součásti modelu procesu. Systémy FLC jsou natolik rozšířené, že jsou dnes již řazeny spíše do oblasti inženýrské problematiky řízení než do oblasti umělé inteligence. Fuzzy regulátory je možno koncipovat stejně jako v technice klasické, tedy fuzzy regulátory obdobné typům P (regulátor proporcionální), PS (regulátor proporcionálně-sumační), PD (regulátor proporcionálně-derivační) a PSD (regulátor proporcionálně-sumačně-derivační). Výběr typu fuzzy regulátoru závisí, stejně jako v případě regulátoru klasického, na charakteru regulované soustavy a na požadavcích kvality regulace. Fuzzy regulátor je – na rozdíl od svých konvenčních vzorů - vždy regulátorem nelineárním. Regulační zákon je popsán IF-THEN pravidly řízení, které tvoří regulační model (bázi znalostí) fuzzy regulátoru. Tvar pravidel je dán typem fuzzy regulátoru (P, PD, PS, PDS). Velmi významná je skutečnost, že tvar řídicích pravidel je závislý na typu regulátoru, pro určitý typ regulátoru jsou však stejná pro kteroukoliv aplikaci. Báze znalostí fuzzy regulátorů jsou tedy tvořeny pravidly s typizovanou strukturou, lišící se pouze parametry fuzzy množin formalizující hodnoty jejich jazykových proměnných. Inferenční mechanizmy jsou stejné jako u expertních systémů a liší se druhem použitého řídicího modelu (pravidla Mamdani, pravidla Takagi-Sugeno).
Otázky 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.1
Jaká je základní myšlenka použití expertního systému jako regulátoru ? Jaká jsou specifika fuzzy regulátorů oproti obecným expertním systémům ? Uveďte vstupní a výstupní proměnné regulátorů typu P, PD, PS a PDS Uveďte strukturu pravidel fuzzy regulátorů obdobných P, PD, PS a PDS - typu
Mamdani 4.1.5 Uveďte strukturu pravidel fuzzy regulátoru obdobného PDS - typu TakagiSugeno 4.1.6 Proč mají fuzzy regulátory vlastnosti regulátorů nelineárních 4.1.7 Proč jsou báze znalostí fuzzy regulátorů standardizovány
68
SYSTÉMY S UMĚLOU INTELIGENCÍ – Fuzzy řídicí systémy
Úlohy k řešení 4.1 4.1.1 Napište pravidla fuzzy regulátoru obdobného P typu Mamdani, budou-li mít jeho jazykové proměnné dvě jazykové hodnoty: negativní a pozitivní (dvouhodnotová fuzzy regulace).
Další zdroje [1] Vysoký,P.: Fuzzy řízení, ČVUT Praha, FEL, 1996. ISBN 80-01-01429-8 [2] Jura,P.: Základy fuzzy logiky pro řízení a modelování, VUT Brno, 2000. ISBN. 802142261-0 [3] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80901984-4-9 [4] Novák, V.: Základy fuzzy modelování, BEN Praha, 2000. ISBN 80-7300-009-1
69
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory
4.2
Inteligentní regulátory Čas ke studiu: 2 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• • • •
definovat funkci znalostního (inteligentního) regulátoru vysvětlit poslání monitorovacích a dohlížecích expertních modulů nakreslit schéma inteligentního regulátoru vyjmenovat problémy spojené s provozem expertního systému v režimu reálného času • definovat architekturu inteligentního, jeho výpočetních algoritmů a komunikačních procesů
Výklad Dosud jsme se věnovali systémům FLC, takovým, jejichž základním cílem je reprezentace empirických znalostí, pomocí nichž by mohl být proces přímo řízen. Dalším principem využití expertních systémů v řízení, zmíněným již v Kap. 3, je přístup, navržený Arzénem [1]. Tento přístup využívá obecných řídících znalostí a heuristik nikoliv k přímému popisu řízení, nýbrž k nastavení a adaptaci klasického regulátoru pomocí dohlížecích expertních systémů. Přístup je motivován nedostatky klasických adaptivních regulátorů, jako jsou požadavky na vstupní znalosti o procesu, jejich obtížné chápání uživatelem a skutečnost, že při manuální systematické adaptaci parametrů regulátoru jsou dosahované výsledky mnohdy lepší než při adaptaci automatické. Tento fakt se projevuje zvláště tehdy, pokud je řízená soustava složitá a obtížně měřitelná. Identifikační algoritmy mohou být chápány jako koncové algoritmické reprezentace velkého množství teoretických i praktických řídících znalostí. Vzniká tak kombinace, která pro řízení využívá vedle řídících také různých identifikačních a monitorovacích algoritmů. To vše je základem inteligentního regulátoru, v němž přístup expertního řízení využívá techniky expertních systémů k implementaci co největší jeho části. Základní principy a struktury expertních systémů, používaných v systémech znalostního řízení, zůstávají stejné jako u expertních systémů. Jestliže u systémů fuzzy regulace FLC byl expertní systém využíván pro přímé stanovení velikosti akčního zásahu (a nahrazoval tedy klasický regulátor jako takový), v systémech znalostního řízení jsou expertní systémy použity vedle klasického regulátoru pro optimalizaci jeho řídící funkcí. Jelikož v systémech znalostního řízení je třeba 70
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory realizovat několik úloh znalostního typu, je použito buď více expertních systémů nebo, častěji, expertní systém, využívající znalostních zdrojů a systému "černé tabule" [2], [3]. Celkově lze říci, že systémy znalostního řízení jsou z hlediska umělé inteligence vybaveny dokonaleji, než systémy FLC. Proto se pro jejich označení užívá často názvu "inteligentní regulátor". Systémy znalostního řízení jsou dnes v praxi méně rozšířeny než systémy FLC I když jsou základní principy obecných expertních systémů v systémech znalostního řízení zachovány, přesto oproti klasickému použití expertních systémů je zde několik odlišností:
-
expertní systémy jsou integrovány do celku inteligentního regulátoru;
-
expertní systémy nejsou využívány interaktivně operátorem, ale počítačem. Musí být tedy formulovány podmínky, při kterých dojde automaticky k zahájení konzultací;
-
jsou zdůrazněny funkce jeho induktivního učení;
-
výsledky (tj. algoritmus řízení, jeho struktura a parametry) jsou aplikovány v uzavřené smyčce, takže zde vzniká další zpětná vazba.
Znalostní řízení zahrnuje dvě základní problémové oblasti. První představuje problém, které znalosti o procesu musí být známy, aby regulátor mohl být nastaven a ovládán. Součástí je i problém, jakým způsobem mohou být takové znalosti získány. Druhá oblast problémů spočívá v reprezentaci a implementaci znalostí, tj. problematika požadavků, které proces klade na software a hardware expertního systému. Obecně je to tedy otázka vlastností expertních systémů v reálném čase [1]. Expertní řízení si zde klade za cíl vytvořit dokonalejší prostředek regulace, než přístupy řízení FLC. Ideálním produktem je tak inteligentní regulátor, který
-
dokáže uspokojivě regulovat libovolné v čase proměnné nelineární procesy vystavené působení různých poruch;
-
požaduje minimální předběžné znalosti o procesu, realizuje automatickou identifikaci struktury i parametrů regulátoru;
-
dovoluje uživateli zadávat specifické vlastnosti pomocí kvalitativních termínů typu "co možná nejrychleji", "malý překmit" a pod.;
-
postupně zvětšuje množství znalostí o procesu, což se projevuje ve zvýšení kvality regulace (vlastnost samoučení);
-
poskytuje uživateli informace o průběhu řízení, dynamice procesu, statistice o řídících zásazích a pod.;
-
umožňuje jednoduchou reprezentaci základních znalostí o řízení vč. heuristik a poskytuje možnosti jejich rozšiřování a modifikací.
71
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory
Uvedené cíle můžeme charakterizovat jako pokus o zahrnutí zkušeného inženýra do řídící smyčky a vybavit jej nástroji, jako jsou algoritmy pro
-
řízení, identifikaci, měření, monitorování, navrhování.
Použité znalosti pak mají povahu procedurální i deklarativní. Blokové schéma obecného znalostního (inteligentního) regulátoru je nakresleno na Obr.4.2.1.
Identifikace a návrh D(t) v(t) T
ω (t) +
T
T e(iT)
R
u(iT)
-
Fs(s) y(t)
Obr.4.2.1 Proces znalostního řízení zahrnuje dvě fáze, a to fázi ladění a fázi průběžné adaptace. a) v první fázi jsou zjišťovány předchozí (výchozí, apriorní) znalosti o procesu a požadavky na specifikaci uzavřené smyčky. Výchozími znalostmi se rozumí např. typ řídícího problému (regulace teploty, tlaku, hladiny a pod.), informace o stabilitě či nestabilitě systému, o velikosti dopravního zpoždění, o dynamice systému. Specifikace uzavřené smyčky je pak tvořena informacemi např. požadavku rychlosti odezvy, velikosti překmitů, doby ustálení a pod. b) v druhé fázi provádí znalostní systém experimenty (identifikaci soustavy), které mají poskytnout upřesněné informace o aktuální dynamice soustavy. Závěry jsou pak využity pro návrh regulátoru nebo pro úpravu hodnot jeho parametrů. Cyklus režimu systému znalostního řízení, tj. start první a druhé fáze jeho adaptace, může být buď synchronní nebo asynchronní (na vyžádání monitorovacího subsystému). 72
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory
Expertní řízení spočívá na předpokladu, že univerzální adaptivní řídící algoritmus bez jakýchkoliv požadavků na dřívější informace neexistuje. Množství a kvalita apriorních informací není exaktně definována. Otázka, jak budovat znalosti o procesu pomocí aktivních identifikačních experimentů stále ještě nebyla jasně zodpovězena. Existuje několik přístupů a metod, které mají každá svoje výhody a nevýhody. Při porovnání různých metod hrají opět důležitou roli znalosti, které tyto metody požadují. Protože cílem je vybudovat znalostní bázi o procesu, je nezbytné, aby samotné ladící metody vyžadovaly tak málo apriorních znalostí o procesu, jak je to jen možné. Expertní systémy reálného času Základní principy expertních systémů, používaných v systémech znalostního řízení, zůstávají zachovány. Přesto je zde řada specifických vlastností, plynoucích z toho, že znalostní systémy vyžadují implementaci expertního systému v režimu reálného času. Uveďme předně přehled obecných problémů systémů znalostního řízení v reálném čase, jako:
-
nemonotónní vyvozování - systém pracuje v dynamickém prostředí. Vstupní i výstupní informace nezůstávají statické - s časem buď ztrácejí svůj význam, nebo přestávají být platné v důsledku změny stavu systému. Systém musí být schopen vyvozovaná data automaticky přehodnocovat. Obvyklé je použití metody poklesu platnosti dat s časem - metoda zapomínání s možností volby koeficientu, vyjadřujícího jeho intenzitu (exponenciální zapomínání);
-
asynchronní události - systém musí být schopen reagovat na časově asynchronní události např. přerušením méně důležitých procedur s ošetřením aktuálního stavu s vyšší prioritou;
-
vyvozování v čase - v systémech reálného času je čas velmi důležitou veličinou. Systém musí být schopen vyjádřit a respektovat čas a příčinu událostí minulých, současných a budoucích a také posloupnost, v jaké události nastávají;
-
časově omezené vyvozování - procedury vyvozování musí vstupovat do řešení v dobu, kdy je to zapotřebí. V daných termínech je požadováno nejlepší možné řešení problému. Míra vhodnosti řešení přitom musí být ohodnocena;
-
paralelní vyvozování - často je přirozené považovat řešení problému za činnost, složenou z paralelních vyvozovacích procesů. Je výhodou, když takovou strukturu odráží i znalostní systém. Současně s paralelním vyvozováním jsou kladeny požadavky na synchronizaci mezi různými činnostmi s možností přerušení činností v určitém čase nebo po určité
73
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory události. Časté je strukturování znalostních bází do znalostních zdrojů s jejich řízením pomocí agendy, která dovoluje realizovat techniku přerušení;
-
-
práce s nejistými nebo chybějícími informacemi - systém musí být vybaven prostředky pro efektivní zpracování neurčitosti. Neurčitost (vágnost), která je vlastní složitým soustavám, je nejčastěji reprezentována slovními (lingvistickými) popisy. Pro reprezentaci neurčitosti je využíváno fuzzy množinové matematiky, pro vyvozování v takových systémech je používáno aparátu fuzzy vícehodnotových lingvistických logik;
vazba na okolí - znalostní systémy pro práci v reálném čase musí být vybaveny odpovídajícími automatickými prostředky pro komunikaci s datovými bázemi na vstupní i výstupní straně. Synchronní nebo asynchronní událostí je inicializována vždy určitá část systému, která čte vstupní data z relační databáze, provede potřebné výpočty a výstupní informace do databáze opět předává. Velmi důležitá může být i potřebná rychlost prováděných operací.
Všechny naznačené problémy nejsou dnes ještě uspokojivě vyřešeny, v řadě z nich jsou však dnes používány různé metody s uspokojivými výsledky. V průběhu vývoje znalostního řízení bylo vyvinuto několik prototypových systémů, přičemž základy jejich architektury zůstávají stejné. Variantní je pouze jejich vnitřní struktura. Celková skladba systému znalostního řízení je nakreslena na Obr.42.2. Znalostní regulátor pozůstává ze dvou základních částí - výpočetních algoritmů a znalostního systému. Pro zajištění toho, aby výpočetní algoritmy nebyly ve své funkci zdržovány znalostním systémem, bývají obě tyto části implementovány jako dva (např. konkurenční VMS) procesy, přičemž výpočetní algoritmy mají vyšší prioritu. Komunikační interface mezi oběma základními částmi je opět implementována jako oddělený proces. Uživatel může přitom komunikovat přímo se znalostním systémem a nepřímo s výpočtovými algoritmy.
74
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory
Obr.4.2.2 Znalostní systém a komunikační interface bývají naprogramovány v některém z deklarativních jazyků (Lisp), systém výpočetních algoritmů bývá naprogramován v jazyku procedurálním (Pascal). V dalších odstavcích uvedeme příklad řešení znalostního regulátoru, jak jej uvádí Arzén [1]. Architektura výpočetních algoritmů Výpočetní algoritmy mají charakter procedurální. Obsahují knihovnu algoritmů, jako např. PID algoritmy, algoritmy v pohyblivé řádové čárce, diskrétní filtry, relé, rekurzivní algoritmy nejmenších čtverců a pod. Modulární knihovnu algoritmů lze snadno doplňovat o algoritmy nové. Výpočetní část, obsahující vlastní softwarový regulátor, je na řízený proces napojena na vstupu i na výstupu prostřednictvím příslušné databáze. Principiálně můžeme výpočetní algoritmy rozdělit do tří základních skupin:
-
řídící algoritmy - vypočítávají velikost aktuálního akčního zásahu na základě informací o velikosti regulační odchylky, jejích funkcí a velikosti poruch. Jejich tvar je dán typem použitého regulátoru. Řídící algoritmus se může v procesu řízení měnit (strukturální identifikace regulátoru).
-
identifikační a monitorovací algoritmy - vypočítávají informace z toku vstupních a výstupních dat. Vypočtené hodnoty jsou poskytovány znalostnímu systému. Algoritmy v těchto dvou skupinách mohou být považovány za filtry, které jsou inicializovány tehdy, kdy v řízeném systému došlo k významné události. Během stabilního, standardního průběhu regulace není znalostní systém inicializován a řízení probíhá na základě platného řídícího algoritmu.
75
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory Identifikační a monitorovací předzpracováním informace.
algoritmy
odlehčují
znalostní
systém
Architektura komunikačních procesů Komunikace mezi výpočtovými algoritmy a znalostním systémem probíhá komunikačním interface prostřednictvím schránek typu MAILBOX. Ze znalostního systému jsou výpočtovým algoritmům posílány zprávy prostřednictvím schránky OUTBOX. Tyto zprávy mají povahu konfiguračních příkazů a pokynů pro změnu hodnot parametrů regulátoru, případně jsou to komunikační požadavky. Zprávy, které jsou posílány z výpočtových algoritmů do znalostního systému, obsahují výsledky výpočtových procedur, detekované alarmy, odpovědi na uživatelské příkazy a časová přerušení. Zprávy pro znalostní systém jsou posílány prostřednictvím schránky INBOX, která je standardní schránkou typu FIFO (First-In-First-Out), jsou však povoleny zprávy s vyznačenou prioritou. Typem zpráv zde může být požadavek přerušení, generovaný buď asynchronní událostí, synchronním signálem z časovače TIMER nebo interním požadavkem doplnění nebo modifikace prvku databáze. Schránka ANSWERBOX je využívána pro zprávy, představující odpovědi na informační požadavky, které předkládá znalostní systém. Schránka RESULTBOX je využívána znalostním systémem pro předávání zpráv interaktivnímu komunikačnímu interface. Architektura znalostního systému Znalostní systém je tvořen expertním systémem v reálném čase. S ohledem na požadavky, uvedené výše, má architekturu, využívající černé tabule (Blackboard) a znalostních zdrojů (Knowledge Sources). Znalostní zdroje mají buď deklarativní charakter a jsou založeny na IF-THEN pravidlech s dopřednou (GMP) nebo zpětnou (GMT) inferencí, mohou však mít i charakter procedurální a být založeny na výpočtových algoritmech. Pro uchovávání informací jsou používány také rámce [4]. Jednotlivé znalostní zdroje implementují oblast znalostí pro určitou úlohu. Mohou být tedy považovány za experty v určitých podproblémech, např. návrhu struktury regulátoru, modelování a verifikace modelů, statistickou analýzu, monitorovací aspekty a pod. Znalostní zdroje tak představují heuristicko-logické okolí použitých výpočtových algoritmů. Znalostní zdroje zahrnují také pravidla pro zakládání, modifikaci a rušení rámců vč. prostředků pro událostmi řízené pozastavování jejich provádění. Znalostní zdroje rovněž zajišťují přiřazování časových intervalů platnosti prvkům databáze. Činnost znalostního regulátoru zahrnuje inicializaci různých znalostních zdrojů v sériovém i paralelním režimu. Tak např. v ustáleném stavu ošetřuje jeden znalostní
76
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory systém aktuální regulační monitorovací aspekty.
algoritmus,
zatímco
druhý
implementuje
různé
Výběr vhodného znalostního zdroje je prováděn ve dvou úrovních. První úroveň představuje sekvenční inicializaci znalostních zdrojů, zatímco druhá zahrnuje sdílení času mezi různými znalostními zdroji, které jsou aktivní současně (tato činnost je ekvivalentní přidělování reálného času ve víceuživatelském operačním systému, kdy příslušné znalostní zdroje jsou ekvivalenty souběžných procesů). Znalostní zdroj se provádí do té doby, než začíná čekání na chybějící informaci, nebo než se ukončí. Pro sekvenční kombinaci znalostních zdrojů byly implementovány tři různé metody:
-
znalostní zdroje se vyvolávají, spouštějí a zastavují navzájem. Jde o nejjednodušší způsob, kdy následující znalostní zdroj čeká do doby, než je ukončen zdroj předcházející. Procedurální znalostní zdroj má také schopnost vyvolat jiný procedurální znalostní zdroj a počkat na jeho výsledek;
-
znalostní zdroje jsou řazeny do předem definovaných posloupností. Tak např. po provedení vstupní ladící posloupnosti jsou inicializovány následující posloupnosti, sloužící k návratu do řízení v ustáleném stavu, podle různých chybových podmínek. Kombinace znalostních zdrojů do posloupnosti je vlastně procedurální operace a je proto vyjadřována formou procedurálního znalostního zdroje;
-
dynamické generování posloupností; jde o nejsložitější metodu, při níž je posloupnost rekurzivně generována srovnáváním požadovaných cílů a výchozích podmínek (odvozených ze vstupních stavů). Takový přístup transformuje problém generování posloupnosti znalostních zdrojů na problém plánovací.
Řešené úlohy 4.2 (bude doplněn)
Shrnutí pojmů Dalším principem využití expertních systémů v řízení je přístup znalostního (inteligentního) regulátoru. Tento přístup využívá obecných řídících znalostí a heuristik nikoliv k přímému popisu řízení, nýbrž k nastavení a adaptaci klasického regulátoru pomocí dohlížecích expertních systémů. Znalostní řízení zahrnuje dvě základní problémové oblasti. První představuje problém, které znalosti o procesu musí být známy, aby regulátor mohl být nastaven a ovládán. Součástí je i problém, jakým způsobem mohou být takové znalosti získány. Druhá oblast problémů spočívá v reprezentaci a implementaci znalostí, tj. problematika požadavků, které proces
77
SYSTÉMY S UMĚLOU INTELIGENCÍ – Inteligentní regulátory klade na software a hardware expertního systému. Obecně je to tedy otázka vlastností expertních systémů v reálném čase. Obecné problémy systémů znalostního řízení v reálném čase jsou tyto: nemonotónní vyvozování, výskyty asynchronních událostí, vyvozování v čase, časově omezené vyvozování, paralelní vyvozování, práce s nejistými nebo chybějícími informacemi a problémy spojené s vazbou na okolí. Znalostní regulátor pozůstává ze dvou základních částí - výpočetních algoritmů a znalostního systému. Komunikační interface mezi oběma základními částmi je implementována jako oddělený proces. Uživatel může přitom komunikovat přímo se znalostním systémem a nepřímo s výpočtovými algoritmy. Výpočetní algoritmy jsou řídicí, monitorovací a identifikační. Architektura znalostního systému využívá přístupů znalostních zdrojů a černé tabule.
Otázky 4.2 4.2.1 Jaký je základní rozdíl mezi koncepci fuzzy regulátoru a inteligentního regulátoru ? 4.2.2 Jaké je v systému inteligentního regulátoru poslání monitorovacích a dohlížecích expertních modulů 4.2.3 Vyjmenujte problémy, spojené s provozem expertního systému v režimu reálného času
Úlohy k řešení 4.2 4.2.1 Které úlohy dohlížecích monitorovacích a adaptačních expertních systémů byste navrhl pro realizaci znalostního regulátoru? 4.2.2 Navrhněte řídicí úlohu, která by byla vhodná pro použití inteligentního regulátoru!
Další zdroje [1]
Arzen, A.E.: An Architecture for Expert System Based Feedback Control. Automatica, 1989. Vol. 25, No.6. pp 813-827. ISSN 0005-1098 [2] Zilouchian,A., Jamshidi.M.: Intelligent Control System Using Soft Compiting Metodologies. USA CRC Press LLC. 2001. pp. 472. ISBN O-8493-1875-0 [3] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80901984-4-9 [4] Mařík, V. a kol.: Umělá inteligence I, II, Academia Praha, 1997. ISBN 80-2000504-8
78
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu
5
KOGNITIVNÍ ANALÝZA FUZZY MODELU
5.1
Test konzistence a ternární diagram Čas ke studiu: 2 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• vysvětlit pojem konzistence znalostní báze • popsat princip kognitivní analýzy báze znalostí •
definovat stabilitu, variabilitu a extremálnost báze znalostí • vysvětlit princip a použití ternárního diagramu
Výklad Kognitivní přístup je reprezentován mechanizmem odpovědí na dotazy. Kognitivní analýza, využívající tohoto mechanizmu, je podstatou metody pro určení vlastností a diskriminačních schopností znalostní báze. Základem této metody jsou testy konzistence, které umožňují predikci chování báze znalostí při řešení praktických úloh [1]. Uvedená metoda je využívána v oboru znalostního inženýrství. Test konzistence spočívá ve stanovení vzájemné podobnosti prohlášení, tvořících bázi znalostí. Při testu pokládáme expertnímu systému s modifikovanou bází takovou množinu dotazů, jaké lze v praxi očekávat (modifikovaná báze potom slouží jako skupina expertů). Předpokládejme, že báze obsahuje M prohlášení. Vyjmeme-li z báze k-té prohlášení, potom modifikovaná báze je tvořena zbylými (M-1) prohlášeními. Ponecháme-li dále z k-tého prohlášení jeho antecendent, máme k dispozici dotaz, který položíme modifikované bázi. Přitom očekáváme, že odpověď báze bude alespoň v částečné shodě s jeho původním konsekventem. Má-li závisle proměnná R hodnot, potom každé prohlášení se vyslovuje k určité r-té hodnotě. Stupeň podobnosti (konzistence) dotazu a aktivovaného prohlášení je při testu oceněna hodnotou podobnosti V(k,r) v intervalu <0,1>. Je-li podobnost dokonalá, je V(k,r) = 1. Jestliže se m- prohlášení vyslovuje k jedné r-té hodnotě s různými mírami podobností V(k,r), potom výsledná podobnost je VE(k,r) = max[V(k,r)] , m
k=1,2,...,M,
79
r=1,2,...,R.
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu Získané míry podobnosti jsou klasifikovány do tří základních kategorií - souhlasné, nesouhlasné a neurčité, které lze s využitím prahových hodnot v a w schematicky vyjádřit dle Obr.5.1.1.
Obr.5.1.1 Kategorie odpovědí se při testování k-tého pravidla vůči r-té hodnotě závisle proměnné stanovuje podle těchto pravidel: IF [VE(k,r) < v] IF [VE(k,r)
THEN [KD(k,r) = -1] THEN [KD(k,r) = 0] THEN [KD(k,r) = 1]
(nesouhlas, N) (neurčitá, D) (souhlas, Y)
Celkový počet souhlasných, neurčitých a nesouhlasných odpovědí vůči r-té hodnotě závisle proměnné při testu všech M prohlášení jsou dány vztahy [KD(k,r) = 1] = P(r) [KD(k,r) = 0] = Z(r) [KD(k,r) = -1] = N(r) Celkový počet odpovědí v jednotlivých kategoriích získáme součtem přes všech R hodnot závisle proměnné: P(r) = DP Z(r) = DZ N(r) = DN Z kognitivního hlediska jsou odpovědi typu Y a N jednoznačné, odpověď D je neurčitá. Budeme-li měnit velikost mezí v a w, potom se i jednoznačné odpovědi mohou stát neurčitými. Pomocí hodnot DP, DZ a DN můžeme hodnotit bázi jako celek - pro všechny hodnoty závisle proměnné globálně. Bude-li převážná část odpovědí jednoznačných, označíme bázi (analogicky jako výše otázku) jako stabilní. Bude-li převážná část odpovědí neurčitých, bude báze označena jako variabilní. Bude-li přitom počet odpovědí Y a N přibližně stejný, hovoříme o bázi balancované, v opačném případě o bázi extremální. Z hlediska uživatele je žádoucí, aby báze měla vlastnosti, zajišťující co největší rozlišovací schopnost (diskriminaci). Ukazuje se, že stabilní a balancovaná báze bude mít zřejmě nejvýhodnější vlastnosti. Tato kombinace však nemusí zajistit dostatečnou rozlišovací schopnost. Může totiž poskytovat příliš jednoznačné
80
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu odpovědi díky tomu, že chybí odpovědi typu D (taková báze budí nedůvěru - z neurčitých informací jsou vyvozovány určité závěry). Expertní báze tedy musí vykazovat rovněž určitou míru variability, přispívající její diskriminační schopnosti. Vhodná je tedy taková báze, která je přiměřené balancovaná, a k tomu přiměřeně variabilní. Ternární diagram Pro kontrolu vlastností báze z výše uvedených hledisek lze použít tzv. ternární diagram. Vyjádřeme relativní četnosti jednotlivých kategorií odpovědí jako Y = DP / (DP + DN + DZ) N = DN / (DP + DN + DZ) C = DZ / (DP + DN + DZ) Je zřejmé, že platí Y+N+C=1 Označme dále balancovanost jako B, variabilitu V, extremálnost E a stabilitu S. Ternární diagram je rovnostranný trojúhelník o straně rovné 1, jehož vrcholy tvoří body Y = 1, N = 1 a C = 1, viz Obr.5.1.2.
Obr.5.1.2 Ve směru základny trojúhelníka je vynášena extremalita E a balancovanost B, v směru výšky pak stabilita S a variabilita V. Zřejmě platí S+V=1 E + B = 1.
81
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu Významné body diagramu jsou patrné z Obr.27. Bod C = 0.33, odpovídající hodnotám S = V = 0.5, byl získán na základě zkušenosti, že báze má 50% stabilitu (a variabilitu) tehdy, je-li počet odpovědí Y a N dvojnásobný než počet odpovědí C, tedy (Y + N) / C = 2. Tomu odpovídá v trojúhelníkovém diagramu přímka pro C = 0.33 tj. (Y + N) = 0.66. Touto přímkou je diagram rozdělen na oblast variability a stability (Obr.5.1.3). Bod I jako těžiště trojúhelníka je bodem zdravé balancovanosti. Oblast zdravé balancovanosti vůči závisle proměnné veličině je pak dána plochou kružnice, opsané kolem bodu I poloměrem 0.125.
Obr.5.1.3 Charakteristický bod báze K pak v případě dobré báze leží uvnitř tohoto kruhu
(Obr.4.1.4).
82
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu Obr.5.1.4 K určení charakteristického bodu K vyšetřované báze stačí znát dva údaje, např. YK a NK. Ternární diagram lze konstruovat buď pro jednotlivé jazykové hodnoty závisle proměnné (diskriminační schopnost báze vůči určité hodnotě závisle proměnné), nebo pro závisle proměnnou jako celek (diskriminační schopnost báze vůči závisle proměnné jako takové). V první variantě diagramu vynášíme k získání bodu K na jednotlivé strany trojúhelníka YNC hodnoty, např. Yr = P(r)/M Nr = N(r)/M Ve druhé variantě vynášíme hodnoty YK = DP / (DP + DN + DZ) NK = DN / (DP + DN + DZ)
Řešené úlohy 5.1 Příklad 5.1.1 Uveďme příklad ternárního diagramu báze znalostí, vyznačující se příliš vysokou stabilitou !
83
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu Příklad 5.1.2 Na obrázku je uveden příklad diskriminační schopnosti znalostní báze pro dvě hodnoty výstupní proměnné – LO (Nízký) a HG (Vysoký). Povšimněte si, že báze znalostí velmi dobře rozpoznává jazykovou hodnotu LO, zatímco v případě hodnoty HG je situace horší. Znalostní báze dovede dobře tuto hodnotu potvrdit (interval Y, YES), nedovede ji však dostatečně popřít (interval N, NO).
Shrnutí pojmů Kognitivní přístup je reprezentován mechanizmem odpovědí na dotazy. Kognitivní analýza je podstatou metody pro určení vlastností a diskriminačních schopností znalostní báze. Základem této metody jsou testy konzistence, které umožňují predikci chování báze znalostí při řešení praktických úloh Test konzistence spočívá ve stanovení vzájemné podobnosti prohlášení, tvořících bázi znalostí. Při testu pokládáme expertnímu systému s modifikovanou bází takovou množinu dotazů, jaké lze v praxi očekávat (modifikovaná báze potom slouží jako skupina expertů). Jako dotazy slouží podmínkové části jednotlivých pravidel, odpovědi jsou jejich části důsledkové. Stupeň podobnosti (konzistence) dotazu a aktivovaného prohlášení je při testu oceněna hodnotou podobnosti. Získané míry podobnosti jsou klasifikovány do tří základních kategorií - souhlasné, nesouhlasné a neurčité, z nich pak klasifikujeme odpovědi na jednoznačné a neurčité. Bude-li převážná část odpovědí jednoznačných, označíme bázi (analogicky jako výše otázku) jako stabilní. Bude-li převážná část odpovědí neurčitých, bude báze označena jako variabilní. Bude-li přitom počet odpovědí Y a N přibližně stejný, hovoříme o bázi balancované, v opačném případě o bázi extremální. Diskriminační vlastnosti báze znalostí můžeme s výhodou graficky znázornit pomocí jejího zastupujícího bodu v tzv. ternárním diagramu. Ternární diagram je rovnostranný trojúhelník se stranou dlouhou 1. Ve směru základny trojúhelníka je vynášena extremalita E a balancovanost B, v směru výšky pak stabilita S a variabilita V. Ternární diagram lze konstruovat buď pro jednotlivé jazykové hodnoty závisle proměnné (diskriminační schopnost báze vůči určité hodnotě závisle proměnné), nebo pro závisle proměnnou jako celek (diskriminační schopnost báze vůči závisle proměnné jako takové).
84
SYSTÉMY S UMĚLOU INTELIGENCÍ – Kognitivní analýza fuzzy modelu
Otázky 5.1 5.1.1 5.1.2 5.1.3 5.1.4
Jaký je princip kognitivní analýzy báze znalostí ? Jaké typy odpovědí rozeznáváme ? Jaké typy bází znalostí rozeznáváme a jak se od sebe jednotlivé typy liší ? Kde leží v ternárním diagramu zastupující bod báze znalostí s ideálními diskriminačními vlastnostmi (bod zdravé balancovanosti ? 5.1.5 Ve které oblasti leží zastupující body přípustné ?
Úlohy k řešení 5.1 5.1.1 Znázorněte graficky vhodnou a nevhodnou diversifikační schopnost báze vůči jazykové hodnotě MALÝ a vhodnou diversifikační schopnost vůči jazykové hodnotě VELKÝ! 5.1.2 Nakreslete ternární diagram se zastupujícím bodem u báze znalostí, která má vlastnost velké variability !
Další zdroje [1] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80901984-4-9
85
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
6
PRAVDĚPODOBNOSTNÍ EXPERTNÍ SYSTÉMY
6.1
Pravděpodobnostní systémy MYCIN a PROSPECTOR Čas ke studiu: 3 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• • •
vysvětlit princip pravděpodobnostních metod řešení expertních systémů popsat pravděpodobnostní modely typu MYCIN, EMYCIN a PROSPECTOR vytvořit jednoduchý pravděpodobnostní diagnostický expertní systém
Výklad Model pro práci s neurčitostí typu MYCIN Expertní systém MYCIN [1] je jedním z prvních celosvětově úspěšných expertních systémů, jehož řešení se stalo (spolu v následující podkapitole uvedeným expertním systémem PROSPECTOR) prototypem pro řešení celé řady dalších úspěšných systémů. V systému MYCIN jsou znalosti vyjádřeny pomocí produkčních pravidel typu antecedent ⇒ konsekvent
které jsou vyjádřeny symboly podmíněné platnosti hypotézy (důsledku) H za předpokladu splnění evidence (předpokladu) E E⇒ H Neurčitost pravidla je v systému MYCIN vyjádřena pomocí míry důvěry v platnost hypotézy H označené MB(H,E) a současně mírou nedůvěry označené MD(H,E). Tyto velmi důležité míry jsou definovány vztahy
MB( H , E ) =
P( H | E ) − P( H ) 1 − P( H )
MD( H , E ) =
P( H ) − P( H | E ) P( H )
86
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy kde P(H) je apriorní pravděpodobnost, kterou zadává expert a P(H⏐E) je podmíněná pravděpodobnost platnosti hypotézy H za předpokladu splnění evidence E. Při návrhu takového systému je podstatné, jakým způsobem je řešen problém vzrůstu důvěry (resp. nedůvěry) v platnost hypotézy H na základě potvrzení evidence E. Jestliže splnění E vede ke vzrůstu důvěry v H, platí P(H⏐E) > P(H), velikost míry důvěry je vypočítávána podle vztahu (4.1) a míra nedůvěry MD(H,E) = 0. Míra důvěry MB(H,E) tak vyjadřuje přírůstek pravděpodobnosti H, získaný pomocí evidence E, vztažený k počáteční (apriorní) nedůvěře v H, tj. 1 – P(H). Jestliže ale splnění evidence E vede k poklesu důvěry v hypotézu H, platí P(H) > P(H⏐E) , míra nedůvěry MD(H,E) je dána vztahem (4.2) a MB(H,E) = 0. Míra MD(H,E) tak vyjadřuje pokles pravděpodobnosti hypotézy H, získaný pomocí evidence E, vztažený k počáteční (apriorní) důvěře v H, tj. P(H). Míry MB a MD nabývají hodnot z intervalu <0, 1>. Ze skutečnosti, že určité jediné pravidlo nemůže současně hypotézu podporovat a současně ji vyvracet, platí a) když MB > 0, tak MD = 0 b) když MD > 0, tak MB = 0. V případě, že pro určité pravidlo platí MB = MD = 0 , potom pravidlo hypotézu ani nepotvrzuje, ani nevyvrací. Velmi důležitým a typickým kritériem systému MYCIN je činitel jistoty CF definovaný vztahem
CF ( H , E ) = MB( H , E ) − MD( H , E )
(6.1.1)
který spojuje míru důvěry a míru nedůvěry do jednoho čísla. Činitel jistoty CF nabývá hodnot z intervalu <-1, +1>. Platí tato pravidla: a) když evidence E zvyšuje důvěru v H, tak CF > 0 b) když evidence E snižuje důvěru v H, tak CF < 0. Ke každému pravidlu E⇒ H je tak v systému MYCIN přiřazen činitel jistoty CF(H,E). Pokud je kladný, je roven MB(H,E). Pokud je záporný, je v absolutní hodnotě roven MD(H,E).
87
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
Pro úplnost uveďme, že varianta systému MYCIN nazvaná EMYCIN [1] používá modifikovaného vztahu
CF =
MB − MD 1 − min(MB, MD)
Velmi důležitá je skutečnost, že v praxi nemusí být evidence E1 ⇒ H splněna s jistotou. Na základě konkrétního případu (pozorování) E´ můžeme odhadnou (popsat) naším odhadem míry jistoty CF(E1,E´). Označíme-li MB(H,E1), resp. MD(H,E1) míru důvěry resp. míru nedůvěry v H je-l splněna evidence E1, můžeme výslednou míru důvěry (nedůvěry) vypočítat ze vztahu MB( H , E ′) = MB( H , E1 ). max{0, CF ( E1 , E ′)}
(6.1.2)
MD( H , E ′) = MD( H , E1 ). max{0, CF ( E1 , E ′)}
(6.1.3)
Dalším důležitým problémem je řešení situace, kdy více pravidel, např. E1 ⇒ H E2 ⇒ H, které mají stejnou hypotézu H, působí současně a je třeba stanovit výslednou míru jistoty v platnost této hypotézy. Předpokládáme-li, že ani v jednom z takových pravidel není hypotéza H zcela potvrzena nebo zcela vyvrácena, vypočítáme výsledné míry podle vztahů MB( H , E1 & E 2 ) = MB( H , E1 ) + MB( H , E 2 ) − MB( H , E1 ).MB( H , E 2 ) MD( H , E1 & E 2 ) = MD( H , E1 ) + MD( H , E 2 ) − MD( H , E1 ).MD( H , E 2 )
Výsledný činitel jistoty pak vypočítáme podle vztahu (6.1.1). Vzhledem k symetrii vztahů platí CF(H,E1 &E2) = CF(H,E2 &E1). Poznamenejme, že v systému EMYCIN platí alternativní vztah CF ( H , E1 & E 2 ) = f (CF ( H , E1 ), CF ( H , E 2 ))
kde f je definováno jako
88
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
x + y − xy
pro xy ≥ 0
x+ y 1 − min{abs( x), abs( y )}
v ostatních případech
f ( x, y ) =
Posledním problémem, který je z praktického hlediska použití systému MYCIN třeba řešit, je případ konjunkce či disjunkce hypotéz H1 a H2. Systém MYCIN zde užívá vztahů MB( H 1 & H 2 , E ) = min{MB( H 1 , E ), MB( H 2 , E )} MD( H 1 & H 2 , E ) = max{MD( H 1 , E ), MD( H 2 , E )} MB( H 1 ∨ H 2 , E ) = max{MB( H 1 , E ), MB( H 2 , E )} MD( H 1 ∨ H 2 , E ) = min{MD( H 1 , E ), MD( H 2 , E )}
Uveďme nyní jednoduchý příklad. Nechť je např. dáno pravidlo tvaru (E1 & E2) ∨ E3 ⇒ H
(6.1.4)
s mírou jistoty CF = c. Neurčitost předpokladů určí uživatel na základě pozorování konkrétní situace pomocí jím stanovených hodnot MB(E1,E´), MB(E2,E´), MB(E3,E´), MD(E1,E´), MD(E2,E´) a MD(E3,E´), kde E´ je jeho pozorování. Míru jistoty v platnost hypotézy H která má tvar (6.1.4) vypočítáme s použitím vztahů (6.1.1), (6.1.2) a (6.1.3) jako
CF ( H , E ′) = MB( H , E ′) − MD( H , E ′) = = MB( H , ( E1 & E 2 ) ∨ E3 ). max{0, CF (( E1 & E 2 ) ∨ E3 , E ′)} − − MD( H , ( E1 & E 2 ) ∨ E3 ). max{0, CF (( E1 & E 2 ) ∨ E3 , E ′)} = = c. max{0, CF (( E1 & E 2 ) ∨ E3 , E ′)}
Výraz CF(E1 & E2) ∨ E3, E´ rozložíme podle (4.3) a postupnou aplikací vztahů (4.10) – (4.13) dostaneme závislost na uvedených mírách MB(E1,E´), MB(E2,E´), MB(E3,E´), MD(E1,E´), MD(E2,E´) a MD(E3,E´). Tyto hodnoty spolu s hodnotou c známe a proto můžeme vypočítat celkovou CF(H,E´). Model pro práci s neurčitostí typu PROSPECTOR
89
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy Druhým světově proslulým a dodnes uplatňovaným přístupem k ad-hoc řešení problému ohodnocování hypotéz pomocí pravidel s neurčitostí podává systém PROSPECTOR [1]. Model s jistými pravidly (bez neurčitosti) Ukážeme si nejprve, jak systém zpracovává případ, kdy ohodnocení evidence E v pravidlech typu E⇒H nabývají pouze logických hodnot 0 a 1. Jde o situaci, kdy pracujeme s modelem bez neurčitosti. Předpokládejme tedy, že bylo zjištěno, že evidence E je pravdivá. Podle již zmíněného klasického Bayesova vztahu pro dokazování platnosti hypotéz platí
P( H | E ) =
P( E | H ) . P( H ) P( E )
kde P(E) a P(H) jsou apriorní pravděpodobnosti předpokladu E resp. hypotézy H. Podobně pro negaci H platí
P (not H | E ) =
P( E | not H ) . P(not H ) P( E )
(6.1.5)
Dělením rovnic (6.1.4) a (6.1.5) dostaneme výraz
P( H | E ) P( E | H ) P( H ) = ⋅ P(not H | E ) P( E | not H ) P(not H ) Systém PROSPECTOR používá kritéria naděje nebo pravděpodobnostní šance O(H) a O(H⏐E), kteréžto dostaneme označením pravděpodobnostních poměrů z výrazu (4.16) takto:
O( H ) =
P( H ) P( H ) = P(not H ) 1 − P( H )
O( H | E ) =
P( H | E ) P( H | E ) = P(not H | E ) 1 − P( H | E )
Dále zavedeme tzv. míru postačitelnosti L ve tvaru
L=
P( E | H ) P( E | not H ) 90
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
Z uvedených vztahů plyne
O( H | E ) = L . O( H )
(6.1.6)
Je-li veličina O(H) apriorní pravděpodobnostní šance, pak O(H⏐E) je šance aposteriorní. Rovnice (6.1.6) (která je vlastně poměrným tvarem Bayesova vztahu) říká, že bylo-li zjištěno, že předpoklad E je pravdivý (P(E) = 1), potom vypočítáme aposteriorní šanci O(H⏐E) vynásobením apriorní šance mírou postačitelnosti L. Míra postačitelnosti L je přitom kvantitativní ocenění platnosti pravidla a zadává ji expert. Předpokládejme nyní, že chceme vypočítat hodnotu O(H⏐notE). K tomu lze odvodit vztah
O( H | not E ) = Lˆ . O( H )
(6.1.7)
kde Lˆ je tzv. míra nezbytnosti
Lˆ =
P(not E | H ) P(not E | not H )
Míra nezbytnosti Lˆ musí být také zadána expertem, toto číslo nelze vypočítat z L. Rovnice (6.1.7) přitom říká, jak aktualizovat šanci O(H), jestliže bylo shledáno, že předpoklad E není pravdivý.
L=
P( H | E ) 1 − P( H ) ⋅ 1 − P( H | E ) P( H )
Pravidlo E ⇒ H v popisovaném modelu lze chápat jako dvojpravidlo IF předpoklad E THEN závěr H WITH váha L ELSE závěr H WITH váha Lˆ ,
a lze je tedy zapsat ve formě dvou samostatných pravidel IF předpoklad E THEN závěr H WITH váha L IF předpoklad not E THEN závěr H WITH váha Lˆ
Model s nejistými pravidly (s neurčitostí)
91
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy Nyní budeme předpokládat, evidence E v pravidlech E ⇒ H nebudou nabývat pouze logických hodnot „pravda“ (tj. pravdivostní hodnoty 1) nebo „nepravda“ (pravdivostní hodnoty 0), nýbrž že jejich platnost bude možno ohodnotit pravdivostními hodnotami z intervalu 〈0, 1〉. Budeme nyní pracovat s modelem s neurčitostí. Předpokládejme tedy, že uživatel např. může pouze např. říci: : „Jsem si na 70% jist, že E je pravda“. Tuto jeho výpověď budeme interpretovat jako P (E⏐E´) = 0,7 kde E´ představuje relevantní pozorování. Nyní potřebujeme nalézt vztah pro určení P(H⏐E´). Teoreticky platí:
P ( H | E ′) = P( H , E | E ′) + P( H , not E | E ′) = = P ( H | E , E ′) . P( E | E ′) + P ( H | not E , E ′) . P(not E | E ′)
(6.1.8)
Vyjděme z tohoto předpokladu: víme-li, že E je pravda nebo nepravda, pozorování E´ nepřináší o H žádnou novou informaci. Proto můžeme psát (6.1.8) ve tvaru
P ( H | E ′) = P( H , E ) . P( E | E ′) + P( H | not E ) . P(not E | E ′) = = P( H | not E ) + [P ( H | E ) − P( H | not E )] . P( E | E ′) Hodnoty P (H⏐E) a P (H⏐notE) zadává expert přímo, nebo je lze vypočítat z L a Lˆ . Rovnice (4.24) představuje lineární závislost mezi P (H⏐E´) a P (E⏐E´) a lze ji znázornit přímkou podle Obr. 6.1.1. Povšimněme si ale jedné důležité věci: protože expert zadává nezávisle P(H⏐E) a P(H⏐notE), P(E) a P(H), je přímka podle rovnice (4.24) z matematického hlediska přeurčená. Přijmeme-li totiž od experta hodnoty P(H⏐E), P(H⏐notE) a P(E), pak již nemůžeme přijmout expertem určenou hodnotu P(H), nýbrž hodnotu PC(H), která vychází podle dané lineární funkce. Takový systém pravděpodobnostních měr se stává nekonzistentním. K odstranění tohoto sporu, tj. k dodržení konzistence systému subjektivních pravděpodobností, se přijímá řešení, které znamená odklon od konvenčního bayesovského přístupu. Systém PROSPECTOR používá po částech lineární aproximace upravené funkce a toto řešení bývá použito i u dalších systémů, využívajících pravděpodobnostního principu (FEL-EXPERT [2]).
92
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
Obr.6.1.1 V našem případě, uvedeném na Obr.6.1.2, se pro výpočet P (H⏐E´) používá vztahů
P( H | E ) − P( H ) ⋅ ( P( E | E ′) − P( E )) 1 − P( E ) pro P( H | E ) ≥ P( H ) ≥ P( H | not E )
P ( H | E ′) = P( H ) +
P( H ) − P( H | not E ) ⋅ P( E | E ′) P( E ) pro P( H | E ) ≤ P( H ) ≤ P( H | not E )
P ( H | E ′) = P( H | not E ) +
Nyní je třeba zabývat se opět otázkou, jak kombinovat vliv váhy více předpokladů E1, E2, …, En na stejný závěr H.
93
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
Obr.6.1.2 Nejprve uvažujme situaci, kdy předpoklady nabývají pouze logických hodnot „pravda“ nebo „nepravda“. Zde by bylo možno použít složený logický předpoklad E = E1 & E2 & …& En a ve vztazích (6.1.6) a (6.1.7) použít pravděpodobnostní šance O=
P( E1 & E 2 & ... & E n | H ) P ( E1 & E 2 & ... & E n | not H )
Podmínka statistické nezávislosti tvrzení E, který je pro prospektorovský model předpokládán, nám umožňuje aktualizovat pravděpodobnostní šance podle vztahů
O = ( H | E1 , E 2 ,..., E n ) = L1 . L2 ....Ln . O( H )
(6.1.9)
O = ( H | not E1 , not E 2 ,..., not E n ) = Lˆ1 . Lˆ 2 ....Lˆ n . O( H )
(6.1.10)
Obecně však předpoklad statistické nezávislosti splněn není. Abychom se mu alespoň přiblížili, doporučuje se dodržovat zásadu, aby počet pravidel se stejnou levou stranou byl malý a také počat pravidel se stejnou pravou stranou (hypotézou) byl opět malý. Předpokládejme nyní, že uživatel přiřazuje evidencím E na základě svého pozorování určitou váhu, označovanou E´1, E´2, …, E´n . Pak lze definovat tzv. efektivní váhu pravidla
Li′ =
O( H | Ei′) O( H )
94
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy a výslednou pravděpodobnostní šanci O dostaneme (opět za předpokladu statistické nezávislosti evidencí) podle vztahu analogického k (6.1.9) a (6.1.10)
O( H | E1′, E 2′ ,...E n′ ) = L1′ . L1′ ...Ln′ . O( H ) Odtud získáme podle vztahu
P=
O O +1
pravděpodobnost hypotézy H. Expert tedy zadává ke každému pravidlu buď dvojici měr L a Lˆ nebo dvojici subjektivních pravděpodobností P (H⏐E) a P (H⏐notE) a dále pak apriorní pravděpodobnosti P (E) a P (H). Uživatel (nebo báze dat) zadá hodnoty P (E⏐E´). Tím je pravděpodobnost P (H⏐E´1, E´2, …, E´n) plně určena. Pro výpočet pravděpodobnostního ohodnocení logické kombinace dílčích výroku se v prospektorovském modelu používá vztahů, převzatých z teorie fuzzy množin P ( E1 & E 2 ) = min{P( E1 ), P ( E 2 )} P ( E1 ∨ E 2 ) = max{P( E1 ), P( E 2 )} P(not E ) = 1 − P( E )
Řešené úlohy 6.1 Příklad 6.1.1 Expertní systém typu MYCIN Pro studenty-motoristy uvedeme příklad skutečné diagnostiky spalovacího čtyřtaktního motoru. Uvažujme (fragment) báze znalostí ve tvaru čtyř pravidel:
IF E1 : Klepou ventily po přidání plynu THEN H : Špatně seřízený předstih WITH MB( H , E1 ) = 0,8; MD( H , E1 ) = 0
95
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
IF E 2 : Motor střílí do výfuku THEN H : Špatně seřízený předstih WITH MB( H , E 2 ) = 0,92; MD( H , E 2 ) = 0 IF E3 : Malá spotřeba THEN H : Špatně seřízený předstih WITH MB( H , E3 ) = 0; MD( H , E3 ) = 0,9 IF E 4 : Malá akcelerace THEN H : Špatně seřízený předstih WITH MB( H , E 4 ) = 0,86; MD( H , E 4 ) = 0 Tato pravidla můžeme překreslit do tvaru inferenční sítě na Obr.1. Předpokládejme nyní, že uživatel posoudí projevy diagnostikovaného motoru a ohodnotí platnost evidencí E1 až E4 postupně takto:
CF ( E1 , E ′) = 0,7 , CF ( E 2 , E ′) = −0,45 , CF ( E3 , E ′) = 0,6 , CF ( E 4 , E ′) = 0,65 , Pro ohodnocení první evidence platí MB( H , E1′ ) = MB( H , E1 ).max{0, CF ( E1 , E ′)} = 0,8 . 0,7 = 0,56 MD( H , E1′ ) = 0
96
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy CF ( H , E1′ ) = 0,56
Obr. 1 (Bude doplněn) Po určení CF(E2,E´) = -0,45 lze ihned podle vztahů (6.1.2) a (6.1.3) vypočítat MB( H , E 2′ ) = MD( H , E 2′ ) = CF ( H , E 2′ ) = 0
protože pravidlo nepřispívá k ohodnocení H a proto CF ( H , E1′ & E 2′ ) = CF ( H , E1′ ) = 0,56
Dále uživatel odhadl CF(E3,E´) = 0,6 , potom
MB( H , E3′ ) = 0 MD( H , E3′ ) = MD( H , E3 ) . max{0, CF ( E3 , E ′)} = 0,9 . 0,6 = 0,54 CF ( H , E3′ ) = −0,54 CF ( H , E1′ & E 2′ & E3′ ) = =
CF ( H , E1′ & E 2′ ) + CF ( H , E3′ ) = 1 − min{abs(CF ( H , E1′ & E 2′ )), abs(CF ( H , E3′ ))} 0,56 − 0,54 = 0,0434 1 − 0,54
V posledním kroku pak vypočteme MB( H , E 4′ ) = MB( H , E 4 ) . max{0, CF ( E 4 , E ′)} = 0,86 . 0,65 = 0,559 MD( H , E 4′ ) = 0 CF ( H , E 4′ ) = 0,559
97
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
CF ( H , E1′ & E 2′ & E3′ & E 4′ ) = CF ( H , E1′ & E 2′ & E3′ ) + CF ( H , E 4′ ) − − CF ( H , E1′ & E 2′ & E3′ ) . CF ( H , E 4′ ) = = 0,578 Povšimneme si, že pozitivní odpovědi uživatele na dotazy „Klepou ventily při přidání plynu ?“ a „Má motor malou akceleraci ?“ podporovaly podezření, že je „Špatně seřízený předstih“. Naopak pozitivní odpověď na otázku „Má motor malou spotřebu ?“ pak podezření na tuto diagnózu zeslabuje (vzhledem k nenulové MD ve třetím pravidle) a negativní odpověď na dotaz „Střílí motor do výfuku ?“ v našem modelu vůbec ohodnocení hypotézy H neovlivní.
Příklad 6.1.2 Expertní systém typu PROSPECTOR Použijme opět fragment pravidel diagnostického systému poruch automobilového motoru jako v příkladu inference MYCIN. Ohodnocení je pozměněno, aby odpovídalo modelu prospektorovskému.
IF E1 : Klepou ventily při přidání plynu THEN H : Špatně seřízený předstih WITH P( H | E1 ) = 0,85; P( H | not E1 ) = 0,05 IF E 2 : Motor střílí do výfuku THEN H : Špatně seřízený předstih WITH P( H | E 2 ) = 0,95; P( H | not E 2 ) = 0,3 IF E3 : Malá spotřeba THEN H : Špatně seřízený předstih WITH P( H | E3 ) = 0,001; P( H | not E3 ) = 0,7
98
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
IF E 4 : Malá akcelerace THEN H : Špatně seřízený předstih WITH P( H | E 4 ) = 0,9; P( H | not E 4 ) = 0,1 Předpokládejme, že jsme od experta získali následující apriorní pravděpodobnosti: P (E1) = 0,1; P (E2) = 0,05; P (E3) = 0,6; P (E4) = 0,4 a P (H) = 0,35. Uživatel postupně zadává odpovědi: a) P (E⏐E´1) = 0,8, pak P ( H | E1 ) − P ( H ) ⋅ ( P ( E1 | E1′ ) − P ( E1 ) = 0,739 1 − P ( E1 ) P( H | E1′ ) O( H | E1′ ) 1 − P( H | E1′ ) = L1′ = = 5,258 P( H ) O( H ) 1 − P( H ) P ( H | E1′ ) = P ( H ) +
přičemž O( H ) = 0,5385; O( H | E1′ ) = 2,831
b) P (E⏐E´2) = 0,01, pak P ( H | E 2′ ) = P ( H | not E 2 ) +
L2′ =
P ( H ) − P ( H | not E 2 ) ⋅ P ( E 2 | E 2′ ) = 0,301 P( E 2 )
O( H | E 2′ ) = 0,8 O( H )
a tedy O( H | E1′ , E 2′ ) = L1′ . L2′ . O( H ) = L2′ . O ( H | E1′ ) = 0,8 . 2,831 = 2,265
Odtud P ( H | E1′ , E 2′ ) = 0,694
99
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy c) P (E⏐E´3) = 0071, pak analogicky jako v předchozích případech vypočítáme
P( H | E3′ ) = 0,071 L3′ = 0,142 O( H | E1′, E 2′ , E3′ ) = L1′ , L2′ , L3′ . O( H ) = L3′ .O( H | E1′ , E 2′ ) = = 0,142 . 2,265 = 0,322 P ( H | E1′ , E 2′ , E3′ ) = 0,244 d) po odpovědi na poslední otázku uvede P (E⏐E´4) = 0,8, pak P ( H | E 4′ ) = 0,717 L4′ = 4,705
O( H | E1′, E 2′ , E3′ , E 4′ ) = L4′ . O( H | E1′, E 2′ , E3′ ) = 4,705 . 0,224 = 1,148 P( H | E1′, E 2′ , E3′ , E 4′ ) = 0,534
Shrnutí pojmů Expertní systém MYCIN je jedním z prvních úspěšných expertních systémů. Využívá reprezentace znalostí formou produkčních pravidel. Neurčitost předpokladů je vyjádřena pomocí míry důvěry a míry nedůvěry v platnost pravidla. Tyto míry jsou spojeny do činitele jistoty. Neurčitost dat je stanovena na základě pozorování odhadem míry jistoty v platnost splnění předpokladů. Jsou uvedeny principy variantního modelu typu EMYCIN. Řídicí adhoc mechanizmus provede ohodnocení pravidel a stanoví nejpravděpodobnější hypotézu jako závěr. Systém MYCIN je ilustrován praktickým příkladem jednoduchého diagnostického expertního systému. Model PROSPECTOR používá modifikovaného Bayesova vztahu pro dokazování platnosti hypotéz. Používá produkčních pravidel, která mohou nebo nemusí být provázena neurčitostí. Pro ohodnocení pravidel používá tento systém kritéria naděje nebo pravděpodobnostní šance. Pracuje s pojmem míry nezbytnosti. Pro ohodnocení konkrétní situace používá subjektivní ohodnocení. Jeho řídicí mechanizmus opět ohodnocuje jednotlivé hypotézy a stanoví tu, která nejlépe koresponduje s daty konkrétního případu. Použití modelu PROSPECTOR je opět ilustrováno příkladem jednoduchého diagnostického expertního systému.
100
SYSTÉMY S UMĚLOU INTELIGENCÍ – Pravděpodobnostní expertní systémy
Otázky 6.1 6.1.1 V čem spočívá idea MYCINu jako expertního systému s ad-hoc řídicím mechanizmem? 6.1.2 Jaký je rozdíl mezi apriorní a aposteriorní pravděpodobností výskytu jevu? 6.1.3 Jakými parametry je vyjádřena neurčitost pravidla v systému MYCIN? 6.1.4 Jak se liší přístupy systémů MYCIN a PROSPECTOR v metodě řešení problémů? 6.1.5 V čem spočívá modifikace klasického Bayesova vztahu dokazování platnosti hypotéz, kterou využívá systém PROSPECTOR?
Úlohy k řešení 6.1 6.1.1 Jaký je rozdíl mezi systémy MYCIN a EMYCIN? 6.1.2 Mají význam pravděpodobnostní expertní systémy, používající pravidla bez neurčitosti? Kdy je možné jich použít?
Další zdroje [1] Mařík, V. a kol.: Umělá inteligence I, II, Academia Praha, 1997. ISBN 80-2000504-8 [2] Obitko, M.: Uživatelská příručka k systému FEL-Expert 4.0 (FEL-Expert 4.0 User Manual), 1999, http://krizik.felk.cvut.cz/felex/uman/uman.pdf
101
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
7
SYSTÉMY S UMĚLÝMI NEURONOVÝMI SÍTĚMI
7.1
Vícevrstvá neuronová síť Čas ke studiu: 3 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• vysvětlit strukturu modelu prvku neuronové sítě – perceptronu • popsat funkci perceptronu při stanovení velikosti jeho výstupu • popsat strukturu vícevrstvé neuronové sítě • • •
vysvětlit vlastnosti a funkci vícevrstvé neuronové sítě vysvětlit metodu učení vícevrstvé neuronové sítě pochopit způsoby použití vícevrstvých neuronových sítí
Výklad V rámci vývoje metod umělé inteligence hrají významnou roli neuronové sítě. Jsou to struktury, které jsou inspirovány svými biologickými vzory. Jejich hlavním úkolem je simulovat a implementovat některé funkce lidského mozku, především schopnost adaptace a učení [1], [2], [3], [4]. Nejjednodušším modelem biologické neuronové sítě je jediný neuron, jehož matematický model se nazývá perceptron. Jeho schéma je nakresleno na Obr.7.1.1.
Obr.7.1.1 102
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
Do neuronu vstupuje n- spojů (axonů) buď jako výstupy jiných neuronů nebo podněty z jeho okolí, i-tým spojem vstupuje informace ve formě reálného čísla xi. Vektor vstupů x = [x1, …. ,xn] (ve formě teplot, tlaků, barvy, rychlosti apod.) charakterizuje určitý zkoumaný objekt. Každý spoj je vybaven reálným číslem wi, které udává váhu spoje (jeho důležitost). Dále je každý neuron vybaven prahovou hodnotou Θ. Vážený součet n
ξ = ∑ wi xi − Θ , i = 1,..., n i =1
udává celkový podnět neuronu, tzv. potenciál neuronu. Na tento potenciál reaguje neuron odezvou na svém výstupu o velikosti
z = S (ξ ) kde S je předepsaná nelineární přenosová funkce neuronu. Obvykle má tvar sigmoidy s možným analytickým vyjádřením
S (ξ ) =
1 1 + exp(− λξ )
jejíž grafické vyjádření pro určitou velikost parametru λ (strmost sigmoidy) je na Obr.7.1.2
Obr.7.1.2 Odezva neuronu je dána vztahem
103
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
⎛ n ⎞ z = S ⎜ ∑ wi xi − Θ ⎟ ⎝ i =1 ⎠ Přenosová funkce může mít různý tvar. Lze použít jakoukoliv omezenou rostoucí diferencovatelnou funkci. Sítě s mnoha neurony lze dělit podle různých hledisek. První je dáno topologií (strukturou) sítě, druhé je dáno způsobem práce sítě. Podle prvního hlediska tak známe sítě rekurentní, jejichž graf je cyklický, tj. výstupy některých neuronů se vracejí jako vstupy zpět do sítě, a sítě ostatní, z nichž nejdůležitější jsou sítě vícevrstvé s neurony rozdělenými do vrstev. Výstupy neuronů předešlé vrstvy slouží jako vstupy neuronů vrstvy následující. Dolní vrstva sítě je pak vrstva vstupní, horní vrstva je vrstvou výstupní. Další hledisko rozeznává sítě s učitelem a samoorganizující se sítě, jak bude vysvětleno v následujícím textu. Kromě sigmoidní přenosové funkce používají neuronové sítě rovněž neurony s funkcemi jiného typu. Rozšířenými neurony jsou takové, které využívají přenosové funkce lineární S(ξ) = K. ξ = ξ funkce typu signum 1 pokud ξ ≥ 0 S(ξ) = {
0 pokud ξ < 0
případně po částech lineární funkci 1 pokud ξ ≥ 0.5 S(ξ) = { ξ pokud ξ ∈ (-0.5, 0.5) 0 pokud ξ ≤ -0.5
Vícevrstvá neuronová síť Propojení neuronů může být libovolné. v praxi však používáme tzv. sítě vícevrstvé, v nichž jsou neurony uspořádány do několika vrstev nad sebou. První vrstva je pak vrstvou vstupní, poslední je vrstva výstupní. Mezilehlé vrstvy se pak nazývají vrstvy skryté. Zatímco neurony téže vrstvy nejsou vzájemně propojeny, do každého neuronu vrstvy vyšší vstupují vazby od všech neuronů vrstvy nižší. Vazby jsou jednosměrné, tzn. že neurony vyšší vrstvy nemohou ovlivnit velikost vnitřního potenciálu neuronů ve vrstvě nižší. Schéma takové třívrstvé neuronové sítě je nakresleno na Obr.7.1.3.
104
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
Obr.7.1.3 Vícevrstvá neuronová síť má m- vstupních neuronů ve vrstvě vstupní, n- výstupních neuronů ve vrstvě výstupní a r- vrstev skrytých, přičemž.s- tá vrstva má k- neuronů. Obrázek Obr.7.1.3 ukazuje 4-vrstvou síť s jednou vrstvou vstupní, jednou výstupní a dvěma vrstvami skrytými. Taková síť se označuje symbolem 3-2-1. Neuronová vícevrstvá síť patří mezi systémy konekcionistické, neboť neurony sousedních vrstev jsou propojeny systémem „každý s každým“ (viz Obr.7.1.3). Základní vlastnosti vícevrstvých neuronových sítí Každému reálnému spojitému zobrazení φ z m- rozměrného vstupního prostoru do n-rozměrného prostoru výstupního lze najít skryté vrstvy a hodnoty vah (prahů) a tím tedy určitou síť tak, že φ je realizováno touto sítí s libovolnou přesností. Jestliže k libovolnému zobrazení φ již příslušnou síť (váhy) máme, můžeme k danému x najít (přibližnou) hodnotu y ≅ φ(x) tak, že a) na vstupy neuronů vstupní vrstvy přivedeme hodnoty prvků vektoru x. Výstupy neuronů vstupní vrstvy nabudou hodnot yi = xi, i = 1,…, m, a jsou přeneseny podél spojů s váhami které označíme wji na vstupy všech kneuronů první skryté vrstvy (j = 1,…,k) b) takto vzniklé hodnoty zpracují neurony první (skryté) vrstvy na své odezvy a postoupí je neuronům vyšší vrstvy jako jejich vstupy c) tato aktivita se šíří postupně výše až z výstupů neuronů výstupní vrstvy utvoříme vektor odezvy celé sítě y na vstupní vektor x. 105
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi Tato procedura tvoří tzv. aktivní (pracovní) mód práce sítě. Stavem sítě nazveme jistý vektor s(t) tvořený hodnotami výstupů ze všech (vhodně uspořádaných) neuronů v čase t. Jestliže všechny neurony pracují synchronně, takže signály procházejí současně od jedné vrstvy ke druhé a stavové vektory snímáme v těchto okamžicích, je délka zmíněné trajektorie dána počtem vrstev sítě a je konečná. Neuronové sítě jsou však charakteristické ne svým aktivním módem, nýbrž módem adaptačním (módem učení). Při něm nejde o to, jak využít danou síť k výpočtu hodnot zobrazené funkce φ, ale najít takovou síť, která by požadované zobrazení φ realizovala. S tímto problémem jsou spojeny následující problémy: a) zobrazení φ můžeme považovat za definované, jestliže budeme znát dostatečnou množinu dvojic [x, φ(x)]. Tuto dvojici můžeme považovat za množinu příkladů [vstup sítě, požadovaná odezva sítě]. Na takových příkladech jsou postaveny metody učení se novému v přírodě. Živé organizmy se učí porovnáváním a napodobováním od své matky správným odezvám na vstupní vjemy. Organizmus se však učí i nevědomě, jeho schopnosti a chování se přizpůsobují prostředí – adaptují se. Příklady jsou pak [vnější vliv, vnitřní změna]. V terminologii neuronových sítí nazýváme množinu dvojic [vstup, požadovaný výstup] trénovací množinou ℑ. Tento druh adaptace, při němž je možno porovnat okamžitou skutečnou odezvu sítě s odezvou požadovanou, se nazývá učení s učitelem. b) problémem je dostatečnost množiny ℑ. Čím více je příkladů, tím může být proces učení efektivnější, tím lépe je neuronová síť schopna extrahovat znalosti, rozpoznávat a reprezentovat pravidla podle nichž je ℑ utvářena. c) ani systém, který se dobře adaptoval na ℑ, nemusí reagovat správnou odezvou na nějaký nový, dříve nepoznaný, podnět. K tomu by musel být naučen reagovat na situace alespoň částečně podobné. ℑ bude proto výstižná, jestliže bude pokrývat celý prostor možných vstupů, přičemž „hustěji“ budou zastoupeny příklady z oblastí, kde zobrazení φ bude vykazovat větší změny. Jedině pak můžeme očekávat rozumnou generalizaci – schopnost sítě zobecňovat. d) máme-li k dispozici uspokojivou trénovací množinu ℑ, hledáme neuronovou síť tak, aby jí realizované zobrazení φ co nejpřesněji odpovídalo na podněty z ℑ (tj. aby co nejlépe extrahovalo znalosti z ℑ, co nejlépe je reprezentovalo a generalizovalo). Najít takovou síť znamená předně zvolit správně počet skrytých vrstev a počty neuronů v nich a dále stanovit správně váhy popř. prahy všech spojů případně jiné parametry specifické pro danou metodu hledání sítě. Cílem vytváření neuronových sítí je získání struktur, které by měly svým chováním napodobovat svoje biologické vzory. Jestliže je významnou vlastností biologické neuronové sítě její adaptabilita a schopnost přizpůsobení svých vlastností požadavkům požadovaného či optimálního chování, je obdobná adaptabilita umělé neuronové sítě zřejmě prvořadá. Jako základní a podstatnou vlastnost neuronových sítí považujeme jejich schopnost adaptace - tedy učení. Při využití neuronové sítě
106
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi pak odpadá nutnost hledání a vytváření algoritmů, které transformují množinu dat vstupních do množiny dat výstupních. Způsob transformace vstupních dat určuje právě fáze učení (adaptace sítě), založená na využití vzorů (příkladů) požadovaného chování - tzv. trénovací množiny. Proces hledání optimálního nastavení struktury i parametrů neuronové sítě k dosažení požadované transformace vstupní množiny do množiny výstupní (požadované chování neuronové sítě) se nazývá adaptace sítě. Pro adaptaci vícevrstvé neuronové sítě se spojitými perceptrony byla vyvinuta a často je používána adaptační metoda tzv. "back-propagation" (BP) - metoda "zpětného šíření". Velmi často se trénovací množina generuje tak, že na vstup matematického modelu modelované soustavy přivádíme náhodný signál o náhodné frekvenci a amplitudě. Tím se zaručuje lepší „pokrytí“ prostoru vstupních hodnot a zvyšujeme vlastnost generalizace sítě. Strategie adaptační metody V první řadě se budeme věnovat problému, jak k vícevrstvé síti u níž již známe její topologii (počet vrstev a neuronů v nich) najít váhy všech spojů. Problém nalezení topologie budeme řešit dále. Vycházíme z vah, které jsou zvoleny náhodně. Tyto zřejmě nebudou vyhovovat požadovanému zobrazení φ a bude je třeba v procesu adaptace sítě upravit. K tomu lze využít několika metod, zejména metod gradientních, stochastických a metod genetických algoritmů. Jednou z nejpoužívanějších metod je tzv. metoda zpětného šíření chyby (BP – backpropagation). Základem metody adaptace (učení) je použití trénovací množiny obsahující vzory (požadované hodnoty) excitací neuronů vstupní a výstupní vrstvy. Trénovací množinu TR pak zapisujeme jako množinu uspořádaných dvojic TR = {{X01, Y01} {X02, Y02} ... {X0p, Y0p}} X0i = [x01 x02 ... x0k], x0j <0,1> Y0i = [y01 y02 ... y0m], y0j <0,1>, kde p- je počet vzorů trénovací množiny, X0i je vektor excitací vstupní vrstvy s kneurony, Y0i je vektor excitací výstupní vrstvy tvořené m- neurony a x0j, y0j jsou excitace j-tého neuronu vstupní resp. výstupní vrstvy. Adaptační algoritmus (algoritmus učení) metody BP lze popsat těmito procedurami: 1. Neurony vstupní vrstvy excitujeme na odpovídající úroveň vektorem X0i i-tého prvku trénovací množiny TR.
107
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi 2. Provedeme šíření tohoto signálu dopředným způsobem (feedforward) až k výstupní vrstvě neuronů takto: 2.1 Excitace první vrstvy jsou vahami přivedeny k následující vrstvě a upraveny pomocí synaptických vah; 2.2 Každý neuron této vyšší vrstvy provede sumaci opravených signálů od nižší vrstvy a je excitován na úroveň danou svojí aktivační funkcí; 2.3 Kroky 2.1 a 2.2 jsou opakovány přes všechny vnitřní vrstvy až k vrstvě výstupní, čímž jsou získány excitační stavy jejích neuronů; 3. Porovnáme požadovaný stav Y0i i-tého prvku trénovací množiny se skutečnou odezvou neuronové sítě Y*i. 4. Diference skutečné a požadované hodnoty odezvy definuje chybu, kterou pak v určitém poměru vracíme do neuronové sítě formou úpravy synaptických vah směrem od horních vrstev k vrstvám nižším tak, aby chyba následující odezvy klesla. 5. Po vyčerpání celé trénovací množiny vyhodnotíme celkovou chybu (přes všechny vzory trénovací množiny TR) a pokud je tato chyba vyšší než chyba požadovaná, opakujeme kroky 1. až 4 znovu. Schéma adaptační metody, v níž učící se proces je řízen velikostí chybové funkce En, je na Obr.7.1.4.
Obr.7.1.4 Cílem adaptivní strategie metody BP je tedy minimalizace funkce chyby En, definované vztahem
En =
(
1 p m 0 y j − y *j ∑∑ 2 i =1 j =1
)
2
i
kde y0j je skutečná a y*j je požadovaná odezva j- tého neuronu výstupní vrstvy. 108
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi Algoritmus back-propagation můžeme nalézt např. v [1]. Neuronová síť, popsaná v této části, je koncipována zcela univerzálně a je určena pro modelování obecné vícerozměrné závislosti (chování vícerozměrné soustavy) typu MIMO (Multi - Input - Multi - Output). Pro realizaci procedury adaptace neuronové sítě, tj. optimalizace jejích parametrů, se používají i jiné optimalizační metody. Z nich je třeba jmenovat zdokonalenou Gauss-Newtonovu optimalizační metodu Levenberg-Marquardt [2]. Použití vícevrstvých neuronových sítí Použití vícevrstvých neuronových sítí v jednotlivých typických úlohách: a) Klasifikace Pro klasifikaci vstupů {x} do dvou tříd použijeme např. síť m - k – 1 (vstupní vrstva m- neuronů, k- skrytých vrstev, výstupní vrstva 1 neuron) s trénovací množinou {[x, y] …}, kde y = 1 nebo y = 0 podle toho, do které třídy vstup x patří. Chceme-li klasifikovat do více tříd, použijeme více výstupních neuronů. b) Predikce Mějme časovou posloupnost x1 ,x2 ,…,xj ,… ,xT ,xT+1, kde prvky xi pro i = 1,2,…,T jsou změřeny. Pro m >> T předkládáme na vstup sítě vždy m-tici známých hodnot a pomocí (m + 1)-ní hodnoty na výstupu učíme. Pokud je síť schopna extrahovat v adaptačním módu dobře zákonitosti „historie“, bude v aktivním módu schopna předpovídat i xT+1 položíme-li na vstup m- známých hodnot. c) Řízení Neuronové sítě jsou schopny napodobovat různé řídicí systémy tím, že po delší dobu „pozorují“ a s postupem adaptace stále lépe kopírují. Tak jsou schopny nahradit např. člověka (experta), který na základě své dlouholeté praxe a neuvědomované intuice převádí jisté indikační příznaky na řídicí povely (expertní systém jako regulátor). Je to typický příklad extrakce znalostí, které expert není schopen formulovat ve tvaru pravidel. d) Komprese dat Uvažujme tří-vrstvou neuronovou síť s počtem k- neuronů ve skryté a mneuronů ve vstupní a výstupní vrstvě (k < m). Naučíme-li takovou síť na identitu (tj. x = y ) potom skrytá vrstva reprezentuje data komprimovaná na m/k původního počtu. Sít realizující identické zobrazení m-bitových signálů se rozdělí do dvou částí (vysílač-přijímač) které komunikují prostřednictvím přenosu kódu na k < m linkách.
109
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
Řešené úlohy 1.2
Příklad 7.1.1 Jako zajímavý příklad vícevrstvé neuronové sítě uveďme schéma pro kompresi signálu. Číslicový signál zakódovaný do pětibitového binární slova je komprimován pro přenos dvojvodičovým vedením (komprese 5 – 2) pomocí třívrstvé neuronové sítě 5 – 2 – 5 naučené na identitu (Obr.1).
Obr.1 (bude doplněn)
Shrnutí pojmů Umělé neuronové sítě jsou struktury, které jsou inspirovány svými biologickými vzory. Jejich hlavním úkolem je simulovat a implementovat některé funkce lidského mozku, především schopnost adaptace a učení. Nejjednodušším modelem biologické neuronové sítě je jediný neuron, jehož matematický model se nazývá perceptron. Neurony jsou v síti propojeny vzájemnými vazbami, z nichž každá je vybavena matematickou váhou. Přenosová funkce neuronu je dána váženým součtem jeho vstupních hodnot, který je argumentem vhodné nelineární funkce. Ve vícevrstvé síti jsou neurony jsou uspořádány ve vzájemně propojených vrstvách. Propojení neuronů může být libovolné. V praxi však používáme tzv. sítě vícevrstvé, v nichž jsou neurony uspořádány do několika vrstev nad sebou. První vrstva je pak vrstvou vstupní, poslední je vrstva výstupní. Mezilehlé vrstvy se pak nazývají vrstvy skryté. Vícevrstvá neuronová síť má m- vstupních neuronů ve vrstvě vstupní, nvýstupních neuronů ve vrstvě výstupní a r- vrstev skrytých, přičemž.s- tá vrstva má k- neuronů. 110
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
Každému reálnému spojitému zobrazení φ z m-rozměrného vstupního prostoru do a-rozměrného prostoru výstupního lze najít skryté vrstvy a hodnoty vah (prahů) a tím tedy určitou síť tak, že φ je realizováno touto sítí s libovolnou přesností. Jako základní a podstatnou vlastnost neuronových sítí považujeme jejich schopnost adaptace - tedy učení. Při využití neuronové sítě pak odpadá nutnost hledání a vytváření algoritmů, které transformují množinu dat vstupních do množiny dat výstupních. Způsob transformace vstupních dat určuje právě fáze učení (adaptace sítě), založená na využití vzorů (příkladů) požadovaného chování - tzv. trénovací množiny. Základem metody adaptace (učení) je použití trénovací množiny obsahující vzory (požadované hodnoty) excitací neuronů vstupní a výstupní vrstvy. Pomocí adaptačního algoritmu (algoritmu učení) metody BP adaptujeme automaticky parametry sítě (velikosti vah jejích vazeb a parametry přenosových funkcí neuronů) tak, abychom minimalizovali chybu sítě. Vícevrstvé neuronové sítě se používají k řešení složitých úloh, jako jsou úlohy klasifikace, predikce, řízení nebo komprese dat.
Otázky 7.1 7.1.1 Co je to umělá neuronová síť ? 7.1.2 Jaká je funkce neuronu v síti ? 7.1.3 Co je to vícevrstvá neuronová síť ? 7.1.4 Jak se nazývají vrstvy vícevrstvé neuronové sítě ? 7.1.5 Jaká je základní vlastnost vícevrstvé neuronové sítě ? 7.1.6 Co je to procedura adaptace a jakou roli hraje trénovací množina dat ? 7.1.7 Vysvětlete složení trénovací množiny dat 7.1.8 Vysvětlete metodu adaptace neuronové sítě metodou zpětného šíření chyby 7.1.9 Co je to chybová funkce ? 7.1.10 Vyjmenujte příklady použití vícevrstvých neuronových sítí !
Úlohy k řešení 7.1 7.1.1 Je obdoba mezi matematickým perceptronem a biologickým neuronem z hlediska jejich funkce ? 7.1.2 Nakreslete vícevrstvou neuronovou síť s označením 4-1-2 ! 7.1.3 Vymyslete příklady úloh pro řešení pomocí vícevrstvých neuronových sítí !
Další řešené příklady naleznete v kapitole: CVIČENÍ 9
Neuronové sítě – aproximace pomocí vícevrstvé neuronové sítě na základě metody back‐propagation
111
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi CVIČENÍ 10 Neuronové sítě – predikce pomocí vícevrstvé neuronové sítě na základě metody back‐propagation CVIČENÍ 11 Neuronové sítě – jednoduché učící se neurony
Další zdroje [1] Vondrák, I.: Neuronové sítě, VŠB Ostrava, 1997. ISBN 978-80-248- 1981-5 [2] Sinčák,P.: Neurónové siete, I, II, ELFA, 1996. ISBN 80-88786-38-X [3] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80- 901984-4-9 [4] Mařík V., Štěpánková O., Lažanský J. a kol.: Umělá inteligence 4. Academia, Praha, 2003. ISBN 80-200-1044-0
112
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
7.2
Hopfieldovy a Kohonenovy neuronové sítě Čas ke studiu: 1 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• popsat strukturu a funkci Hopfieldovy neuronové sítě • popsat strukturu a funkci Kohonenovy neuronové sítě
Výklad Hopfieldova síť V Hopfieldově síti [1], [2], představující tzv. Hopfieldův model, je každý z jejích n neuronů spojen s každým prostřednictvím spojů se symetrickými váhami wij = wji Hopfieldovy sítě patří do skupiny sítí rekurentních a slouží jako tzv. asociativní paměti. Jestliže přivedeme na vstupy takové sítě určité hodnoty, po naučení sítě jsou tytéž hodnoty na jejích výstupech. Počet neuronů sítě je roven počtu vstupů sítě nebo jejich výstupů, protože vstupní neurony jsou současně i neurony výstupními. Obraz jednoduché Hopfieldovy sítě s šesti neurony je na Obr. 7.2.1.
Obr.7.2.1 113
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
Jestliže označíme počáteční stav vstupů sítě xp, jeví síť tendenci přecházet (relaxovat) do některého z dříve naučených stavů xi, který je blízký stavu xp. Tento stav se objeví na výstupu sítě. Jde tedy o proces vybavení dříve naučeného („viděného“) vzoru na základě zadání, které může být i neúplné nebo nepřesné (xp může představovat jenom část xi, jeho „zašuměnou“ verzi apod.). Asociativnost Hopfieldovy sítě je dána tím, že vybavovaný vzor zadáváme jeho jistou částí, do značné míry libovolnou. Vzor je vybavován podle části svého „obsahu“, nikoliv odkazem na nějakou jeho „adresu“. Adaptace vah neuronů se řídí Hebbovým zákonem. Vnutíme-li dvěma neuronům stavy xi a xj změní se jejich vazba wij o hodnotu
Δwij = wij (t + 1) − wij (t ) = xi (t ) ⋅ x j (t ), i, j = 1,..., n Každý vstupní vektor ovlivní takto celou matici vzájemných vazeb wij. Pro změnu stavu neuronové sítě xi pak platí vztah
⎞ ⎛ n xi (t + 1) = sign⎜⎜ ∑ wij ⋅ x j (t )⎟⎟ , i = 1,..., n ⎝ j =1 ⎠ Siť se stabilizuje ve stavu x (t 0 ) = x (t 0 + 1)
V celkovém důsledku se síť chová tak, že usiluje o dosažení minima hodnoty odpovídající velikosti její energie E=−
⎞ 1 n ⎛ n ⎜ ∑ wij x j ⎟ xi ∑ ⎟ 2 i =1 ⎜⎝ j =1 ⎠
Jednotlivé neurony mění svůj stav (tj. jsou aktivizovány) – na rozdíl od neuronové sítě vícevrstvé - asynchronně. Problémem Hopfieldových sítí je skutečnost, že počet uchovatelných vzorů je malý (asi 0,15N, kde N je počet neuronů sítě). Hopfieldovy sítě s výhodou používají k realizace funkcí rozpoznávání vzorů a klasifikaci. Skutečnost, že standardní Hopfieldova síť dosáhne nutně v konečném čase (lokálního) minima své energie, se využívá k (suboptimálnímu) řešení některých optimalizačních úloh. Kohonenova síť Typickou procedurou učení vícevrstvých neuronových sítí je učení s učitelem, při němž je síti předkládán požadovaný výsledek. U živých organizmů je takovou analogií učení se na základě „odměny a trestu“. V přírodě se organizmy nepoučují jen pomocí vnějších kritiků (rodiče, společnost), ale i vlastním hodnocením vlastní 114
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
historie. Pokud se funkce sítě upravuje (adaptuje) jen na základě stimulů a ne na základě vnějšího hodnocení odpovídajících reakcí, hovoříme o její samoorganizaci. Do třídy takových sítí patří i neuronové sítě Kohonenovy – Obr.7.2.2 [1], [2]. Obr.7.2.2 Uvažujme situaci, kdy k- neuronů je určeno k rozpoznání k- tříd (kategorií) a každý vstupní vektor příznaků x máme přiřadit jedné z nich. Při tom podobným (ve smyslu nějaké metriky) vstupním vektorům má odpovídat tatáž kategorie. Vezměme jednoduchou dvouvrstvou síť s náhodně inicializovanými váhami. Neuron i vyšší vrstvy spojený se všemi neurony j vstupní vrstvy váhami wij je daným vstupním vektorem x na potenciál wix. Pro daný vstup pak existuje výstupní neuron, který je excitován nejvíce. Označme jej ∗. Platí
w * X > wi X , pro všechna ostatní i. Řekněme, že ∗ reprezentuje x. Pokud je jiný vstup x´ blízký vektoru x, je pravděpodobné, že ∗ bude reprezentovat i x´. Funkci takového klasifikátoru výrazně zlepší procedura adaptace, kdy příchod každého nového vektoru x´ posune (adaptuje) váhový vektor w∗ reprezentující vektory blízké vektoru x tak, aby ∗ reprezentoval i x´. Toho se dosahuje použitím Kohonenova adaptačního pravidla
w * (nové ) = w * ( staré ) + α ( X − w * ( staré ) ) K výběru neuronu, který je daným vstupem nejvíce excitován, slouží jev zvaný kompetice. Každý neuron vrstvy posiluje sám sebe a potlačuje ostatní s týmiž koeficienty úměrnosti. Tím jeho náskok postupně vzrůstá až nakonec ten, který měl na začátku byť jen malý náskok, dosáhne své maximální hodnoty výstupu zatímco výstupy ostatních jsou nulové. Takový mechanizmus (laterální inhibice) je znázorněn na Obr.7.2.3.
115
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi
Obr.7.2.3 Tento mechanizmus je zaveden tím, že navíc ke spojům vedoucím mezi vrstvami neuronů je horní vrstva realizována jako Hopfieldova síť, kde wii > 0, wii < 0, j ≠ i.
Řešené úlohy 7.2
Příklad 7.2.1 Příklad 7.2.2
Shrnutí pojmů V Hopfieldově síti, představující tzv. Hopfieldův model, je každý z jejích n neuronů spojen s každým prostřednictvím spojů se symetrickými váhami. Hopfieldova síť má cyklickou uzavřenou strukturu (topologii). Hopfieldovy sítě patří do skupiny sítí rekurentních a slouží jako tzv. asociativní paměti. Jestliže přivedeme na vstupy takové sítě určité hodnoty, po naučení sítě jsou tytéž hodnoty na jejích výstupech. Počet neuronů sítě je roven počtu vstupů sítě nebo jejich výstupů, protože vstupní neurony jsou současně i neurony výstupními. Asociativnost Hopfieldovy sítě je dána tím, že vybavovaný vzor zadáváme jeho jistou částí, do značné míry libovolnou. Hopfieldovy sítě s výhodou používají k realizace funkcí rozpoznávání vzorů a klasifikaci.
116
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s umělými neuronovými sítěmi V přírodě se organizmy nepoučují jen pomocí vnějších kritiků (rodiče, společnost), ale i vlastním hodnocením vlastní historie. Pokud se funkce sítě upravuje (adaptuje) jen na základě stimulů a ne na základě vnějšího hodnocení odpovídajících reakcí, hovoříme o její samoorganizaci. Do třídy takových sítí patří i neuronové sítě Kohonenovy. V postupu předkládání vektoru vstupních dat se mění excitace výstupních neuronů tak, že u jednoho neuronu jeho výstup roste a u ostatních klesá. K výběru neuronu, který je daným vstupem nejvíce excitován, slouží jev zvaný kompetice. Každý neuron vrstvy posiluje sám sebe a potlačuje ostatní s týmiž koeficienty úměrnosti. Tím jeho náskok postupně vzrůstá až nakonec ten, který měl na začátku byť jen malý náskok, dosáhne své maximální hodnoty výstupu zatímco výstupy ostatních jsou nulové. Kohonenovy sítě jsou vhodné pro řešení úloh rozpoznávání.
Otázky 7.2 7.2.1 7.2.2 7.2.3 7.2.4
Jaká je typická topologie Hopfieldovy neuronové sítě ? Co je to vlastnost asociativní paměti a jak se tato vlastnost projevuje ? Jaký je princip funkce Kohonenovy neuronové sítě ? Vysvětlete princip procedury kompetice !
Úlohy k řešení 7.2 7.2.1 Nakreslete Hopfieldovu síť se čtyřmi neurony a všemi vazbami, včetně jejích vstupů a výstupů ! 7.2.2 Nakreslete Kohonenovu neuronovou síť pro rozpoznávání šesti hlásek pomocí tří jejich formantů ! Další řešené příklady naleznete v kapitole: CVIČENÍ 12 Samo‐organizující se neuronové sítě – 2D Kohonenova mapa bodů CVIČENÍ 13 Samo‐organizující se neuronové sítě – Třídění barevných segmentů pomocí Kohonenovy mapy CVIČENÍ 14 Elastické neuronové sítě – problém obchodního cestujícího
Další zdroje [1] Sinčák,P.: Neurónové siete, I, II, ELFA, 1996. ISBN 80-88786-38-X [2] Vondrák, I.: Neuronové sítě, VŠB Ostrava, 1997. ISBN 978-80-248- 1981-5
117
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy
8
SYSTÉMY S GENETICKÝMI ALGORITMY
8.1
Evoluční teorie a genetické algoritmy Čas ke studiu: 2 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• popsat aplikaci principů biologického evolučního vývoje v technice • • •
vysvětlit princip genetického algoritmu vysvětlit operátory genetického algoritmu objasnit postup procedury genetického algoritmu
Výklad Neuronové sítě, popsané v minulé kapitole, nejsou jediným nástrojem umělé inteligence, jehož inspirací jsou biologické struktury a jejich funkce. Objevy v oblasti genetiky vedly k úspěšnému pokusu o umělé napodobení procesů, které jsou základem utváření charakteru jedince a mechanizmu dědění jeho vlastností v potomstvu. Výsledkem jsou vyhledávací algoritmy, založené na principech biologické evoluce a na mechanizmu přirozeného výběru. Díky evolučním principům jsou takové algoritmy poměrně jednoduché a mají oproti jiným vyhledávacím a optimalizačním metodám řadu výhod. Biologická evoluce a evoluční strategie Pro vývoj umělých evolučních systémů (mezi které patří i genetické algoritmy GA), je důležité poznání mechanismů, kterých používá příroda pro výběr rodičů, pro zajištění adaptability populace, rozmanitosti genetického fondu při zachování stability důležitých vlastností druhu a vyřešení řady dalších otázek souvisejících s konvergencí, robustností a stabilitou (tedy praktickou použitelností) umělých systémů. Evoluční teorie vysvětlují původ a proměny živých obyvatel Země v průběhu vývoje až do současnosti jako přirozený proces. První evoluční teorii vytvořil Lamarck (Jean-Baptiste Pierre Antoine de Monet Lamarck, 1744 - 1829). Evoluci vysvětloval schopností změn živých organismů, a to postupně v průběhu mnoha generací zděděním struktury (např. silné svaly), která se stává větší a lépe vyvinutá, jako výsledek trvalého používání, nebo naopak zmenšená, jako výsledek nepoužívání (nečinnosti).
118
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy Podle Darwinovy teorie (Charles Robert Darwin, 1809 - 1882) založené na přirozeném výběru má vznik většího počtu jedinců než je okolní prostředí schopné uživit za následek vznik konkurence a „boj o přežití“. Pokud ve skupině existují dědičné odchylky, potom v rámci dané populace přežijí jedinci s výhodnějšími odchylkami a budou se dál rozmnožovat na úkor jedinců s méně vhodnými vlastnostmi. Díky tomu přežijí nejsilnější jedinci, takže daný biologický druh se postupně adaptuje na okolí. Změnám životního prostředí se tak biologické druhy postupně přizpůsobí, tedy adaptují (optimalizují). Následná Mendelova teorie (Johan Gregor Mendel, 1822 - 1884), se obvykle podává ve formě tzv. Mendelových zákonů, tj. zákona o uniformitě míšenců, zákona o štěpení znaků a zákona volné kombinovatelnosti. Nositelem dědičných vlastností jsou tzv. chromozomy. Mendelova genetika se vztahuje ke vzorům dědičnosti organismů se sexuální reprodukcí. Biologická evoluce je tedy založena na změnách genetické struktury populace a zahrnuje štěpení, vznik a zánik vývojových linií organizmů. Evoluční mechanizmy jsou prověřeny v přírodě dlouhodobým vývojem. Lze je úspěšně aplikovat i na technické problémy, a to zejména takové, které jsou složité nebo těžko popsatelné matematickými metodami. Obecně jsou určeny k vyhledávání nejlepších (optimálních) řešení různých problémů. Evoluční algoritmy se dělí na genetické algoritmy, genetické programování a evoluční strategie: Genetické algoritmy (GA) používají pro nalezení optimálního řešení speciální procedury, nazývané operacemi selekce, křížení a mutace pro simulaci procesu reprodukce. Zatím co GA pracují pouze s parametry účelové funkce optimalizační úlohy, genetické programování pracuje i s proměnnými a funkcemi s úlohou spojenými. Genetické programování je vhodné pro řešení speciálních problémů. Tyto algoritmy jsou silně závislé na charakteru řešeného problému a proto neexistují v obecné formě. Evoluční strategie na rozdíl od genetických algoritmů nemusí používat operaci křížení a potomky (varianty řešení problému v rámci vyhledávání optimálního řešení) mohou vytvářet např. pouze modifikací (mutací) jednoho rodiče (řešení). Pokročilé evoluční algoritmy (A-GA – Advanced GA) využívají ke zrychlení a zvýšení spolehlivosti nalezení optimálního řešení problému principy matematické statistiky. Jejich použití vyžaduje vytvoření tzv. pravděpodobnostního modelu řešení daného problému. Nová řešení jsou v průběhu vyhledávání optimálního řešení generována právě na základě tohoto modelu. 1.1. 1.2. Genetické algoritmy 1.3. Genetický algoritmus (GA) je robustní vyhledávací procedura, která je založena na principu přirozeného výběru a přírodní genetiky. Svoje největší uplatnění nachází v úlohách optimalizace a strojového učení. Genetické algoritmy se vyznačují 119
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy zejména těmito znaky: - mají daleko širší hranice svého použití, než klasické optimalizační metody. Z pohledu způsobu formalizace zadání optimalizační úlohy jsou to metody zcela univerzální. Omezení jejich praktické použitelnosti je dáno hlavně dobou výpočtů. - nepracují s lokálními parametry optimalizovaného procesu, nýbrž operují s globální strukturou - chromozomem - v němž jsou jednotlivé parametry zakódovány. - jsou to slepé prohledávací metody, které principiálně nevyžadují dodatečné informace pro řízení výpočtu (jako např. metody gradientní). Pro orientaci optimálního postupu řešení vyžadují pouze formulaci účelové funkce. Dodatečné informace však mohou významně snižovat dobu, potřebnou k nalezení optimálního řešení. - pro řízení vyhledávacích procedur využívají, na rozdíl od jiných metod, stochastická přechodová pravidla. 1.4. Genetické algoritmy (GA) patří proto mezi stochastické heuristické optimalizační metody. GA jsou inspirovány adaptačními a evolučními mechanismy živých organismů. Největší uplatnění nacházejí u řešení problémů vícerozměrné optimalizace, pro které není známé (nebo je velmi složité) analytické řešení, a kde není známa vhodná efektivní numerická metoda. Obecná formulace optimalizační úlohy GA může být vyjádřena vztahem xopt = arg opt { f ( x ) x ∈ C}
(8.1.1)
kde f je účelová funkce, C je množina přípustných řešení, x je přípustné řešení a xopt je hledané optimální řešení. Důležitá je strategie vyhledávání řešení v množině C. Nejjednodušší strategií by bylo postupně generovat všechna přípustná řešení, pro každé vypočítat hodnotu účelové funkce a porovnáním stanovit optimální řešení. Pro prakticky řešené problémy nelze tento způsob často použít vzhledem k nekonečnosti množiny C. Dalším argumentem v neprospěch této metody je pochopitelný požadavek umět nejen nalézt optimální řešení, ale nalézt jej také co nejefektivnějším způsobem (s použitím dostupných prostředků v co nejkratším nebo alespoň rozumném čase). GA používá pro generování možných řešení strategii inspirovanou přírodním darwinistickým vývojem. Vychází se z teorie přirozeného výběru, kdy největší šanci na přežití a předání svého genetického materiálu dalším generacím mají jedinci nejlépe uzpůsobení daným podmínkám. Kromě toho GA zohledňují ještě další v přírodě existující mechanismus - mutaci, kterým se usnadňuje možnost adaptace na měnící se podmínky, a který rovněž omezuje nebezpečí degenerace (z hlediska optimalizace lze pro degeneraci vidět obdobu v uváznutí v lokálním extrému). GA mají iterační charakter. V jednotlivých iteracích se nepracuje s izolovaným řešením, ale s tzv. populací. Pro GA stejně jako pro všechny evolucí inspirované algoritmy je charakteristické populační prohledávání prostoru možných řešení. GA 120
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy pracuje v každé iteraci s několika (obecně mnoha, obvyklá hodnota řešeními obsaženými v populaci a snaží se pomocí genetických řešeními zajistit výskyt stále lepších řešení v iteraci další podle kombinací dobrých vlastností dvou jedinců se mohou rodit jedinci, předky.
bývá několik set) operací s těmito předpokladu, že kteří převýší své
Populace je tvořena jistým vhodným (po dobu běhu algoritmu zpravidla neměnným) počtem prvků. Obsahem těchto prvků jsou řešení uložená v chromozomech. Pro každý chromozom obsažený v populaci je vypočítána hodnota účelové funkce. Generování populace pro další iteraci se provádí na základě stávající populace genetickými operacemi, které se nazývají křížení a mutace. V operaci křížení se chromozom nové populace získává kombinací dvou chromozomů stávající populace. Řešení vstupující do této operace jsou stanovována náhodně, ovšem tak, aby pravděpodobnost použití každého člena populace v operaci křížení byla úměrná kvalitě jeho hodnoty účelové funkce. Na takto získanou populaci se aplikuje operace mutace a postup pokračuje další iterací. Počáteční populaci pro první iteraci lze vygenerovat např. náhodně. Genetické algoritmy jsou zjednodušením biologických mechanismů a je možné je (s výjimkou triviálních ukázkových příkladů) řešit pouze s využitím počítače. To je jedním z důvodů, proč pro GA není ustálen formální matematický popis ani odpovídající symbolika. Popis algoritmů bývá v literatuře uváděn slovně (případně včetně ukázek konkrétní implementace v nějakém programovacím jazyce). Je ovšem třeba podotknout, že zavedení symboliky má pro GA pouze omezený význam pro specifikaci některých základních konceptů nebo upřesnění některých dílčích kroků s ohledem na rozmanitost možností implementačních detailů a odchylek neexistuje jednotná úplná symbolika, která by umožňovala popsat činnost genetického algoritmu do všech detailů (do podoby, ze které by šlo přímo vycházet při realizaci implementace GA v programovacím jazyce). Genetický algoritmus je stochastický následující operátory a parametry: GA = ( N , P, f , Θ, Ω, Ψ ,τ )
heuristický
algoritmus
obsahující (8.1.2)
kde P je populace obsahující N prvků (jedinců, individuí): P = {S1 , S 2 ,..., S N }. Každý prvek S i , i = 1,..., N je řetězec (nebo množina) reálných čísel pevného počtu n reprezentující řešení problému.
f označuje účelovou funkci (Fitness Function), která přiřazuje každému prvku reálné číslo. Θ je operátor výběru (selekce) rodičovských prvků (Parent Selection Operator), který vybere u rodičovských prvků z P .
Ω je množina genetických operátorů zahrnující operátor křížení (Crossover) Ω c , operátor mutace (Mutation) Ω m a případně další problémově nebo
121
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy implementačně specifické operátory, které společně generují z u rodičů celkem v potomků (Offspring, Children):
Ψ je operátor redukce (Deletion), která odstraní v vybraných prvků z aktuální populace P (t ) . Poté je v potomků přidáno do nové populace P (t + 1) :
τ je kritérium ukončení běhu GA. Operátor výběru rodičů Θ a genetické operátory Ω mají pravděpodobnostní charakter, operátor redukce Ψ je zpravidla deterministický. Jedním ze základních konceptů GA je vymezení pojmu chromozom. Podle provedení GA může být chromozom jediným obsahem jedince S i , nebo může každý jedinec obsahovat více chromozomů. Chromozom x je abstraktní matematický objekt, který v reálné aplikaci může představovat vektor hodnot (reálných nebo celých čísel), popis grafové struktury, řetězec symbolů apod. Chromozomy jsou složeny z genů. Gen lze chápat jako prvek vektoru x . Předpokládáme zpracování na počítači, takže chromozom bude fyzicky reprezentován posloupností bitů. Tato posloupnost bude nutně mít konečnou délku, takže množina X všech přípustných chromozomů bude konečná.
X = {x1 , x 2 ,..., x k }
(8.1.3)
kde k je přirozené číslo. Pokud prvek populace S i obsahuje právě jediný chromozom, lze účelovou funkci f a řešení celého problému lze chápat jako optimalizační úlohu (hledání globálního minima) účelové funkce f :
xopt = arg min f ( x )
(8.1.4)
x∈ X
Cílem evoluce je vytvořit chromozom, který se co nejvíce blíží (nebo je dokonce roven) optimálnímu chromozomu xopt . Pravděpodobnostní charakter operátorů křížení a mutace je realizován pomocí dvou pravděpodobností Pc a Pm . Pravděpodobnost křížení Pc udává pro každý chromozom (obecně pro každý prvek populace), s jakou pravděpodobností bude operátorem Θ vybrán k reprodukčnímu procesu právě tento chromozom. Hodnota Pc je tedy pro každý chromozom jiná a její hodnota záleží na hodnotě účelové funkce pro každý chromozom, přesněji na přínosu (Fitness) každého chromozomu k úspěšnosti celé populace. Přínos F chromozomu pro úspěšnost populace P je nezáporné reálné číslo určené mapovací funkcí F , která splňuje podmínku:
122
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy f ( x1 ) ≤ f (x 2 ) ⇒ F ( x1 ) ≥ F ( x 2 )
(8.1.5)
Vztah (8.1.5) platí samozřejmě pro hledání minima. Závislost mezi hodnotou účelové funkce a přínosem obvykle bývá (ale nemusí nutně být) lineární Normalizovaný přínos bývá často interpretován přímo jako pravděpodobnost výběru každého chromozomu pro křížení Základní schéma běhu genetického algoritmu je potom následující: 1) Vygenerování počáteční populace (obvykle náhodně) 2) Ohodnocení jednotlivých členů populace pomocí účelové funkce 3) Selekce určeného počtu rodičů a vygenerování stanoveného počtu potomků aplikací operátoru křížení na vybrané rodiče, ohodnocení potomků 4) Sestavení nové populace (redukcí stávající populace a začleněním potomků) 5) Mutace a nový výpočet hodnot účelové funkce pro mutované jedince 6) Není-li splněna podmínka ukončení, opakovat od kroku 3 7) Za výsledek je považován jedinec s nejlepší hodnotou účelové funkce Je zřejmé, že uvedené schéma je (stejně jako zavedení jednotlivých operátorů v předchozím textu) pouze ideové. Pro konkrétní realizaci GA je třeba vyřešit celou řadu implementačních problémů. Tomuto problému je věnována následující podkapitola.
1.5. Řešené úlohy 8.1
Příklad 8.1.1
Typickou úlohou pro aplikaci genetického algoritmu je úloha optimalizace tří konstant spojitého regulátoru typu PID – proporcionálního zesílení Kp, integračního zesílení KI a derivačního zesílení KD.
Shrnutí pojmů Biologická evoluce je založena na změnách genetické struktury populace a zahrnuje štěpení, vznik a zánik vývojových linií organizmů. Evoluční mechanizmy jsou prověřeny v přírodě dlouhodobým vývojem. Lze je úspěšně aplikovat i na technické problémy, a to zejména takové, které jsou složité nebo těžko popsatelné matematickými metodami. Obecně jsou určeny k vyhledávání nejlepších (optimálních) řešení různých problémů. Evoluční algoritmy se dělí na genetické algoritmy, genetické programování a evoluční strategie. Genetické algoritmy se mají daleko širší hranice svého použití než klasické 123
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy optimalizační metody. Z pohledu způsobu formalizace zadání optimalizační úlohy jsou to metody zcela univerzální. Omezení jejich praktické použitelnosti je dáno hlavně dobou výpočtů. Nepracují s lokálními parametry optimalizovaného procesu, nýbrž operují s globální strukturou - chromozomem - v němž jsou jednotlivé parametry zakódovány. Jsou to slepé prohledávací metody, které principiálně nevyžadují dodatečné informace pro řízení výpočtu (jako např. metody gradientní). Pro orientaci optimálního postupu řešení vyžadují pouze formulaci účelové funkce. Dodatečné informace však mohou významně snižovat dobu, potřebnou k nalezení optimálního řešení. Pro řízení vyhledávacích procedur využívají, na rozdíl od jiných metod, statistická přechodová pravidla. Základním krokem k realizaci genetického algoritmu je definice chromozomu a účelové funkce, základními operátory genetického algoritmu jsou vygenerování populace, křížení a mutace. Genetické algoritmy jsou samy o sobě univerzálním, robustním a efektivním prostředkem pro hledání optimálních řešení problémů.
Otázky 8.1 8.1.1. Které evoluční teorie jsou základem genetických algoritmů ? 8.1.2. Jak je definována struktura chromozomu ? 8.1.3. Které operátory genetického algoritmu využívají stochastických přístupů ? 8.1.4. Jaká je posloupnost procedur genetického algoritmu ?
Úlohy k řešení 8.1 8.1.1 Vyjmenujte alespoň dva biologické evoluční procesy které proběhly v přírodě ! Další řešené příklady naleznete v kapitole: CVIČENÍ 5
Genetický algoritmus – hledání extrémů funkcí
CVIČENÍ 6
Genetický algoritmus – symbolická regrese
Další zdroje [1] Kvasnička, V. - Pospíchal, J. - Tiňo, P.: Evolučné algoritmy. STU Bratislava, 2000. ISBN 80-227-1377-5. [2] Goldberg D.E: Genetic Algorithms in Search, Optimization, and Machine Learning, Addisson-Wesley, 1989. ISBN:02-01157-67-5 [3] Pokorný, M.: Umělá inteligence v modelování a řízení, BEN Praha, 1996. ISBN 80-901984-4-9
124
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy
8.2
Implementace genetických algoritmů Čas ke studiu: 2 hodiny Cíl: Po prostudování tohoto odstavce budete umět
•
definovat funkci základních genetických operací • vysvětlit způsoby implementace genetických operátorů
Výklad Základem pro operace GA [1] je, jak již bylo řečeno, znakový řetězec (chromozom), v němž jsou zakódovány parametry studovaného procesu. Tento řetězec je, ve shodě se svým biologickým vzorem, nazván chromozomem. Principem funkce GA je pak kopírování těchto řetězců a vyměňování jejich částí navzájem. Reprezentace chromozomu Reprezentace chromozomu je jednou ze základních vlastností implementace GA. Formulace optimalizační úlohy (8.1.1) spolu se vztahem (8.1.3) určuje, že řešení je hledáno z konečné množiny vektorů parametrů (množina přípustných řešení), které nabývají diskrétních hodnot. Vektory parametrů jsou uspořádány do řetězců v chromozomech. Chromozomy se skládají z genů. Gen může být chápán jako základní stavební jednotku chromozomu bez ohledu na hranice prvků vektoru řešení. V takovém pojetí je gen jednotkou, která reprezentuje jeden bit, přitom samotný gen může být tvořen jedním nebo několika bity. Toto pojetí je rozšířením klasického Hollandova genetického algoritmu [2]. Dekódování jednotlivých prvků vektoru řešení z chromozomu na základě hodnot jednotlivých genů je potom záležitostí až účelové funkce. Velký význam je nutné přikládat použitému kódování údajů. Vzhledem k uložení dat v počítači jsou hodnoty genů tvořeny posloupností bitů. Jedná-li se o číselné údaje, jeví se jako zdánlivě nejschůdnější použití přirozeného dvojkového kódu. Často je používán Grayův kód. Velikost populace Při volbě velikosti populace N je třeba volit kompromis mezi dvěma protichůdnými požadavky - rozmanitost populace a rychlost konvergence GA k optimálnímu řešení.
125
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy
Je zřejmé, že při malé populaci bude počet různých jedinců v populaci (genofond) malý a nemusí obsahovat informace, které povedou k nalezení globálního extrému účelové funkce. V tomto případě bude sice GA konvergovat velmi rychle, ovšem často pouze k lokálnímu extrému. Nalezení extrému globálního je silně nepravděpodobné, neboť rekombinace chromozomů obsažených v populaci budou dávat jen málo rozmanitá řešení, která se budou pohybovat v okolí již nalezeného lokálního extrému. Možné vymanění z této lokální pasti může zajistit pouze operátor mutace, ovšem správná posloupnost mutací je nepravděpodobná. Důsledkem malé diverzity v populaci je situace, kdy po určitém (obvykle malém) počtu iterací jsou všechny chromozomy v populaci stejné. Tento jev se označuje jako degenerace nebo jako předčasná konvergence. Požadavek rozmanitosti vede tedy k volbě co největších velikostí populace. Důsledkem rozsáhlých populací je pochopitelně nižší rychlost konvergence, neboť k provedení jedné iterace bude nutné provést větší množství operací. Goldberg teoreticky dokázal [3], že pro binárně kódované řetězce optimální velikost populace exponenciálně roste s délkou řetězce. Pro většinu praktických problémů by to v důsledku znamenalo zpracovávat velmi rozsáhlé populace. Praktické zkušenosti však ukazují, že pro většinu problémů postačuje volba N ∈ 50,200 .
Počáteční populace Pro volbu počáteční populace se používají dva základní přístupy: a) počáteční populace se vygeneruje náhodně b) počáteční populace se získá jako množina známých vyhovujících řešení, získaných pomocí jiné heuristické metody V případě, že prvotní populace je generována náhodně, je samozřejmě výhodné, aby byla dodržena co největší rozmanitost jedinců. To lze zajistit například nepřipuštěním vstupu více totožných jedinců do počáteční populace. GA, které používají v počáteční populaci řešení získaná jinou metodou se nazývají hybridní. Účelová funkce Nejjednodušším způsobem definice účelové funkce GA je použití přímo účelové funkce řešeného problému. V zásadě je to možné, protože nečiní praktické potíže realizovat GA pro maximalizační i minimalizační úlohu. Někdy se ale tato účelová funkce musí pro účely GA modifikovat. GA představuje pouze nástroj na prohledávání stavového prostoru a je poměrně obtížné zařídit, aby byla generována pouze řešení splňující jisté podmínky. Informaci o splnění těchto podmínek je vhodné zařadit také do účelové funkce. Operací křížení nebo mutace může totiž obecně vzniknout řešení, které nepatří do množiny přípustných řešení (nebo je sice přípustné, hodnotu účelové funkce lze vyčíslit, tato hodnota se dokonce může pohybovat v rozumném rozsahu, ale řešení je 126
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy z nějakých důvodů nežádoucí). Náprava tohoto jevu přímo v realizaci příslušného operátoru obvykle silně komplikuje implementaci, a tak bývá výhodnější tato nepřípustná (nebo jinak nežádoucí) řešení do populace zařadit, ovšem uměle jim přiřadit silně nevýhodnou hodnotu účelové funkce. (Toto řešení je samozřejmě vhodné pouze v případě, že vznik nepřípustných řešení není příliš častý, jinak by mohlo v extrémním případě dojít k zaplnění populace samými nepřípustnými řešeními.) V každém případě by bylo chybou automaticky všechna vzniklá nepřípustná řešení vyřazovat z populace. Vzhledem k charakteru genetických operátorů totiž může potomkem dvou nepřípustných řešení být řešení přípustné (nebo dokonce optimální). Výběr rodičů Mechanismus výběru rodičů hraje v GA jednu z klíčových rolí. Zdánlivě by mělo být nejvýhodnější pro reprodukci vybírat jedince s co nejlepší hodnotou účelové funkce. To je ovšem pravda jen do jisté míry. Tímto přístupem se snižuje variabilita genetického materiálu a zvyšuje se riziko uváznutí GA v lokálním extrému. Podobně jako při volbě malé velikosti populace má v tomto případě GA sklon k rychlé degeneraci. Nejčastěji používané strategie jsou následující: Proporcionální výběr (Proportionate Selection) Konkrétní realizace výběru se provádí buď pomocí losování analogického s ruletou (každému jedinci je určena výseč rulety o velikosti odpovídající normalizovanému přínosu, celé kolo rulety má rozsah 0,1 , generuje se náhodné číslo z intervalu 0,1 a vybere se jedinec, kterému přísluší odpovídající výseč), nebo se vygeneruje pomocná populace o počtu N * (obvykle platí N * > N ) taková, ve které jsou jedinci zastoupeni poměrně v počtu odpovídajícím jejich normalizovanému přínosu a vylosování jedince se provádí generováním náhodného čísla v rozsahu 1, N * . Uspořádaný výběr (Rank Selection) Při použití uspořádaného výběru se jedinci v populaci seřadí vzestupně podle přínosu a výběrové pravděpodobnosti jedinců jsou odvozeny od jejich pořadí v takto setříděné populaci. Modifikací tohoto způsobu je strategie, kdy se jako první rodič postupně vybírají chromozomy v pořadí od nejhoršího členu populace směrem k nejlepšímu členu populace. Druhý rodič se pak generuje náhodným výběrem ze všech chromozomů lepších než první rodič. Turnajový výběr (Tournament Selection) Turnajový výběr je velmi často používaný způsob výběru. Algoritmicky se při něm postupuje tak, že se z populace zcela náhodně (tj. nezávisle na ohodnocení) vybere (často jen dvoučlenná) skupina jedinců, mezi nimiž se uspořádá turnaj. Vítěz
127
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy či vítězové, tj. jeden nebo dva nejlépe ohodnocení jedinci ve skupině, se stanou rodiči budoucích potomků. Operátor křížení Způsob realizace operátoru křížení (Crossover Operator) je pro chování GA velmi důležitý. Operátor křížení vytváří nového jedince (potomka) kombinací segmentů vybraných rodičovských prvků. Běžně jsou uváděny následující způsoby realizace operátoru křížení: Jednobodové křížení (One-point Crossover) Tento typ křížení se používá v klasických variantách GA. Princip spočívá v náhodném určení bodu křížení a výměně segmentů dvou rodičů. Tímto způsobem vznikají dvě různé varianty potomků, obvykle se ale dále pracuje pouze s jednou z nich - Obr.8.2.1
. Obr.8.2.1 Vícebodové křížení (Multi-point Crossover) Vícebodové křížení lze chápat jako zobecnění jednobodového křížení povolením více než jednoho bodu křížení. Uniformní křížení (Uniform Crossover) Při použití tohoto typu křížení je každý gen potomka získán kopírováním odpovídajícího genu jednoho nebo druhého rodiče, přičemž použití genů obou rodičů má stejnou pravděpodobnost. Výběr se provádí podle binárního čísla náhodně vygenerovaného z alternativního rozdělení. Namísto genů se uniformní křížení může týkat přímo jednotlivých bitů.
128
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy Volbu způsobu křížení a výběr bodu křížení je nutno stanovit s ohledem na strukturu chromozomu (rozhodující je charakter dat uložený v chromozomu). Právě z charakteru aplikace a tvaru chromozomu vyplyne, zda lze bod křížení stanovit na zcela libovolném místě nebo např. pouze na hranicích jednotlivých genů. Operátor mutace Operátor mutace (Mutation Operator) s jistou malou pravděpodobností modifikuje každý chromozom populace. Hlavním cílem mutace je snaha zabránit degeneraci (algoritmus nalezne lokální extrém a jen velmi málo chromozomů v populaci obsahuje genetický materiál, který by algoritmu umožnil tento lokální extrém opustit, v krajním případě nemusí takové informace obsahovat žádný chromozom). V bitové reprezentaci bývá mutace konkrétně realizována invertováním příslušného bitu (Obr.8.2.2). Existují však i jiné možnosti realizace tohoto operátoru. Například je možné měnit celou
Obr.8.2.2 souvislou skupinu bitů. Pro některé aplikace, kde hodnota každého genu představuje vícebitovou hodnotu (jakožto jeden z prvků vektoru řešení) může být výhodné nerealizovat mutaci jako bitovou operaci, ale jako změnu hodnoty genu o jistou náhodnou (malou, limitovanou) hodnotu. Limit pro tuto hodnotu je v tomto případě druhým parametrem mutace. I tato modifikace operátoru mutace může mít za následek snadnější překonání Hammingovy bariéry. Dolní mez pravděpodobnosti mutace bývá obvykle udávána hodnotou 1/n, kde n je délka chromozomu (měřená v bitech nebo v genech). Horní mez se obvykle neudává. Platí, že při větší pravděpodobnosti mutace vykazuje GA lepší schopnost vyváznout z pasti lokálního extrému. Na druhé straně je ale nutno podotknout, že při příliš velké hodnotě pravděpodobnosti mutace (a navíc při případné volbě příliš dlouhé série mutovaných bitů nebo příliš velké hodnotě limitu mutace u alternativních realizací operátoru mutace) mění GA svůj charakter, mutace se stává hlavní hybnou silou evoluce nových řešení a význam křížení naopak klesá. Tím se mění charakter prohledávání stavového prostoru a přibližuje se např. strategii slepého prohledávání. Změna populace
129
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy Změnou populace (Replacement Scheme) se rozumí strategie, která je používána pro vytvoření populace pro následující iterační krok GA. V této nové populaci se obecně mohou vyskytovat jak jedinci nově vygenerovaní operátorem křížení, tak i jedinci převzatí z minulého iteračního kroku. V literatuře bývají uváděny dvě základní strategie: Generační výměna (Generational Replacement) Tato strategie spočívá v náhradě všech prvků populace novými jedinci vzniklými operací křížení. To znamená, že křížením musí být v každém kroku vygenerován počet jedinců rovný velikosti populace. Inkrementální náhrada (Steady-state Replacement, Incremental Replacement) Křížením se vygeneruje pouze několik nových prvků (méně než je velikost populace) a tyto prvky nahradí odpovídající počet prvků ve stávající populaci. K výběru nahrazovaných (rušených) prvků se používají následující strategie: a) Náhrada náhodně vybraného prvku (Randomly Chosen Member Replacement) - tato strategie je používána pouze zřídka, vlastnosti GA se v tomto případě výrazně neodlišují od GA používajících generační výměnu. b) Náhrada nejhoršího prvku (Least-fit Member Replacement). c) Náhrada náhodně vybraného prvku s podprůměrnou hodnotou účelové funkce.
U strategie změny populace (zejména u inkrementálních náhrad) bývá někdy požadována podmínka, aby do populace nebyl zařazován prvek shodný s prvkem, který je v populaci již obsažen. Opět se jedná o snahu zabránit degeneraci populace. Strategie použitá pro změnu populace významným způsobem ovlivňuje chování GA. Předně může odpovědět na otázku, zda se GA při konvergenci chovají jako monotónní. Je zřejmé, že neexistuje žádná záruka, že řešení získaná operátory křížení a mutace nebudou vykazovat horší hodnoty účelové funkce než měla řešení v minulém iteračním kroku (rodičovská populace). Z tohoto důvodu nelze při použití jak generační výměny, tak náhrady náhodně vybraného prvku, monotónnost konvergence zaručit. Jednou z možností, jak zajistit monotónnost a přitom používat libovolnou strategii změny populace je použití tzv. elity [4]. Elita je představována nejlepším doposud nalezeným řešením (jedním nebo několika různými). Elita beze změny přechází do další iterace. Složení elity se postupně mění se zlepšováním nalezeného řešení. Smyslem zavedení elity je vcelku samozřejmý názor, že není účelné zbavovat se nejlepšího dosud nalezeného řešení.
130
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy Kritérium ukončení Za nejvhodnější podmínku ukončení běhu GA by bylo možné považovat dosažení řešení nebo alespoň přiblížení se k řešení s požadovanou přesností. Tento přístup lze ale používat pouze při testování algoritmů. Při použití GA k řešení praktických úloh je nejlepší řešení neznámé, takže jeho dosažení explicitně testovat nelze. Jako podmínku ukončení běhu GA lze v analogii k iteračním metodám numerické matematiky používat: a) porovnání výsledků generovaných několika (mezigenerační zlepšení kriteriální funkce)
posledními
iteracemi
b) maximální počet iterací (generací) GA Zkušenosti ukazují, že zlepšování řešení obvykle neprobíhá v každé iteraci. Pozorovaná stagnace mezigeneračního vývoje nejlepší nalezené hodnoty kriteriální funkce potom může znamenat jednu z následujících situací: i) Jedná se o přirozený dočasný jev, GA bude úspěšně pokračovat v řešení. ii) GA uváznul v lokálním extrému, pravděpodobně došlo k degeneraci, další úspěšný vývoj je ohrožen. iii) GA nalezl nejlepší možné řešení, další zlepšování již nemůže nastat. Je zřejmé, že v prvních dvou popsaných situacích nebylo řešení nalezeno. Použití podmínky a) jako kritéria ukončení tedy naráží na nemožnost klasifikace situace iii). Prvořadým cílem kritéria ukončení podle varianty b) je zajistit vůbec nějaké ukončení algoritmu, aby nemohlo docházet k nekonečným smyčkám. Tato základní myšlenka může být rozšířena o hledání typického počtu iterací potřebného pro nalezení globálního extrému. Bude-li tento počet nalezen, lze jej použít jako přídavné kritérium k podmínce formulované podle bodu b). Operátor smrt Největším problémem používání GA pro řešení praktických úloh se jeví být problém degenerace (zejména u složitých účelových funkcí s mnoha lokálními extrémy), tj. uváznutí řešení v lokálním extrému a následné vytěsnění prvků s odlišným genetickým materiálem z populace. Vymanění se z lokální pasti je při použití genetických operátorů křížení a mutace velmi komplikované a zdlouhavé. V horším případě (bohužel velmi častém) se GA z lokálního extrému v rozumném počtu iterací vymanit nedokáže. Jako řešení této situace lze použít restartování algoritmu. Další z cest je zajistit rozmanitost v populaci, např. použitím proměnlivé pravděpodobnosti mutace. Uvedená řešení jsou však nasazována až jako reakce na nastalý fakt zachycení algoritmu v lokálním extrému a neschopnost tento extrém se stávajícím složením populace opustit. Obtížná je také již samotná detekce takovéto situace. Jako velmi dobré řešení uvedeného problému se ukázalo zavedení redukčního operátoru smrt do strategie změny populace. Operátor zavádí omezenou dobu života
131
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy jedinců v populaci a přináší tak sebou kontinuální částečný restart GA. Činnost operátoru smrt lze charakterizovat následovně: 1) Je zavedena globální hodnota představující limit doby života. 2) Každý jedinec obsahuje čítač, představující věk jedince. Na začátku života jedince (vznik nového jedince použitím generátoru náhodných čísel nebo vznik potomka operací křížení) je věk nastaven na hodnotu 0. 3) Populace (resp. každý její jedinec) stárne, operace stárnutí je realizována inkrementací věku každého jedince v každé iteraci. Jedinci, jejichž věk přesáhne globální limit doby života, umírají, jsou z populace odstraněni a nahrazeni novými náhodně vygenerovanými jedinci (s věkem 0). 4) Věk jedince nemá vliv na výběr rodičů pro křížení ani na mutaci. Stejně tak platí, že mutace chromozomu jedince neovlivňuje věk tohoto jedince. 5) Samotný čítač věku nepodléhá křížení ani mutaci, jeho hodnota je měněna výhradně způsobem dle bodů 1 a 2. 6) Pro zajištění monotónnosti si GA zapamatovává nejlepší dosud nalezené řešení. V populaci se ovšem nemusí vyskytovat jedinec, který by byl nositelem tohoto řešení (mohl být odstraněn pro překročení věkového limitu); v tomto případě se nejlepší řešení neúčastní reprodukce. Sexuální reprodukce GA se sexuální reprodukcí využívá další analogii živé přírody. V přírodou používané sexuální reprodukci vzniká diploidní potomek spojením haploidních pohlavních buněk diploidních rodičů. Pro napodobení této strategie v genetickém algoritmu je třeba uvážit, jaké modifikace klasického GA může modelování sexuální reprodukce přinést. Prvním důležitým rysem je existence diploidních chromozomů a související problematika dominance a recesivity (Podkap. 8.1). Druhým rysem je fakt, že v populaci nejsou všichni jedinci rovnocenní z hlediska účasti v reprodukčním procesu. Existují jedinci dvou typů (pohlaví). Reprodukce je možná pouze odvozením potomka z rodičů, z nichž každý je jiného pohlaví. Pohlaví potomka je určováno děděním, pravděpodobnost vzniku potomka každého pohlaví je 0,5. V GA, který modeluje sexuální reprodukci, je populace rozdělena do dvou stejně početných částí. Jedna část představuje samčí a druhá samičí část populace. Příznak příslušnosti k pohlaví je uložen ve speciálním genu. Tento pohlavní gen podléhá křížení stejně jako ostatní části chromozomu. Hodnota vzniklá křížením určuje, do které části populace bude jedinec zařazen. Pohlavní gen nepodléhá mutaci. Operátor výběru rodičů Θ je modifikován tak, aby potomek byl vytvářen křížením dvou rodičů, kde každý rodič je z jiné části populace. Pro výběr rodičů z každé části populace potom může být použita bud' některá ze standardních strategií popsaných v kapitole 2.3.5, nebo lze vycházet z analogií s některým z existujících sociálních společenství. Je třeba zdůraznit, že použitá výběrová strategie může být v každé části populace jiná. Tak lze modelovat např. promiskuitní nebo zdrženlivé chování, stáda vedená dominantním samcem, párový systém apod.
132
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy
Řešené úlohy 8.2 Příklad 8.2.1 Příklad zakódování konkrétní úlohy do chromozomu. Jsou zakódovány chromosomy dvou optimalizovaných parametrů, jejichž hodnoty 41 a 43 jsou kódovány jako osmibitová dvojková čísla.
Shrnutí pojmů Chromozomy se skládají z genů. Gen může být chápán jako základní stavební jednotku chromozomu bez ohledu na hranice prvků vektoru řešení. V takovém pojetí je gen jednotkou, která reprezentuje jeden bit, přitom samotný gen může být tvořen jedním nebo několika bity. Velký význam je nutné přikládat použitému kódování údajů. Vzhledem k uložení dat v počítači jsou hodnoty genů tvořeny posloupností bitů. Při volbě velikosti populace N je třeba volit kompromis mezi dvěma protichůdnými ožadavky - rozmanitost populace a rychlost konvergence GA k optimálnímu řešení. Pro volbu počáteční populace se používají dva základní přístupy - počáteční populace se vygeneruje náhodně nebo počáteční populace se získá jako množina známých vyhovujících řešení, získaných pomocí jiné heuristické metody Nejjednodušším způsobem definice účelové funkce GA je použití přímo účelové funkce řešeného problému. V zásadě je to možné, protože nečiní praktické potíže realizovat GA pro maximalizační i minimalizační úlohu. Někdy se ale tato účelová funkce musí pro účely GA modifikovat. Mechanismus výběru rodičů hraje v GA jednu z klíčových rolí. Nejčastěji používané strategie jsou proporcionální výběr, uspořádaný výběr a turnajový výběr. Operátor křížení vytváří nového jedince (potomka) kombinací segmentů vybraných rodičovských prvků. Běžně jsou uváděny následující způsoby realizace operátoru křížení - jednobodové křížení, vícebodové křížení a uniformní křížení. Operátor mutace s jistou malou pravděpodobností modifikuje každý chromozom populace. Hlavním cílem mutace je snaha zabránit degeneraci (algoritmus nalezne lokální extrém a jen velmi málo chromozomů v populaci obsahuje genetický materiál, který by algoritmu umožnil tento lokální extrém opustit). Změnou populace se rozumí strategie, která je používána pro vytvoření populace pro následující iterační krok GA. V této nové populaci se obecně mohou 133
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy vyskytovat jak jedinci nově vygenerovaní operátorem křížení, tak i jedinci převzatí z minulého iteračního kroku. Existují dva možné způsoby - generační výměna nebo inkrementální náhrada. Za nejvhodnější podmínku ukončení běhu GA by bylo možné považovat dosažení řešení nebo alespoň přiblížení se k řešení s požadovanou přesností. Tento přístup lze ale používat pouze při testování algoritmů. Při použití GA k řešení praktických úloh je nejlepší řešení neznámé, takže jeho dosažení explicitně testovat nelze. Jako podmínku ukončení běhu GA lze v analogii k iteračním metodám numerické matematiky používat porovnání výsledků generovaných několika posledními iteracemi nebo maximální počet iterací (generací) GA. Jako velmi dobré řešení problému snížení pravděpodobnosti uváznutí řešení GA v lokálním extrému se ukázalo zavedení redukčního operátoru smrt do strategie změny populace. Operátor zavádí omezenou dobu života jedinců v populaci a přináší tak sebou kontinuální částečný restart GA. Sexuální reprodukce je operátorem, který umožňuje reprodukci pouze odvozením potomka z rodičů, z nichž každý je jiného pohlaví. Rozdělení jedinců do dvou skupin pohlaví je náhodné. Pohlaví potomka je určováno děděním, pravděpodobnost vzniku potomka každého pohlaví je 0,5.
Otázky 8.2 8.2.1. Jaké jsou způsoby vygenerování nové populace jedinců ? 8.2.2. Jak jsou generováni potomci pomocí operace křížení ? 8.2.3. Jak se realizuje operace mutace ? 8.2.4. Čím jsou ohodnocováni jedinci v generaci ? 8.2.5. Jak je definováno stop-kritérium běhu genetického algoritmu ?
Úlohy k řešení 8.2 8.2.1 Navrhněte chromozom pro zakódování parametrů fuzzy množiny A, která je dána čtyřmi body zlomu její po částech lineární lichoběžníkové funkce příslušnosti. K zakódování použijte binárního kódu: A: [5, 8, 12, 16]
Další řešené příklady naleznete v kapitole: CVIČENÍ 7
Genetický algoritmus – predikce časově omezených výstupů
CVIČENÍ 8
Genetický algoritmus – problém obchodního cestujícího
134
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy s genetickými algoritmy
Další zdroje [1] [2] [3] [4]
Kvasnička, V. - Pospíchal, J. - Tiňo, P.: Evolučné algoritmy. STU Bratislava, 2000. ISBN 80-227-1377-5 Holland, J. H.: Adaptation in Natural and Artificial Systems. The University of Michigan Press, Michigan, 1975. ISSN 2229-5518 Goldberg, D. E.: Genetic Algorithms in Search, Optimization and Machine Learning. Addisson-Wesley, 1989. ISBN:02-01157-67-5. Kvasnička, V.: Umelá evolúcia. Kognitívne vedy III., Bratislava, 2000. ISBN 978-80-227-3284-0.
135
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
9
SYSTÉMY VÝPOČTOVÉ INTELIGENCE
9.1
Integrace metod umělé inteligence Čas ke studiu: 2 hodiny Cíl: Po prostudování tohoto odstavce budete umět
• • • • • • • • •
vysvětlit důvody a principy kombinace metod umělé inteligence vyjmenovat nejpoužívanější metody soft-computingu vysvětlit princip kombinace metod fuzzy logiky a neuronových sítí popsat a objasnit příklad praktické aplikace vysvětlit použití genetického algoritmu pro optimalizaci parametrů neuronové sítě vysvětlit principy použití GA ve fuzzy modelování popsat a objasnit konkrétní aplikaci GA při optimalizaci parametrů fuzzy množin vysvětlit principy syntézy fuzzy, neuronových a GA přístupů popsat konkrétní metodu FNG na příkladu adaptivního regulátoru
Výklad V minulých kapitolách byly popsány nejpoužívanější metody umělé inteligence, založené na principech fuzzy množinové matematiky, umělých neuronových sítí a genetických algoritmů. Jejich principů využívají fuzzy expertní systémy, fuzzy regulátory, neuronové modely složitých soustav a genetické algoritmy pro optimalizaci procesů. Na příkladech použití těchto nástrojů byla demonstrována jejich efektivita a schopnost využívat pro svoji funkci neurčitosti a neúplných informací o soustavách i datech, které takové špatně popsatelné soustavy charakterizují. V průběhu vývoje a aplikací těchto metod umělé inteligence se ukázalo, že v mnohých případech lze jednotlivé metody, tj. přístupy fuzzy množinové matematiky, neuronových sítí a genetických algoritmů spojovat a vytvářet přístupy nové, kombinované, které jsou výkonnější než jejich přístupy jednotlivé. Tak vznikla celá řada nových nástrojů, které jsou zařazovány do širší oblasti tzv. výpočtové inteligence nebo soft-computingu [1]. Nejčastěji používanými kombinacemi jsou metody fuzzy-neuronové, fuzzy-genetické, neuro-genetické či konečně fuzzy-neurogenetické. V kombinacích se také vyskytují hybridní přístupy, které využívají i
136
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence principů konvenčních či nekonvenčních metod pravděpodobnostních a matematickou statistiku. V praktických aplikacích metod soft-computingu se nejčastěji vyskytují kombinace přístupů fuzzy logika + neuronové sítě neuronové sítě + genetické algoritmy fuzzy logika + genetické algoritmy fuzzy logika + neuronové sítě + genetické algoritmy. Následující kapitoly jsou věnovány těmto kombinacím s ukázkami příkladů praktického řešení. Fuzzy-neuronové systémy V mnohých případech praktického použití vícevrstvých neuronových sítí je jejich nevýhodou skutečnost, že neexistuje znalost kauzálních vztahů nebo postupů, jejichž prostřednictvím jsou vstupní veličiny transformovány na veličiny výstupní. Algoritmus neuronové sítě je v tomto případě pro vysvětlení způsobu výpočtu výstupních hodnot nedostatečný. Znalost postupu výpočtu v případě neuronových sítí je znalostí skrytou (tacitní). Velkou výhodou neuronových sítí je naopak jejich obecná schopnost samoučení. Naproti tomu velmi srozumitelný základ pro vyvození hodnot výstupních veličin představují fuzzy orientované pravidlové systémy. Podmíněná IF-THEN pravidla jsou dokonale srozumitelná hlavně pro uživatele, pro něž je takto popsaný systém transparentní a při použití vzbuzuje důvěru. Schopnost automatické identifikace fuzzy modelů je však omezená. Z těchto hledisek je proto velmi zajímavá kombinace fuzzy modelu a neuronové sítě, která umožňuje vysvětlení zásad výpočtu hodnot výstupních veličin pravidlovým popisem a přitom má plnou schopnost automatické identifikace parametrů pomocí trénovací množiny naměřených dat. V takových případech je pak použita vícevrstvá neuronová síť, jejichž neurony obsahují procedury nutné pro realizaci fuzzy modelu typu Mamdani nebo Takagi-Sugeno. Po naučení takové fuzzyneuronové sítě lze tvar i parametry takto identifikovaných pravidel z neuronové sítě extrahovat a pracovat s nimi dále jako s modelem pravidlovým. Velmi často se taková kombinace používá ve spojitosti s fuzzy-neuronovými modely nebo regulátory. Na rozdíl od fuzzy pravidlových modelů, v nichž jsou znalosti vyjádřeny explicitně ve formě jednotlivých pravidel, neuronová síť akumuluje znalosti implicitně (skrytě, tacitně) do hodnot synaptických vah a parametrů přenosových funkcí svých neuronů. Mají však velkou přednost v možnosti svého učení prostřednictvím tréninkové množiny. Fuzzy neuronové sítě jsou postaveny na principu transformace fuzzy pravidlového modelu do topologie odpovídající vícevrstvé neuronové sítě, adaptace (naučení) parametrů této sítě pomocí trénovací množiny a zpětné transformace naučené sítě do explicitních fuzzy pravidel. Takový přístup ukazuje Obr.9.1.1.
137
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Obr.9.1.1 Uvažujme expertně sestavený model typu Mamdani, jehož struktura je dána mvstupními proměnnými xj, j = 1,…,m a jednou proměnnou výstupní y. i-té pravidlo takového modelu má tvar Ri: IF (xi is A1i) and ... and (xm is Am1) THEN (y is Bi) V této fázi tvorby modelu jsou jeho parametry neznámé. K jejich identifikaci použijeme metodu fuzzy neuronové sítě. Topologie takové neuronové sítě musí odpovídat struktuře (tvaru a počtu pravidel) fuzzy modelu, přenosové funkce neuronů sítě pak musí realizovat fuzzy procedury nutné i realizaci inferenčního mechanizmu (zde typu Mamdani). Vyvozenou výstupní fuzzy množinu B0 získáme jako výstup rovnice představující tzv. Maximo-minimální vyvozovací pravidlo (odpovídající metodě vyvození popsané v kap.5.2.)
B0 = ∫ max min{min μ Aij ( x j ) ⋅ μ Bi ( y ) / y y
j
i
Číselný výstup fuzzy neuronové sítě y* získáme defuzzifikací fuzzy množiny B0 procedurou n
y∗ = defuzz ( B0 ) =
∫ y ⋅ ∑ μB y
gr r
r =1
n
∫ ∑ μB y
r =1
gr r
( y ) dy
( y )dy
kde Br , r=1,…,n jsou jazykové hodnoty výstupní jazykové proměnné a gr je ořezávací koeficient pro jejich hodnoty (viz kap.5.2.). Transformace takového modelu a jeho realizace fuzzy procedur je provedena s využitím 5-ti vrstvé neuronové sítě podle Obr.9.1.2
138
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Obr.9.1.2 Označme obecně přenosovou funkci neuronu takové sítě f jako
y = f [a( x1 , x2 ,..., xn )] kde xi, i = 1,…,n jsou vstupy neuronu, a(.) je agregační funkce neuronu a f(.) je jeho funkce přenosová. Pro neurony první vrstvy (vstupní s indexem n) platí vztahy
a n ( xn ) = xn f n (an ) = an Ve druhé vrstvě (s indexem m) reprezentuje každý neuron jednu jazykovou hodnotu vstupní proměnné a obsahuje funkci příslušnosti její fuzzy množiny. Tyto neurony realizují proceduru výpočtu stupně příslušnosti aktuální hodnoty vstupní proměnné k této fuzzy množině. Váhový koeficient wmn mezi neurony první a druhé vrstvy je přitom roven 1.
am ( xm ) = μ Am ( xm ) f m (am ) = am Každý neuron třetí vrstvy (s indexem l ) odpovídá jednomu podmíněnému pravidlu a je spojen s neurony druhé vrstvy podle jazykových hodnot které jsou obsaženy v antecedentu příslušného pravidla. Plní proceduru výpočtu výsledné pravdivostní hodnoty (ořezávacího koeficientu) pravidla.
al ( x1 , x2 ,..., x p ) = min{x1 , x2 ,..., x p } f l (al ) = al Váhové koeficienty wlm mezi druhou a třetí vrstvou neuronů jsou opět rovny 1.
139
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence Každý neuron čtvrté vrstvy (s indexem j) odpovídá jedné jazykové hodnotě výstupní proměnné a je propojen s těmi neurony třetí vrstvy, které reprezentují pravidla které se k této hodnotě vyjadřují ve svém konsekventu. Každý neuron této vrstvy vypočítává tvar ořezané fuzzy množiny jazykové hodnoty Br. Váhový koeficient mezi neurony třetí a čtvrté vrstvy je opět roven 1.
ak = ( x1 , x2 ,..., xq ) = max{x1 , x2 ,..., xq } = g k b1 k ( g k ) = ∫ y ⋅ μ B gk ( y )dy y
i
b 2 k ( g k ) = ∫ μ B gk ( y )dy y
i
Neuron v páté vrstvě (index k) sestavuje fuzzy množinu výsledné odpovědi modelu B0 a provádí její defuzzifikaci
y∗ = defuzz ( B0 ) = a j =
b1 k ( g k ) ⋅ b 2 k ( g k ) b2k (gk )
f j (a j ) = a j Váhový koeficient mezi neurony čtvrté a páté vrstvy je opět roven 1. Takto je provedena transformace fuzzy pravidlového modelu do topologie odpovídající vícevrstvé neuronové sítě. Pro její adaptaci (učení) je možno použít metodu Back Propagation (BP), uvedenou v Podkap.8.1. Uvedený postup konstrukce a využití fuzzy-neuronového modelu je uveden na Obr.9.1.3
140
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Obr.9.1.3 Takto naučenou (adaptovanou) fuzzy-neuronovou síť můžeme použít k vyvozování výstupní hodnoty modelu buď přímo bez dalších úprav, nebo můžeme extrahovat její parametry k parametrizaci pravidel původního fuzzy pravidlového modelu (procedura retransformace, zpětné transformace). Tím získáme výchozí fuzzy model nyní již parametricky identifikovaný. Fuzzy neuronová síť tak umožňuje automatickou identifikaci modelu Mamdani pomocí tréninkové množiny dat.
Neuro-genetické systémy Idea využití GA v neuronových systémech spočívá v realizaci úlohy adaptace (učení) neuronových sítí jako optimalizace počtu vrstev, počtu neuronů a synaptických vah pomocí GA [10]. Jde tedy o náhradu běžně používané adaptační metody BP, jak byla na případu obecných neuronů uvedena v Podkap 8.1. Využití BP algoritmu pro adaptaci (učení) neuronové sítě, popsaného v
141
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence Podkap.8.1, naráží v určitých případech na řadu potíží. Reálné prostředí je totiž typické svojí diskontinuitou a silnou multimodálností, špatně definovanými hodnotami, šumem a pod. V takových případech může BP algoritmus nemusí být dostatečně robustní a efektivní a neuronová síť může směřovat k lokálnímu minimu, i když je v blízkosti minimum mnohem hlubší. Lepší výsledky dává v tomto případě náhrada metody BP metodou GA. Zdůrazněme nejprve dva základní rysy GA při optimalizaci multimodálních funkcí: - GA má schopnost konvergovat k optimu, lokálnímu nebo globálnímu, po určení oblasti takové optimum obsahující; - GA má schopnost prohledat nové oblasti prostoru řešení a hledat optimum globální. Tyto dva rysy zajišťují při řešení optimalizačních úloh vyšší robustnost metody GA než metody BP. Fuzzy-genetické systémy Konkrétní realizace genetického algoritmu vyžaduje vždy speciální implementaci genetických operátorů (křížení, reprodukce a mutace). Jelikož genetický algoritmus je univerzálním prostředkem pro hledání optimálního řešení úloh, lze jej použít i v případě optimalizace fuzzy modelů. V úloze použití genetického algoritmu při optimalizaci struktury i parametrů fuzzy IF-THEN pravidel existuje několik možností jeho aplikace. Základním problémem je zde vhodné uložení optimalizovaných veličin do struktury chromozomu a volby vhodného způsobu jejich zakódování. Základními optimalizačními úlohami v případě pravidlového fuzzy modelu je stanovení počtu pravidel, počet jazykových hodnot jeho vstupních a výstupních jazykových proměnných, stanovení kombinací dílčích fuzzy tvrzení v antecedentech, pravidel, stanovení tvaru a parametrů fuzzy množin pro formalizaci jazykových hodnot proměnných. Způsob integrace fuzzy modelu a genetického algoritmu nejlépe vysvětlíme na příkladu, v němž je uveden jednak způsob genetické optimalizace velikosti parametrů fuzzy množin jazykových hodnot, jednak způsob hledání optimální struktury pravidel modelu. Fuzzy-neuro-genetické systémy Syntéza principů fuzzy logiky, neuronových sítí a genetických algoritmů je dalším rozšířením možností soft-computingu, které vede ke zvýšení efektivity nástrojů umělé inteligence. Kombinace fuzzy-neuronových principů byla vysvětlena v kapitole 9.2. Jestliže tato symbióza vedla k prohloubení principů samoučení fuzzy modelů, je cílem rozšíření kombinace o genetické algoritmy realizace automatické optimalizace těch úloh, které jsou jinak řešeny pouze subjektivním návrhem zkušeného odborníka.
142
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence Principiální zásady integrace principů GA ve schématu fuzzy neuronového systému jsou stejné jako v případě systému fuzzy-genetického nebo neurogenetického. Způsob integrace nejlépe pochopíme z následujícího praktického příkladu.
Řešené úlohy 9.1 Příklad 9.1.1 Jako příklad použití fuzzy-neuronového modelování zvolíme úlohu aproximace solně nelineární závislosti. Pro její popis použijeme fuzzy pravidlový model a provedeme jeho transformaci do formy neuronové sítě s její následnou adaptací [10]. Pro účely modelování vytvořme umělý systém popsaný nelineární rovnicí f(x) = 1/40.[3(4x-2)(4x-3)(4x-3.7)(4x-1.3)(4x-0.2) + 20] Na Obr.2 je plnou čarou znázorněn průběh výchozí funkce f(x). Výchozí navržené rozdělení vstupního fuzzy prostoru X a výstupního fuzzy prostoru Y na 6 podprostorů je nakresleno na Obr.1.
Obr.1
Obr.42 Obr.2
143
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Pro fuzzy popis chování funkce f(x) bylo sestaveno 6 podmíněných pravidel: R1: IF X is A1 THEN Y is B1 R2: IF X is A2 THEN Y is B5 R3: IF X is A3 THEN Y is B3 R4: IF X is A4 THEN Y is B4 R5: IF X is A5 THEN Y is B2 R6: IF X is A6 THEN Y is B6 Při použití Mamdaniho inference a metody defuzzifikace pomocí těžiště je chování fuzzy modelu znázorněno čárkovanou křivkou na Obr.2. Z tohoto fuzzy modelu lze zkonstruovat fuzzy neuronovou síť, jejíž vrstvy mají následující počet neuronů: 1 (1.vrstva), 6 (2.vrstva), 6 (3.vrstva), 6 (4.vrstva), 1 (5.vrstva). Fuzzy - neuronový model je nakreslen na Obr.3.
Obr.3 Pomoci rovnice f(x) bylo vygenerováno 50 dat trénovací množiny. Rekonstruované fuzzy množiny po ladění jsou nakresleny na Obr.4. Zlepšení adekvátnosti naladěného modelu ukazují průběhy na Obr.5. Další ladění modelu provedeno nebylo, neboť jeho adekvátnost byla shledána dostatečnou.
144
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Obr.4
Obr.5 Příklad 9.1.2 První typ chromozomu obsahuje zakódování polohy středu základny trojúhelníkových fuzzy množin jazykových hodnot a zakódování hodnot krajních bodů těchto základen (fuzzy množiny mají tvar rovnoramenných trojúhelníků). Způsob zakódování jedné fuzzy množiny v chromozomu je na Obr.1.
145
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Obr.1 GA algoritmus může mít následující variantu procedury křížení: - stanovení bodu křížení chromozomu prvního rodiče náhodným výběrem - stanovení bodu křížení chromozomu druhého rodiče náhodným výběrem - zkopírování celé pravé části chromozomu prvního rodiče do levé části chromozomu druhého následníka - zkopírování celé pravé části chromozomu druhého rodiče do levé části chromozomu prvního následníka. Procedura produkuje chromozomy následníků o různé délce, protože dělicí bod neleží obecně uprostřed bitového řetězce chromozomu rodičů. Aby byl zachován smysl parametrů (který je dán jejich pozicí v pravidle) zakódovaných v řetězci, každý chromozom pozůstává z řetězce (úplných) pravidel. Dělicí bod však leží uvnitř bitového řetězce pravidla, proto je vždy jeden z parametrů uvnitř rodičovského páru změněn. Tato změna se děje náhodně, avšak se stejnou pravděpodobností velikosti změny v kladném nebo záporném smyslu. Celá situace je znázorněna na Obr.2
Obr.2 Tato metoda křížení produkuje fuzzy regulátory o různém počtu pravidel. Integrace principů fuzzy logiky a GA je popsána i v příkladu následující kapitoly. Příklad 9.1.3 Pěkným příkladem efektivity optimalizace funkce pomocí GA je příklad optimalizace charakteristiky stejnosměrného sériového elektromotoru. Regulace otáček 146
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence stejnosměrného sériového motoru [63] je prováděna změnami jeho budícího proudu. Jeho charakteristika (závislost otáček motoru N na buzení I) je nakreslena na Obr.1.
Obr.1 Jazykový popis výchozí (neoptimalizované) nelineární charakteristiky je proveden pomocí IF-THEN pravidel ve formě: R1: IF (I is NULL)
THEN (N is VELMI VYSOKÝ)
R2: IF (I is ASI NULA)
THEN (N is VYSOKÝ)
R3: IF (I is MALÝ)
THEN (N is STŘEDNÍ)
R4: IF (I is STŘEDNÍ)
THEN (N is MALÝ)
R5: IF (I is VYSOKÝ)
THEN (N is ASI NULA)
R6: IF (I is VELMI VYSOKÝ)
THEN (N is ASI NULA)
Fuzzy relace modelu je vytvořena jako R(I,N) = R1 and R2 and R3 and R4 and R5 and R6 Model pracuje se 6 jazykovými hodnotami vstupní a 5 jazykovými hodnotami výstupní proměnné. Fuzzy interpretace těchto hodnot je uvedena na Obr.2.
147
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence
Obr.2 Pro hodnocení adekvátnosti modelu je použita kvadratická ztrátová funkce. Velikost ztrátové funkce výchozího modelu je e2=2,633.10-2. Pro optimalizaci modelu bylo použito genetického algoritmu způsobem, popsaným v kap.8.2. Chromozom obsahoval 12 genů, reprezentujících parametry fuzzy množin jazykových hodnot vstupní nezávislé jazykové proměnné I. Parametry procedury GA jsou uvedeny v Tab.1: Rozsah populace
50
Rozsah generace
100
Pravděpodobnost křížení
0.9
Pravděpodobnost mutace
0.1
Modif. koeficienty
a, ß <-1.5, 1.5>
Tab.1 Výsledkem optimalizace pomocí GA jsou optimalizované tvary funkcí příslušnosti, uvedené na Obr.3.
Obr.3
148
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence Průběh optimalizované charakteristiky je uveden na Obr.49 (Skutečný průběh). Velikost ztrátové funkce při použití tohoto modelu poklesla z hodnoty e2 = 2,633.10-2 na hodnotu e2 = 5.68*10-6, tedy o 4 řády. Použití GA bylo tedy velmi efektivní. Příklad 9.1.4
Obr.1 Příklad vysvětluje rozšíření metody soft-computingu ve schématu fuzzy neuronového regulátoru. Schéma automaticky se adaptujícího fuzzy-logického neuronového regulátoru je uvedeno na Obr.1. Ladění využívá chybový signál mezi výstupem regulované soustavy a jejího referenčního modelu E(t) = [y(t) – ym(t)] Fuzzy PID regulátor pracuje s řídicími pravidly typu IF (e is Ai) and (Σe is Bi) and (de is Ci) THEN (dU is Di) kde e vyjadřuje regulační odchylku, Σe sumu a de diferenci regulační odchylky, U je akční veličina, Ai, Bi, Ci jsou jazykové hodnoty jazykových proměnných e, Σe, de a U. Regulátor je realizován pomocí neuronové sítě. Jazykové hodnoty proměnných jsou formalizovány pomocí lichoběžníkových fuzzy množin aproximovaných lomenými přímkami s body lomu [a, b, c, d]. Tyto parametry jsou spolu vázány relací a < b < c < d. Ladění regulátoru spočívá ve změnách tvaru funkcí příslušnosti, tedy hodnot uvedených parametrů, pomocí genetického algoritmu. Tento algoritmus je složen 149
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence z následujících procedur: a) kódování parametrů do bitového řetězce chromozomů b) stanovení účelové funkce optimalizace parametrů ve tvaru F = 0,5. Adaptace tvaru funkcí příslušnosti – pomocí GA jsou hledány optimální hodnoty parametrů funkcí příslušností minimalizující vztah F. GA generuje optimální hodnoty ve smyslu vztahu F pomocí následujících procedur: - vytvoření počáteční populace (PP) – náhodným vygenerováním hodnot parametrů n- jedinců - ohodnocení jedinců počáteční populace výpočtem hodnot F - generování nové populace jako následníků rodičů s nejlepšími hodnotami F - ohodnocení jedinců další populace výpočtem hodnot F - po dosažení předepsaného počtu generací (např. 150) ukončení procesu výběru jedince s nejvyšší hodnotou F jako optimálního řešení.
Shrnutí pojmů V průběhu vývoje a aplikací metod umělé inteligence se ukázalo, že v mnohých případech lze jednotlivé metody, tj. přístupy fuzzy množinové matematiky, neuronových sítí a genetických algoritmů spojovat a vytvářet přístupy nové, kombinované, které jsou výkonnější než jejich přístupy jednotlivé. Tak vznikla celá řada nových nástrojů, které jsou zařazovány do širší oblasti tzv. výpočtové inteligence nebo soft-computingu. Nejčastěji používanými kombinacemi jsou metody fuzzy-neuronové, fuzzy-genetické, neuro-genetické či konečně fuzzy-neurogenetické. V kombinacích se také vyskytují hybridní přístupy, které využívají i principů konvenčních či nekonvenčních metod pravděpodobnostních a matematickou statistiku. Na rozdíl od fuzzy pravidlových modelů, v nichž jsou znalosti vyjádřeny explicitně ve formě jednotlivých pravidel, neuronová síť akumuluje znalosti implicitně (skrytě, tacitně) do hodnot synaptických vah a parametrů přenosových funkcí svých neuronů. Mají však velkou přednost v možnosti svého učení prostřednictvím trénovací množiny. Fuzzy neuronové sítě jsou postaveny na principu transformace fuzzy pravidlového modelu do topologie odpovídající vícevrstvé neuronové sítě, adaptace (naučení) parametrů této sítě pomocí tréninkové množiny a zpětné transformace naučené sítě do explicitních fuzzy pravidel. Idea využití GA v neuronových systémech spočívá v realizaci úlohy adaptace (učení) neuronových sítí jako optimalizace počtu vrstev, počtu neuronů a synaptických vah pomocí GA. Jde tedy o náhradu běžně používané adaptační metody BP.
150
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence Jelikož genetický algoritmus je univerzálním prostředkem pro hledání optimálního řešení úloh, lze jej použít i v případě optimalizace fuzzy modelů. V úloze použití genetického algoritmu při optimalizaci struktury i parametrů fuzzy IF-THEN pravidel existuje několik možností jeho aplikace. Základním problémem je zde vhodné uložení optimalizovaných veličin do struktury chromozomu a volby vhodného způsobu jejich zakódování. Základními optimalizačními úlohami v případě pravidlového fuzzy modelu je stanovení počtu pravidel, počet jazykových hodnot jeho vstupních a výstupních jazykových proměnných, stanovení kombinací dílčích fuzzy tvrzení v antecedentech, pravidel, stanovení tvaru a parametrů fuzzy množin pro formalizaci jazykových hodnot proměnných. Kombinace fuzzy a neuronových principů vedla ke zvýšení užitné hodnoty neuronových modelů tím, že fuzzy-neuronový model umožňuje interpretaci jeho pravidel při zachování výhodné vlastnosti samoučení neuronové sítě. Cílem rozšíření fuzzy-neuronové kombinace o genetické algoritmy je realizace automatické optimalizace úloh, které se v systémech použití fuzzy-neuronových modelů vyskytují a které jsou jinak řešeny pouze subjektivním návrhem zkušeného odborníka. Takovým případem je např. optimalizace parametrů fuzzy neuronového regulátoru.
Otázky 9.1 9.1.1 Jaký je princip metod soft-computingu ? 9.1.2 Které metody umělé inteligence jsou v soft-computingových přístupech nejčastěji využívány? 9.1.3 Jaká je myšlenka integrace přístupů fuzzy logiky a neuronových sítí ? 9.1.4 Jak probíhá proces identifikace fuzzy modelu typu Mamdani v prostředí vícevrstvé neuronové sítě ? 9.1.5 Jaké výhody poskytuje použití GA pro adaptaci neuronové sítě ? 9.1.6 Které optimalizační operace fuzzy pravidlového modelu můžeme realizovat s použitím genetických algoritmů ? 9.1.7 Kdy je třeba provést novou adaptaci (optimalizaci) parametrů fuzzyneuronového regulátoru ?
Úlohy k řešení 9.1 9.1.1 Navrhněte příklad kombinace některé z metod umělé inteligence s metodou matematické statistiky ! 9.1.2 Promyslete případ, kdy je potřebné (nebo velice užitečné) znát přesné znění pravidel fuzzy modelu. Nejčastěji jsou takové případy nutné v případě modelů, které řeší problémy spojené s nebezpečnými situacemi. 9.1.3 V kterých případech může být použití GA pro adaptaci neuronové sítě nevýhodné (neefektivní) ? 9.1.4 Promyslete, které parametry by bylo lze optimalizovat pomoci GA v případě fuzzy regulátoru typu PID !
151
SYSTÉMY S UMĚLOU INTELIGENCÍ – Systémy výpočtové inteligence 9.1.5 Promyslete příklad použití GA algoritmu pro optimalizaci fuzzy-neuronové sítě, pokud by byly optimalizační úlohy soustředěny do vlastní topologie a parametrů neuronové sítě !
Další zdroje [1]
Aliev,R.A, Aliev,R.R.: Soft Computing and its Application, World Scientific Publishing Co. Pte. Ltd., 2001, ISBN 981-02-4700-1
152
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení
Klíč k řešení
Úlohy k řešení 1.2 1.2.1 Vymyslete sami matematickou rovnici (nebo soustavu rovnic), reprezentující fyzikální soustavu. Určete parametry takto napsaného modelu soustavy a pouvažujte o možnosti přesného stanovení jejich číselných hodnot ! Soustavou bude pohybující se těleso. Rychlost rovnoměrného přímočarého pohybu tělesa je dána rovnicí (matematickým modelem) v=s:t Pro určení rychlosti v[m/sec] je třeba znát dva parametry : dráhu s [m] a čas t [sec]. Tyto parametry je možno změřit délkovým metrem (pásmem) a stopkami s přesností, která je závislá hlavně na pečlivosti, které měření věnujeme. 1.2.2 Uveďte objekt, který považujete z hlediska jeho matematického modelování za složitý. Vysoká pec (na výrobu železa), letící letoun, chování vojáka v boji 1.2.3 Uveďte příklad mělké a hluboké znalosti v oboru, který je Vám blízký (řízení automobilu, hra v šachy apod.). Znalost hluboká: Čím delší je ujetá dráha a čím vyšší je rychlost jízdy, tím vyšší je spotřeba paliva Znalost mělká (heuristika): Jedu-li z Brna do Prahy, nemám silniční mapu a silnice nejsou značeny, jedu tak, abych měl Slunce stále před sebou. 1.2.4 Promyslete kvalitativní popis řízení směru jízdy automobilu řízením natočení kol přední nápravy. Pokud je třeba změnit směr jízdy mírně doleva, otočíme volantem mírně doleva. Pokud chceme odbočit prudce doleva, otočíme volantem prudce doleva. Pokud je třeba změnit směr jízdy více doprava, otočíme volantem více doprava. Pokud chceme zachovat stávající směr jízdy, udržujeme polohu volantu beze změny. 1.2.5 Popište kvalitativním tripletem kladnou kvalitativní proměnnou X, jejíž hodnota 153
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení exponenciálně roste X: [+,+,+] 1.2.6 Převeďte do kvalitativní formy následující rovnici (3x2 + 2x)( – 2z) = y2 X.X + X = P1 -Z = P2 Y.Y = P1.P2 1.2.7 Sestavte kvalitativní model funkce popsané jejím průběhem na následujícím obrázku !
A: B: C.
[+ + 0]
[+ + 0] [+ 0 0] [+ - 0] → [+ 0 0]
→ [+ - 0]
Úlohy k řešení 2.1
2.1.1 Formalizujte jazykovou proměnnou „TEPLOTA V PECI“ a navrhněte tři její jazykové hodnoty vyjádřené fuzzy množinami ! Jazykové hodnoty: STUDENÁ (S), POLOVYHŘÁTÁ (PV), VYHŘÁTÁ (V)
154
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení
2.1.2 Popište tyto fuzzy množiny jejich parametry : S PV V
[0, 0, 300, 400] [300, 400, 600, 700] [600, 700, 1000, 1000]
Úlohy k řešení 2.2 2.2.1 Sestavte fuzzy model typu Takagi-Sugeno pro nelineární jednorozměrnou funkci y f(x), která je klesající (má charakter nepřímé úměrnosti) ! IF(x is MALÝ) THEN y1 = -2x + 3 IF (x is VELKÝ) THEN y2 = -4x + 6 2.2.2 Proveďte vyvození výstupní hodnoty y modelu Takagi-Sugeno pro model který jste vytvořili v úloze 3.3 pro Vámi zvolenou velikost vstupní proměnné x ! x=2
μMALY(x) = 0,6 (zvoleno) μVELKY(x) = 0,3 (zvoleno) y1 = -2.2 + 3 = -1 y2 = -4.2 + 3 = - 5 y = [μMALY(x) . y1 + μVELKY(x) . y2] / [μMALY(x) + μVELKY(x)] = = [0,6 . (-1) + 0,3 . (-5) ] / (0,6 + 0.3) = -2.1/0.9 = -2.33
155
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení
Úlohy k řešení 3.1 3.1.1 Navrhněte Vám známý problém, k jehož řešení by bylo možno vypracovat expertní systém (např. diagnostika automobilového motoru, proč pláče kojenec, apod.) Kromě uvedených např.: odhad výsledku sportovního utkání, podpora při rozhodování o nákupu počítače, podpora při rozhodování o výběru partnera, rozhodování o nastavení velikosti clony a doby expozice fotoaparátu při fotografování 3.1.2 Navrhněte 4 pravidla báze znalostí expertního systému pro popis systému, v jehož oblasti jste expertem ! Z oblasti řízení automobilu – soustava je jedoucí automobil: IF(vozovka je KLUZKÁ)THEN(brždění je MÍRNÉ ) IF(viditelnost je ZHORŠENÁ)THEN(odstup vozidel je VĚTŠÍ) IF(provoz je HUSTÝ)THEN(pozornost je VYSOKÁ) IF(stav pneumatik je ZHORŠENÝ)THEN(rychlost je NIŽŠÍ) 3.1.3 Jak je třeba postupovat, nedává-li expertní systém správné nebo vůbec žádné odpovědi na dotazy z určité oblasti řešeného problému ? Pokud expertní systém vyvozuje nesprávné odpovědi, bývá nejčastější příčinou existence rozporných pravidel. Není-li k dispozici programový systém pro kognitivní analýzu vlastností báze znalostí, je třeba prohlédnout pravidla a zkontrolovat jejich validitu. Pokud expertní systém nedává odpovědi na dotazy z některé problémové oblasti (odpověď NEVÍM), je třeba zkontrolovat bázi znalostí a doplnit pravidla, která se této problémové oblasti týkají. 3.1.4 Pokuste se vyslovit heuristiku, kterou uplatňujete při výkonu svého povolání nebo pěstování svého koníčka ! Z oblasti jízdy automobilem: pokud chci jet v noci nebo za snížené viditelnosti bezpečněji, udržuji vozidlo spíše u středové čáry než u krajnice.
Úlohy k řešení 4.1 4.1.1 Napište pravidla fuzzy regulátoru obdobného P typu Mamdani, budou-li mít jeho jazyko vé proměnné dvě jazykové hodnoty: negativní a pozitivní (dvouhodnotová fuzzy regulace).
156
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení JESTLIŽE (regulační odchylka je NEGATIVNÍ) PAK (akční veličina je POZITIVNÍ) JESTLIŽE (regulační odchylka je POZITIVNÍ) PAK (akční veličina je NEGATIVNÍ)
Úlohy k řešení 4.2
4.2.1 Které úlohy dohlížecích monitorovacích a adaptačních expertních systémů byste navrhl pro realizaci znalostního regulátoru? Monitoring kvality regulačního procesu (velikost prvního překmitu, velikost regulační plochy, doba regulace) Adaptace struktury a parametrů regulátoru (typ regulátoru P – PS - PSD, velikost přenosových konstant regulátoru) 4.2.2 Navrhněte řídicí úlohu, která by byla vhodná pro použití inteligentního regulátoru! Regulace teploty v ohřívací peci s velkou variabilitou hmotnosti ohřívaných těles.
Úlohy k řešení 5.1 5.1.1 Znázorněte graficky vhodnou a nevhodnou diverzifikační schopnost báze vůči jazykové hodnotě MALÝ a vhodnou diverzifikační schopnost vůči jazykové hodnotě VELKÝ!
157
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení 5.1.2 Nakreslete ternární diagram se zastupujícím bodem u báze znalostí, která má vlastnost velké variability !
Úlohy k řešení 6.1 6.1.1 Jaký je rozdíl mezi systémy MYCIN a EMYCIN ? Alternativní vztah pro výpočet výsledného činitele jistoty CF ( H , E1 & E2 ) 6.1.2 Mají význam pravděpodobnostní expertní systémy, používající pravidla bez neurčitosti ? Kdy je možné jich použít ? Úlohy, v nichž rozhodujeme o stanovení kombinace druhů (ostrých) komponent pro získání směsi požadovaných (ostrých) vlastností. Jde o úlohy ostrého přiřazení pomocí vícerozměrné tabulky.
Úlohy k řešení 7.1 7.1.1 Je obdoba mezi matematickým perceptronem a biologickým neuronem z hlediska jejich funkce ? Podobnost spočívá ve schopnosti obou reagovat změnou svého výstupu na změnu svých vstupů (podnětů) s případnou existenci prahu pro reakci na vzruch
158
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení 7.1.2 Nakreslete vícevrstvou neuronovou síť s označením 4-1-2
7.1.3 Vymyslete příklady úloh pro řešení pomocí vícevrstvých neuronových sítí Klasifikace výrobků do jakostních tříd podle jejich vad Predikce meteorologické situace pro následující období podle vývoje počasí v období předcházejícím Neuronový regulátor automatické převodovky automobilu Přenos 5-ti bitového binárního čísla prostřednictvím 3-vodičového kabelu
Úlohy k řešení 7.2 7.2.1 Nakreslete Hopfieldovu síť pro rozpoznávání objektu, charakterizovaného čtyřmi číselnými znaky!
159
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení
7.2.2 Nakreslete Kohonenovu neuronovou síť pro rozpoznávání šesti hlásek pomocí tří jejich formantů ! (bude doplněno)
Úlohy k řešení 8.1 8.1.1 Vyjmenujte alespoň dva biologické evoluční procesy které proběhly v přírodě ! Vyhynutí velkých plazů Vývoj živočichů přizpůsobených k létání ve vzduchu
Úlohy k řešení 8.2 8.2.1 Navrhněte chromozom pro zakódování parametrů fuzzy množiny A, která je dána čtyřmi body zlomu její po částech lineární lichoběžníkové funkce příslušnosti. K zakódování použijte binárního kódu: A: [5, 8, 12, 16]
160
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení
Úlohy k řešení 9.1 9.1.1 Navrhněte příklad kombinace některé z metod umělé inteligence s metodou matematické statistiky ! Neuronová síť, jejíž vstupní hodnoty jsou získány pomocí metody statistického vyhodnocení dat 9.1.2 Promyslete případ, kdy je potřebné (nebo velice užitečné) znát přesné znění pravidel fuzzy modelu. Nejčastěji jsou takové případy nutné v případě modelů, které řeší problémy spojené s nebezpečnými situacemi. Podpora rozhodování při diagnostice poruch nebezpečné soustavy (atomový reaktor). Jakékoliv vyhodnocení provedené expertním systémem musí být doloženo seznamem aktivních pravidel, z nichž bylo rozhodnutí vyvozeno. 9.1.3 V kterých případech může být použití GA pro adaptaci neuronové sítě nevýhodné (neefektivní) ? V případě rozsáhlé neuronové sítě použité v systému řízení v reálném čase. Pokud je výpočtová náročnost adaptace příliš velká, může její doba překročit periodu dvou po sobě následujících akčních zásahů. 9.1.4 Promyslete, které parametry by bylo lze optimalizovat pomoci GA v případě fuzzy regulátoru typu PID ! Velikost zesílení proporcionálního P, integračního I a derivačního D. 9.1.5 Promyslete příklad použití GA algoritmu pro optimalizaci fuzzy-neuronové sítě, pokud by byly optimalizační úlohy soustředěny do vlastní topologie a parametrů neuronové sítě !
161
SYSTÉMY S UMĚLOU INTELIGENCÍ – Klíč k řešení
Optimalizace struktury sítě (počet skrytých vrstev neuronů a počet neuronů v nich), váhové koeficienty synaptických vazeb a parametry přenosových funkcí v každém neuronu.
162
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 1. - Fuzzy množiny a jejich logika. Řešený příklad Fuzzy množiny a jejich logika je demonstrována na příkladu stanovení výše spropitného. V příkladu je ukázaný přístup pomocí klasického lineárního matematického postupu výpočtu řešení a zároveň na stejném příkladu je vysvětlen postup řešení výpočtu pomocí fuzzy přístupu. Problém udělení spropitného je klasická úloha, která řeší průměrnou výši částky, kterou dáváme v rámci hodnocení kvalitativních parametrů v rámci poskytovaných služeb. V uvedeném příkladu hodnotíme dva kvalitativní parametry a to kvalitu jídla a obsluhy. Tyto dva parametry jsou dány v rámci stupnice 1 až 10. Maximální možná výše uděleného spropitného je 25% z celkové ceny. Nejnižší možná míra spropitného je 5% z celkové ceny. Další možností je stanovení důležitosti jednoho parametru oproti jinému. Úroveň důležitosti je stanovena v procentech v rozsahu 0 až 100%. 1) Pokud budeme chtít tento problém zapsat pomocí matematického popisu, jako lineární rovnici, bude vypadat následovně: spropitné = 0.20/20*(obsluha+jídlo)+0.05; (odpovídá 50% obsluha a 50% jídlo) [1.1] míra_ohodnocení_obsluhy = 0.8
(odpovídá 80% obsluha a 20% jídlo)
spropitné = míra_ohodnocení_obsluhy*(0.20/10*obsluha+0.05) +
[1.2]
(1- míra_ohodnocení_obsluhy)*(0.20/10*jídlo+0.05);
Obr.1 Graf popisující výši spropitného na základě rovnice č. 1.2
163
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení 2) Pokud budeme požadovat lepší rozložení udělení spropitného, lze celý problém řešit jako rozdělený interval několika lineárních funkcí. míra_ohodnocení_obsluhy = 0.8;
[1.3]
if obsluha < 3, spropitné = ((0.10/3)* obsluha +0.05)* míra_ohodnocení_obsluhy + (1- míra_ohodnocení_obsluhy)*(0.20/10*jídlo+0.05); elseif obsluha < 7, spropitné = (0.15)* míra_ohodnocení_obsluhy + (1- míra_ohodnocení_obsluhy)*(0.20/10*jídlo+0.05); else, spropitné = ((0.10/3)*( obsluha -7)+0.15)* míra_ohodnocení_obsluhy + (1- míra_ohodnocení_obsluhy)*(0.20/10*jídlo+0.05); end
Obr.2 Graf popisující výši spropitného na základě algoritmu č. 1.3 3) Pokud budeme stejnou úlohu řešit pomocí fuzzy přístupu, je nutné jednotlivé proměnné fuzzyfikovat, dále aplikovat fuzzy pravidla a následně opět defuzzyfikovat. Pravidla pro obsluhu: If obsluha je špatná then spropitné je nízké If obsluha je dobrá then spropitné je průměrné If obsluha je výborná then spropitné je vysoké
164
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Pravidla pro jídlo: If jídlo je špatné then spropitné je nízké If jídlo je výborné then spropitné je vysoké Pravidla pro obsluhu a jídlo: If obsluha je špatná nebo jídlo je špatné then spropitné je nízké If obsluha je dobrá then spropitné je průměrné If obsluha je výborná nebo jídlo je výborné then spropitné je vysoké
Obr. Vstupní a výstupní fuzzyfikované proměnné, fuzzy interferenční mechanismus
165
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Obr. Fuzzyfikovaná proměnná „obsluha“
Obr. Fuzzyfikovaná proměnná „jídlo“
166
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Obr. Fuzzyfikovaná proměnná „spropitné“
Obr. fuzzy interferenční mechanismus – fuzzy pravidla
167
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Postup pro vytvoření fuzzy návrhu pro stanovení spropitného je součástí animace „Fuzzy množiny a jejich logika“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí Matlab a využívá Fuzzy Logic Toolbox Graphical User Interface Tools (uživatelské prostředí pro fuzzy návrh). Součásti podkladů pro cvičení je také program „spropitne.fis“, který se spustí z příkazového řádku v Matlabu příkazem fuzzy spropitne.
CD-ROM ...... Program : spropitne.fis
168
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 2. - Fuzzy řízení výšky hladiny vodní nádrže. Řešený příklad Fuzzy řízení výšky hladiny vodní nádrže je demonstrováno v následujícím příkladu (Matlab/Simulink), který nabízí srovnání klasického přístupu a využití PID regulátoru a fuzzy regulátoru Problém řízení výšky hladiny je klasická úloha ve které máme otevřenou nádrž válcovitého tvaru do které je pomocí ventilu řízen přívod vody. Součástí úlohy je také animace, která demonstruje změnu polohy žádané výšky hladiny (červený obdélníček) a aktuálního stavu kapaliny v nádrži. Návrh fuzzy regulátoru: Mamdani model regulátoru, který byl vytvořen pomocí Fuzzy Logic Toolboxu v fuzzy editoru, a to v následující podobě.
Obr.1 Fuzzy návrh řízení výšky hladiny v nádrži Nejprve nadefinujeme vstupní proměnné, v následujícím tvaru:
Obr.2 Vstupní členská funkce „VyskaHladinyNadrze“ – udává jazykově aktuální výšku hladiny v nádrži
169
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Obr.3 Vstupní členská funkce „PomerPrutokuKapaliny“ – udává jazykově aktuální poměr průtoku množství kapaliny Dále nadefinujeme výstupní proměnnou, v následujícím tvaru:
Obr.4 Výstupní členská funkce „Ventil“ – udává jazykově v jaké aktuální stavu se nachází řídicí ventil nádrže
Obr.5 Fuzzy pravidla pro řízení výšky hladiny otevřené nádrže 170
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Nastavení referenčního PD regulátoru volíme z ohledem na přenosovou funkci námi definovaného modelu nádrže s kapalinou. Návrh PD regulátoru není předmětem tohoto cvičení a proto se jen okrajově zmíním o hodnotách konstant PD regulátoru. Proporcionální složka regulátoru má hodnotu „10“ a stejně tak derivační složka, rovněž hodnotu „10“. Toto nastavení odpovídá plynulé regulaci v požadovaném časovém intervalu v rámci simulace. Simulace regulace výšky hladiny nádrže: Návrh simulace provedeme v Simulinku, který je součástí prostředí Matlab. V modelu simulace se nachází vstupní generátor požadovaného signálu, který udává tvar změny požadované veličiny, dále pak prvek přepínače, kde můžeme nastavit druh požitého regulátoru (Fuzzy, PD a bez regulace). Akčním prvek je ventil, který reguluje vstup kapaliny do otevřené nádrže. V simulaci se také indikuje stav výšky hladiny kapaliny a havarijní stav přetečení nádrže.
Obr.6 Model regulace výšky hladiny ve válcové otevřené nádrži
Požadovaná veličina výšky hladiny: h [m]
Doba regulace: T [s]
Obr.7 Průběh požadované veličiny (žlutá) a regulované veličiny (fialová) výšky hladiny v otevřené nádrži 171
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Obr.7 Animace regulace výšky hladiny v otevřené nádrži Postup pro vytvoření fuzzy návrhu pro řízení výšky hladiny otevřené vodní nádrže je součástí animace „Fuzzy řízení výšky hladiny vodní nádrže“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí Matlab a využívá Fuzzy Logic Toolbox Graphical User Interface Tools (uživatelské prostředí pro fuzzy návrh). Součásti podkladů pro cvičení je také program „nadrz.fis“, který se spustí z příkazového řádku v Matlabu příkazem fuzzy nadrz a model v simulinku „RegulaceVyskyHladiny.mdl“
CD-ROM ...... Program : nadrz.fis, RegulaceVyskyHladiny.mdl, AnimaceVodniNadrz.m, InicializaceVyskyHladinyVodniNadrze.m
172
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 3. - Fuzzy řízení inverzního kyvadla. Řešený příklad Fuzzy řízení inverzního kyvadla je demonstrováno v následujícím příkladu (Matlab/Simulink), který je klasickou úlohou na regulaci polohy. Model úlohy vychází z reálné úlohy v laboratoři, která je demonstrována na následujícím obrázku.
Obr.1 Inverzní kyvadlo Problém řízení polohy kyvadla sebou nese otázku, jak řídit polohu vozíku na kterém je kyvadlo upevněno a zároveň docílit toho, aby kyvadlo bylo stále ve svislé poloze směrem vzhůru. Součástí úlohy je také animace, která demonstruje změnu polohy vozíku a s ním regulaci polohy kyvadla v žádané svislé poloze. Návrh fuzzy regulátoru: Takagi-Sugeno model regulátoru, který byl vytvořen pomocí Fuzzy Logic Toolboxu v fuzzy editoru, a to v následující podobě.
Obr.2 Fuzzy návrh řízení polohy inverzního kyvadla
173
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Nejprve nadefinujeme vstupní proměnné, v následujícím tvaru:
Obr.3 Vstupní členská funkce „Uhel“ – udává jazykově uhel inverzního kyvadla
Obr.4 Vstupní členská funkce „UhlovaRychlost“ – udává jazykově aktuální úhlovou rychlost inverzního kyvadla
Obr.5 Vstupní členská funkce „PoziceVoziku“ – udává jazykově aktuální pozici vozíku s kyvadlem 174
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Obr.6 Vstupní členská funkce „PoziceVoziku“ – udává jazykově aktuální rychlost vozíku s kyvadlem Dále nadefinujeme výstupní proměnnou, v následujícím tvaru:
Obr.7 Výstupní členská funkce „AkcniZasah“ – udává jazykově v podobě ostré hodnoty, jakým způsobem a s jakou intenzitou pohybovat vozíkem v daném směru
175
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Fuzzy pravidla pro regulaci polohy inverzního kyvadla:
Obr.8 Fuzzy pravidla pro řízení polohy inverzního kyvadla
176
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Simulace regulace polohy inverzního kyvadla: Návrh simulace provedeme v Simulinku, který je součástí prostředí Matlab. V modelu simulace se nachází vstupní generátor požadovaného signálu, který udává tvar změny požadované veličiny, dále pak prvek přepínače, kde můžeme nastavit způsob řízení požadované polohy vozíku v animaci. Akčním prvek je pohyb vozíku, rozhoupává kyvadlo a pak reguluje ve svislé poloze inverzní kyvadlo, při změně požadované polohy. Změna polohy se může zadat automaticky pomocí generátoru průběhu požadovaného signálu řízení polohy vozíku nebo ručně pomocí kurzoru myši. V simulaci se také indikuje stav inverzního kyvadla a jeho jednotlivé stavy. Animace začíná ve stavu, kdy již je inverzní kyvadlo vzpřímeno ve správné poloze a pak jen dorovnává do svislé pozice na základě změny polohy vozíku.
Obr.9 Model regulace polohy inverzního kyvadla
Požadovaná veličina polohy voziku: x [m]
Doba regulace: T [s]
Obr.10 Průběh požadované veličiny (žlutá) a regulované veličiny (fialová) pozice polohy vozíku inverzního kyvadla
177
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Obr.11 Animace řízení pozice polohy vozíku a inverzního kyvadla Postup pro vytvoření fuzzy návrhu pro řízení pozice polohy vozíku a inverzního kyvadla je součástí animace „Fuzzy řízení inverzního kyvadla“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí Matlab a využívá Fuzzy Logic Toolbox Graphical User Interface Tools (uživatelské prostředí pro fuzzy návrh). Součásti podkladů pro cvičení je také program „InverzniKyvadlo.fis“, který se spustí z příkazového řádku v Matlabu příkazem fuzzy InverzniKyvadlo a modelu v Simulinku „InverzniKyvadlo.mdl“.
CD-ROM ...... Program : InverzniKyvadlo.fis, InverzniKyvadlo.mdl, AnimaceInverzniKyvadlo.m, InicializaceInverzniKyvadlo.m
178
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 4. - Regulace teploty pomocí fuzzy řízení. Řešený příklad Regulace tepelné soustavy je demonstrována v následujícím příkladě. V úloze je ukázaný fuzzy přístup pomocí, který je navržen regulátor řízení požadované teploty.
Obr.1 Reálná tepelná soustava reprezentovaná žárovkou a teplotním senzorem Řízená teplotní soustava, byla nahrazena modelem reálné teplotní soustavy, který byl sestaven na základě identifikace soustavy. Přenos tepelné soustavy byl stanoven následující přenosovou funkcí:
[1.1]
K zadané teplotní soustavě byl vytvořen fuzzy regulátor (Takagi-Sugeno model) ve Fuzzy Logic Toolboxu, a to v následující podobě.
Obr.2 Model báze znalostí fuzzy regulátoru „zarovka“ 179
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Model fuzzy regulátoru je typu Takagi-Sugeno, který udává ostrou hodnotu na svém výstupu – akční zásah regulátoru. Model má 1 vstup - regulační odchylku (rozdíl požadované a aktuální teploty na výstupu soustavy). Všechny funkce příslušnosti vstupní proměnné až na jednu s lichoběžníkovým tvarem, mají trojúhelníkový tvar. Výstupem je akční zásah. Funkce příslušnosti této výstupní proměnné jsou ostré hodnoty (Takagi-Sugeno model), jak už bylo výše uvedeno. Tvary funkcí příslušnosti pro vstupní proměnnou - regulační odchylka:
Obr.3 Funkce příslušnosti hodnot vstupní proměnné regulační odchylka
Hodnoty výstupní proměnné – akční zásah: parametry mf1 [0] mf2 [3] mf3 [6] mf4 [9] mf5 [12] Fuzzy pravidla V příkladu byla použita jedna vstupní proměnná, s pěti funkcemi příslušnosti a výstup také s pěti funkcemi příslušnosti – ostrá čísla. Pravidla definoval expert a to ve tvaru: IF
(regulacniOdchylka IS
…)
THEN
(akcniZasah IS
Přepsáno za použitý symbolických znaků IF (regulacniOdchylka ==…) => (akcniZasah ==…). Všechny pravidla mají stejnou váhu a to 1.
180
…).
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
Seznam použitých pravidel: 1. If (regulacniOdchylka is jedna) then (akcniZasah is mf1) (1) 2. If (regulacniOdchylka is dve) then (akcniZasah is mf2) (1) 3. If (regulacniOdchylka is tri) then (akcniZasah is mf3) (1) 4. If (regulacniOdchylka is ctyri) then (akcniZasah is mf4) (1) 5. If (regulacniOdchylka is pet) then (akcniZasah is mf5) (1) Pro přehlednost seřazeno v tabulce: i 1 2 3 4 5
Regulační odchylka Akční zásah Jedna mf1=0 Dvě mf2=3 Tři mf3=6 Čtyři mf4=9 Pět mf5=12 Tab.1 Pravidla modelu regulátoru
Obr.4 Grafické znázornění závislosti výstupní proměnné na vstupní proměnné
181
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Model simulace pro identifikovaný přenos soustavy s navrženým fuzzy regulátorem:
Obr.5 Model regulace teploty pomocí fuzzy regulatoru na požadovanou teplotu 90°C
Teplota [°C]
T [s]
Obr.6 Průběh regulované veličiny (teplota) v závislosti na čase pro požadovanou teplotu 90°C Postup pro vytvoření fuzzy návrhu regulátoru tepelné soustavy je součástí animace „Regulace teploty pomocí fuzzy řízení“, která je přiložena na CDROM. Tento návrh aplikace je vytvořen v prostředí Matlab a využívá Fuzzy Logic Toolbox Graphical User Interface Tools (uživatelské prostředí pro fuzzy návrh). Součásti podkladů pro cvičení je také program „zarovka.fis“ a „model_zarovka.mdl“, který se spustí z příkazového řádku v Matlabu příkazem fuzzy zarovka v prvním případě a v druhém případě automaticky pokud je nainstalován v Matlab/Simulink.
CD-ROM ...... Program : zarovka.fis, model_zarovka.mdl
182
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 5. - Genetický algoritmus – hledání extrémů funkcí. Řešený příklad Genetické algoritmy jsou založeny na darwinovském principu rozmnožování a přežití nejzdatnějších jedinců a s tím analogicky přirozeně se vyskytující genetické operace, jako je křížení (rekombinace) a mutace. Tato metoda pracuje s populací jedinců (chromozomů), kde každý z nich kóduje možné řešení problému v rámci genetického algoritmu. V chromozómech genetických algoritmů jsou zastoupeny fixních řetězce (pole bitů, čísla, atd.), co dělá provádění genetických operátorů velmi jednoduché. Zpočátku populace je inicializován s náhodnými chromozomy, ale pak se začne vyvíjet s použitím těchto genetických operátorů, jako crossover (křížení), mutace a selekce (výběr). V následující úloze budeme hledat extrémy funkce, což představuje jednu z optimalizačních úloh, které jsou pro genetické úlohy typické. Optimalizace můžeme mít jak jednorozměrnou tak i více rozměrnou podobu. Následující úloha představuje optimalizaci pomoci genetického algoritmu 1D rozměru. Průběh optimalizované funkce je znázorněn na následujícím obrázku v zadaném rozsahu.
Obr.1 Demonstrační aplikace pro hledání extrému funkce v 1D prostoru Evoluční algoritmy založené na analogii Darwinovy evoluční teorie poskytují nový netradiční přístup k hledání optimálního nebo suboptimálního řešení složitých optimalizačních problémů, které nejsou řešitelné klasickými technikami. Nejčastěji používanými evolučními algoritmy jsou tzv. genetické algoritmy. Jedná se o základní stochastické optimalizační algoritmy s 183
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení výraznými evolučními rysy schopné velmi úspěšně optimalizovat i vysoce multimodální funkce. Genetické algoritmy pracují se souborem jedinců (Často se místo pojmu jedinec poněkud nepřesně používá pojem chromozom. V mnoha implementacích genetických algoritmů lze skutečně tyto pojmy ztotožnit; obecně se ale jedinec skládá z více chromozomů, přičemž každý chromozom obvykle reprezentuje přirozeně seskupené nezávisle proměnné účelové funkce. Typickým příkladem může být chromozom, jenž reprezentuje polohový vektor ri = (xi, yi, zi), který je nezávisle proměnnou účelovou funkcí f(r1, r2, …, rn). Navzdory vzniklé nepřesnosti budeme pojmy jedinec a chromozom volně zaměňovat, neboť ani v odborné literatuře není terminologie sjednocena. Populací se rozumí každý jedinec reprezentující potenciální řešení daného problému. V zájmu jednoduššího vyjadřování budeme jako potenciální řešení daného problému označovat také přímo jedince populace. Hledáme-li např. globální minimum funkce f(x1, x2, …, xn) n reálných proměnných, bude každý jedinec bude reprezentovat n –tici reálných čísel [x1, x2, …, xn], která je potenciálním řešením (více či méně dobře splňuje podmínku minima) úlohy minimalizovat funkci f(x1, x2, …, xn) . Tuto n -tici reálných čísel můžeme znázornit bodem [x1, x2, …, xn; f(x1, x2, …, xn)] na n -rozměrné ploše grafu dané funkce – tato interpretace je vhodná zejména z důvodu názornosti. Kódování Konkrétních způsobů, jak n -tici [x1, x2, …, xn] kódovat, se v praxi používá několik. Nejčastěji se jednotlivé reálné složky i x aproximují binárním řetězcem i Q konstantní délky k, a tedy i každý jedinec má konstantní délku kn bitů. Fitness funkce Aby bylo možno kvantifikovat kvalitu chromozomu C , zavádí se tzv. fitness funkce F(C) Evoluční operátory V genetických mechanismy:
algoritmech
se
obvykle
implementují
tyto
evoluční
1. Dědičnost, kdy jedinec předává svou genetickou informaci další generaci (potomkům). 2. Křížení, při němž si jednici vyměňují genetickou informaci. 3. Mutace, neboli náhodné (či pseudonáhodné) změny genetické informace. 4. Selekční tlak, který způsobí upřednostňování „lepších“ jedinců při procesu předávání své genetické informace následující generaci. Přitom „lepším“
184
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení jedincem máme na mysli jedince, který lépe vyhovuje optimalizačnímu kritériu (např. v případě minimalizace funkce je lepší ten jedinec, jehož příslušná funkční hodnota je menší). Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro metodu hledání extrémů funkcí s využitím genetického algoritmu v programovacím jazyku C#
Obr.3 Jednoduchá struktura genetické knihovny v programovacím jazyku C#
185
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Ve výše uvedeném kódu, je vytvořena populace 40 chromosomů, kde každý z nich je binární chromosom o délce 32 bitů. V kódu je použita elitní výběrová metoda a fitness funkce, která je určena pro optimalizaci jednorozměrných funkcí. Vytvoření populace je stejné pro všechny realizované genetické metody. Hlavní ukazatel určující typ metody použití je chromozom sám, protože chromozom definuje reprezentaci řešení problémů a provádění genetických operátorů při jejich použití. Postup pro hledání extrému funkce je součástí animace „Genetický algoritmus – hledání extrémů funkcí“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované GA knihovny, které lze použít i v jiných aplikacích (core.dll a genetic.dll). Součásti podkladů pro cvičení je také program „GA_extrem_funkce.exe“, ve kterém se automaticky po spuštění vygeneruje funkce na daném intervalu, v rámci které hledáme extrém funkce v daném rozsahu.
CD-ROM ...... Program : GA_extrem_funkce.exe, core.dll a genetic.dll
186
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 6. - Genetický algoritmus – symbolická regrese Řešený příklad V následující úloze budeme aplikovat genetický algoritmus v rámci symbolické regrese funkce. Snahou úlohy je ukázat možný přístup hledání řešení matematické funkce, která je reprezentovaná pomocí souboru vstupních dat. Cílem úlohy je optimalizovat řešení, tak aby co nejlépe vyhovovalo požadovaným podmínkám. Výsledek možného hledaného optimalizovaného řešení je znázorněno na následujícím obrázku pro daný vstupní soubor dat.
Obr.1 Demonstrační aplikace pro hledání matematického výrazu pomocí genetického algoritmu a symbolické regrese Průběh funkce načtených vstupních dat je znázorněn pomocí červeně označených bodů v grafu, průběh nalezeného řešení na základě symbolické regrese reprezentuje modrá křivka ve výše uvedeném grafu na obrázku č.1 V tabulce jsou uvedené hodnoty vstupní proměnné „X“ a výstupní proměnné „Y“, které popisují tvar hledané křivky, kterou testovací data reprezentují. Výběr použití genetické metody nabízí dvě možnosti a tedy dvě třídy a to GPTreeChromosome, pro kterou použijeme genetické programovaní a GEPChromosome, pro kterou použijeme genové výrazové programování.
187
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro výpočet symbolické regrese s využitím genetického algoritmu v programovacím jazyku C#
Obr.3 Jednoduchá struktura genetické knihovny v programovacím jazyku C# Ve výše uvedeném kódu, je vytvořena populace 40 chromosomů, kde každý z nich je GP chromosom o stromové strukům a délce 32 bitů nebo GEP chromozóm a délce 32 bitů. V kódu je použita elitní výběrová metoda a fitness funkce pro symbolickou regresi, která je určena pro řešení daných typů úloh. Vytvoření populace je stejné pro všechny realizované genetické metody. Hlavní ukazatel určující typ metody použití je chromozom sám, protože chromozom definuje reprezentaci řešení problémů a provádění genetických operátorů při jejich použití. Postup pro hledání vhodného matematického popisu vstupní množiny dat je součástí animace „Genetický algoritmus – symbolická regrese“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované GA knihovny, které lze použít i v jiných aplikacích (core.dll a genetic.dll). Součásti podkladů pro
188
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení cvičení je také program „GA_symbolicka_regrese.exe“, do kterého je možné načíst testovací množinu dat ve formátu „csv“, která reprezentuje hledanou matematickou funkci, kterou chceme získat.
CD-ROM ...... Program : GA_symbolicka_regrese.exe, core.dll a genetic.dll
189
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 7. - Genetický algoritmus – predikce časově omezených výstupů Řešený příklad V následující úloze budeme vytvářet model, který je schopen pomocí genetického algoritmu predikovat budoucí stavy funkce na základě změřených historických dat. Snahou úlohy je ukázat možný přístup pro predikování stavů funkce vzhledem k referenční funkci, která je reprezentovaná pomocí souboru vstupních dat. Cílem úlohy je optimalizovat řešení, tak aby co nejlépe vyhovovalo požadovaným podmínkám. Výsledek možného hledaného optimalizovaného řešení je znázorněno na následujícím obrázku pro daný vstupní soubor dat.
Obr.1 Demonstrační aplikace určená pro hledání matematického výrazu popsaného pomocí genetického algoritmu a metody predikce časově omezených vstupů Průběh funkce načtených vstupních dat je znázorněn pomocí červeně označených bodů v grafu, průběh nalezeného řešení na základě predikce časově omezených vstupů reprezentuje modrá křivka ve výše uvedeném grafu na obrázku č.1 Aby model byl schopen predikovat data, je nutné ho nejprve natrénovat pomocí vstupní referenční množiny dat. Tyto data jsou uvedena ve sloupci pod označením „Y-Reálná data“. Výstup modelu pak generuje data pod označením „Y-Odhadovaná data“. Velikost okna pak mi udává kolik historických dat použiji v rámci velikosti odhadu. 190
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro metodu predikce časově omezených vstupů s využitím genetického algoritmu v programovacím jazyku C#
Obr.3 Jednoduchá struktura genetické knihovny v programovacím jazyku C# Výběr použití genetické metody nabízí dvě možnosti a tedy dvě třídy a to GPTreeChromosome, pro kterou použijeme genetické programovaní a GEPChromosome, pro kterou použijeme genetické výrazové programování. Ve výše uvedeném kódu, je vytvořena populace 40 chromosomů, kde každý z nich je GP chromosom o stromové strukům a délce 32 bitů nebo GEP chromozóm a délce 32 bitů. V kódu je použita elitní výběrová metoda a fitness funkce pro metodu predikce časově omezených vstupů, která je určena pro řešení daných typů úloh. Vytvoření populace je stejné pro všechny realizované genetické metody. Hlavní ukazatel určující typ metody použití je chromozom sám, protože chromozom definuje reprezentaci řešení problémů a provádění genetických operátorů při jejich použití. 191
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Postup pro hledání vhodného modelu a následného matematického popisu, který je dán tréninkovou množinou vstupních dat, je součástí animace „Genetický algoritmus – predikce časově omezených vstupů“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované GA knihovny, které lze použít i v jiných aplikacích (core.dll a genetic.dll). Součásti podkladů pro cvičení je také program „GA_Odhad_Vystupu.exe“, do kterého je možné načíst tréninkovou množinu dat ve formátu „csv“, která reprezentuje popis hledané matematické funkce, kterou chceme získat.
CD-ROM ...... Program : GA_Odhad_Vystupu.exe, core.dll a genetic.dll
192
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 8. - Genetický algoritmus – problém obchodního cestujícího Řešený příklad V následující úloze budeme hledat nejkratší cestu průchodu měst obchodním cestujícím, které jsou náhodně generovány dle jejich specifikovaného počtu. Podmínkou je také, že obchodní cestující projede všechny města a vrátí se do původního města, odkud vyšel. Snahou úlohy je ukázat možný přístup pro hledání optimálního řešení vzhledem k omezujícím podmínkám v závislosti na genetickém algoritmu. Výsledek možného hledaného optimalizovaného řešení pro problém obchodního cestujícího je znázorněn na následujícím obrázku pro dané náhodně generované města.
Obr.1 Demonstrační aplikace určená pro hledání minimální trasy průchodu obchodním cestujícím a tím minimalizováním nákladu a cestu. Jednotlivá města na mapě jsou znázorněna pomocí červeně označených bodů. Průběh nalezeného optimalizovaného řešení na základě genetického algoritmu je reprezentované pomocí modré křivky trasy v připravené mapě generovaných měst na obrázku č.1 Další možností, kterou lze pro výpočet trasy zvolit je možnost nekontrolovaného křížení mezi jednotlivými jedinci populace. Dále je třeba upozornit, že s rostoucím počtem měst roste také časová náročnost výpočtu optimální trasy v rámci genetického algoritmu.
193
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro metodu problému obchodního cestujícího s využitím genetického algoritmu v programovacím jazyku C#
Obr.3 Jednoduchá struktura genetické knihovny v programovacím jazyku C# V aplikaci je použita genetická metoda „TSPFitnessFunction“, která využívá třídu PermutationeChromosome, pro kterou použijeme genetické programovaní pro nalezení optimální cesty. Pokud chceme nalézt lepší řešení, za kratší časový úsek, použijeme třídu TSPChromosome, která implementuje nekontrolované křížení za účelem maximálního zisku. Ve výše uvedeném kódu, je vytvořena populace 40 chromosomů, kde každý z nich je permutační nebo TSP chromosom o délce 32 bitů. V kódu je použita elitní výběrová metoda a „TSPFitnessFunction“ fitness funkce pro metodu řešení optimální cesty obchodního cestujícího. Vytvoření populace je stejné pro všechny realizované genetické metody. Hlavní ukazatel určující typ metody použití je chromozom sám, protože chromozom definuje reprezentaci řešení problémů a provádění genetických operátorů při jejich použití.
194
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Postup pro hledání optimální trasy obchodního cestujícího je součástí animace „Genetický algoritmus – problém obchodního cestujícího“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované GA knihovny, které lze použít i v jiných aplikacích (core.dll a genetic.dll). Součásti podkladů pro cvičení je také program „GA_Obchodni_Cestujici.exe“.
CD-ROM ...... Program : GA_Obchodni_Cestujici.exe, core.dll a genetic.dll
195
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 9. - Neuronové sítě – aproximace pomocí vícevrstvé neuronové sítě na základě metody back‐propagation Řešený příklad V následující úloze budeme demonstrovat více vrstvou neuronovou sít trénovanou pomocí algoritmu back‐propagation, která hledá průběh funkce, která odpovídá tréninkové množině vstupních dat. Během fáze trénování je neuronová sít nucena vykazovat výsledky, které jsou správné vhledem k výstupu funkce pro proměnnou „X“. Tato proměnná náleží do vhodného tréninkového intervalu o maximální a minimální hodnotě. Po natrénování je neuronová síť schopna počítat funkci pro libovolnou vstupní hodnotu než jen pro tu na kterou byla natrénována. Snahou úlohy je ukázat řešení pomocí vícevrstvé neuronové sítě, která prochází během ladění procesem učení než dosáhne požadovaných výsledků. Aplikace vícevrstvé neuronové sítě je znázorněna na následujícím obrázku.
Obr.1 Demonstrační aplikace určená pro aproximaci vícevrstvé neuronové sítě na základě metody back‐propagation. Jednotlivé body v grafu představují tréninkovou množinu, která odpovídá funkci paraboly, tyto body jsou v grafu označeny červeně. Průběh funkce, který je generován pomocí natrénované neuronové sítě je reprezentován pomocí modré křivky na obrázku č.1 Další možností, kterou lze ovlivnit trénování neuronové sítě jsou úroveň a intenzita učení. Dále pak alfa hodnota sigmoidy a počet neuronů v první vrstvě. Funkce sigmoidy vypadá následovně: 1 f(x) = -----------------1 + exp(-alpha * x)
196
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
alpha * exp(-alpha * x ) f'(x) = ---------------------------- = alpha * f(x) * (1 - f(x)) (1 + exp(-alpha * x))^2
Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro aproximaci vícevrstvé neuronové sítě na základě metody back‐propagation v programovacím jazyku C#
Obr.3 Jednoduchá struktura neuronové knihovny v programovacím jazyku C#
197
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Neuron - základní abstraktní třída pro všechny neurony, které zapouzdřuje jako společné subjekty (váha, hodnota výstupu a vstupní hodnota). Ostatní třídy dědí ze základní třídy „Neuron“ a rozšiřují ji o další vlastnosti a dále ji specializují. Layer (vrstva) - představuje skupinu neuronů a jedná se o základní abstraktní třída, která zapouzdřuje společné funkce pro všechny neurony. Síťová architektura vícerozměrných neuronových sítí může být použita ne jen pro aproximaci dvojrozměrných funkcí, ale pro funkce libovolných rozměrů. Není dobré zapomínat, že s rostoucím počtem neuronů a neuronových vrstev a změnou parametrů jako alfa hodnoty sigmoidální funkce, můžeme drastický vliv na rychlost učení a špatným nastavením může dojít k situaci, že neuronová síť není schopna se učit vůbec. Postup pro trénování neuronové sítě je součástí animace „Neuronové sítě – aproximace pomocí vícevrstvé neuronové sítě na základě metody back‐propagation“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované Neural knihovny, které lze použít i v jiných aplikacích (core.dll, neural.dll, neural.neuro.dll a neural.controls.dll). Součásti podkladů pro cvičení je také program „Neuro_aproximace_BP.exe“.
CD-ROM ...... Program : GA Neuro_aproximace_BP.exe, core.dll, neural.dll, neural.neuro.dll a neural.controls.dll
198
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 10. - Neuronové sítě – predikce pomocí vícevrstvé neuronové sítě na základě metody back‐propagation Řešený příklad V následující úloze budeme demonstrovat více vrstvou neuronovou sít trénovanou pomocí algoritmu back‐propagation, která predikuje budoucí stavy, na základě informací získaných z tréninkové množiny vstupních dat. Během fáze trénování je požita skupina historických dat, na základě kterých je predikován následující stav. Platí obecné pravidlo, čím více hodnot máme, tím náš odhad může být přesnější. Po natrénování je neuronová síť schopna predikovat závěr pro libovolnou vstupní hodnotu. Snahou úlohy je ukázat řešení pomocí vícevrstvé neuronové sítě, která prochází během ladění procesem učení, než dosáhne požadovaných výsledků. Aplikace vícevrstvé neuronové sítě je znázorněna na následujícím obrázku.
Obr.1 Demonstrační aplikace určená pro predikci pomocí vícevrstvé neuronové sítě na základě metody back‐propagation. Jednotlivé body v grafu představují tréninkovou množinu, která odpovídá funkci sinusovky, tyto body jsou v grafu označeny červeně. Průběh funkce, který je generován pomocí natrénované neuronové sítě je reprezentován pomocí modré křivky na obrázku č.1 Další možností, kterou lze ovlivnit trénování neuronové sítě jsou úroveň a intenzita učení. Pro přesnost odhadu je také důležité nastavení alfa hodnota sigmoidy a velikost okna, které udává kolik vzorků z historie bylo použito pro výpočet výsledného odhadu.
199
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro predikci pomocí vícevrstvé neuronové sítě na základě metody back‐propagation v programovacím jazyku C#
Obr.3 Jednoduchá struktura neuronové knihovny v programovacím jazyku C#
200
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Síťová architektura s predikcí pomocí vícevrstvé neuronové sítě na základě metody back‐propagation se s oblibou používá pro odhadování výsledků na burze a směných kurzů. Dále se používá pro odhadování výsledků z pohledu ztrát a rizik. Pokud provádíme trénování neuronové sítě, nesmíme zapomínat, že nelze vždy zohlednit všechny dynamické parametry a je nutné přizpůsobit tomu rychlost učení, aby nedošlo k přetrénování neuronové sítě a neztratila schopnost se učit. Postup pro trénování neuronové sítě je součástí animace „Neuronové sítě – predikce pomocí vícevrstvé neuronové sítě na základě metody back‐propagation“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované Neural knihovny, které lze použít i v jiných aplikacích (core.dll, neural.dll, neural.neuro.dll a neural.controls.dll). Součásti podkladů pro cvičení je také program „Neuro_predikce_BP.exe“.
CD-ROM ...... Program : GA Neuro_predikce_BP.exe, core.dll, neural.dll, neural.neuro.dll a neural.controls.dll
201
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 11. - Neuronové sítě – jednoduché učící se neurony Řešený příklad V následující úloze budeme demonstrovat jednoduché učící se neurony. Během fáze trénování jsou nastaveny váhové koeficienty a prahové úrovně neuronů, tak aby dynamická chyba byla co nejmenší. V rámci trénování, si mohu zvolit co budu chtít zohlednit a to limit kroku nebo limit chyby učení. Po natrénování je neuronová síť schopna dát závěr pro libovolnou vstupní hodnotu kombinací. Snahou úlohy je ukázat řešení pomocí jednoduché neuronové sítě, která prochází během ladění procesem učení, než dosáhne požadovaných výsledků. Aplikace jednoduché neuronové sítě je znázorněna na následujícím obrázku.
Obr.1 Demonstrační aplikace určená pro jednoduché učící se neurony. Jednotlivé vstupní body v tabulce představují tréninkovou množinu, která odpovídá tvaru logické kostky, tyto body jsou vyhodnoceny v rámci dynamiky vzniklé chyby. na obrázku č.1
202
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro jednoduché učící se neurony v programovacím jazyku C#
Obr.3 Jednoduchá struktura neuronové knihovny v programovacím jazyku C# 203
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Postup pro nastavení jednoduché neuronové sítě je součástí animace „Neuronové sítě – jednoduché učící se neurony“, která je přiložena na CDROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované Neural knihovny, které lze použít i v jiných aplikacích (core.dll, neural.dll, neural.neuro.dll a neural.controls.dll). Součásti podkladů pro cvičení je také program „Neuro_uceni_neuronu.exe“.
CD-ROM ...... Program : Neuro_uceni_neuronu.exe, neural.controls.dll
core.dll,
204
neural.dll,
neural.neuro.dll
a
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 12. - Samo‐organizující se neuronové sítě – 2D Kohonenova mapa bodů Řešený příklad V následující úloze je ukázána samo‐organizující se neuronová sít využívající Kohonenovu mapu bodů. Nejčastěji se typy těchto sítí uplatňují v procesech rozpoznávání tvarů, získávání informací z nesourodého celku naměřených dat. Během fáze trénování a učení bez učitele se samoorganizující sít adaptuje a stimuluje k podání co nejlepšího výsledku, aby dosáhla konečného cíle. Takovým cílem může být nahraná zvuková stopa, část textové informace, informace v obraze a samozřejmě různé typy měřených signálů. Snahou úlohy je ukázat řešení pomocí vícevrstvé neuronové sítě, která prochází procesem samostatného ladění a učení na základě Kohonenova algoritmu, než dosáhne požadovaných výsledků. Aplikace vícevrstvé neuronové sítě s využitím Kohonenovy 2D mapy bodů je znázorněna na následujícím obrázku.
Obr.1 Demonstrační aplikace Samo‐organizující se neuronové sítě – 2D Kohonenova mapa bodů. Jednotlivé generované body představují získanou množinu dat, která odpovídá informaci, kterou chci získat. Body v mapě jsou pak na základě Kohonenova adaptačního procesu získaná tak, aby co nejlépe odrážela požadovaný výsledek. V rámci 2D mapy je možné si zobrazit jednotlivá propojení mezi jednotlivými body (neurony), které jsou označeny šedou barvou. Dále v mapě vidíme šedé body, které odpovídají neaktivním neuronů v rámci samo-organizující se 2D Kohonenově mapě bodů. Výsledné aktivní propojení neuronů sítě je reprezentován pomocí modré křivky na obrázku č.1
205
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu pro samo‐organizující se neuronovou sít pomocí 2D Kohonenovy mapy bodů v programovacím jazyku C#
Obr.3 Jednoduchá struktura neuronové knihovny v programovacím jazyku C# Postup pro učení neuronové sítě bez učitele je součástí animace „Samo‐organizující se neuronové sítě – 2D Kohonenova mapa bodů“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované Neural knihovny, které lze použít i v jiných aplikacích (core.dll, neural.dll, neural.neuro.dll a neural.controls.dll). Součásti podkladů pro cvičení je také program
206
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení „Neuro_2D_Kohonenova_mapy_bodu.exe“.
CD-ROM ...... Program : Neuro_2D_Kohonenova_mapy_bodu.exe, neural.neuro.dll a neural.controls.dll
207
core.dll,
neural.dll,
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 13. - Samo‐organizující se neuronové sítě – Třídění barevných segmentů pomocí Kohonenovy mapy Řešený příklad V následující úloze je ukázána samo‐organizující se neuronová sít využívající Kohonenovu mapu pro třídění barevných segmentů v obraze. V rámci čtvercové samo‐organizující se neuronové sítě (obrázek č.1) je vytvořeno 10000 neuronů, které mají různě inicializované váhové koeficienty, které reprezentují RGB hodnotu. Během samovolného procesu učení dojde k jejich třízení, tak aby jednotlivé barvy v obraze tvořili ucelenou strukturu barevného odstínu a také reprezentovali výsledek Kohonenovy mapy barevných segmentů. Výsledek aplikace vícevrstvé neuronové sítě s využitím Kohenenovy mapy barevných segmentů je znázorněn na obrázku č.2.
Obr.1 Demonstrační aplikace Třídění barevných segmentů pomocí Kohonenovy mapy před uspořádáním podle RGB palety.
Obr.2 Demonstrační aplikace Třídění barevných segmentů pomocí Kohonenovy mapy po uspořádání podle RGB palety. 208
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu samo‐organizující se neuronové sítě třídící barevné segmenty pomocí Kohonenovy mapy v programovacím jazyku C#
Obr.3 Jednoduchá struktura neuronové knihovny v programovacím jazyku C#
209
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Postup učení neuronové sítě třídící barevné segmenty pomocí Kohonenovy mapy bez učitele, je součástí animace „ Samo‐organizující se neuronové sítě – Třídění barevných segmentů pomocí Kohonenovy mapy“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované Neural knihovny, které lze použít i v jiných aplikacích (core.dll, neural.dll, neural.neuro.dll a neural.controls.dll). Součásti podkladů pro cvičení je také program „Neuro_2D_Kohonenova_mapa_barev.exe“.
CD-ROM ...... Program : Neuro_2D_Kohonenova_mapa_barev.exe, neural.neuro.dll a neural.controls.dll
210
core.dll,
neural.dll,
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
CVIČENÍ č. 14. - Elastické neuronové sítě – problém obchodního cestujícího Řešený příklad V následující úloze je ukázána elastická neuronová sít, řešící problém obchodního cestujícího, která zapadá do kontextu samo‐organizujících se neuronových sítí, ale využívá jinou interpretaci než např. 2D Kohonenovy mapy. Základem elastických struktur je kruhové řazení uzlů neuronové sítě (neuronů). Během trénování neuronové sítě jsou předkládány, jeden po druhém, různé kombinace vektorů, které vytváří různé elastické neuronové sítě, až se co nejlépe blíží předkládanému vzoru. Každý neuron v uvedené elastické síti obsahuje 2 váhy, které odpovídají souřadnicím [X,Y] na mapě obchodního cestujícího. Během procesu trénování neuronové sítě jsou jednotlivé souřadnice měst předkládány, jedna po druhé, neuronové síti a ta upravuje váhové koeficienty neuronů, tak aby co nejlépe kopírovaly trasu obchodního cestujícího. Výsledek aplikace samo‐organizující se elastické neuronové sítě je optimální trasa obchodního cestujícího, která je znázorněna na obrázku č.1.
Obr.1 Demonstrační aplikace Elastické neuronové sítě řešící problém obchodního cestujícího
211
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení Příklad kódu použitého v rámci aplikace:
Obr.2 Ukázka zdrojového kódu samo‐organizující se elastické neuronové sítě řešící problém obchodního cestujícího v programovacím jazyku C#
Obr.3 Jednoduchá struktura neuronové knihovny v programovacím jazyku C# Nevýhodou elastických neuronových sítí je, že neposkytují přesné řešení problému. Příkladem můžou být souřadnice měst, které jsou dané váhovými koeficienty a které se mohu blížit těmto souřadnicím, ale nemusí je nikdy 212
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení přesně dosáhnout. Další možná nevýhoda této metody je, že pokud vygenerujeme větší množství měst (bodů) má s tím metoda značné problémy, což je dáno kruhovým algoritmem řazení. Postup učení elastické neuronové sítě, která plánuje trasu obchodního cestujícího je součástí animace „Elastické neuronové sítě – problém obchodního cestujícího“, která je přiložena na CD-ROM. Tento návrh aplikace je vytvořen v prostředí MS Visual Studio #C a využívá sdílené zkompilované Neural knihovny, které lze použít i v jiných aplikacích (core.dll, neural.dll, neural.neuro.dll a neural.controls.dll). Součásti podkladů pro cvičení je také program „Neuro_elasticke_site_obchodni_cestujici.exe“.
CD-ROM ...... Program : Neuro_elasticke_site_obchodni_cestujici.exe, neural.neuro.dll a neural.controls.dll
213
core.dll,
neural.dll,
SYSTÉMY S UMĚLOU INTELIGENCÍ – Cvičení
214