systémy s umělou inteligencí - Index of

Transkript

systémy s umělou inteligencí - Index of
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) <v,w)]
IF [VE(k,r) < v]
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