Univerzita Pardubice Fakulta ekonomicko

Transkript

Univerzita Pardubice Fakulta ekonomicko
Univerzita Pardubice
Fakulta ekonomicko-správní
Ústav systémového inženýrství a informatiky
Modelování dat charakterizujících virtuální server
pomocí Kohonenových samoorganizujících se map
Bc. Ivana Broklová
Diplomová práce
2013
PROHLÁŠENÍ
Prohlašuji, že jsem tuto práci vypracovala samostatně. Veškeré literární prameny a informace,
které jsem v práci využila, jsou uvedeny v seznamu použité literatury.
Byla jsem seznámena s tím, že se na moji práci vztahují práva a povinnosti vyplývající
ze zákona č. 121/2000 Sb., autorský zákon, zejména se skutečností, že Univerzita Pardubice má
právo na uzavření licenční smlouvy o užití této práce jako Školního díla podle § 60 odst. 1
autorského zákona, a s tím, že pokud dojde k užití této práce mnou nebo bude poskytnuta
licence o užití jinému subjektu, je Univerzita Pardubice oprávněna ode mne požadovat
přiměřený příspěvek na úhradu nákladů, které na vytvoření díla vynaložila, a to podle okolností
až do jejich skutečné výše.
Souhlasím s prezenčním zpřístupněním své práce v Univerzitní knihovně Univerzity Pardubice.
V Pardubicích dne 30. 4. 2013
Bc. Ivana Broklová
PODĚKOVÁNÍ:
Tímto bych ráda poděkovala svému vedoucímu diplomové práce panu prof. Ing. Vladimíru
Olejovi, CSc. za jeho odborné vedení, cenné rady, připomínky, podporu při vypracování této
práce a také čas věnovaný konzultacím.
Zároveň také děkuji svému manželovi, celé mé rodině a všem, kteří mě podporovali při
studiu. Bez jejich nesmírné pomoci, trpělivosti, pochopení a tolerance by tato práce nikdy
nevznikla.
ANOTACE
Diplomová práce je zaměřena na modelování dat charakterizujících virtuální server Portal
a databázový server Oracle Univerzity Pardubice. Cílem této práce je navrhnout model
pro klasifikaci naměřených dat z těchto serverů pomocí Kohonenových samoorganizujících
se map. Na začátku práce je uvedena charakteristika virtualizace a jejích typů, dále následuje
popis Kohonenových samoorganizujících se map. V další kapitole je uveden postup návrhu
modelu pro klasifikaci. Nejprve je proveden popis a analýza vstupních dat, následuje příprava
dat. Další část práce je již věnována sestavení modelů, jejich verifikace v softwarové prostředí
MATLAB a také vyhodnocení.
KLÍČOVÁ SLOVA
Virtualizace, virtuální server, Kohonenova síť, KSOM, SOM Toolbox, Kohonenova
samoorganizující se mapa.
TITLE
Modeling of data characterizing a virtual server by Kohonen self-organizing maps.
ANNOTATION
The work is focused on the modeling of data characterizing the virtual server Portal
and Oracle database server of University of Pardubice. The aim of this work is to propose
a model for classification of measured data from servers using Kohonen self-organizing map.
At the beginning, describe characteristics of virtualization and its types, followed
by a description of the Kohonen self-organizing maps. The next chapter describes a design
model process for classification. First, it is made to describe and analyze the input data,
followed by data preparation. Another part of the work is devoted to building models, their
verification in the software MATLAB and evaluation.
KEYWORDS
Virtualization, virtual server, Kohonen neural networks, KSOM, SOM Toolbox, Kohonen self
organizing map.
OBSAH
ÚVOD .......................................................................................................................................................................12
1
VIRTUALIZACE ..........................................................................................................................................14
1.1 Hypervizor ..................................................................................................................................................15
1.2 Typy virtualizace ........................................................................................................................................17
1.3 Vrstvy virtualizační architektury.................................................................................................................21
1.4 Cloud computing - virtualizace poskytovaná prostřednictvím internetu .....................................................25
1.5 Dílčí závěr ...................................................................................................................................................26
2
KOHONENOVY SAMOORGANIZUJÍCÍ SE MAPY ..............................................................................27
2.1 Základní charakteristika KSOM .................................................................................................................27
2.2 Princip učení KSOM ...................................................................................................................................28
2.2.1 Učení v KSOM .......................................................................................................................................28
2.2.2 Základní Kohonenův algoritmus učení ..................................................................................................32
2.2.3 Dávkový a sekvenční učící algoritmus ...................................................................................................33
2.3 Úvodní nastavení vah a volba parametrů učení...........................................................................................34
2.4 Vybavovací fáze ..........................................................................................................................................38
2.5 Vlastnosti KSOM a hodnocení kvality učení ..............................................................................................38
2.6 Varianty a rozšíření KSOM ........................................................................................................................39
2.7 Využití KSOM ............................................................................................................................................41
2.8 Softwarové produkty ...................................................................................................................................41
2.9 Dílčí závěr ...................................................................................................................................................42
3
NÁVRH MODELU KLASIFIKACE DAT POMOCÍ KSOM ..................................................................43
3.1 Návrh modelu..............................................................................................................................................43
3.2 Popis a analýza vstupních dat, určení parametrů ........................................................................................44
3.3 Příprava dat .................................................................................................................................................47
3.4 Rozdělení na trénovací a testovací data ......................................................................................................52
3.5 Všeobecný klasifikační problém .................................................................................................................53
3.6 Návrh modelů KSOM .................................................................................................................................55
3.7 K-means ......................................................................................................................................................57
3.8 Dílčí závěr ...................................................................................................................................................60
4
VERIFIKACE MODELŮ A ANALÝZA VÝSLEDKŮ .............................................................................61
4.1 Modely KSOM se sekvenčním učícím algoritmem ....................................................................................61
4.1.1 Porovnání modelů ..................................................................................................................................62
4.1.2 Analýza výsledků ....................................................................................................................................62
4.1.3 Testovací data ........................................................................................................................................65
4.2 Modely KSOM s dávkovým učícím algoritmem ........................................................................................71
4.2.1 Porovnání modelů ..................................................................................................................................71
4.2.2 Analýza výsledků ....................................................................................................................................71
4.2.3 Testovací data ........................................................................................................................................74
4.3 Porovnání výsledků modelů ........................................................................................................................79
4.4 Dílčí závěr ...................................................................................................................................................81
5
ZÁVĚR ...........................................................................................................................................................82
SEZNAM POUŽITÉ LITERATURY ...................................................................................................................84
SEZNAM PŘÍLOH .................................................................................................................................................87
SEZNAM TABULEK
Tabulka 1: Korelační matice ....................................................................................................... 50
Tabulka 2: Datový slovník .......................................................................................................... 51
Tabulka 3: Parametry modelu – sekvenční algoritmus ............................................................... 62
Tabulka 4: Popis tříd dle shluků, sekvenční učící algoritmus, testovací data ............................. 69
Tabulka 5: Parametry modelu – dávkový algoritmus ................................................................. 72
Tabulka 6: Popis tříd dle shluků, dávkový učící algoritmus, testovací data ............................... 77
Tabulka 7: Průměrné hodnoty parametrů dle tříd ....................................................................... 79
SEZNAM OBRÁZKŮ
Obrázek 1: Hypervizor typ 1 .......................................................................................................15
Obrázek 2: Hypervizor typ 2 .......................................................................................................16
Obrázek 3: Hybridní hypervizor .................................................................................................17
Obrázek 4: Privilegované a neprivilegované instrukce ...............................................................18
Obrázek 5: Plná virtualizace .......................................................................................................18
Obrázek 6: Virtualizace s hardwarovou podporou ......................................................................19
Obrázek 7: Paravirtualizace ........................................................................................................20
Obrázek 8: Virtualizace na úrovni operačního systému..............................................................21
Obrázek 9: Centralizovaný model (VDI) od společnosti VMware .............................................23
Obrázek 10: Virtualizace aplikací ...............................................................................................24
Obrázek 11: Struktura KSOM .....................................................................................................27
Obrázek 12: Příklad uspořádání KSOM......................................................................................28
Obrázek 13: Příklad čtvercové a hexagonální topologie .............................................................30
Obrázek 14: BMU a aktivita neuronů v okolí .............................................................................31
Obrázek 15: Okolí BMU pro různé časové okamžiky ................................................................31
Obrázek 16: Počáteční inicializace vah a koncový stav mřížky .................................................35
Obrázek 17: Fáze učení ...............................................................................................................36
Obrázek 18: Efekty, které moho nastat během učení ..................................................................37
Obrázek 19: Algoritmus návrhu modelu .....................................................................................44
Obrázek 20: Schématické znázornění zobrazení F:A->B ...........................................................54
Obrázek 21: U-matice, sekvenční učící algoritmus, trénovací data ............................................63
Obrázek 22: Hodnoty jednotlivých parametrů, sekvenční učící algoritmus, trénovací data .......64
Obrázek 23: U-matice, sekvenční učící algoritmus, testovací data.............................................66
Obrázek 24: Hodnoty jednotlivých parametrů, sekvenční učící algoritmus, testovací data .......67
Obrázek 25: Davies-Bouldinův index, sekvenční učící algoritmus, testovací data ....................68
Obrázek 26: Shluky, sekvenční učící algoritmus, testovací data ................................................68
Obrázek 27: Klasifikace do tříd, sekvenční učící algoritmus, testovací data ..............................69
Obrázek 28: U-matice, dávkový učící algoritmus, trénovací data ..............................................72
Obrázek 29: Hodnoty jednotlivých parametrů, dávkový učící algoritmus, trénovací data .........73
Obrázek 30: U-matice, dávkový učící algoritmus, testovací data ...............................................74
Obrázek 31: Hodnoty jednotlivých parametrů, dávkový učící algoritmus, testovací data .........75
Obrázek 32: Davies Bouldin index, dávkový učící algoritmus, testovací data ...........................75
Obrázek 33: Shlukování pomocí K-means, dávkový učící algoritmus, testovací data ...............76
Obrázek 34: Klasifikace do tříd, dávkový učící algoritmus, testovací data ................................76
SEZNAM ZKRATEK
API
Application Programming Interface, aplikační programové rozhraní
ASSOM
Adaptive-Subspace Self-Organizing Map, samoorganizující se mapa
s adaptivním podprostorem
BMU
Best Matching Unit, vítězný neuron
CPU
Central Processing Unit, procesor
DAS
Direct Attached Storage, úložiště připojené k serveru
DB
Davies Bouldin Index, index hodnotící kvalitu shlukování
DLL
Dynamic Link Library, dynamicky linkovaná knihovna
GSOM
Growing Self-Organizing Map, rostoucí samoorganizující se mapa
GUI
Graphical User Interface, grafické uživatelské rozhraní
KSOM
Kohonen`s Self-Organizing Maps, Kohonenova samoorganizující se mapa
IT
Informační technologie
LUN
Logical Unit Number, logická jednotka
LVQ
Learning Vector Quantization, vektorová kvantizace učením
MHz
Mega Hertz, jednotka frekvence
NAS
Network Attached storage, síťové připojené úložiště
ORA
Databázový server Oracle
OS
Operating System, operační systém
PCA
Principal Component Analysis, metoda hlavních komponent
RAM
Random-Access Memory, paměť s přímým přístupem
SAN
Storage Area Network, datová síť
SSOM
Spherical Self-Organizing Maps, sférická samoorganizující se mapa
TASOM
Time Adaptive Self-Organizing Map, časově adaptivní samoorganizující
se mapa
TE
Topographic Error, topografická chyba
QE
Quantization Error, kvantizační chyba
VDI
Virtual Desktop Infrastructure, centralizovaný model
VLAN
Virtual Local Area Network, virtuální lokální síť
VM
Virtual Machine, virtuální stroj
VMM
Virtual Machine Monitor, hypervizor
VPN
Virtual Private Network, virtuální privátní síť
VPS
Virtual Private Server, virtuální privátní server
WTA
Winner Takes All, učící pravidlo, strategie vítěz bere vše
SEZNAM POUŽITÝCH SYMBOLŮ
Shluk
Euklidovská vzdálenost
Manhattanská vzdálenost mezi neurony
Míra distorze
Práh okolí
Variace okolí
Míra kvality kvantizace
Účelová funkce
Adaptační funkce okolí
Index vítězného neuronu
Objekt
Množina objektů
P
Datová matice
Míra podobnosti shluků
Rozptylu uvnitř shluku
Směrodatná odchylka
Čas začátku epochy
Čas konce epochy
Synaptické váhy
Kriterium těsnosti
Obraz (funkční hodnota)
Vstupní vzor
Aritmetický průměr
Normovaná hodnota
α
Hladina spolehlivosti
Chybějící hodnota i-tého znaku v j-tém řádku u k-tého shluku
Parametr učení
Velikost okolí
Třída
ÚVOD
Umělá inteligence patří již řadu let k oblastem lidského zkoumání. Mezi moderní přístupy
v umělé inteligenci patří neuronové sítě, které mají za cíl modelovat chování lidského mozku.
Důležitou vlastností neuronových sítí je schopnost učit se a následně naučené poznatky
zevšeobecňovat – tj. reagovat i na neznámé vstupy, na které nebyla neuronová síť učena.
Podle algoritmu učení lze neuronové sítě rozdělit na neuronové sítě s učením s učitelem
a na neuronové sítě, které ke svému učení učitele nepotřebují. Mezi neuronové sítě s učením
bez učitele patří Kohonenovy samoorganizující se mapy, které v roce 1982 navrhl Teuvo
Kohonen. [26]
Diplomová práce je zaměřena na modelování dat charakterizujících virtuální server Portal
a databázový server Oracle Univerzity Pardubice. Cílem práce je analyzovat data virtuálního
serveru, navrhnout model pro klasifikaci naměřených dat těchto serverů pomocí
Kohonenových samoorganizujících se map a navržený model verifikovat. Je rozdělena
na čtyři hlavní kapitoly. První kapitola charakterizuje jednotlivé druhy hypervizorů, které řídí
procesy a zdroje virtualizovaných operačních systémů (virtuálních strojů). Dále první kapitola
popisuje jednotlivé typy virtualizace, mezi které patří především plná virtualizace,
virtualizace s hardwarovou podporou, paravirtualizace a virtualizace na úrovni jádra
operačního systému. Virtualizační technologie lze použít alespoň v sedmi vrstvách
architektury IT. Tyto jednotlivé vrstvy jsou v kapitole popsány. Dále tato kapitola uvádí
hlavní výrobce produktů pro virtualizaci včetně jednoduchého přehledu aktuálních produktů,
které nabízí pro danou oblast virtualizace.
Druhá kapitola charakterizuje Kohonenovy samoorganizující se mapy. Je zde uveden
základní algoritmus učení a také podrobnější popis jednotlivých kroků učení. Tato kapitola
také obsahuje teoretická východiska pro nastavování parametrů učení včetně uvedení
nežádoucích efektů, které mohou v průběhu učení nastat. Závěr kapitoly patří přehledu
softwarových produktů, které umožňují Kohonenovy samoorganizující se mapy modelovat
a také přehledu aplikací, které je využívají a pomáhají lidem řešit složité úlohy
např. v oblastech zdravotnictví, ekologie, marketingu.
Ve třetí kapitole je uveden popis návrhu modelu pro klasifikaci dat charakterizujících stav
provozu virtuálního webového serveru Portal a databázového serveru Oracle na základě
naměřených hodnot parametrů během provozu serverů. Nejprve je proveden popis a analýza
vstupních dat. Následně je provedena příprava dat, která zahrnuje normování dat, zjištění
12
a ošetření chybějících hodnot a také korelační analýzu, která zjišťuje korelační vztahy mezi
parametry. Z takto předzpracovaných dat je sestavena datová matice, která slouží jako vstup
pro klasifikaci. V kapitole je dále uveden popis rozdělení dat na trénovací a testovací, dále
popis všeobecného klasifikačního problému a také popis nastavení parametrů učení
jednotlivých modelů, které budou následně vyhodnocovány. V závěru kapitoly je uveden
algoritmus K-means, který lze použít pro shlukování reprezentantů Kohonenovy
samoorganizující se mapy.
Čtvrtá kapitola je věnována sestavení modelu pro klasifikaci v softwarovém prostředí
MATLAB R2012b s použitím SOM Toolboxu. Navržené modely jsou porovnány a dle
získaných výsledků je proveden výběr nejvhodnějšího modelu. Dále kapitola uvádí popis
přiřazení tříd, které jsou reprezentovány výslednými shluky. Následně je uveden popis
objektů, které jsou v jednotlivých třídách zastoupeny.
13
1 VIRTUALIZACE
Termínem virtualizace v prostředí informačních technologií lze dle [4] označit
technologie, jejichž cílem je vytvořit vrstvu abstrakce mezi hardwarovými systémy
a softwarem, který na nich funguje. Virtualizační řešení nám mohou umožnit provoz několika
operačních systémů a jejich verzí na jednom fyzickém hostiteli. Virtualizace nám tedy
umožňuje
nahlížet
na
jednu
fyzickou
entitu
jako
na
několik
logických
entit.
Virtualizované prostředí je konzistentní s fyzickým, nevirtualizovaným prostředím.
Počátky virtualizace se dle literatury [28] datují na přelom 60. a 70. let minulého století.
Během dalších desetiletí prošla virtualizace vývojem a v dnešní době představuje základní
stavební kámen pro většinu IT infrastruktur. Virtualizace mění veškeré pohledy na správu
systémů, úložišť, sítí, zabezpečení, operačních systémů a aplikací.
Základní vlastností virtualizace je oddělení operačního systému od hardwarových
prostředků pomocí virtualizační vrstvy. Tato vrstva zajišťuje nezávislost operačního systému
na konkrétním hardware a tím zajišťuje kompatibilitu napříč servery. Další vlastností
virtualizace je reprezentace virtualizovaného systému několika soubory na pevném disku.
Virtualizované systémy jsou od sebe izolovány, nemohou se ovlivňovat a mají nízký
overhead výkonu, tj. virtualizovaný systém může využívat méně než 5 % výkonu procesoru
fyzického hostile. Z dalších funkcí virtualizace lze jmenovat tvorbu snapshotů, které umožňují
např. při havárii návrat k určitému bodu “zmrazení“ dat, dále datová deduplikace pro
odstraňování duplicitních souborů v úložišti dat nebo paměti a také možnost škálovat systém
pomocí jednoduchého přidání virtuálního hardware - např. více operační paměti RAM, více
jader procesorů, disků, síťových karet - a to i při spuštěném systému. [27]
Virtualizace přináší řadu výhod. Hlavní důvody pro její implementaci lze shledat
v úsporách energie a místa. Jako příklad lze uvést úsporu nákladů na provoz u několika
virtuálních serverů, které jsou spouštěny nad jedním fyzickým serverem oproti provozu
několika fyzických serverů. Jak již bylo uvedeno, virtuální počítač je reprezentován několika
soubory na disku. Lze jej tedy snadno duplikovat pouhým zkopírováním složky, ovšem
za předpokladu, že existuje dostatek místa na fyzickém disku. Z dalších důvodů
pro implementaci virtualizace lze uvést zjednodušení zálohování. Jelikož zálohování znamená
pouhé zkopírování množiny souborů, lze vytvářet pravidelné zálohy v kritických fázích
projektu. Pokud se vyskytne problém, lze se snadno vrátit k předchozí verzi počítače.
Není vyžadován žádný zvláštní zálohovací agent, neboť virtuální počítače jsou uloženy
na souborovém serveru. Virtuální počítače jsou také ideální pro zotavení po havárii, neboť
14
stačí pouze zkopírovat jejich soubory do jiného umístění. Z dalších výhod virtualizace
lze
uvést
vytvoření
vzdáleného
testovacího,
vývojového
či
školícího
prostředí,
protože po ukončení činnosti lze virtuální počítač smazat a pouhým zkopírováním vytvořit
opět nový. Virtuální počítač je tak připraven za mnohem kratší dobu než fyzický počítač.
Naopak překážkou pro implementaci virtualizace mohou být vyšší počáteční pořizovací
náklady na specializovaný hardware fyzického hostitelského serveru. [28]
Dle výzkumu [6], který provedla analytická a konzultační společnost Canalys v květnu
2012, se neustále zvětšuje počet virtualizovaných firem a lze předpokládat, že malých
a středních firem virtualizovaných z 80 % (malé a střední firmy jsou silně virtualizované)
bude do roku 2014 dvojnásobek. Motivací pro nasazení virtualizace není dle tohoto výzkumu
jen úspora nákladů, ale také snaha zajistit provázanost a plynulost podnikání a zlepšit využití
hardware.
1.1 Hypervizor
Hypervizor, někdy označován jako Virtual Machine Monitor (VMM), je software
zodpovědný za provoz všech virtuálních strojů (VM - Virtual Machine). Virtuální stroj
se skládá z vlastního virtualizovaného hardwaru, virtualizovaného operačního systému
a aplikací, které jsou nad virtualizovaným OS spouštěny. Úkolem hypervizoru je především
zprostředkovávat přístup virtualizovaných operačních systémů k fyzickému hardwaru
(provádění privilegovaných instrukcí), řízení přístupu virtuálního CPU k CPU fyzického
hostitele, přístup k fyzickým I/O zařízením, a dále vytvoření, spuštění, zastavení a zrušení
VM. Existují následující typy hypervizoru: Typ 1, Typ 2 a Hybridní typ. [23], [24]
Hypervizor typ 1 je dle [23] a [28] umístěn přímo na fyzickém hardwaru hostitelského
počítače a nad ním jsou umístěny virtuální stroje. Kód hypervizoru je integrován přímo
do hardwaru a umožňuje přístup k hardwaru hostitelského serveru všem virtuálním strojům,
které jsou nad ním spuštěny. Stane se tak na úkor pouze malého množství fyzických zdrojů
hostitelského serveru a proto umožňuje spuštění nejvyššího možného počtu virtuálních strojů.
Hostovaný operační systém je spouštěn ve vrstvě nad hypervizorem, jak ukazuje obr. 1.
Obrázek 1: Hypervizor typ 1
Zdroj: upraveno podle [23]
15
Tento typ hypervizoru obvykle nabízí vyšší výkon a proto bývá upřednostňován
pro serverovou virtualizaci. Příkladem zástupce s hypervizorem typu 1 od společnosti
Microsoft je
Hyper-V, společnost VMware nabízí ESX Server nebo ESXi Server
a společnost Citrix produkt XEN Server. [23], [28]
V případě hypervizoru typu 2 je spouštěn hostovaný virtualizovaný operační systém nad
hypervizorem, který běží na existujícím operačním systému. Hostované operační systémy
jsou spouštěny ve třetí vrstvě, jak znázorňuje obr. 2. Hypervizor vytváří prostředí virtuálních
strojů a koordinuje výzvy k CPU, paměti, disku, sítí a jiných zdrojů prostřednictvím
hostitelského operačního systému. Základní operační systém hostitele vyžaduje také zdroje,
a proto ovlivní provoz virtuálních strojů běžícím nad ním. Tento typ hypervizoru
se nedoporučuje používat v provozním prostředí, protože může dojít k znepřístupnění služeb
na virtuálních strojích a tím k negativním dopadům na uživatele. Při provozování
virtualizovaného produktu nad stávajícím operačním systémem podléhají všechny virtuální
stroje procesu aktualizace hostitelského operačního systému. Pokud je vyžadován restart
počítače, dojde rovněž k restartu všech virtuálních strojů. Z těchto důvodu není tento model
používán pro serverovou virtualizaci, ale je používán pro virtualizaci desktopů a to především
pro testování nebo vývoj. Ze zástupců pro softwarovou serverovou virtualizaci lze jmenovat
produkt Virtual Server od společnosti Microsoft a VMware Server. [28]
Obrázek 2: Hypervizor typ 2
Zdroj: upraveno podle [23]
Hybridní hypervizor je často přiřazován do skupiny typu 2. Hypervizor je spouštěn vedle
hostitelského operačního systému přímo na fyzickém hardware. Hostované operační systémy
jsou spuštěny nad hyperizorem, jak lze spatřit na následujícím obr. 3. Tento typ hypervizoru
je upřednostňovanou variantou pro uživatelské počítače a to převážně pro testování a vývoj.
Virtuální prostředí je v těchto případech spouštěno pomocí ikony umístěné na ploše.
Příkladem tohoto typu virtualizačního řešení je XP mode v operačním systému Windows 7,
Sun Virtual Box společnosti Oracle nebo VMware Workstation. [23]
16
Obrázek 3: Hybridní hypervizor
Zdroj: upraveno podle [23]
1.2 Typy virtualizace
Virtualizaci lze dle [27] provádět na různých úrovních – od virtualizace hardwarových
komponent (např. virtuální paměť) až po virtualizaci všech součástí počítače nebo virtualizaci
celých sítí. Dle závislosti na míře a způsobu virtualizace fyzického počítače lze provést
rozdělení na několik typů – jak jej uvádí většina literatury - na parciální virtualizaci, plnou
virtualizaci, paravirtualizaci, virtualizaci s hardwarovou podporou, emulaci a virtualizaci
na úrovni jádra operačního systému. V současné době převažují kombinace různých typů
virtualizace. Především se jedná o kombinaci plná virtualizace + virtualizace s hardwarovou
podporou + paravirtualizace.
Plná virtualizace znamená virtualizaci všech součástí počítače. Dochází k oddělení
fyzické vrstvy a veškerý software běží na virtuálním hardware, který lze navrhnou dle našich
požadavků. Virtuální stroje nekomunikují přímo s fyzickým hardwarem, ale jejich požadavky
odeslané virtuálním zařízením jsou zpracovány a předány fyzickým zařízením. Spuštěný
operační systém nemůže žádným způsobem poznat, že nemá přístup k fyzickému hardware
a není třeba jej modifikovat. Plná virtualizace však vyžaduje podporu hardwaru – procesoru,
základní desky a BIOSu. Nejznámějšími zástupci jsou VMware ESX Server a ESXi Server,
Microsoft Hyper-V a Citrix XEN Server, který je určen pro Linux. [18], [38]
Následující obr. 5 znázorňuje architekturu plné virtualizace včetně privilegovaných
a neprivilegovaných režimů neboli jednotlivých úrovní přístupových oprávnění systému.
Nejprve však považuji za důležité krátce popsat režimy, které jsou znázorněny na obr. 4.
V části s nejvyššími oprávněními, označované Ring 0, je spuštěno jádro operačního systému,
které má práva spouštět privilegované instrukce. Tato část může náležet hypervizoru,
tj. virtualizační vrstvě, která se nachází mezi fyzickým a virtuálním hardwarem a řídí přístup
virtuálního CPU k fyzickému. Částem neprivilegovaného režimu, Ring 1 a Ring 2, náleží
úroveň ovladačů zařízení. Neprivilegovaný proces může přistupovat do privilegovaného
režimu pouze přes brány – např. adresy podprogramu, které může proces volat. Části Ring 3
s neprivilegovaným režimem přísluší přístupová práva na aplikační úrovni. Znamená to,
17
že např. aplikace v Ring 3 bude mít zabráněn přístup např. k tiskárně či webové kameře,
dokud uživatel nepovolí instalaci ovladačů nacházejících se v Ring 1 nebo Ring 2. [24], [7]
Obrázek 4: Privilegované a neprivilegované instrukce
Zdroj:[24]
Následující obrázek znázorňuje, jak již bylo zmíněno, plnou virtualizaci. Privilegovaný
režim v Ring 0 v tomto případě náleží hypervizoru.
Obrázek 5: Plná virtualizace
Zdroj: upraveno podle [7]
Částečná neboli parciální virtualizace tvoří v současné době základ všech moderních
operačních systémů. Jedná se o virtualizaci, při které virtuální stroj simuluje více instancí
hardwaru hostitele. Příkladem lze uvést virtuální paměť. V tomto případě se však obecně
nejedná o virtuální stroj. [25]
Virtualizace s hardwarovou podporou je založena na podpoře ze strany CPU, pomocí
které je urychlen přenos mezi hostujícím operačním systémem a hypervizorem. Tento typ
18
virtualizace využívá většina zástupců využívajících plnou virtualizaci. Není nutné
modifikovat hostující operační systém. Procesory s hardwarovou podporou vyvíjejí
společnosti Intel a AMD. Hardwarová podpora Intel-VT je zabudována např. do procesorů
Intel Xeon a 3rd Generation Intel Core vPro. Společnost AMD nabízí AMD-V technologie,
do které náleží např. procesory AMD Opteron. Ze zástupců využívajících virtualizaci
s hardwarovou podporou lze jmenovat Microsoft Hyper-V, VMware ESX Server a ESXi
Server a také Citrix XenServer. [11], [27]
Na obr. 6 lze spatřit architekturu virtualizace s hardwarovou podporou. V tomto modelu
je kromě úrovní Ring 0 až Ring 3 znázorněna úroveň Ring-1, ve které hypervizor využívá
některých vlastností výkonných procesorů vyvíjených společnostmi Intel a AMD. Tato
úroveň vznikla z potřeby umístit hypervizor do jiné úrovně než do úrovně pro jádro
operačního systému Ring 0. Ring-1 umožňuje hypervizoru spustit výpočty přímo místo
spouštění prostřednictvím operačního systému. [7]
Obrázek 6: Virtualizace s hardwarovou podporou
Zdroj: upraveno podle [7]
Dalším typem virtualizace je paravirtualizace, která nabízí možnost komunikace
upraveného jádra virtualizovaného operačního systému s fyzickým hardwarem přes speciální
aplikační rozhraní (API - Application Programming Interface) upraveného jádra hostovaného
operačního systému. Paravirtualizace je znázorněna na obr. 7. Systémová volání probíhají
přes hypervizor. Virtualizovaný systém ví o tom, že je virtualizován a je nutné jej
modifikovat. Systémy na bázi paravirtualizace dosahují vysoké efektivity. Zástupcem
paravirtualizace pro Linux je Citrix Xen Server (náleží také do plné virtualizace). Dalším
zástupcem je např. VMware Workstation a také Sun Virtual Box. [27], [34]
19
Obrázek 7: Paravirtualizace
Zdroj: upraveno podle [7]
Emulace představuje virtualizaci hardwarových komponent za účelem simulace jiné
hardwarové
platformy.
Hostitelský
systém
musí
dynamicky
překládat
instrukce
pro emulovaný HW, a proto se jedná se o nejpomalejší způsob virtualizace. Hlavní využití
nachází v případě, kdy nemáme k dispozici požadovaný hardware – např. pro běh softwaru
na jiné platformě, než pro jakou byl naprogramován. Zástupci této kategorie jsou Bochs
a QEMU, který nabízí dva režimy emulace – plnou a uživatelskou. Plná emulace umožňuje
v emulátoru nabootovat celý operační systém a uživatelská emulace umožňuje spuštění
aplikace pro jiný procesor. [34], [38]
Dalším typem virtualizace je virtualizace na úrovni jádra operačního systému.
K virtualizaci v tomto případě dochází až na úrovni operačního systému. Virtualizované
prostředí běží nad společným jádrem OS, které má přímý přístup k fyzickému hardwaru.
Systém umožňuje měnit limity systémových prostředků za běhu virtuálních serverů a také
umožňuje dynamicky zvyšovat i snižovat hodnoty hardwarového nastavení virtuálních
serverů. Tato metoda umožňuje spuštění více instancí stejných operačních systémů,
tzv. kontejnerů, určených pro stejnou architekturu jako hostitelský systém, avšak mohou být
s různými knihovnami a popřípadě různé distribuce. Virtualizace na úrovni OS je znázorněna
na obr. 8. Společně s paravirtualizací je považována za nejefektivnější typ virtualizace.
Virtuální stroje založené na tomto typu virtualizace jsou využívány především pro testování
software na různých distribucích a také pro hostingové služby, neboť dovolují zákazníkům
zakoupit si virtuální privátní server (VPS – Virtual Private Server) a ten si upravit dle svých
představ bez ohledu na ostatní uživatele. Poskytovatel může provozovat více virtuálních
serverů na jednom fyzickém serveru. Ze zástupců tohoto typu virtualizace lze jmenovat Linux
VServer nebo Parallels Virtuozzo. [7], [34]
20
Obrázek 8: Virtualizace na úrovni operačního systému
Zdroj: upraveno podle [7]
1.3 Vrstvy virtualizační architektury
Virtualizační technologie lze dle [28] použít v několika vrstvách architektuy IT. Jedná
se o serverovou virtualizaci, virtualizaci úložišť, virtualizaci sítí, virtualizaci desktopů,
virtualizaci prezentační vrstvy, virtualizaci aplikací a virtualizaci pro mobilní telefony.
Nejčastěji je však virtualizace uváděna v souvislosti s virtualizací serverů.
Serverová virtualizace umožňuje spuštění více virtuálních serverů na jednom fyzickém
serveru. Produkty serverové virtualizace umožňují virtualizovat libovolný operační
systém - např. Windows, Linux a některé formy systému UNIX. Při serverové virtualizaci se
fyzický server stane hostitelem všech virtuálních operačních systémů nebo virtuálních strojů.
Jak již bylo uvedeno v kapitole 1.1, pro serverovou virtualizaci se používají nejčastěji typ 1,
výjimečně typ 2. [28]
Serverová virtualizace nabízí řadu výhod. Mezi hlavní výhody patří úspora nákladů,
rychlost nasazení virtuálního stroje, mobilita virtuálního stroje, snadné používání, bezpečnost
(lze je izolovat), jednoduchost zotavení po havárii (stačí zkopírovat soubory do jiného
umístění), možnost škálovat výkon virtuálních počítačů a také finanční úspory na software,
neboť např. Microsoft změnil licenční politiku tak, aby podporovala virtualizaci a počínaje
vydáním operačního systému Windows Server 2003 R2 k zakoupení jedné licence zaručuje
až čtyři bezplatné virtuální instance operačního systému. Mezi hlavní výrobce produktů
pro serverovou virtualizaci patří společnosti Microsoft, VMware a Citrix. Ze zástupců lze
jmenovat VMware ESX nebo ESXi server, Microsoft Hyper-V a Citrix XEN server. [28]
21
Dle literatury [23] a [28] existují dva základní modely virtualizace desktopů: uživatelský
(místní) a centralizovaný. V případě uživatelské virtualizace desktopů je virtualizační
software nainstalován na fyzickém desktopu uživatele, který pak musí spustit virtuální
desktop nad svým fyzickým desktopem. Zástupcem je např. Sun Virtual Box nebo VMware
workstation.
Centralizovaný model (VDI - Virtual Desktop Infrastructure) nabízí možnost centralizovat
nasazení desktopů a tím snížit náklady na distribuovanou správu. V tomto modelu, který je
znázorněn na obr. 9, se každý uživatel připojí k vlastnímu desktopovému virtuálnímu stroji.
Hostitelský server, na němž je spuštěn hypervizor, spravuje všechny desktopové virtuální
stroje a zajišťuje jejich dostupnost. Koncový uživatel přistupuje k vlastnímu virtuálnímu
desktopu přes připojení ke vzdálené ploše, obdobně jako k terminálu, ale v tomto případě má
k dispozici svůj vlastní desktop, se kterým po spuštění pracuje stejně, jako v případě
fyzického uživatelského počítače. Virtuální desktopy jsou spouštěny nad hostitelskými
servery, které používají sdílené úložiště a tak zajišťují dostupnost desktopů. Funkci VDI
zajišťuje tzv. „connection broker“, který komunikuje s klientem i s virtuální infrastrukturou
a řídí veškeré procesy týkající se VDI. Na straně tenkého klienta je nutné mít nainstalovaný
operační systém, který je třeba aktualizovat, antivirovou ochranu a klienta pro připojení
ke vzdálené ploše. Správa klienta je podstatně jednodušší a efektivnější než správa fyzického
desktopu. [28]
Virtualizace desktopů nabízí výhody v oblasti testování, vývoje či školení, neboť
po ukončení činnosti stačí nastavit virtuální počítač zpět do původního stavu. Další výhodou
je úsporu času ve srovnání se správou distribuovaných systémů. Z dalších výhod lze jmenovat
možnost tvorby obrazů osobních počítačů s přístupem odkudkoliv (kde má uživatel
k dispozici internetové připojení) pomocí klienta pro přístup ke vzdálené ploše, dále možnost
izolace aplikací, jednoduchou migraci na nový operační systém atd. Z nevýhod nelze
opomenout, že na činnost jednoho desktopu jsou potřeba dva počítače – tenký klient a druhý
centralizovaný. Dále je nutné upozornit na skutečnost, že nelze tímto způsobem provozovat
všechny aplikace s ohledem na jejich technologii přístupu. Dále je nutné mít k dispozici
internetové připojení odpovídající kvality. [28]
22
Obrázek 9: Centralizovaný model (VDI) od společnosti VMware
Zdroj:[27]
Virtualizace aplikací používá virtualizaci nad operačním systémem. Virtualizace aplikací
však neposkytuje engin ke spouštění celého operačního systému, ale odděluje provozní
aplikace od operačního systému. Pomocí enginu virtualizace aplikací lze spustit
virtualizované aplikace na libovolné verzi systému Windows. Systém Windows slouží jako
základna provozu aplikací. Funkce typu tisk, spolupráce aplikací, výměna aplikačních
informací, grafické zobrazení a komunikace jsou integrovány do jádra operačního systému.
Tyto funkce není nutné programovat do aplikací, neboť je stačí v případě potřeby zavolat.
Tradiční instalace aplikací pronikají do operačního systému (v systému Windows jde
o knihovny DLL) a mění jeho konfiguraci. Někdy tyto změny způsobí nefunkčnost jimi
volaných funkcí. Při virtualizaci aplikace se nevytváří snímek instalačního procesu, ale
vytváří se snímek stavu spuštěné aplikace nebo všeho, co je potřeba k funkčnosti dané
aplikace v daném operačním systému. Virtualizace aplikací tak vytváří ochrannou vrstvu
kolem operačního systému, jak je znázorněno na obr. 10, která jej chrání před všemi
změnami, k nimž by mohlo při instalaci určité aplikace dojít. [28]
23
Obrázek 10: Virtualizace aplikací
Zdroj: upraveno podle [28]
Virtualizace úložišť se používá dle [28] ke sloučení fyzického úložiště z více zařízení tak,
aby se jevilo jako jednoho virtuálního úložiště. Toto úložiště může nabývat několika podob:
přímo připojené úložiště k serveru (DAS – Direct Attached Storage), síťové připojené sdílené
úložiště (NAS – Network Attached Storage) nebo datová síť (SAN - Storage Area Network),
která poskytuje přístup k externím zařízením, jakými mohou být disková pole nebo
zálohovací zařízení. Sítě SAN lze připojit prostřednictvím několika protokolů, např. Fibre
Channel nebo iSCSI. Virtualizace úložišť není pro serverovou virtualizaci nezbytná, ale
výhodou jejího použití je možnost využití thin provisioningu (alokace prostoru na disku) nebo
přiřazení logické jednotky (LUN – Logical Unit Number) úložiště určité velikosti.
Provisioning funguje na bázi přidělení prostoru podle skutečné potřeby. Virtualizace úložišť
snižuje náklady, neboť jsou hrazeny náklady pouze za úložiště, které je skutečně využito.
Cílem virtualizace sítí je rozdělit síťové prostředky takovým způsobem, aby vytvořily
několik logických jednotek, které jsou nezávislé na svých fyzických vlastnostech a přiřadit je
konkrétním zdrojům. Příkladem je virtuální lokální síť (VLAN - Virtual Local Area Network)
a virtuální privátní síť (VPN - Virtual Private Network). [28]
Dalším aspektem sedmivrstvého modelu virtualizace je správa virtualizace zaměřená
na technologie, které spravující fyzickou i virtuální část datového centra. Tyto části jsou
prezentovány jako jediná a sjednocená infrastruktura pro poskytování služeb. Správu
virtualizace neprovádí nutně jedno rozhraní. Je však potřebné zajistit, aby byla oddělena
vrstva, která zahrnuje množinu hardwarových zdrojů (hostitelské servery, úložiště, síťový
hardware apod.) a vrstva nabídky virtuálních služeb, kterou tvoří virtuální počítače (servery
nebo desktopy nabízející službu koncovým uživatelům). Ze zástupců lze jmenovat např.
System Center od společnosti Microsoft nebo vCenter společnosti VMware. [28]
24
Virtualizace prezentační vrstvy (dříve označována jako terminálové služby) nabízí
uživatelům pouze prezentační vrstvu z centrálního umístění. Hlavní rozdíl mezi virtualizací
prezentační vrstvy a virtualizací desktopů spočívá v odlišnosti sdílení prostředí desktopu.
V případě virtualizace desktopu získá každý uživatel přístup ke svému vlastnímu desktopu,
ale při virtualizaci prezentační vrstvy musí uživatelé sdílet prostředí desktopu se všemi
ostatními uživateli připojenými k serveru. Vlivem zavádění virtualizace aplikací klesá
zavádění této virtualizace, ale protokoly používané pro virtualizaci prezentační vrstvy jsou
v popředí virtualizace desktopů i serverové virtualizace. Jedná se o protokoly používané
k přístupu, použití a správě virtuálních zátěží. [28]
V současné době je stále ve vývoji virtualizace pro mobilní telefony. Jedná
se o virtualizaci, která bude umožňovat firemním zaměstnancům používat jeden „chytrý“
mobilní telefon, s možností přepínat mezi soukromým a firemním prostředím pomocí
virtualizovaného operačního systému nebo virtuálního stroje. Pomocí virtualizace budou
zaměstnanci mít stálý přístup k obchodním aplikacím. Mobilní virtualizace bude podporována
čipovými architekturami Cortex-15 společnosti ARM. Vyvíjeným zástupcem je Horizon
Mobile společnosti VMware. [21]
Potřeba mít všechny potřebné informace a aplikace vždy u sebe vede k šíření tzv. chytrých
telefonů a Cloud computingu. Díky připojení k internetu a mobilnímu zařízení v podobě
telefonu nebo notebooku mohou uživatelé na cestách pracovat podobně, jako v kanceláři.
1.4 Cloud computing - virtualizace poskytovaná prostřednictvím internetu
Cloud computing je označení pro již existující služby a programy, které jsou uloženy
na internetových serverech a jsou poskytovány uživatelům prostřednictvím webového
prohlížeče. Cloud computing lze dle služeb, které poskytuje, rozdělit na tři základní kategorie:
Software as a Service neboli poskytování softwaru jako služba, Platform as a Service neboli
poskytování platformy jako služba a Infrastructure as a Service neboli poskytování
infrastruktury jako služba. [3]
Cloud computing lze také rozdělit dle způsobu poskytování služeb do čtyř hlavních
skupin: privátní cloud, komunitní cloud, veřejný cloud a hybridní cloud. Privátní cloudy jsou
zpravidla
využívány
společnostmi,
které
mají
více
poboček
a
vysoké
nároky
na výpočetní kapacitu. Komunitní cloud umožňuje sdílení infrastruktury více společnostmi,
které mají stejné zájmy. Veřejný cloud je služba nabízená širší veřejnosti (email, sociální sítě)
a hybridní cloud vzniká kombinací předchozích typů. [3]
25
V privátním cloudu společnosti plně využívají možností virtualizace serverů. Jedná
se o technické řešení umožňující provoz většího množství virtuálních strojů a tím v případě
potřeby umožňuje ve větší míře čerpat jeho disponibilní kapacitu. Poskytovatelé cloudových
služeb tak flexibilně reagují na požadavky proměnlivého využití prostředků uživatelů.
Uživateli se projevuje část jeho využívaných prostředků jako celek bez ohledu na jeho
skutečný rozsah využívání. Zdroje uživatelů jsou odděleny a nelze přistupovat ke zdrojům
jiného uživatele. Prostředky a aplikace jsou poskytovány jako služba. Uživatelé tak mohou
žádat o nové zdroje a aplikace a provádět konfigurace. Využití těchto služeb je možné měřit
a následně jednoduše určit náklady spojené s jejich využitím. Uživatelé tak uhradí náklady
pouze za zdroje, které skutečně využívají. [3], [22]
1.5 Dílčí závěr
První kapitola popisuje význam virtualizace a dále výhody a nevýhody její implementace.
Mezi hlavní výhody patří úspora nákladů na energii a místo, zjednodušené zálohování
a zotavení po havárii, snížení nákladů na software a jeho správu. Z nevýhod nelze opomenout
náklady na specializovaný hardware fyzického hostitelského serveru. V kapitole jsou také
popsány jednotlivé druhy hypervizoru, který je zodpovědný za provoz všech virtualizovaných
prostředků. Existuje několik typů virtualizace, každá z nich používá jinou konfiguraci
hypervizoru, operačního systému a aplikací. V současné době převažují kombinace různých
typů virtualizace, z nichž převažuje plná virtualizace, virtualizace s hardwarovou podporou
a paravirtualizace. Virtualizaci lze provést na několika úrovních. Jedná se o virtualizaci
serverů, desktopů, aplikací, úložišť, sítí, správy virtualizace, prezentační vrstvy. Nejčastěji je
virtualizace uváděna v souvislosti s virtualizací serverů.
26
2 KOHONENOVY SAMOORGANIZUJÍCÍ SE MAPY
Motivací pro vytvoření samoorganizujících se neuronových sítí byly biologické poznatky
o funkci mozku a jeho organizaci do oblastí připomínajících mapy. Jedná se o neuronové sítě,
které jsou schopny samoorganizace, tj. jsou schopny naučit se klasifikovat vzory bez
informace o požadovaných výstupních hodnotách neuronů. Jedná se o tzv. učení bez učitele.
Neuronové
síti
jsou
poskytnuty
pouze
vstupní
hodnoty
proměnných.
Podstata
samoorganizujících se map spočívá v rozeznání stejných nebo podobných vlastností na svých
vstupech a následné klasifikaci a sdružování předkládaných podobných vektorů do map nebo
shluků. Samoorganizující se neuronová síť musí sama objevit prototypy, příznaky, kategorie
nebo jiné statistické pravidelnosti a nepravidelnosti ve vstupních datech a zakódovat je
na svém výstupu. Základním principem učení je hledání minimální vzdálenosti mezi vzory
a aktuálními hodnotami. [16], [26]
2.1 Základní charakteristika KSOM
Kohonenovy samoorganizující se mapy (KSOM - Kohonen`s Self-Organizing Feature
Maps) patří do skupiny neuronových sítí, které nepotřebují ke svému učení učitele a které
využívají soutěžní strategie učení (Competitive Learning). Síť navrhl v roce 1982 Teuvo
Kohonen, ale principy, ze kterých vychází, byly popsány již například Vonder Malsburgerm
nebo Willshawerm. Jedná se o dvouvrstvou neuronovou síť, ve které jsou vstupní a výstupní
neurony úplně propojeny, tj. každý neuron ve výstupní vrstvě má informaci od všech vstupů,
jak je znázorněno na obr. 11. [17], [26]
kompetiční (výstupní) vrstva
synaptické váhy
vstupní vrstva
Obrázek 11: Struktura KSOM
Zdroj: upraveno podle [26]
27
Vstupní vrstva je tvořena z
neuronů, které slouží k distribuci vstupních vzorů
. Váhový vektor neuronu
,
a
, kde
, neboli
synaptické váhy příslušející každému neuronu, představují souřadnice udávající konkrétní
polohu neuronu v prostoru. V kompetiční vrstvě mají neurony mezi sebou postranní vazby,
které jsou uspořádány do zvolené topologické mřížky, nejčastěji do čtvercové topologické
mřížky. Na obr. 12 je znázorněna čtvercová topologická mřížka se dvěma vstupy a devíti
výstupními neurony v kompetiční vrstvě. Neurony v kompetiční vrstvě plní funkci
reprezentantů a výstupní mřížka určuje, které neurony spolu v neuronové síti sousedí. Počet
neuronů je parametrem sítě, je volitelný a nejčastěji se pohybuje řádově v desítkách až
stovkách neuronů. Neurony sítě vycházejí z formálních neuronů, které nemají práh a jejich
výstup je nejčastěji dvouhodnotový (0 – neaktivní, 1 – aktivní). Aktivní je vždy jen jeden.
[17], [26]
Kompetiční
vrstva
Synaptické
váhy
Vstupy
Obrázek 12: Příklad uspořádání KSOM
Zdroj: upraveno podle [8]
2.2 Princip učení KSOM
Učící algoritmus KSOM se snaží rozmístit neurony v mřížce tak, aby jejich rozdělení
aproximovalo pravděpodobnostní rozdělení trénovacích vzorů. Při učení se porovnávají
vstupní vzory
a vektory uložené v každém neuronu. [17]
2.2.1 Učení v KSOM
Základní princip učení KSOM dle [9] a [26] spočívá ve stanovení Euklidovské vzdálenosti
mezi předkládanými vstupními vzory
a vahami
dle vztahu
28
všech neuronů v kompetiční vrstvě
kde: index prochází přes m neuronů kompetiční vrstvy,
;
jsou předkládané vstupní vzory,
jsou synaptické váhy neuronů.
Ze všech neuronů se vybere vítězný neuron s indexem
jehož vzdálenost
(BMU - Best matching unit),
je od předloženého vzoru minimální, tj.
BMU je neuron, který je nejbližší zkoumanému vzoru. Pokaždé, když je nalezen neuron,
který je nejblíže trénovacímu (vstupnímu) vzoru, jsou následně upraveny jeho váhy
a dále váhy všech neuronů, které se nalézají v jeho sousedním okolí. Výstup tohoto neuronu
je aktivní, výstupy ostatních neuronů jsou neaktivní. [9], [17]
Jiným způsobem hledání BMU je dle literatury [29] rozšířené učící pravidlo
WTA – Winner Takes All. Princip spočívá v hledání maxima výstupu neuronu dle vztahu
kde
je index vítězného neuronu.
Oba způsoby hledání míry podobnosti – tj. pomocí Euklidovské vzdálenosti i pomocí
rozšířeného učícího pravidla WTA jsou ekvivalentní. Hledání
za předpokladu, že jsou v prvním případě váhové vektory
odpovídá hledání
normované. Neuron,
jehož váhový vektor je nejblíže vstupnímu vzoru, je současně neuronem, jehož skalární
součin
je největší. [29]
Po nalezení BMU následuje adaptace vah. Tím je zabezpečeno, že se váhové vektory
BMU a jeho topologických sousedů posunou směrem k aktuálnímu vstupu. Funkce
představuje parametr rychlosti učení, který časem klesá k 0 a tím je zabezpečeno
ukončení procesu učení. [29]
Jakmile je nalezen BMU, vytvoří se kolem BMU okolí, do kterého se klasifikují všechny
vstupní vektory nejvíce podobné (dle zvoleného kriteria) BMU. Tímto se vytvoří shluk
vstupních vektorů, které mají společné vlastnosti. Velikost, tvar a míra vlivu okolí jsou
parametry sítě a během učení se mění. Velikost okolí se nevztahuje ke skutečné vzdálenosti
neuronů v prostoru, ale je vztahována k topologické vzdálenosti neuronů v mřížce. [9], [17]
29
Topologie kompetitivní vrstvy i okolí budoucího vítěze jsou předem libovolně volitelné
(např. čtvercové, hexagonální, kruhové). Záleží na uživateli a na charakteru úlohy, jakou
topologii
zvolí.
Výsledné
rozdělení
neuronů
v prostoru
by
mělo
odpovídat
pravděpodobnostnímu rozdělení trénovacích vzorů. Obr. 13 ukazuje příklad čtvercové
a hexagonální topologie (mapy), včetně BMU a jeho okolí. [17], [35]
Obrázek 13: Příklad čtvercové a hexagonální topologie
Zdroj:[8]
Dalším parametrem KSOM je dle [17], [35] způsob změny velikosti sousedního okolí.
Okolí se může měnit např. lineárně či skokově. Velikost okolí se stanoví předem a na počátku
je jeho velikost volena dostatečně velká. Postupem času se monotónně snižuje na předem
stanovenou minimální velikost. Často je zvolena počáteční velikost okolí tak, že zahrnuje
např. polovinu všech neuronů sítě. Postupem času se zmenšuje a na konci učení bývá její
velikost tak malá, že obsahuje pouze jeden neuron.
Cílem učení neuronové sítě je aproximovat hustotu pravděpodobnosti reálných vstupních
vektorů
pomocí konečného počtu reprezentantů
, kde
;
. Funkce okolí určuje rozsah spolupráce mezi neurony, tj, kolik reprezentantů
v okolí BMU bude adaptováno a v jakém rozsahu. Lokální okolí neuronu lze vyjádřit,
jako vhodnou adaptační funkci okolí
. [9]
Jak lze spatřit na následujícím obr. 14, jsou váhy nejbližšího okolí BMU jsou excitovány
a s narůstající vzdáleností od středu se váhy přestávají adaptovat. Od určité hranice dochází
k jejich inhibici – tj. jsou potlačovány. Znamená to, že dochází k procesu odlučování
a efektivnost učení se zvyšuje. Jak již bylo uvedeno, postupem času se lokální okolí neuronů
zmenšuje a na konci učení obsahuje pouze jeden neuron. [17], [29]
30
Obrázek 14: BMU a aktivita neuronů v okolí
Zdroj:[9]
Následující obr. 15 ukazuje různou velikost okolí BMU definovanou pro různé časové
okamžiky
< <
.
Obrázek 15: Okolí BMU pro různé časové okamžiky
Zdroj: upraveno podle [13]
Nejjednodušší používanou funkcí je pravoúhlé okolí, které lze vyjádřit vztahem
,
kde
představuje Manhattanskou vzdálenost mezi neurony
(2.4)
a
v mřížce mapy,
vyjádřenou vzorcem
,
(2.5)
tj. sumou absolutních hodnot rozdílů jejich souřadnic. Lze použít také jiný tvar adaptační
funkce, např. lineárně klesající k okrajům nebo ve tvaru Gaussovy funkce. [29]
31
Dle [9] je často používána Gaussova funkce okolí, která je definována takto
,
(2.6)
je funkce okolí;
kde:
je Euklidovská vzdálenost neuronů
a v mřížce;
je velikost okolí v čase t’.
2.2.2 Základní Kohonenův algoritmus učení
Základní algoritmus učení KSOM lze dle [5] zapsat následně:
Krok 0: Inicializace všech počátečních váhových hodnot
Inicializace parametru učení ,
.
.
Inicializace velikosti poloměru sousedního okolí .
Krok 1: Pokud není splněno kriterium pro ukončení, tj. předepsaný počet trénovacích kroků,
opakovat kroky 2-8.
Krok 2: Pro každý vstupní vektor
opakovat kroky 3 až 5.
, kde
Krok 3: Pro každý výstupní neuron
Euklidovskou vzdálenost
vypočítat
kde
od předloženého vzoru.
Krok 4: Nalezení nejbližšího (vítězného) neuronu
jehož vzdálenost
je
od předloženého vzoru minimální.
Krok 5: Úprava váhových vektorů všech neuronů ,
topologické sousední okolí
Pro všechna
vítězného neuronu
, které tvoří
.
platí:
(2.7)
Krok 6: Aktualizace parametru učení.
Krok 7: Zmenšení poloměru topologického sousedního okolí .
Krok 8: Test podmínky ukončení.
Pokud není učící proces ukončen řádným doučením (nemění se hodnoty vah neuronů), je
ukončen podmínkou pro ukončení, kterou může být nastavený trénovací čas nebo maximální
počet iterací.
32
2.2.3 Dávkový a sekvenční učící algoritmus
Během učení jsou dle [9] postupně předkládány trénovací vzory a pro každý tento vzor
je nalezen jemu nejbližší neuron. Jakmile jsou nalezeni reprezentanti BMU, synaptické váhy
neuronů mohou být adaptovány sekvenčním nebo dávkovým učícím algoritmem. Principem
sekvenčního učícího algoritmu je skutečnost, že reprezentanti
BMU a jeho sousedé
v topologii (mapě) se posunou směrem k aktuálnímu vstupnímu vektoru
dle vztahu
,
(2.8)
je rychlost učení závislá na čase;
kde:
je funkce okolí, jejíž výpočet je dán vztahem 2.6;
výraz
představuje vzdálenost vstupního vektoru dat od vektoru
vah daného výstupního neuronu v aktuálním čase .
Po každé adaptaci je provedeno přizpůsobení parametru sítě a celý proces učení se opakuje
dle předepsaného počtu trénovacích kroků - iterací. Pro KSOM není definována chybová
funkce z důvodu jejího obtížného stanovení a proto je zde určován počet iterací místo
požadované chyby, jak tomu bývá v případě jiných neuronových sítí. [17]
Algoritmus sekvenčního učícího algoritmu lze dle [31] zapsat následovně:
Krok 1: Najdi BMU pro vstupní vektor
za použití vztahů 2.1 a 2.2.
Krok 2: Aktualizuj váhy vektorů neuronů dle vztahů 2.8 a 2.6.
Krok 3: Opakuj od kroku 1, dokud není splněno některé konvergenční pravidlo, se snižujícím
se sousedním okolí neuronu.
Tento algoritmus lze použít v situaci, kdy nemáme v čase k dispozici všechny vstupní
vektory
pro danou epochu učení. Váhy se mění s každým vstupem a máme tedy k dispozici
jejich aktuální stavy. [31]
Jinou variantou učícího algoritmu je dle literatury [26] a [31] dávkový učící algoritmus.
Od předešlého algoritmu se liší tím, že celá trénovací množina projde KSOM pouze jednou.
Adaptace synaptických vah
nastane až na konci epochy a je realizována dle vztahu
33
kde:
je čas začátku epochy;
je čas konce epochy;
je nová váha na konci epochy;
je vstupní vektor v čase ;
je funkce okolí.
Nalezení BMU je dle [31] v případě dávkového učícího algoritmu proveden dle vztahu
je váha na konci předchozí epochy a dle vztahu
kde
Algoritmus dávkového učícího algoritmu lze dle [31] zapsat následovně:
Krok 1: Pro každou epochu:
a) najdi BMU pro vstupní vektor
za použití vztahů 2.10 a 2.11,
b) najdi čitatele a jmenovatele rovnice 2.9 pro všechny neurony.
Krok 2: Aktualizuj váhy vektorů neuronů dle vztahu 2.9.
Krok 3: Opakuj od kroku 1, dokud není splněno některé konvergenční pravidlo, se snižujícím
se sousedním okolí neuronu.
Dávkový algoritmus může být použit pouze v případě, kdy máme k dispozici celý soubor
vstupních dat. Oproti sekvenčnímu algoritmu nejsou váhy vstupních vektorů aktualizovány
okamžitě a není zde závislost na pořadí, v jakém jsou vstupní vektory předkládány na vstupu
do KSOM. [31]
2.3 Úvodní nastavení vah a volba parametrů učení
Na začátku učení lze všechny váhy nastavit na náhodná čísla nebo mohou být nastaveny
na hodnoty náhodně vybraných vzorů z trénovací množiny. V obou případech dochází
ke konvergenci KSOM. Učení však může trvat dlouhou dobu. Jelikož jsou váhy nastaveny
náhodně, jsou i neurony rozloženy v prostoru náhodně. Teprve vlivem učení se jejich
rozmístění přibližuje rozdělení trénovacích vzorů. [17]
Dle literatury [17] byla publikována metoda, která odhaduje tvar výsledné mřížky dle
trénovacích dat. Metoda spočívá v náhodném a rovnoměrném výběru trénovacích vzorů
34
v takovém počtu, kolik je neuronů v mřížce. Výsledkem tohoto kroku je mřížka, kterou
znázorňuje obr. 16a. Nejprve jsou rozděleny všechny neurony dle zvolené souřadnice a jim
odpovídajících váhových vektorů do skupin o stejném počtu neuronů. Následně jsou neurony
v každé skupině uspořádány dle druhé souřadnice a to nezávisle na neuronech ostatních
skupin. V rámci jedné skupiny jsou neurony uspořádané a spojené vazbou. Stejným způsobem
jsou pospojovány k sobě odpovídající neurony v rámci jednotlivých vrstev. Výsledkem
je odhad výsledné mřížky, který je zachycen na obr. 16b. Tento odhad lze vylepšit metodou,
která „vyhladí“ mřížku v obou směrech pomocí vhodného filtru. Vyhlazená mřížka
je znázorněna na obr. 16c. Konečný tvar mřížky po ukončení učení je zobrazen na obr. 16d.
Obrázek 16: Počáteční inicializace vah a koncový stav mřížky
Zdroj:[17]
Parametr učení určuje velikost změn při adaptaci vah. Je nastaven na hodnotu blízkou
jedné a během učení (s časem) se monotónně snižuje k nule. Tímto se zajistí ukončení
procesu učení. Váhy se na začátku učení adaptují rychleji a dochází k hrubému rozmístění
neuronů a později pomalu a tak dochází k přesnějšímu dolaďování. [17]
Aby se předešlo přeučení KSOM, probíhá její učení dle [16] a [26] ve dvou fázích. Jedná
se nejprve o fázi uspořádávání s vysokou hodnotou poloměru okolí
rychlosti učení
a vysokou hodnotou
V této fázi klesá velikost okolí diskrétně s časem. Následuje druhá fáze
dolaďování s nízkými hodnotami poloměru okolí a rychlosti učení. Během této druhé fáze je
možné ponechat nejbližší sousedy součástí okolí, dokud učení neskončí. Způsob, jakým
je možné upravovat velikost okolí i parametru učení ukazuje následující obr. 17.
35
Obrázek 17: Fáze učení
Zdroj: upraveno podle [16]
Dle literatury [40] se pro fázi uspořádání náhodně „rozházených“ neuronů doporučuje
používat parametr učení větší než 0,5. Ve fázi ladění, kdy se prování vlastní adaptace vah, se
doporučuje velikost parametru učení použít hodnotu menší než 0,5. Dle literatury [16] a [33]
na funkci poklesu parametru učení v praxi až tak nezáleží. Důležité je, aby byla funkce během
první fáze monotónně klesající z nějaké hodnoty blízké 1 až na řádově 0,1 - 0,01 a během fáze
dolaďování dále klesala k nule. Možnou volbou je např. lineárně lomená funkce nebo
exponenciální funkce.
Na přesném počtu iterací striktně nezáleží. Dle [13] by počet iterací měl být minimálně
500 násobek počtu neuronů v síti. Běžně se počet iterací pohybuje v rozmezí řádově 10
až 100 tisíc. Je důležité, aby během fáze uspořádávání, dokud je ještě parametr učení relativně
velký, síť stihla správně zařadit svoje váhové vektory, které se s přibývajícím časem lokálně
doladí. Na začátku simulací je vhodné rozdělit celkovou dobu trénovaní takovým způsobem,
že na fázi doladění se ponechá více času než na fázi uspořádávání.
Konvergence učení dle [35] závisí na mnoha parametrech - např. na inicializačních
hodnotách počátečních váhových hodnot a parametrů, na počtu neuronů, na způsobu jejich
organizace v mapě, na tvaru a velikosti sousedního okolí i-tého neuronu i na rychlosti učení.
Přesnost mapování závisí na počtu iterací. Důležitá je i volba velikosti okolí. Malé okolí
na začátku učení způsobí, že výsledné namapování nebude rovnoměrně rozložené.
Doporučuje se proto zvolit minimálně ½ velikosti mapy. Dle literatury [33] může být velikost
okolí zpočátku velká, srovnatelná s velikostí sítě, na konci první fáze dosáhnout
hodnoty 1 a postupně v průběhu druhé fáze klesnout až na 0. Dle experimentů není podstatné,
zda parametr učení a funkce okolí klesají lineárně, exponenciálně, či jinak.
36
Proces učení v KSOM proběhne úspěšně při poměrně širokém rozpětí jednotlivých
volitelných parametrů. Existují ale podmínky, při kterých proces selhává. Nežádoucích efektů
je dosaženo při špatné volbě velikosti okolí a rychlosti učení. Tyto nežádoucí efekty jsou
zobrazeny na obr. 18. Všechny tři simulace byly na počátku nastaveny na 20 000 iterací
na datech s rovnoměrným rozložením, při použití sítě 20x20 neuronů. Efekt neúplného
rozvinutí sítě ukazuje obr. 18a. Tento efekt vznikl v důsledku příliš rychlého poklesu rychlosti
učení s nastavením poměru délek první a druhé fáze učení 1:500 při pravoúhlém okolí se
standardním poklesem poloměru okolí. Z dalších příkladů nežádoucích efektů, které mohou
nastat při učení KSOM lze uvést efekt „motýlího křídla“, který je znázorněn na obr. 18b
a může vzniknout, pokud parametr velikosti okolí klesá příliš rychle v porovnání
s parametrem učení. V simulaci byl při Gaussově okolí pokles na hodnotu 1 už po prvních
100 iteracích, zatímco rychlost učení klesala standardně. [16]
Dle literatury [36] není jednoduché tento efekt odhalit. Lze jej vysledovat pomocí skokové
změny ve střední chybě kvantizace. Je však nutné tento chybový stav detekovat zvlášť – např.
zkoumáním poloh jednotlivých neuronů. Musí platit, že sousedící neurony si musí být blízké
i vzdáleností v prostoru vnitřních vah. Tuto kontrolu lze provádět po několika epochách, není
nutné ji provádět v každém kroku.
Obr. 18c znázorňuje tzv. pinch efekt, který vznikl v důsledku příliš pomalého poklesu
velikosti okolí. Při simulaci měl v tomto případě parametr hodnotu 10 během první poloviny
iterací, potom jeho hodnota klesla na hodnotu 9. [16]
Obrázek 18: Efekty, které mohou nastat během učení
Zdroj:[16]
Výpočetní rychlost sítě je dána množstvím neuronů, které jsou v síti. V případě velkého
množství neuronů bude vstupní prostor velmi dobře pokryt a naopak. [40]
37
2.4 Vybavovací fáze
Vybavovací fáze představuje zařazení neznámého vzoru do odpovídajících tříd.
Po naučení KSOM se na vstup přikládá analyzovaný neznámý vektor hodnot podobného
druhu, jaké obsahovala trénovací množina. Následně je opět výpočtem vzdálenosti od vektoru
vah jednotlivých neuronů vybrán BMU, který je nejvíce podobný vstupním hodnotám. BMU
již představuje určitou definovanou skupinu (shluk) a tím je znám výsledek. Ten již
představuje zařazení analyzovaného neznámého vstupu do některé skupiny a tím i jeho
pojmenování a nalezení jeho vlastností. Správné zařazování nových předložených vzorů
do odpovídajících tříd je podobné fázi učení. Při vybavování už ale neprobíhá inicializace,
protože váhové vektory jsou už správně naučeny. [39], [32]
Dle [39] jsou možné dva režimy: neadaptační a adaptační. V případě neadaptačního
režimu dojde k zařazení vstupního vektoru do některého již vytvořeného shluku v mapě a ten
již představuje výsledek. Na výstupu sítě se může objevit číslo shluku, jeho jméno nebo jiný
údaj, který neznámý vstupní vektor charakterizuje. Adaptační režim představuje analýzu
vstupního vektoru stejnou jako v neadaptačním režimu, pouze následně ještě dochází k malé
úpravě vah BMU. To znamená, že se mapa neustále doučuje a je tedy schopna reagovat
na dlouhodobě působící postupné změny.
2.5 Vlastnosti KSOM a hodnocení kvality učení
KSOM jsou značně odolné proti náhodnému šumu, který je obsažen v trénovacích datech,
což je výhoda při jejich použití. Pomocí KSOM jsou také odstraněny některé nedostatky
shlukové analýzy, jako je např. vliv odlehlých objektů. Výsledky KSOM lze snadno
vizualizovat a interpretovat. [17], [26]
Z nevýhod lze uvést potřebu značného počtu trénovacích kroků a potřebu upravovat váhy
v lokálním okolí příslušného BMU v každém kroku učení. Další nevýhodou je, že pro
zachování aproximace pravděpodobnostního rozdělení bude počet neuronů v mřížce růst
exponenciálně s dimenzí prostoru trénovacích dat. Pro správnou analýzu dat je důležité zvolit
optimální počet neuronů. Příliš málo neuronů snižuje přesnost aproximace a příliš vysoký
počet neuronů způsobuje nárůst výpočetní složitosti s možností neadekvátního zvýšení
přesnosti aproximace. Úspěšnost natrénování KSOM může být ovlivněna způsobem určení
vítěze, který může být proveden mnoha způsoby, např. volbou metrik pro určení vzdáleností
nebo způsobem přivedení vstupních dat do sítě a způsobem jejich adaptace. [16], [36]
38
Kvalitu výsledků učení KSOM lze dle literatury [8] měřit pomocí kvantizační chyby
(QE - Quantization Error) a topografické chyby (TE - Topographic Error). Topografická
chyba je dána podílem všech vstupních vektorů, pro které první a druhý BMU na mapě
nesousedí. Topografická chyba měří míru zachování struktury. Kvantizační chyba je
vypočtena jako Eukleidovská vzdálenost testovaného vstupního vektoru
a reprezentanta
jeho vítězného neuronu BMU. Kvantizační a topografická chyba jsou závislé na počtu
neuronů m v kompetiční vrstvě.
Dle literatury [36] lze kvalitu natrénované mapy vyhodnotit také pomocí míry distorze,
tj. chyby v zachování topologických vazeb vstupních dat do mapy a chyby ve spolehlivosti
reprezentace vstupních vazeb. Míru distorze lze vyjádřit vztahem
(2.12)
kde:
je lokální variace vstupních dat, míra kvality kvantizace;
je to práh okolí, spojuje kvantizaci a pořadí dat;
představuje variaci okolí, tedy míru spolehlivosti topologie mapy.
2.6 Varianty a rozšíření KSOM
KSOM lze použít také pro úlohy, které je možné řešit pomocí modifikací základního
učení. Jednou z těchto možností je hierarchické prohledávání, které používá tzv. prohledávací
strom. Jeho výchozím bodem je vrchol tvořený jedním neuronem a určení vektoru kódové
knihy (codebook vector). Následuje trénování větší mapy na nižší hladině a dále opět určení
vektorů kódové knihy. Vítěz je určován vždy v nižší hladině. Do hierarchického prohledávání
náleží také hypermapa, kterou lze použít k analýze hierarchických dat, tj. dat s prioritami,
obsahujících kontext. Princip hypermapy spočívá v určení množin – tzv. kandidátů na vítěze,
které jsou určeny prostřednictvím podmnožin vstupních signálů a uzlů v neuronové síti.
Každá podmnožina definuje množinu možných kandidátů na BMU, kteří jsou určováni
na základě vzdáleností. Učení probíhá dávkovým učícím algoritmem. Při určování
jednotlivých množin kandidátů si síť pamatuje pouze binární informace z neuronů
a až v poslední operaci je konečný výsledek popsán jako spojitá hodnota. Příkladem může být
segmentace řeči, při které je vstupní signál přiveden do hlavní KSOM, která obsahuje všechny
hlásky. Následně je dle umístění ve shluku tvořeného podobnými vlastnostmi aktivována
některá z vedlejších map. Hlavní mapa tedy klasifikuje „hrubě“ a vedlejší mapy klasifikují
přesněji. [35], [36]
39
KSOM mohou také zpracovávat řetězce symbolů, které mohou představovat uspořádanou
množinu čísel symbolizujících množinu signálů, naměřených hodnot nebo statistických
ukazatelů. Jelikož u řetězců záleží na vlivu okolí právě zpracovávaných symbolů, používá
se tento algoritmus pouze v dávkovém režimu. [36]
Důležité je také zmínit rozšíření KSOM pro učení s učitelem. V základním modelu je
KSOM neuronová síť s učením bez učitele. Pro potřeby klasifikace byla panem profesorem
Teuvo Kohonenem upravena na neuronovou síť, která je schopna učení s učitelem. Tato
modifikovaná
neuronová
síť
je
označována
jako
vektorová
kvantizace
učením
(LVQ - Learning Vector Quantization) a existuje v několika verzích označovaných jako
LVQ1, LVQ2, LVQ3. Nejprve je nutné naučit klasickou KSOM na trénovací vzory bez
příslušnosti k jednotlivým třídám a tím dosáhnout hrubého nastavení vektorů. Následně jsou
předkládány na vstupy trénovací vzory a je shromažďována informace o četnosti výskytu
jednotlivých tříd, které odpovídají jednotlivým trénovacím vzorům. Nakonec je každému
výstupnímu neuronu přiřazena třída objektů, jejíž četnost zastoupení byla největší. [17]
Dle literatury je KSOM také používána v hybridních systémech, např. ve spojení se
systémy založenými na metodě učení s učitelem. Při použití hybridní kombinace KSOM
a rozhodovacích stromů lze výsledná rozhodovací pravidla také použít pro predikci. V závěru
kapitoly je také třeba zmínit příbuzné algoritmy KSOM, ze kterých lze jmenovat například
následující:
 ASSOM (Adaptive-Subspace Self-Organizing Map), která ve vstupní vrstvě
používá dvě vrstvy neuronů,
 GSOM (Growing Self-Organizing Map), jenž v průběhu učení vytváří nové
neurony,
 SSOM
(Spherical
Self-Organizing
Maps),
MSSOM
(Multiple
Spherical
Self-Organizing Maps) zobrazující data ve 3D prostoru a které se liší od klasických
KSOM tím, že všechny neurony mají stejnou prioritu v průběhu kompetitivního
soutěžení,
 TASOM (Time Adaptive Self-Organizing Map) – síť, která je závislá na čase
a jejíž neurony mají vlastní parametry rychlosti učení a okolí měnící se podle
vstupních vzorů,
 Neural Gas, kde se během učení neurony šíří datovým prostorem jako plyn.
40
2.7 Využití KSOM
Samoorganizující se mapy lze využít pro řešení složitých úloh, které mohou zpracovávat
neúplné nebo neurčité informace. Jedná se např. o rozpoznávání vzorů a obrazů nebo
složitých signálů. V současné době je možné nalézt využití KSOM v několika aplikacích.
Jedná se například o tyto aplikace [13], [39]: zpracování řeči, úprava zvuku, organizace
rozsáhlých textových souborů, robotika, zpracování obrazu (videa a fotek), hledání a detekce
osob podle fotografií, bezpečnostní aplikace, přepis ručně psaného textu na tištění, hledání
podobných znaků v úplně neznámých signálech, získávání znalostí z textů, automatické
třídění.
Další využití KSOM lze nalézt například v oblasti ekologie, kde lze pomocí KSOM
modelovat kvalitu ovzduší [9], dále v oblasti marketingu pro tržní segmentaci, ale také
v dalších oblastech, např. pro zpracování bonity obcí, tedy schopnosti plnit krátkodobé
a dlouhodobé závazky, jak lze nalézt v literatuře [10].
2.8 Softwarové produkty
Pro modelování dat pomocí KSOM lze použít různé softwarové produkty – od volně
dostupných aplikací různé kvality až po komerční, které nabízejí širší možnosti upravování
parametrů učení a vizualizace. Další možností je vlastní programování, pro které lze využít
několik programovacích jazyků s využitím jejich knihoven. Mezi nejčastěji používané patří
Java, jejíž API pro vytvoření, učení a vizualizaci KSOM lze nalézt na stránkách
http://jknnl.sourceforge.net/, dále lze programovat v jazyce C# (http://knnl.sourceforge.net/)
nebo např. v jazyce Python (https://code.google.com/p/neurolab/). Lze také použít řadu open
source produktů, které jsou taktéž většinou vytvořené v jazyce C++ nebo Java – např. produkt
WEKA (http://www.cs.waikato.ac.nz/ml/weka/), produkt Databionic ESOM Tools nebo
produkt OpenNeuron. Mezi volně dostupné softwarové produkty patří SNNS – Stuttgart
Neural Network Simulator, jehož součástí je JavaNNS (http://www-ra.informatik.unituebingen.de/SNNS/).
K nejčastěji používaným komerčním nástrojům patří MATLAB od společnosti
MathWorks. Jedná se o interaktivní programové prostředí a skriptovací jazyk pro výpočty,
simulace a vizualizace a lze do něj implementovat různé druhy toolboxů. Mezi softwarové
produkty, které lze použít pro modelování KSOM náleží SOM_PAK, který vytvořil tým pana
profesora Teuvo Kohonena z laboratoře CIS na Helsinské technologické univerzitě. Tento
volně dostupný balík byl částečně implementován do softwarového prostředí MATLAB
41
a v dnešní době není již udržovaný. Do prostředí MATLAB lze doinstalovat také volně
šiřitelný SOM Toolbox (http://www.cis.hut.fi/somtoolbox/), což je knihovna určená pro práci
s KSOM. Jedná se o reimplementaci SOM_PAKu. Ačkoliv také částečně ustal její vývoj,
bývá nadále velmi používaným prostředkem, zvláště v akademické sféře. Dalším toolboxem,
který je možné v MATLABU použít, je simulátor neuronových sítí Neural Network Toolbox
(http://www.mathworks.com/help/nnet/index.html).
Z dalších významných komerčních softwarových nástrojů lze jmenovat SPSS Modeler od
společnosti IBM (http://www-142.ibm.com/software/products/cz/cs/spss-modeler/). Lze však
používat i spoustu dalších softwarových produktů. Jedná se např. komerční produkty Trajan
Neural
Network
Simulator
(http://www.neuralware.com/)
(http://www.trajan-software.demon.co.uk/)
od
společnosti
Trajan
Software
a
Ltd.,
NeuralWare
dále
produkt
NeuroSolutions (http://www.nd.com/) od společnosti NeuroDimension, Inc., produkt SOMine
(http://www.eudaptics.com/) od společnosti Eudatptics, produkt NeuroShell společnosti Ward
Systém Group nebo produkt SAS Neural Network od společnosti SAS Institute.
2.9 Dílčí závěr
V kapitole jsou popsány KSOM, které implementují metodu učení bez učitele.
Samoorganizující se neuronové sítě slouží ke shlukování dat, které mají k sobě určitý vztah.
V úvodu kapitoly je uvedena charakteristika KSOM a její topologie. Další podkapitola
obsahuje základní Kohonenův algoritmus učení a následuje bližší popis jednotlivých kroků
tohoto algoritmu – tj. výpočet vzdáleností, nalezení BMU, aktivace sousedního okolí BMU
pomocí adaptační funkce a bližší popis dávkového a sekvenčního učícího algoritmu.
Důležitou částí této kapitoly je popis počátečního nastavení vah a volba parametru učení.
Poznatky z této podkapitoly budou využity v praktické části této diplomové práce. V kapitole
je dále popsána vybavovací fáze KSOM, pomocí které dokáže KSOM zařadit i neznámý vzor
na který nebyla naučena. Další podkapitoly popisují možnosti hodnocení kvality učení
KSOM, různé varianty KSOM a příbuzné algoritmy. V další podkapitole je dále uveden popis
aplikací, které jsou na principu KSOM založeny. Tyto aplikace pomáhají odhalit skryté
souvislosti v datech, které není jednoduché rychle odhalit běžnými statistickými metodami.
Pomáhají tak řešit složité úlohy v např. v oblastech zdravotnictví, ekologie nebo marketingu.
V závěru kapitoly je uveden přehled softwarových produktů, které lze pro modelování dat
pomocí KSOM použít.
42
3 NÁVRH MODELU KLASIFIKACE DAT POMOCÍ KSOM
V této kapitole je uveden popis návrhu modelu pro klasifikaci dat pomocí KSOM. Nejprve
je uveden algoritmus tvorby modelů, dále je proveden popis vstupních parametrů
a postup předzpracování dat. Po určení vstupní datové matice následuje popis nastavování
parametrů učení pro různé modely, které budou implementovány v softwarovém prostředí
MATLAB.
3.1 Návrh modelu
Tato diplomová práce je zaměřena na modelování dat charakterizujících virtuální server
Portal a databázový server Oracle Univerzity Pardubice. Vstupní data jsou poskytnuta
Univerzitou Pardubice v datovém formátu csv.
Vzhledem k neznámé příslušnosti dat do tříd je pro modelování použita metoda učení bez
učitele. Znamená to, že neznáme předem počet výstupních tříd ani příslušnost do tříd,
ale KSOM sama rozezná stejné nebo podobné vlastnosti předkládaných vstupních vektorů
a na základě podobnosti klasifikuje na výstupu objekty do shluků – tříd na základě jejich
podobnosti. Kromě zařazení dat do shluků nám KSOM také umožňuje nalézt možné
souvislosti mezi jednotlivými parametry a to pomocí grafické reprezentace, která je snadno
interpretovatelná.
Algoritmus návrhu modelu pro klasifikaci začíná předzpracováním získaných dat
a výběrem vstupních parametrů. Cílem je připravit data pro vstup do KSOM. Jedná
se o zjištění a ošetření chybějících hodnot a korelační analýzu. Pokud je zjištěn korelační
vztah mezi parametry, je pro další použití zvolen pouze jeden z těchto parametrů. Dále
je provedeno normování dat, pomocí kterého je odstraněna závislost na měřených jednotkách.
Takto připravená data mohou být použita v dalším kroku, kterým je návrh modelu KSOM
v softwarovém prostředí MATLAB R2012b s využitím SOM Toolboxu. V průběhu
modelování jsou testovány různé modely dle zvoleného učícího algoritmu a zjišťovány
hodnoty topografické (TE) a kvantizační (QE) chyby. Jednotlivé modely jsou porovnány a dle
získaných výsledků je proveden výběr nejvhodnějšího modelu. V dalším kroku následuje
předložení testovacích dat, která slouží pro účely klasifikace. Pro interpretaci výsledků
je v dalším kroku použit algoritmus K-means, který zařazuje objekty do shluků, jejichž počet
by měl odpovídat počtu odlišných vlastností v datech. Následně je realizován popis vzniklých
shluků a každému shluku je přiřazen popis třídy, kterou daný shluk reprezentuje. Tímto
je proces klasifikace dat ukončen.
43
Návrh modelu je znázorněn na obr. 19. Jednotlivé kroky jsou blíže popsány v dalších
podkapitolách.
Začátek
Předzpracování dat
a návrh parametrů
Návrh modelu
Realizace modelu
Předložení testovacích
dat
Shlukování algoritmem
K-means
Označení a popis
shluků
Konec
Obrázek 19: Návrh modelu
Zdroj: vlastní zpracování
3.2 Popis a analýza vstupních dat, určení parametrů
Získaná data obsahují celkem 12 parametrů. Následuje popis těchto jednotlivých
parametrů.
Parametr 1 - CPU Usage in MHz (Portal)
Využití CPU v MHz u webového serveru Portal. Virtualizační vrstva, která je přítomna
mezi fyzickým a virtuálním hardwarem, řídí přístup virtuálního CPU k fyzickému.
44
Neprivilegované instrukce jsou vykonávány přímo na fyzickém CPU. Privilegované instrukce
zpracovává hypervizor. K privilegovaným instrukcím patří zákaz přerušení, nastavení
mapování paměti, práce s I/O zařízeními. Virtuální CPU disponuje vlastními registry
a buffery. Výpočetní výkon virtuálního CPU může být s pomocí hypervizoru nastaven
na odlišnou hodnotu oproti fyzickému CPU. Jedná se o omezení výkonu. [24]
Parametr 2 - CPU Usage in MHz (ORA)
Vyjadřuje využití CPU v MHz u databázového serveru Oracle. Popis tohoto parametru je
shodný s popisem již uvedeným u parametru CPU Usage in MHz (Portal).
Parametr 3 - CPU Ready (Portal)
CPU připraven – u webového serveru Portal. Jak již bylo uvedeno, virtualizační vrstva řídí
přístup virtuálního CPU k fyzickému. Tento parametr vyjadřuje množství času, po který je
VM připraven k použití prostředků CPU, ale čeká na naplánování a zpracování úloh
plánovačem na fyzickém CPU. Čím delší je tento čas, tím pomalejší je VM a také pomalejší
veškeré spuštěné procesy související např. s databázovým serverem Oracle. V závislosti
na počtu fyzických procesorů může VM disponovat více než jedním virtuálním procesorem,
které jsou při běhu VM mapovány na fyzické procesory. V tomto případě je možné při vyšší
zátěži přiřadit odpovídající počet procesorů jiných virtuálních strojů, aby VM zvládl zátěž
na konstantní úrovni. [24]
Parametr 4 - CPU Ready (ORA)
Tento parametr vyjadřuje množství času, po který je připraven CPU u databázového
serveru Oracle. Popis tohoto parametru je shodný s výše uvedeným popisem u parametru
CPU Ready (Portal).
Parametr 5 - Memory Consumed (Portal)
Množství spotřebované paměti u webového serveru Portal. VM přistupuje k RAM pomocí
hypervizoru, resp. virtualizační vrstvy mezi fyzickým prostředkem a pamětí VM. Virtuální
paměť je mapována na fyzickou paměť. Přidělovaná virtuální paměť může být stránkovaná
(v rámci hostovaného OS nebo v rámci hypervizoru), nebo nestránkovaná. Stránkovaná
alokuje pro virtuální počítače více paměti než fyzické a tím významně snižuje výkon VM.
Stránkovaná paměť v rámci hostovaného OS přináší zátěž pro hostující systém – resp. CPU
a paměť. Nestránkovaná paměť je mapována přímo na fyzickou paměť. Součet přidělené
paměti virtuálním strojům musí být menší, než jaká je velikost fyzické paměti. Správa
virtuální paměti je pro VM zcela transparentní. Paměť VM je obvykle opětovně stránkovaná
45
OS virtuálního počítače. Hypervizor umožňuje nastavení (omezení) velikosti paměti
předělené VM. Limity velikosti RAM se liší pro 32 bitový a 64 bitový hostitelský OS. [24]
Parametr 6 - Memory Consumed (ORA)
Množství spotřebované paměti u databázového serveru Oracle. Popis tohoto parametru je
shodný s popisem již uvedeným u parametru Memory Consumed (Portal).
Parametr 7 – Disk Usage (Portal)
Množství spotřebované kapacity datového úložiště pro webový server Portal. Stejně jako
u fyzického PC, tak i u VM plní pevný disk funkci perzistentního media. Z VM je přístup
k virtuálnímu pevnému disku realizován prostřednictvím hypervizoru, který vytváří iluzi
reálného disku. Virtuální disk může být reprezentován souborem nebo kolekcí souborů
v souborovém systému hostitelského OS, ale toto řešení má větší výkonnostní dopad než
přímo mapovaný diskový oddíl. Na druhou stranu přináší výhodu v podobě snadné mobility.
Druhou možností reprezentace virtuálního disku je přímé mapování fyzického oddílu. Jedná
se o vytvoření lokálního oddílu na fyzickém disku hostitelského počítače. V obou případech
je velikost disku (resp. maximální velikost, kterou může VM využívat) stanovena při jeho
vytváření a je limitována možnostmi hypervizoru. Existuje několik typů virtuálních
disků – dynamické disky, alokované disky, fyzické disky mapované do VM.
Výhodou
virtuálního disku může být relativně snadné zvětšení kapacity. Zvětšuje se pouze disk VM,
nikoliv souborový systém na něm. [24]
Parametr 8 - Disk Usage (ORA)
Množství spotřebované kapacity datového úložiště pro databázový server Oracle. Popis
tohoto parametru je shodný s výše uvedeným popisem u parametru Disk Usage (Portal).
Parametr 9 - Network Usage (Portal)
Síťový provoz webového serveru Portal. Virtualizace síťového rozhraní umožňuje
transparentní síťovou komunikaci z prostředí VM pomocí virtuálního nebo fyzického
rozhraní, případně kombinaci obou typů. Vše je realizováno pomocí software obvykle
ve vrstvě hypervizoru. Průchod dat vyžaduje asistenci procesoru, což vnáší zpoždění při
předávání rámců a zatěžuje hostitelský systém. [24]
Parametr 10 - Network Usage (ORA)
Síťový provoz databázového serveru Oracle. Popis tohoto parametru je shodný s popisem
již uvedeným u parametru Network Usage (Portal).
46
Parametr 11 - Uptime (ORA)
Doba provozu bez přerušení u webového serveru Portal. Tento parametr, zobrazující
časovou délku provozu, byl z modelování vyřazen.
Parametr 12 - Uptime (Portal)
Doba provozu bez přerušení u databázového serveru Oracle. Tento parametr, zobrazující
časovou délku provozu, byl z modelování vyřazen.
Univerzita Pardubice má v provozu dva virtuální webové servery a čtyři databázové
servery Oracle. Virtuální webové servery pro svůj provoz využívají databázový server. Pokud
je databázový server mimo provoz, nemají virtuální servery přístup k datům z databází,
a proto není v provozu ani webové rozhraní virtuálního serveru Portal.
Na základě uvedeného popisu vstupních parametrů lze navrhnout datovou matici P, která
jsou objekty v čase t,
bude vstupovat do modelu, kde
k-tý parametr v čase t,
je hodnota parametru
je i-tý vzor,
je
pro i-tý objekt
je vektor parametrů.
P=
Data charakterizující virtuální servery obsahují 10 parametrů a 41 958 objektů. Objektem
je záznam obsahující hodnoty 10 parametrů z měření. Záznamy jsou pořízeny z měření, které
probíhalo v pětiminutových odstupech v časovém horizontu od 25. 6. 2010 do 24. 11. 2010.
3.3 Příprava dat
Příprava dat zahrnuje činnosti, které vedou k vytvoření datové matice, která bude použita
pro vstup do modelu pro klasifikaci pomocí KSOM. Nejprve je třeba se s daty seznámit
pomocí vybraných popisných statistik a datového slovníku. Pro získání správných výsledků
klasifikace musí data splňovat několik podmínek. V jednotlivých měřeních musí být uvedeny
hodnoty všech měřených parametrů. Dále nesmí být mezi jednotlivými parametry silná
korelační závislost a data musí být mezi sebou porovnatelná.
47
Chybějící hodnoty
Nejprve je třeba zjistit, zda datový soubor neobsahuje chybějící hodnoty, které mohou
způsobit chybné výpočty při shlukování. Pro tento účel lze v prostředí MS Excel 2007 použít
několik metod – filtry, podmíněné formátování nebo funkci JE.PRÁZDNÉ(). Bylo nalezeno
29 chybějících hodnot, které nastaly restartem serveru. Tyto záznamy byly odstraněny.
Výběr dat
Vhledem k velikosti datového souboru je nutné učinit výběr dat. Je důležité, aby prvky
výběrového souboru odrážely vlastnosti základního souboru, tj. aby byl výběr reprezentativní.
Dle literatury [15] by měl reprezentativní výběr splňovat následující předpoklady:

jednotlivé prvky základního souboru jsou vybírány nezávisle na sobě,

všechny prvky pocházejí ze stejného základního souboru,

každý prvek základního souboru má stejnou možnost dostat se do výběru.
Vzhledem k výpočetní a časové náročnosti algoritmů pro učení KSOM byl náhodně
vybrán vzorek o velikosti 1500 datových záznamů. Následně bylo pomocí softwarového
produktu STATISTICA ověřeno, zda výběrový soubor má stejné rozdělení pravděpodobností
se základním souborem.
Korelace
Vzájemný vztah mezi dvěma veličinami lze určit pomocí korelačního koeficientu, který
nabývá hodnot z intervalu <-1;1>. Jestliže je korelační koeficient roven 0, znamená to,
že náhodné veličiny X a Y jsou nekorelované. I když platí, že jsou dvě náhodné veličiny
nekorelované, mohou být veličiny na sobě závislé. Hodnota -1 znamená negativní závislost,
tedy čím více se zvětší hodnota jedné veličiny, tím se zmenší hodnota druhé veličiny.
Hodnota +1 označuje přímou závislost mezi veličinami. [15]
Pro výpočet Euklidovské vzdálenosti, na níž je algoritmus KSOM založen, je
předpokládána nekorelovanost proměnných. Nevýhodou Euklidovské vzdálenosti je závislost
na jednotkách, ve kterých byly měřeny jednotlivé znaky. V případě, kdy mají tyto znaky
i různorodý charakter z hlediska jejich významnosti, není to žádným způsobem zohledněno
při výpočtu vzdálenosti. Pokud jsou některé znaky silně korelované, mají tyto znaky
nepřiměřeně velký vliv na velikost vzdálenosti takových dvou objektů, a tak i na výsledek
shlukování. Toto lze řešit normováním údajů datové matice. Normované údaje nezávisí
na měrných jednotkách. Při shlukování se normování nazývá standardizace údajů. [15]
48
Pomocí softwarového nástroje STATISTICA lze zjistit, že pro data není splněn předpoklad
normality rozdělení pravděpodobností základního souboru. Výsledek lze také ověřit pomocí
histogramů nebo normálně-pravděpodobnostních grafů. Pro zjištění korelační závislosti lze
dle [1] použít Spearmanův korelační koeficient, který se používá pro měření síly vztahu
u takových veličin, kdy nemůžeme očekávat normální rozdělení sledovaných proměnných.
Výsledný
koeficient
je
následně
porovnán
s tabelovanými
kritickými
hodnotami
Spearmanova korelačního koeficientu pro zvolenou hladinu α a počet n a je určena jeho
významnost.
Pro dekorelaci dat lze použít metodu hlavních komponent (PCA) nebo faktorovou analýzu.
Výstupem mohou být nové faktorové proměnné, které nejsou mezi sebou korelované a lze je
použít pro další modelování. Protože bude následně provedeno normování dat
a zjištěné závislosti některých proměnných lze využít pro interpretaci vztahů, budou
odstraněny pouze parametry, mezi nimiž je silná korelační závislost.
U parametrů, které spolu silně korelují, je třeba ponechat pouze jeden parametr a druhý
vyloučit. Dle korelační matice, kterou ukazuje tabulka 1, lze zjistit silné korelační vztahy
mezi parametry CPU Usage in MHz (Portal) a Disk Usage (Portal), a také mezi parametry
CPU Usage in MHz (Portal) a Network Usage (Portal). Do další analýzy bude ponechán
pouze jeden parametr z dvojice silně korelačně závislých parametrů. Pro rozhodnutí, který
z korelovaných parametrů odstranit, lze využít otestování KSOM pomocí softwarového
dataminingového nástroje SPSS Clementine. Výsledný stream je uveden v příloze A. KSOM
byla vytvořena při defaultním nastavení a výsledky jsou přílohou B. Informaci
o tom, zda je atribut důležitý lze spatřit v pravém sloupci nazvaném důležitost (Importance).
Bylo zjištěno, že nejdůležitější parametry jsou CPU Redy ORA a Network Usage ORA.
Žádný z výše uvedených silně korelovaných parametrů není důležitý. Pro zachování
největšího počtu parametrů pro analýzu byl odstraněn parametr 1 - CPU Usage in MHz
(Portal). Ostatní parametry byly ponechány.
Po kontrole chybějících hodnot a korelační analýze byla provedena popisná statistika
výsledných připravených dat v softwarovém prostředí STATISTICA 10, kterou ukazuje
tabulka 2.
49
Tabulka 1: Korelační matice
Parametr
CPU Usage CPU Ready Memory Disk Usage
(Portal)
(Portal) Consumed (Portal)
(Portal)
Network
Usage
(Portal)
CPU Usage CPU Ready Memory Disk Usage
(ORA)
(ORA)
Consumed
(ORA)
(ORA)
Network
Usage
(ORA)
CPU Usage in MHz (Portal)
1,00
0,46
0,39
0,84
0,83
0,45
-0,10
0,20
0,43
0,66
CPU Ready (Portal)
0,46
1,00
0,35
0,34
0,33
0,22
0,13
-0,11
0,28
0,30
Memory Consumed (Portal)
0,39
0,35
1,00
0,33
0,26
0,21
0,14
0,09
0,06
0,13
Disk Usage (Portal)
0,84
0,34
0,33
1,00
0,73
0,37
-0,04
0,17
0,36
0,53
Network Usage (Portal)
0,83
0,33
0,26
0,73
1,00
0,43
-0,20
0,19
0,45
0,79
CPU Usage (ORA)
0,45
0,22
0,21
0,37
0,43
1,00
-0,43
0,29
0,59
0,57
CPU Ready (ORA)
-0,10
0,13
0,14
-0,04
-0,20
-0,43
1,00
-0,19
-0,18
-0,26
Memory Consumed (ORA)
0,20
-0,11
0,09
0,17
0,19
0,29
-0,19
1,00
0,12
0,13
Disk Usage (ORA)
0,43
0,28
0,06
0,36
0,45
0,59
-0,18
0,12
1,00
0,66
Network Usage (ORA)
0,66
0,30
0,13
0,53
0,79
0,57
-0,26
0,13
50
0,66
1,00
Zdroj: vlastní zpracování
Tabulka 2: Popisná statistika dat
Popisná statistika
CPU Ready
(Portal)
Memory
Consumed
(Portal)
Disk Usage
(Portal)
Network
Usage
(Portal)
CPU Usage in
MHz (ORA)
CPU Ready
(ORA)
Memory
Consumed
(ORA)
Disk Usage
(ORA)
Network
Usage (ORA)
Počet
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
Průměr
3 585,50
10 308 812,49
66,77
198,33
1 425,74
2 460,01
16 338 768,29
543,47
421,88
Medián
3 195,00
11 513 101,00
25,00
86,00
1 146,00
2 324,00
16 699 438,00
60,00
20,00
Minimum
1 602,00
3 888 112,00
10,00
0,00
267,00
10,00
4 073 354,00
35,00
0,00
Maximum
197 519,00
12 527 490,00
5 184,00
2 290,00
9 419,00
80 497,00
16 700 317,00
45 719,00
41 363,00
Dolní kvartil
2 940,50
9 437 606,50
18,00
21,50
778,00
2 124,50
16 696 036,50
49,50
6,00
Horní kvartil
3 449,00
12 522 780,00
38,00
271,00
1 806,50
2 497,00
16 699 611,50
91,00
80,00
195 917,00
8 639 378,00
5 174,00
2 290,00
9 152,00
80 487,00
12 626 963,00
45 684,00
41 363,00
6 892,19
2 291 841,89
310,01
268,03
965,40
3 054,08
1 980 956,68
3 458,40
3 222,85
Šikmost
25,39
-0,73
12,25
2,51
2,19
22,28
-5,65
9,21
10,14
Špičatost
669,25
-0,81
173,48
9,33
9,44
509,65
30,10
89,79
105,40
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
1 500,00
Rozpětí
Sm.odch.
Průměr
51
1 500,00
1 500,00
Zdroj: vlastní zpracování
Standardizace
Z tabulky 2 je zřejmé, že mezi hodnotami vstupních parametrů jsou vysoké rozdíly
z důvodu rozlišných měrných jednotek a hodnoty tak nelze mezi sebou porovnávat. Z důvodu
odstranění této závislosti hodnot na měřených jednotkách je provedena standardizace dat.
Nechť je dána matice dat Z 
typu n x p, jejíž řádky jsou -rozměrné vektory čísel,
které charakterizují n objektů. Standardizace se provede ve dvou krocích [12]:
výpočet střední hodnoty
j-tého znaku
a směrodatné odchylky
pro
podle vztahů
 přepočet původní hodnoty
j-tého znaku i-tého objektu na tzv. standardizované
hodnoty
Výsledné standardizované hodnoty znaků mají střední hodnotu rovnu 0 a rozptyl 1.
3.4 Rozdělení na trénovací a testovací data
Dle literatury [16] pro rozklad množiny objektů
vztah
na trénovací a testovací množinu platí
. Pomocí zvolené klasifikační metody dojde k rozkladu množiny
na disjunktní podmnožiny neboli shluky, které obsahují podobné objekty z hlediska
metriky, která je v dané klasifikační metodě použita. Potom platí vztah:
,
kde i-tý shluk
obsahuje
(3.4)
objektů z množiny , platí:
(3.5)
je objekt z i-tého shluku
, který leží nejblíže k jeho centru. Tento
objekt slouží jako reprezentant objektů ze shluku
Potom tréninková a testovací množina je
kde objekt
dána objekty:
52
,
(3.6)
,
(3.7)
kde tréninková množina je složená ze všech reprezentantů shluků a testovací množina
obsahuje zbylé objekty. Počet objektů v trénovací množině je stejný jako počet shluků,
.
(3.8)
Obvyklým způsobem rozdělování dat na trénovací a testovací množinu je také náhodný
výběr. Nejčastěji bez opakování, ale je možné toto rozdělení provést i s opakováním.
Pro učení KSOM a pro otestování modelu, jak úspěšně byla KSOM natrénována, jsou data
náhodně rozdělena pomocí uzlu „Partition“ softwarového produktu SPSS Clementine
na trénovací a testovací data v poměru 60:40. Ověření správnosti rozdělení je provedeno
pomocí porovnání rozdělení pravděpodobností parametrů dat z trénovací množiny
s parametry dat z testovací množiny.
3.5 Všeobecný klasifikační problém
Cílem modelování je klasifikovat data charakterizující virtuální server do shluků, které
budou představovat třídu
Tento problém lze chápat jako všeobecný klasifikační problém.
Dle literatury [16] je všeobecná formulace klasifikačního problému zavedena pomocí
pojmu zobrazení, tj. funkce definované nad dvěma množinami
a . Nechť
definovaná na množině , která přiřazuje každému elementu
z množiny ),
je funkce
obraz (funkční hodnotu
, pro který platí vztah
.
Dále dle [16] nechť
(3.9)
je funkce, jejíž parametry jsou z konečné podmnožiny
, nazývané tréninková množina, a
parametry) zobrazení , potom
a platí následující vztah
.
Dle [16] lze říci, že zobrazení
. Komplement
je parametr (nebo
(3.10)
je restrikce zobrazení
vzhledem k množině
testovací množina, pro kterou platí
požadovaný obraz (funkční hodnotu)
nad množinou
je označen
a nazývá se
. Nechť pro každé
známe
, platí
,
,…,
53
.
(3.11)
Následující obr. 22 ukazuje zobrazení
na podmnožinu
. Při podrobnějším zobrazení
získáme nové modelové zobrazení
zobrazení je určen parametrem (parametry)
. Tvar funkce tohoto
. [16]
Obrázek 20: Schematické znázornění zobrazení F:A->B
Zdroj:[16]
Požadované funkční hodnoty
jsou dle [16] interpretovány jako obrazy funkce
,
ve tvaru:
.
Dle [16] je cílem najít takový parametr (parametry)
hodnoty argumentů z tréninkové mmnožiny
(3.12)
funkce
, aby funkční
byly co nejblíže obrazem funkce
,
tedy nejblíže požadovaným hodnotám. Nechť je definována účelová funkce
vyjadřující sumu kvadratických odchylek funkce
od požadovaných hodnot
braných
z tréninkové množiny.
Je důležité, aby vypočítané hodnoty
byly co nejblíže požadovaným hodnotám .
Tento požadavek je realizován pomocí požadavku minimálnosti účelové funkce
vzhledem k parametru
. Funkci
nazýváme adaptovanou, pokud její parametr
je
vybrán tak, aby se rovnal své optimální hodnotě, tj. takové hodnotě, ve které má účelová
funkce globální minimum. [16]
54
3.6 Návrh modelů KSOM
Pro klasifikaci dat bude navržena KSOM v softwarovém prostředí MATLAB R2012b
společnosti MathWorks. Jak již bylo uvedeno, v MATLABU lze použít SOM Toolbox nebo
Neural Network Toolbox, který se spouští příkazem nntool a nabízí pro práci jednoduché
a příjemné uživatelské rozhraní (GUI – Graphical User Interface). Všechny funkčnosti pro
tvorbu KSOM lze také vytvořit pomocí skriptu a upravovat dle dostupné knihovny funkcí.
Pomocí dostupných skriptů z MATLAB Centra lze např. doplnit také shlukování dle
algoritmu K-means a Dunn Index pro určení počtu shluků pro K-means. Bohužel knihovna
Neural Network toolboxu nedisponuje výpočtem topografické ani kvantizační chyby, dle
kterých se provádí hodnocení KSOM a nebyl nalezen jednoduchý způsob jak propojit
funkčnost se SOM toolboxem.
Navržený model bude ověřován pomocí SOM toolboxu. Uživatelské rozhraní lze spustit
pomocí příkazu som_gui. Druhou možností je využít knihovny SOM toolboxu a vytvořit
vlastní m-file. Tento postup byl zvolen. Výsledný m-file je uveden v příloze C. Po spuštění
skriptu je nejprve vytvořena datová struktura ze vstupní datové matice a názvů parametrů
(som_data_struct). Dále jsou data normována (som_normalize) a je provedena
inicializace vah. Je možné zvolit inicializaci náhodnou (som_randinit) nebo lineární
pomocí PCA analýzy (som_lininit).
Pro inicializaci lze nastavit následující vstupní parametry (argumenty) a jejich hodnoty:
 Velikost mapy – počet vertikálních a počet horizontálních neuronů nebo počet
neuronů (reprezentantů) v kompetiční vrstvě. Dle literatury [37] lze počet neuronů
zvolit dle výpočtu
, kde
je počet trénovacích vzorů a je doporučeno, aby
mřížka měla jednu stranu delší, tj. aby tvořila obdélník.
Dle výpočtu byl zvolen počet 150 neuronů v kompetiční vrstvě a odpovídající velikost
mapy [15 10].
 Struktura KSOM – šestiúhelník (hexa), čtyřúhelník (rect). Obvykle je doporučováno
používat šestiúhelník. Pro vyhodnocení budou testovány modely pro obě možnosti.
 Tvar mapy – dvourozměrná mřížka (shape), válec (cyl), prstenec (toroid).
U všech modelů bude nastavována dvourozměrná mřížka, která odpovídá tvaru dat.
Následuje nastavení parametrů učení KSOM. Parametry pro nastavení jsou odlišné dle
zvoleného algoritmu učení. Učení je možné provádět sekvenčním učícím algoritmem
55
(som_seqtrain) nebo dávkovým učícím algoritmem (som_batchtrain). V obou
případech probíhá učení ve dvou fázích. Jedná se o fázi uspořádávání a fázi dolaďování.
Pro učení ve fázi uspořádávání jsou pro sekvenční i dávkový učící algoritmus
nastaveny následující parametry a jejich hodnoty:
 Funkce okolí - lze zvolit Gaussovu (gaussian), Epanechikovu (ep), bublinkovou
(buble) nebo ohraničenou Gaussovu (cutgauss). Pro vyhodnocení modelu budou
testovány všechny možnosti.
 Počáteční poloměr okolí
. Dle poznatků z předešlých kapitol má ve fázi
uspořádávání poloměr okolí vysokou hodnotu. Malé okolí na začátku učení může
způsobit neúplné rozvinutí mapy. Počáteční poloměr je nastaven z intervalu <3;7>.
 Konečný poloměr okolí
Konečný poloměr je nastaven na hodnotu 1.
 Délka učení (v epochách). Ve fázi uspořádání je počet epoch nižší než pro fázi
dolaďování. Délka učení v epochách je nastavována z intervalu <4;500>.
Pro učení ve fázi dolaďování jsou pro sekvenční i dávkový učící algoritmus nastaveny
tyto parametry a jejich hodnoty:
 Počáteční poloměr okolí
Ve fázi dolaďování má poloměr okolí nízké hodnoty.
Počáteční poloměr je nastaven z intervalu <1;3>.
 Konečný poloměr okolí
Konečný poloměr je nastaven na hodnotu 1.
 Délka učení (v epochách). Pro fázi dolaďování je doporučeno zvolit délku učení
v epochách jako čtyřnásobek délky učení ve fázi uspořádávání. Délka učení
v epochách je nastavována z intervalu <20;2000>.
Kromě výše uvedených parametrů lze dále pro oba učící algoritmy nastavit tyto
parametry:
 Maska vyhledávání vítězných neuronů.
 Sledování výsledků učení neboli tracking. Pomocí tohoto nastavení lze sledovat
průběh kvantizační chyby - QE. Nastavená hodnota 0 zobrazí dobu učení, hodnota 1
zobrazí dobu učení a kvantizační chybu, nastavená hodnota 2 zobrazí graf kvantizační
chyby a hodnota 3 zobrazí graf kvantizační chyby a prvních dvou komponent.
Sledování je nastaveno na hodnotu 3. Pokud dochází k velkým výkyvům chybových
funkcí, lze spatřit skokové změny v průběhu kvantizační chyby.
56
Pro sekvenční algoritmus lze doplnit ještě následující parametry:
 Rychlost učení
(t). Dle poznatků z předchozích kapitol je ve fázi uspořádávání
funkce rychlosti učení klesající z nějaké hodnoty blízké 1 až na řádově 0,1 - 0,01
a během fáze dolaďování dochází k postupnému snižování až k nule. Pokud rychlost
učení klesá velmi rychle a délka učení ve fázi uspořádávání je krátká, může dojít
k nežádoucím efektům. Důležité je, aby pokles poloměru okolí
nebyl příliš rychlý
nebo příliš pomalý v porovnání s poklesem rychlosti učení (t).
U sekvenčního algoritmu je nastavena rychlost učení ve fázi uspořádávání na hodnoty
z intervalu <0,5;0,8>, ve fázi dolaďování jsou nastavovány hodnoty z intervalu
<0,01;0,05>.
 Funkce rychlosti učení – inverzní (inv), lineární (linear), mocninná (power). Jsou
testovány všechny možnosti.
 Doba učení – epochy (epochs) nebo trénovací objekty (samples). U tohoto
parametru jsou nastaveny epochy.
 Pořadí trénovacích objektů – náhodné (random) nebo seřazené (ordered). Výsledek
řešení může záviset na pořadí případů.
Vykonání skriptu dále pokračuje zobrazením matice vzdáleností (som_show), určením
reprezentantů a počtu objektů k nim příslušejících (som_bmus, hits). Natrénovanou mapu
lze uložit ve formátu SOM_PAK (som_write_cod). Další možností je uložit natrénovanou
mapu ve formátu *.map přímo z workspace MATLABU. Kvalitu výsledků KSOM lze měřit
pomocí hodnot TE a QE (som_quality), které byly blíže popsány v kapitole 2.5 a na jejichž
základě bude vyhodnocen nejvhodnější model. Následuje stanovení počtu shluků pomocí
výpočtu nejnižší hodnoty Davies Bouldinova indexu a dále shlukováním pomocí algoritmu
K-means (kmeans_clusters), který je blíže popsán v následující kapitole. Cílem různého
nastavování parametrů je dosáhnout dobře oddělených shluků, jejichž objekty mají podobné
vlastnosti. Počet shluků by měl odpovídat počtu odlišných vlastností.
3.7 K-means
Pro nalezení shluků lze na naučenou KSOM aplikovat algoritmus K-means neboli
K-průměrů. Pak je proces shlukování realizován ve dvou úrovních. V první úrovni jsou
objekty redukovány pomocí KSOM do n reprezentantů a následně je ve druhé úrovni těchto
n reprezentantů o m znacích shlukováno do k shluků. Tímto způsobem je dosaženo snížení
57
výpočetní náročnosti. Počet shluků musí být určen předem. Pro stanovení počtu shluků slouží
indexy hodnotící kvalitu shlukování. [26]
Metoda K-means, neboli metoda nejbližších těžišť poskytuje pouze jediné řešení
pro zadaný počet požadovaných shluků, který je předem zadán uživatelem. Objekt je zařazen
do shluku s nejmenší vzdáleností mezi objektem a těžištěm shluku, tj. s nejbližším těžištěm.
Jsou-li těžiště shluku známá, mohou být v datech specifikována a zařazení objektů je založeno
na nich. V opačném případě, tj. když těžiště nejsou známá, jsou těžiště shluků určována
iteračním výpočtem z dat. Princip metody K-means spočívá v rozdělení n objektů o m znacích
do k shluků tak, že mezishluková suma čtverců je minimalizována. Počet možných uspořádání
je však veliký, nelze tedy očekávat vždy jediné a nejlepší řešení. Existuje několik metod
pro výpočet těžišť. Většina z nich vyšetřuje data několikrát. Jedna strategie vybírá objekty,
které mají velké vzdálenosti mezi sebou. Následně tyto hodnoty užívá jako počáteční odhady
těžišť shluků. Algoritmus pracuje tak, že prvních m objektů v datech (kde m je počet
požadovaných shluků) je vybráno jako dočasná těžiště. V následujících krocích dojde
k nahrazení objektu těžiště, když jako nejmenší vzdálenost k těžišti bude větší než vzdálenost
mezi dvěma nejbližšími těžišti. Těžiště, které je bližší k objektu, je pak vyměněno.
Algoritmus pro každý pokus zcela náhodně přiřazuje každý objekt jednomu shluku. Toto
uspořádání je následně optimalizováno. Start procesu z rozličných náhodných uspořádání
velmi zvyšuje pravděpodobnost nalezení nejlepšího řešení, tj. nalezení globálního optima
počtu shluků. [19]
V literatuře [19] a [20] je také definováno Kriterium věrohodnosti, čili těsnosti proložení.
Předpokládejme
objektů rozdělených do
shluků, kde
-tý shluk obsahuje
objektů.
Každý objekt je popsán m znaky. Chybějící hodnota -tého znaku v j-tém řádku u k-tého
shluku je označena
. Data
jsou předem standardizována a označena
těsnosti proložení mezishlukové sumy čtverů
Kriterium
, které je založeno na rozličných
konfiguracích shluků, je definováno vztahem
kde
je střední hodnota (průměr) i-tého znaku v -tém shluku. Procento variace
(proměnlivosti) je definováno vztahem
58
Dle literatury [2] je algoritmus K-means následující:
Krok 1: Náhodně zvol rozklad do
shluků.
Krok 2: Urči centroidy pro všechny shluky v aktuálním rozkladu.
Krok 3: Pro každý příklad
a) urči vzdálenosti d(x,
b) nechť
c) není-li
),
=
je centroid k-tého shluku,
, kde
,
součástí shluku l (k jehož centroidu
má nejblíže), přesuň
do shluku l.
Krok 4: Došlo-li k nějakému přesunu, potom jdi na 2, jinak konec.
Jak již bylo uvedeno, počet shluků musí být určen předem. Pro stanovení počtu shluků
slouží dle [30] indexy hodnotící kvalitu shlukování. Jedná se např. o Dunn Index, Alternativní
Dunn Index, Davies Bouldin Index, Root Mean Square Standard Deviation Index.
K určení počtu shluků pro vytvořenou KSOM bude sloužit Davies Bouldin Index (DB).
Dle literatury [14] je DB index založen na míře podobnosti shluků
dle vztahu
jehož základem je měření rozptylu uvnitř shluku
a měření nepodobnosti shluku
,
Jakmile jsou vypočítány všechny míry podobnosti shluků
hodnoty nepodobností
kde
(4.5)
, vyberou se maximální
mezi shluky výpočtem dle vztahu
. Konečné výsledné kritérium se získá ze vztahu
DB index měří průměr podobnosti shluků mezi sebou. Vzhledem k tomu, že shluky mají
být kompaktní a oddělené, nižší hodnota DB indexu znamená lepší shlukovací konfiguraci.
59
3.8 Dílčí závěr
V úvodu kapitoly je uveden algoritmus návrhu modelu pro klasifikaci včetně stručného
popisu jednotlivých kroků. Dále je v kapitole popsáno seznámení se s dostupnými daty
a jejich předzpracování pro potřeby klasifikace. Seznámení s daty bylo uskutečněno pomocí
popisných statistik a datového slovníku. Korelační analýza odhalila závislost mezi parametry.
Do další analýzy zůstal ponechán pouze jeden parametr z dvojice silně korelačně závislých
parametrů. S daty byla realizována standardizace, pomocí které lze odstranit závislosti
na měrných jednotkách. Následně byla data rozdělena na trénovací a testovací množinu.
Takto připravená data lze použít pro modelování pomocí KSOM. V kapitole byl uveden také
popis návrhu modelů, které budou testovány, včetně uvedení návrhu hodnot jednotlivých
nastavovaných parametrů. Navržené modely budou ověřovány v prostředí SOM Toolboxu
v MATLABU.
60
4 VERIFIKACE MODELŮ A ANALÝZA VÝSLEDKŮ
Ověření navržených modelů je provedeno v softwarovém prostředí MATLAB R2012b
pod operačním systémem Windows 7, pomocí skriptu s využitím knihovny SOM Toolbox.
Pro jednotlivé modely jsou nastavovány parametry různých hodnot. Hodnocení modelů je
rozděleno dle učícího algoritmu na modely se sekvenčním učícím algoritmem a modely
s dávkovým učícím algoritmem. Modely jsou hodnoceny dle QE a TE. Cílem je získat model
vhodný pro následující klasifikaci dat.
Nejprve je provedeno učení KSOM pomocí trénovacích dat. Pro otestování nalezených
znalostí v datech lze dle literatury [2] použít testování v celých trénovacích datech, křížovou
validaci (cross-validation), metodu leave-one-out, metodu bootstrap nebo testování
v testovacích datech. Testování v datech použitých při učení má nejmenší vypovídací
schopnost o tom, jak jsou nalezené znalosti použitelné pro klasifikování nových případů.
Často může dojít k „přeučení“ (overfitting), kdy nalezené znalosti popisují více náhodné
charakteristiky trénovacích dat a neodhalí podstatné znalosti, které lze použít pro generalizaci.
Trénovací data tedy nejsou vhodná pro testování nalezených znalostí zobecnění. Je však
důležité, aby se data použitá pro testování „podobala“ datům trénovacím.
Na základě hodnocení modelů dle TE a QE je pro vybrané modely, které dosahovaly
nízkých hodnot, následně použito testovacích dat a je provedena klasifikace. Modely jsou
hodnoceny s ohledem na vznik v praxi interpretovatelných shluků. Následně je každému
shluku přiřazena třída. Výsledné KSOM mohou sloužit pro nalezení možných souvislostí
mezi parametry jednotlivých stavů serverů.
4.1 Modely KSOM se sekvenčním učícím algoritmem
Pro ověření navržených modelů jsou modely rozděleny do dvou hlavních podskupin. První
podskupinu tvoří modely pro jednotlivé funkce rychlosti učení (lineární, inverzní
a mocninná), které se dále dělí na modely s lineární inicializací a na modely s náhodnou
inicializací. Druhou podskupinu modelů tvoří modely dle rozdílné funkce okolí (Gassova,
Epanechikova, bublinková, ohraničená Gaussova). Dle doporučení literatury je u většiny
modelů nastavena struktura mapy šestiúhelník, ale jsou také testovány modely s nastavením
struktury čtyřúhelník. Výsledky základních modelů jsou uvedeny v příloze D.
61
4.1.1 Porovnání modelů
Dle výsledných hodnot TE a QE bylo zjištěno, že modely s lineární inicializací dosahují
lepších výsledků než modely s náhodnou inicializací. Dále bylo zjištěno, že modely s inverzní
funkcí rychlosti učení dosahují vyšších hodnot QE oproti ostatním modelům a modely
s Epanechikovou funkcí okolí dosahují vyšších hodnot TE, ale výrazně nižších hodnot QE.
Modely se strukturou čtyřúhelníku dosahovaly vyšších hodnot QE oproti modelům
se strukturou šestiúhelníku. Je vhodné dodržet, aby poměr doby učení mezi fází uspořádávání
a fází dolaďování byl nastaven v poměru 1:4 a konečný poloměr okolí klesal na hodnotu 1.
4.1.2 Analýza výsledků
Analýzou výsledků bylo zjištěno, že nejlepšího výsledku dosáhl model s lineární
inicializací, lineární funkcí rychlosti učení a Gaussovou funkcí okolí a to s hodnotami
TE = 0,0078 a QE = 0,4995. Rychlost učení byla nastavena pro fáze uspořádání a dolaďování
v poměru 1:10. Nastavené hodnoty tohoto modelu ukazuje tabulka č. 3.
Tabulka 3: Parametry modelu – sekvenční algoritmus
Parametr
Hodnota
Algoritmus učení
Sekvenční
Inicializace
Lineární
Velikost mapy
[15 10]
Struktura KSOM
Šestiúhelník
Fáze učení
Funkce rychlosti učení
Lineární
Doba učení
Epochy
Pořadí trénovacích objektů
Náhodné
Funkce okolí
Gaussova
Fáze uspořádávání
Počáteční poloměr okolí λ(t)
3
Konečný poloměr okolí λ(t)
1
Délka učení (v epochách)
100
Rychlost učení η
0,5
Fáze ladění
Počáteční poloměr okolí λ(t)
2
Konečný poloměr okolí λ(t)
1
Délka učení (v epochách)
400
Rychlost učení η
0,05
Zdroj: vlastní zpracování
62
Výsledky KSOM lze vizualizovat několika způsoby. Vzdálenosti ve výstupním prostoru
lze dle literatury [26] znázornit pomocí matice vzdáleností, která znázorňuje čtvercové
euklidovské vzdálenosti mezi reprezentanty. Tyto vzdálenosti jsou znázorněny v barevné
škále.
Matice
vzdáleností
může
být
zobrazena
v trojrozměrném
prostoru,
nebo
v dvojrozměrném prostoru tzv. U-maticí.
V U-matici lze spatřit ohraničené úseky vyšších hodnot znázorňující reprezentaty, které
spolu nějak souvisí a liší se od ostatních oblastí. Pro snadnou interpretaci lze zobrazit
U-matici ve škále šedi, kde světlejší oblasti ukazují menší vzdálenost mezi reprezentanty.
Znamená to, že vektory vah jsou těsněji obklopeny ostatními vektory a tvoří shluk. Tmavší
oblasti ukazují oblasti vzdálené, které se výrazně liší od ostatních reprezentantů a označují
hranice shluků. V U-matici na obr. 21 lze spatřit oblast v levém dolním rohu, která
se vyznačuje velkou vzdáleností mezi reprezentanty. Z tohoto lze usuzovat, že tato oblast
bude tvořit samostatný shluk. Oblast vlevo nahoře se vyznačuje také velkou vzdáleností mezi
reprezentanty. Tato oblast je ohraničena tmavší oblastí a lze usuzovat, že zde vzniknou dva
samostatné shluky. Naopak oblasti na pravé straně U-matice se vyznačují téměř stejnou
vzdáleností mezi reprezentanty.
Obrázek 21: U-matice, sekvenční učící algoritmus, trénovací data
Zdroj: vlastní zpracování
Následující obr. 22 ukazuje matice vzdáleností jednotlivých parametrů. Podle výskytu
vysokých (nebo nízkých) hodnot ve stejné pozici u jednotlivých parametrů lze nalézt
existující vztah mezi jednotlivými parametry.
63
Obrázek 22: Hodnoty jednotlivých parametrů, sekvenční učící algoritmus, trénovací data
Zdroj: vlastní zpracování
Na základě výskytu vysokých hodnot ve stejné oblasti lze spatřit závislost mezi parametry
CPU připraven u databázového serveru (CPU Ready ORA), CPU připraven u webového
serveru (CPU Ready Portal), spotřeba paměti databázového serveru (Memory Consumed
ORA) a také spotřeba paměti webového serveru (Memory Consumed Portal). V této pozici
lze také spatřit vyšší hodnoty parametru využití procesoru u databázového serveru (CPU
Usage ORA). Z těchto závislostí lze vyvodit domněnku, že zvýšení doby odezvy pro oba VM
může způsobit nějaká další VM, která spotřebovává vice času procesoru a tím oběma
serverům narůstá čekací doba na procesor. Hypervizor zřejmě přiděluje procesor jiným VM
a dochází tak ke zvýšení času, po který servery čekají na naplánování a zpracování
plánovačem na fyzickém procesoru. Tento stav může způsobit zpomalení veškerých
spuštěných operací. Dalším zkoumáním lze také nalézt závislost mezi parametry spotřeba
paměti databázového serveru (Memory Consumed ORA), využití CPU databázového serveru
64
(CPU Usage ORA), využití síťového provozu webového serveru (Network Usage Portal)
a spotřeba paměti webového serveru (Memory Consumed Portal). Z této závislosti lze
usuzovat operace související s vyšším přenosem objemu dat a náročnější na výpočetní výkon.
Průchod dat vyžaduje asistenci procesoru. Při pohledu na KSOM jednotlivých parametrů lze
také spatřit závislost vysokých hodnot u parametrů množství spotřebované kapacity datového
úložiště databázového serveru (Disk Usage ORA), využití síťového provozu databázového
serveru (Network Usage ORA), spotřeba paměti databázového serveru (Memory Consumed
ORA) a středních hodnot parametrů využití procesoru databázového serveru (CPU Usage
ORA) a spotřeba paměti webového serveru (Memory Consumed Portal). Tento vztah může
ukazovat na operace související s exportem dat, jakými mohou být zálohování či replikaci dat.
Další zajímavou oblast představuje pozice v levém horním rohu, která je charakteristická
nízkými hodnotami všech parametrů a může představovat stav například krátce po restartu
(spuštění) serveru, kdy má databázový server uvolněnou paměť. U parametru množství
spotřebované kapacity datového úložiště webového serveru (Disk Usage Portal) byla shledána
závislost s vysokou hodnotou parametru spotřeba paměti databázového serveru (Memory
Consumed ORA) a také vyšší hodnotou spotřeby paměti webového serveru (Memory
Consumed Portal). Z této závislosti lze vyvodit domněnku, že se jedná o diskové operace
nebo tato závislost může ukazovat swapování.
4.1.3 Testovací data
Pro otestování, jak úspěšně byla KSOM natrénována lze připojit k naučené mapě data,
která nebyla použita v průběhu trénování a ověřit tak chování KSOM při vybavování.
Generalizace (zevšeobecnění) je schopnost neuronových sítí správně klasifikovat i vstupní
vzory, které nejsou součástí tréninkové množiny. Při testování KSOM je použita vstupní
datová matice, která nyní obsahuje testovací množinu dat podobného druhu, jaké obsahovala
trénovací množina. Následně je načtena natrénovaná mapa. Vzhledem k velikosti mapy, která
je vyhovující pro 900 objektů, bylo původních 600 testovacích objektů navýšeno na počet 900
přidáním 300 objektů, které byly náhodně vybrány z původní testovací množiny. Inicializace
již není provedena, protože KSOM je již naučena a její váhové vektory jsou nastaveny.
Ostatní parametry zůstanou nezměněny. Následně dochází opět k výpočtu vzdáleností
vstupním vzorem
od vektoru vah
mezi
a k výběru BMU. Dochází k úpravě vah BMU
a KSOM se doučuje.
Výsledný model lze porovnat dle hodnot TE a QE. Pro modely s nízkými hodnotami TE
nebo QE bylo provedeno vyhodnocení shluků. Shluky jsou vyhodnocovány jak vizuálně
65
porovnáním oblastí shluku se stejnou oblastí jednotlivých parametrů, tak pomocí rozkladu
v softwarovém produktu Microsoft Excel a následně vyhodnoceny popisnou statistikou
pomocí analýzy po skupinách (shlucích) v softwarovém prostředí STATISTICA10.
Nejčastější počet shluků dle nejnižší hodnoty Davies Bouldinova Indexu byl počet 9. V těchto
případech, kdy došlo ke vzniku více shluků, se však jednalo o shluky podobných objektů,
které byly rozděleny do několika menších shluků. Při shlukování do menšího počtu shluků
naopak data v některých shlucích nabývala hodnot v plném rozsahu a nebylo možné
jednotlivé shluky jednoznačně interpretovat.
Pro další popis shluků lze použít metody učení s učitelem, které dokáží extrahovat znalosti
naučené pomocí KSOM. Znalosti by měly mít tvar podobný lidskému úsudku,
tj. v podobě podmíněných pravidel. Tato pravidla mohou být vytvořena např. pomocí
rozhodovacích stromů. Shluky lze také interpretovat na základě centroidů (průměrných
hodnot všech parametrů v rámci jednoho shluku), skupinou vzdálených bodů nebo logickými
výroky. [10]
U testovací množiny dat bylo dosaženo těchto výsledků: TE = 0,0083; QE = 0,5178.
Hodnota TE je téměř stejná jakou trénovacích dat a značí, že mapa zachovává topologii
původních dat. Následující obr. 23 zobrazuje U-matici testovacích dat.
Obrázek 23: U-matice, sekvenční učící algoritmus, testovací data
Zdroj: vlastní zpracování
U-matice zobrazuje ohraničené úseky vyšších hodnot znázorňující reprezentaty, které
spolu nějak souvisí a liší se od ostatních oblastí. Tmavší oblasti ukazují oblasti vzdálené, které
se výrazně liší od ostatních reprezentantů. Jedná se o oblasti vlevo uprostřed, vpravo
66
uprostřed a vpravo dole. Lze usuzovat, že zde vzniknou samostatné shluky. Nejvzdálenější
oblast vlevo uprostřed představují vysoké hodnoty parametrů množství spotřebované kapacity
datového úložiště databázového serveru (Disk Usage ORA) a vysoké hodnoty síťového
provozu databázového serveru (Network Usage ORA). Další oblasti zvýšených hodnot lze
spatřit v pravém a levém horním rohu U-matice. Je zřejmé, že zde vzniknou dva oddělené
shluky.
Následující obr. 24 zobrazuje matice vzdáleností jednotlivých parametrů. Mezi
jednotlivými parametry lze spatřit stejné závislosti, které byly popsány u trénovacích dat
v předchozí podkapitole.
Obrázek 24: Hodnoty jednotlivých parametrů, sekvenční učící algoritmus, testovací data
Zdroj: vlastní zpracování
Následně bylo provedeno shlukování pomocí algoritmu K-means. Dle nejnižší hodnoty
Davies-Bouldinova indexu 0,7364 bylo určeno nejvhodnější shlukování do 7 shluků. Hodnoty
Davies-Bouldinova indexu a vhodné počty shluků k nim příslušejících jsou zobrazeny
na obr. 25.
67
Obrázek 25: Davies-Bouldin index, sekvenční učící algoritmus, testovací data
Zdroj: vlastní zpracování
Obr. 26 zobrazuje počet a rozmístění shluků. Shluky lze interpretovat dle shodných oblastí
s jednotlivými parametry na základě hodnot těchto parametrů.
Obrázek 26: Shluky, sekvenční učící algoritmus, testovací data
Zdroj: vlastní zpracování
Následující obr. 27 zobrazuje rozdělení dat dle shluků do jednotlivých tříd. V tabulce 4
jsou uvedeny charakteristiky jednotlivých shluků.
68
Obrázek 27: Klasifikace do tříd, sekvenční učící algoritmus, testovací data
Zdroj: vlastní zpracování
Tabulka 4: Popis tříd dle shluků, sekvenční učící algoritmus, testovací data
Shluk
Počet
Popis
Třída
Shluk je charakteristický objekty, které mají vysokou spotřebu
síťového provozu webového serveru (Network Usage Portal),
vysoké množství spotřebované paměti webového serveru (Memory
Consumed
Portal),
databázového
1
85
vysoké
serveru
množství
(Memory
spotřebované
paměti
Consumed
ORA)
a vysoké využití procesoru databázového serveru (CPU Usage
ORA).
Tento shluk může představovat operace náročné na přenos většího
objemu dat. Lze také usuzovat na vysoký počet uživatelů
webového serveru Portal.
Shluk obsahuje objekty s vysokou spotřebou databázového serveru
(Memory Consumed ORA), nízkou až střední spotřebou paměti
webového serveru (Memory Consumed Portal) a využití procesoru
2
205
databázového serveru (CPU Usage ORA).
Jedná se o jednoduché operace představující běžný provoz. Lze
usuzovat, že malá zátěž využívá pouze cache paměť databázového
serveru.
69
Tento
shluk
je
charakteristický
nízkou
spotřebou
paměti
databázového serveru (Memory Consumed ORA) a střední
spotřebou paměti webového serveru (Memory Consumed Portal).
3
17
Ostatní parametry nabývají nízkých hodnot.
Tento shluk může zastupovat operace, při kterých má databázový
server uvolněnou paměť. Může se jednat například o stav
databázového serveru krátce po jeho restartu (spuštění).
Sluk je charakteristický vysokou spotřebou paměti webového
serveru (Memory Consumed Portal) a vysokou spotřebou paměti
databázového serveru (Memory Consumed ORA)
4
204
Lze usuzovat na operace nenáročné na výkon. Zabraná paměť
zřejmě představuje stav běžného provozu, kdy je malá zátěž
serveru a je využívána pouze cache.
Tento shluk je charakteristický vysokou hodnotou parametru CPU
připraven webového serveru (CPU Ready Portal), dále vysokou
hodnotou databázového serveru (CPU Ready ORA), vysokou
spotřebou paměti webového serveru (Memory Consumed Portal),
vysokou
spotřebu
paměti
databázového
serveru
(Memory
Consumed ORA) a také vysokým množstvím spotřebované
kapacity datového úložiště webového serveru (Disk Usage Portal).
5
8
Tento shluk může představovat operace, při kterých dochází ke
zvýšení
času,
po
který
servery
čekají
na
naplánování
a zpracování plánovačem na fyzickém procesoru. Lze usuzovat, že
hypervizor přiděluje procesor ještě další VM a tím dochází
k nárůstu čekací doby. Tím mohou být pomalejší veškeré spuštěné
operace. Vzhledem k vysokému množství spotřebované kapacity
datového úložiště může představovat také diskové operace.
Tento shluk obsahuje objekty, které mají vysokou spotřebu paměti
webového
6
73
serveru
(Memory
Consumed
Portal)
a
paměti
databázového serveru (Memory Consumed ORA) a také vysokou
hodnotu využití CPU databázového serveru (CPU Usage ORA).
Tento shluk představuje operace náročné na výpočetní výkon.
70
Tento shluk je charakteristický objekty s vysokým množstvím
spotřebované kapacity datového úložiště databázového serveru
(Disk Usage ORA) a vysokou hodnotou síťového provozu
databázového serveru (Network Usage ORA) a také vyšší hodnotou
spotřebované paměti webového serveru (Memory Consumed
8
7
Portal) a vysokou spotřebu paměti databázového serveru (Memory
Consumed ORA). Hodnoty parametru využití CPU databázového
serveru (CPU Usage ORA) nabývají středních hodnot.
Tento shluk může představovat operace související s exportem dat,
jakými mohou být zálohování či replikace dat. Průchod dat
vyžaduje spolupráci procesoru.
Zdroj: vlastní zpracování
4.2 Modely KSOM s dávkovým učícím algoritmem
Hodnocené modely lze rozdělit do dvou podskupin dle struktury KSOM – šestiúhelník,
čtyřúhelník. Pro každou podskupinu byly vytvořeny modely pro jednotlivé funkce okolí
(Gaussova, Epanechikova, ohraničená Gaussova, bublinková) a pro inicializaci jak náhodnou,
tak lineární. Výsledky některých modelů jsou uvedeny v příloze E.
4.2.1 Porovnání modelů
Dle výsledků bylo zjištěno, že modely se strukturou mapy tvaru šestiúhelníku dosahují
lepších výsledků než modely se strukturou čtyřúhelníku. Modely s Epanechikovou funkcí
okolí dosahovaly nejnižších hodnot QE, ale vysokých hodnot TE. Dle zvolené inicializace
nebyly nalezeny velké rozdíly ve výsledcích. Je vhodné dodržet, aby poměr doby učení ve
fázi uspořádávání a doby učení ve fázi dolaďování byl nastaven v poměru 1:4.
4.2.2 Analýza výsledků
Nejlepšího výsledku s hodnotami TE = 0,0089 a QE = 0,5187 bylo dosaženo u modelu 10
s lineární inicializací a Gaussovou funkcí okolí. Nastavené hodnoty tohoto modelu ukazuje
tabulka 5.
71
Tabulka 5: Parametry modelu – dávkový algoritmus
Parametr
Hodnota
Algoritmus učení
Dávkový
Inicializace
Lineární
Velikost mapy
[15 10]
Struktura mapy
Šestiúhelník
Fáze učení
Funkce okolí
Gaussova
Fáze uspořádávání
Počáteční poloměr okolí λ(t)
5
Konečný poloměr okolí λ(t)
1
Délka učení (v epochách)
200
Fáze ladění
Počáteční poloměr okolí λ(t)
3
Konečný poloměr okolí λ(t)
1
Délka učení (v epochách)
800
Zdroj: vlastní zpracování
Obr. 28 znázorňuje U-matici vytvořenou dávkovým učícím algoritmem. V pravé dolní
části lze spatřit tmavou oblast charakterizující reprezentanty, kteří se vyznačují velkou
vzdáleností. Je zřejmé, že tato oblast bude tvořit samostatný shluk. Tato oblast představuje
vysoké hodnoty parametrů množství spotřebované kapacity datového úložiště databázového
serveru (Disk Usage ORA) a vysoké hodnoty síťového provozu databázového serveru
(Network Usage ORA). Další oblasti, vyznačující se vyššími hodnotami, lze spatřit v pravém
horním rohu a v levém dolním rohu. Tyto oblasti také budou náležet do oddělených shluků.
Obrázek 28: U-matice, dávkový učící algoritmus, trénovací data
Zdroj: vlastní zpracování
72
Následující obr. 29 zobrazuje matice vzdáleností jednotlivých parametrů. Po prozkoumání
všech závislostí bylo zjištěno, že jsou téměř totožné se závislostmi v modelu se sekvenčním
učícím algoritmem. Jedná se tedy o závislosti mezi parametry CPU připraven u databázového
serveru (CPU Ready ORA), CPU připraven u webového serveru (CPU Ready Portal),
spotřeba paměti databázového serveru (Memory Consumed ORA) a také spotřeba paměti
webového serveru (Memory Consumed Portal).
Obrázek 29: Hodnoty jednotlivých parametrů, dávkový učící algoritmus, trénovací data
Zdroj: vlastní zpracování
Při pohledu na jednotlivé parametry KSOM lze také nalézt závislost mezi parametry
spotřeba paměti databázového serveru (Memory Consumed ORA), využití CPU databázového
serveru (CPU Usage ORA), využití síťového provozu webového serveru (Network Usage
Portal) a spotřeba paměti webového serveru (Memory Consumed Portal). Dále lze spatřit
závislost vysokých hodnot u parametrů množství spotřebované kapacity datového úložiště
databázového serveru (Disk Usage ORA), využití síťového provozu databázového serveru
(Network Usage ORA), spotřeba paměti databázového serveru (Memory Consumed ORA)
73
a středních hodnot parametrů využití procesoru databázového serveru (CPU Usage ORA).
Jedinou odlišností je pozice parametru množství spotřebované kapacity datového úložiště
webového serveru (Disk Usage Portal). Při učení dávkovým učícím algoritmem měl tento
parametr pozice vysokých hodnot opakovaně shodné s parametry CPU připraven webového
serveru (CPU Ready Portal) a CPU připraven databázového serveru (CPU Ready ORA), ale
při učení sekvenčním algoritmem nebyla tato přímá závislost odhalena.
4.2.3 Testovací data
Pro otestování, jak úspěšně byla KSOM natrénována je opět použita vytvořená testovací
množina dat. Výsledný model lze porovnat dle hodnot TE a QE. Pro modely s nízkými
hodnotami TE nebo QE bylo opět provedeno vyhodnocení shluků. U testovací množiny bylo
dosaženo těchto výsledků: TE = 0,0111; QE = 0,4967. Hodnota TE značí, že mapa zachovává
topologii původních dat. Následující obr. 30 zobrazuje U-matici testovacích dat. Lze spatřit
podobnost s U-maticí trénovacích dat. Také pozice vyšších hodnot v U-matici testovacích dat
jsou shodné s U-maticí trénovacích dat.
Obrázek 30: U-matice, dávkový učící algoritmus, testovací data
Zdroj: vlastní zpracování
Následující obr. 31 zobrazuje matice vzdáleností jednotlivých parametrů. Podle výskytu
stejných hodnot parametrů lze nalézt existující vztah mezi jednotlivými parametry. Lze spatřit
stejné závislosti jako v případě trénovacích dat. Popis těchto závislostí je uveden v předchozí
podkapitole. Následně bylo provedeno shlukování pomocí algoritmu K-means. Dle nejnižší
hodnoty Davies-Bouldinova indexu 0,7673 bylo určeno nejvhodnější shlukování do 6 shluků,
jak lze spatřit na obr. 32.
74
Obrázek 31: Hodnoty jednotlivých parametrů, dávkový učící algoritmus, testovací data
Zdroj: vlastní zpracování
Obrázek 32: Davies Bouldin index, dávkový učící algoritmus, testovací data
Zdroj: vlastní zpracování
75
Na obr. 33 lze spatřit rozdělení shluků. Shluky lze interpretovat dle shodných oblastí
s jednotlivými parametry na základě hodnot těchto parametrů.
Obrázek 33: Shlukování pomocí K-means, dávkový učící algoritmus, testovací data
Zdroj: vlastní zpracování
Následující obr. 34 zobrazuje rozdělení dat dle shluků do jednotlivých tříd. Jednotlivým
shlukům jsou následně přiřazeny třídy
, jejichž charakteristika je uvedena v tabulce 6.
Přestože byl algoritmem K-means nejčastěji určen vyšší počet shluků, bylo pomocí rozkladu
shluků zjištěno, že shluky obsahují objekty, které mohou náležet do jiného shluku. Někdy byl
určen počet shluků 3. V tomto případě data nabývala hodnot v plném rozsahu a nebylo možné
jednotlivé shluky jednoznačně interpretovat.
Obrázek 34: Klasifikace do tříd, dávkový učící algoritmus, testovací data
Zdroj: vlastní zpracování
76
Tabulka 6: Popis tříd dle shluků, dávkový učící algoritmus, testovací data
Shluk
Počet
Popis
Třída
Sluk je charakteristický vysokou spotřebou paměti webového serveru
(Memory
Consumed
Portal)
a
vysokou
spotřebou
paměti
databázového serveru (Memory Consumed ORA).
1
238
Tento shluk zřejmě představuje operace nenáročné na výkon. Zabraná
paměť pravděpodobně představuje stav běžného provozu, kdy je malá
zátěž serveru a je využívána pouze cache.
Tento shluk je charakteristický vysokou hodnotou parametru CPU
připraven webového serveru (CPU Ready Portal), dále databázového
serveru (CPU Ready ORA) a také paměti webového serveru (Memory
Consumed Portal), dále vysokou spotřebu paměti databázového
serveru (Memory Consumed ORA) a také vysokým množstvím
spotřebované kapacity datového úložiště webového serveru (Disk
2
Usage Portal).
8
U tohoto shluku lze usuzovat na operace, při kterých dochází
ke zvýšení času, po který servery čekají na naplánování a zpracování
plánovačem na fyzickém procesoru. Lze usuzovat, že hypervizor
přiděluje procesor ještě další VM a tím dochází k nárůstu čekací doby.
Tím mohou být pomalejší veškeré spuštěné operace. Vysoké množství
spotřebované kapacity datového úložiště ukazuje, že se zřejmě jedná
o diskové operace.
Shluk je charakteristický objekty s vysokým množstvím spotřebované
kapacity datového úložiště databázového serveru (Disk Usage ORA)
a vysokou hodnotou síťového provozu databázového serveru
(Network Usage ORA). Hodnoty parametru využití procesoru
databázového serveru (CPU Usage ORA) nabývají středních hodnot.
Objekty zařazené v tomto shluku mají také vyšší hodnoty
3
7
spotřebované paměti webového serveru (Memory Consumed Portal)
a vysokou spotřebu paměti databázového serveru (Memory
Consumed ORA).
Tento shluk může představovat operace související s exportem dat,
jakými mohou být zálohování či replikace dat. Průchod dat vyžaduje
spolupráci procesoru.
77
Tento shluk obsahuje objekty s vysokou spotřebou paměti
databázového
až
střední
serveru
(Memory
spotřebou paměti
Consumed
ORA),
webového serveru
nízkou
(Memory
Consumed Portal) a nízkým až středním využitím procesoru
4
203
databázového serveru (CPU Usage ORA).
Dle hodnot zastoupených objektů lze usuzovat na jednoduché
operace představující běžný provoz serveru. Je pravděpodobné, že
malá zátěž využívá pouze cache paměť databázového serveru.
Shluk je charakteristický objekty, které mají vysokou spotřebu
síťového provozu webového serveru (Network Usage Portal),
vysoké množství spotřebované paměti webového serveru (Memory
Consumed
Portal),
vysoké
množství
spotřebované
paměti
databázového serveru (Memory Consumed ORA) a vysoké využití
procesoru databázového serveru (CPU Usage ORA).
5
127
Tento shluk může zastupovat například operace náročné na přenos
většího objemu dat. Výše uvedené parametry s vysokými
hodnotami mohou ukazovat na vysoký počet uživatelů webového
serveru Portal. Dle vysoké hodnoty u parametru využití procesoru
databázového
serveru
lze
usuzovat
na
operace
náročné
spotřebou
paměti
na výpočetní výkon.
Tento
shluk
je
charakteristický nízkou
databázového serveru (Memory Consumed ORA) a střední
spotřebou paměti webového serveru (Memory Consumed Portal).
6
17
Ostatní parametry nabývají nízkých hodnot.
Tento shluk může zastupovat operace, kdy má databázový server
uvolněnou paměť. Může se jednat například o stav databázového
serveru krátce po jeho restartu (spuštění).
Zdroj: vlastní zpracování
Shluky lze také interpretovat na základě průměrných hodnot parametrů v rámci jednoho
shluku (třídy). Tyto průměrné hodnoty lze spatřit v následující tabulce 7. Nejvyšší a nejnižší
hodnoty jednotlivých parametrů jsou zvýrazněny. Nejvyšších hodnot parametrů, signalizující
náročné operace, dosahují objekty zařazené do shluku 2 a shluku 3. Objekty zařazené
78
do těchto shluků zastupují 2,5 % celkového počtu analyzovaných objektů. Naopak pro
shluk 1, shluk 4 a shluk 6 jsou charakteristické objekty představující bezproblémový provoz
serveru. Počet objektů zařazených do těchto shluků je 76 % z celkového počtu objektů.
Tabulka 7: Průměrné hodnoty parametrů dle shluků
Parametr\Shluk
Počet objektů třídy
CPU Ready (Portal)
Shluk 1
Shluk 2
238
Shluk 3
8
Shluk 4
7
203
Shluk 5
127
Shluk 6
17
3 253
28 132
3 355
3 162
3 605
3 181
11 849 982
12 014 803
10 560 843
7 782 640
11 950 745
10 476 822
30
2 778
40
28
59
25
130
21
354
65
489
127
CPU Usage in MHz (ORA)
1 130
1 636
2 693
1 058
2 684
883
CPU Ready (ORA)
2 488
9 972
2 325
2 338
2 033
2 413
16 696 582
16 698 373
16 699 357
16 649 618
16 693 243
5 010 957
101
196
32 219
133
304
90
56
19
31 295
44
189
71
Memory Consumed (Portal)
Disk Usage (Portal)
Network Usage (Portal)
Memory Consumed (ORA)
Disk Usage (ORA)
Network Usage (ORA)
Zdroj: vlastní zpracování
Pro vyhodnocení v MATLABU lze dále použít několik dalších vizualizačních prvků,
kterými SOM Toolbox disponuje. Jedná se např. o zobrazení sloupcových grafů zastupujících
hodnoty proměnných na pozadí matice vzdáleností, nebo PCA projekci vektorů vah do 2D
pro první dvě hlavní komponenty. PCA dle velikosti vlastních čísel ukázala jako první hlavní
komponentu parametry Disk Usage (ORA) a Network Usage (ORA), druhou hlavní
komponentu představují parametry CPU Ready (ORA) a CPU Ready (Portal), které vysvětlují
téměř 45 % celkového rozptylu v datech.
4.3 Porovnání výsledků modelů
V předchozích podkapitolách byly otestovány a vyhodnoceny modely dle učícího
algoritmu. Nyní bude provedeno shrnutí výsledků těchto modelů a jejich porovnání.
Modely se sekvenčním učícím algoritmem byly rozděleny do podskupin dle použité
funkce rychlosti učení a funkce okolí. Modely s inverzní rychlostí učení a modely se
strukturou mapy čtyřúhelníku se ukázaly jako nevhodné pro shlukování, neboť dosáhly
vyšších hodnot QE. Nejlepšího výsledku dosáhl model s lineární inicializací, lineární funkcí
rychlosti učení a Gaussovou funkcí okolí. Pro ověření navrženého modelu a následnou
klasifikaci byla použita testovací množina dat. Dle nejnižší hodnoty DB indexu bylo
vytvořeno 7 shluků. Následně byly porovnány výsledné KSOM trénovacích a testovacích dat.
Po porovnání závislostí mezi jednotlivými parametry lze konstatovat, že závislosti nalezené
79
v trénovacích datech byly také nalezeny na datech testovacích. Lze učinit závěr, že KSOM
byla úspěšně natrénována a její výsledky nejsou náhodné.
Modely pro dávkový učící algoritmus byly rozděleny do podskupin dle struktury mapy
(šestiúhelník, čtyřúhelník), dále pro jednotlivé funkce okolí a pro inicializaci jak náhodnou,
tak lineární. Modely se strukturou čtyřúhelník se ukázaly jako méně vhodné pro další
shlukování, neboť dosahovaly vyšších hodnot TE. Modely s Epanechikovou funkcí okolí
dosahovaly nejnižších hodnot QE, ale vyšších hodnot TE oproti ostatním modelům.
Nejlepšího výsledku pro shlukování dosáhl model s lineární inicializací a Gaussovou funkcí
okolí. Pro klasifikaci dat byla použita testovací množina dat. Dle nejnižší hodnoty Davies
Bouldinova indexu bylo vytvořeno 6 shluků. Následně byly porovnány matice vzdáleností
jednotlivých parametrů u trénovacích a testovacích dat a lze konstatovat, že závislosti
nalezené v trénovacích datech byly také nalezeny na datech testovacích. Byla také nalezena
shoda pozic stejných závislostí mezi daty. Lze tedy učinit závěr, že KSOM byla úspěšně
natrénována a získané závislosti nejsou náhodné nebo zkreslené.
Při zkoumání odlišností výsledného počtu shluků bylo zjištěno, že shluk 5 u modelu
s dávkovým učícím algoritmem téměř odpovídá dvěma shlukům, které vznikly u modelu se
sekvenčním učícím algoritem. Jedná se o shluk 1 a shluk 6. Při dalším porovnání výsledných
shluků mezi modely lze konstatovat, že ostatní shluky jsou vytvořeny dle téměř shodných
pravidel a obsahují také téměř shodný počet zařazených objektů.
Modely byly také porovnány s ohledem na vznik v praxi interpretovatelných shluků, neboť
optimální počet shluků byl pro jednotlivé modely odlišný. Pro získání znalostí v podobě, která
je bližší lidskému uvažování, byly pro nejlepší modely dle učícího algoritmu vytvořeny
rozhodovací stromy v softwarovém prostředí SPSS Clementine. Pro srozumitelnější
interpretaci byly některé uzly nahrazeny listem, tj. stromy byl prožezány. Na základě pravidel
rozhodovacího stromu lze vyhodnotit zařazení objektů do tříd. V tomto případě se již jedná
o klasifikaci s učitelem. Dle rozhodovacích pravidel je možné určit správnost klasifikace,
která vyjadřuje počet správně klasifikovaných dat k celkovému počtu objektů. U modelu
se sekvenčním učícím algoritmem bylo dle rozhodovacích pravidel správně zařazeno 511
objektů, tj. správnost klasifikace je 85,16 %. U modelu s dávkovým učícím algoritmem bylo
dle rozhodovacích pravidel správně klasifikováno 535 objektů. Správnost klasifikace je
89,16 %. Tyto výsledky potrvrzují, že navržené modely poskytují dobré výsledky. Výsledný
úplný rozhodovací strom tohoto modelu je přílohou F. Rozhodovací pravidla pro zařazení dat
do shluků jsou následující:
80
Memory Consumed (Portal) <= 9 543 117 [ Mode: 4 ]
Memory Consumed (ORA) <= 5 563 258 [ Mode: 6 ] => 6
Memory Consumed (ORA) > 5 563 258 [ Mode: 4 ]
Network Usage (ORA) <= 279 [ Mode: 4 ] => 4
Network Usage (ORA) > 279 [ Mode: 5 ]
Network Usage (ORA) <= 2 143 [ Mode: 5 ] => 5
Network Usage (ORA) > 2 143 [ Mode: 3 ] => 3
Memory Consumed (Portal) > 9 543 117 [ Mode: 1 ]
CPU Usage in MHz (ORA) <= 1 793 [ Mode: 1 ]
Memory Consumed (ORA) <= 5 563 258 [ Mode: 6 ] => 6
Memory Consumed (ORA) > 5 563 258 [ Mode: 1 ] => 1
CPU Usage in MHz (ORA) > 1 793 [ Mode: 5 ]
Network Usage (ORA) <= 8 [ Mode: 1 ]
Network Usage (ORA) > 8 [ Mode: 5 ]
Network Usage (ORA) <= 12 810 [ Mode: 5 ]
CPU Ready (Portal) <= 6 447 [ Mode: 5 ] => 5
CPU Ready (Portal) > 6 447 [ Mode: 2 ] => 2
Network Usage (ORA) > 12 810 [ Mode: 3 ] => 3.
Testovací data s sebou také nesou informaci o datumu a času měření. Pro vyhodnocení dle
času byla vyhotovena kontingenční tabulka, která je přílohou G této práce. Bylo zjištěno, že
ve shluku 2 (třída
) jsou nejvíce zastoupeny objekty, jejichž hodnoty byly naměřeny mezi
2. a 5. hodinou ranní. Tento čas je běžně nastavován pro pravidelné exporty/importy dat nebo
pro odesílání pravidelných reportů např. vyhodnocujících data. Shluk 3 (třída
) zastupuje
objekty, jejichž hodnoty byly naměřeny mezi 18. a 19. hodinou. Toto zjištění ukazuje
na operace související s pravidelným exportem dat, jak již bylo uvedeno u popisu shluku.
Kontingenční tabulka zobrazující zastoupení objektů dle dne je přílohou H této práce.
Při pohledu na tuto tabulku lze učinit závěr, že hodnoty objektů zařazených do shluku 6 (třída
) byly naměřeny pouze v sobotu nebo neděli, což ukazuje na údržbové operace.
4.4 Dílčí závěr
Tato kapitola popisuje verifikaci navržených modelů v softwarovém prostředí MATLAB.
Nejprve byly modely rozděleny do dvou skupin dle použitého učícího algoritmu. Po ověření
modelů byl z každé skupiny zvolen model, který dosahoval nejlepších výsledků. Hodnocení
bylo provedeno dle hodnot TE a QE s cílem získat model vhodný pro klasifikaci dat.
Následně bylo použito testovacích dat a byla provedena klasifikace s následným
vyhodnocením. Následoval popis charakteristických vlastností objektů zastoupených
v jednotlivých třídách. V závěru kapitoly je uvedeno porovnání modelů dle použitého učícího
algoritmu. Ačkoliv je učení dávkovým učícím algoritmem výpočetně rychlejší než učení
sekvenčním učícím algoritmem, bylo zjištěno, že v případě této diplomové práce dosahují
lepších výsledků dle TE a QE modely se sekvenčním učícím algoritmem.
81
5 ZÁVĚR
Tato diplomová práce je zaměřena na modelování dat charakterizujících virtuální server
Portal a databázový server Oracle Univerzity Pardubice. Cílem této práce bylo analyzovat
data virtuálního serveru, navrhnout model pro klasifikaci naměřených dat těchto serverů
pomocí Kohonenových samoorganizujících se map a ověřit navržený model.
První kapitola pojednává o virtualizaci a možnostech jejího využití. Je zde uveden popis
jednotlivých typů virtualizace, hypervizorů a vrstev virtualizační architektury. Druhá kapitola
charakterizuje Kohonenovy samoorganizující se mapy. Je zde uveden také základní
algoritmus učení včetně podrobnějšího popisu jednotlivých kroků učení. V této kapitole jsou
také uvedena teoretická východiska pro nastavování parametrů učení. Třetí kapitola již
popisuje návrh modelu pro klasifikaci dat. Nejprve byl proveden popis a analýza vstupních
dat. Následně byla provedena příprava dat, která zahrnuje normování dat, zjištění a ošetření
chybějících hodnot a také korelační analýza, na jejímž základě došlo k odstranění jednoho
parametru. Výsledkem předzpracování je vstupní datová matice. Následuje rozdělení dat
na trénovací a testovací množinu. Testovací množina dat bude sloužit pro klasifikaci dat.
Kapitola dále uvádí nastavení hodnot parametrů učení pro jednotlivé modely, které byly
následně ověřeny v softwarovém prostředí MATLAB pomocí sestaveného skriptu s využitím
knihovny SOM Toolboxu. V závěrečné kapitole je uvedeno porovnání a analýza výsledů
jednotlivých modelů.
Modely byly nejprve rozděleny do dvou skupin dle použitého učícího algoritmu
a to na modely se sekvenčním učícím algoritmem a na modely s dávkovým učícím
algoritmem. Pro každou skupinu bylo vytvořeno několik modelů, které se odlišovaly
počáteční inicializací, strukturou mapy, použitou učící funkcí (u sekvenčního algoritmu)
a také použitou funkcí okolí. Celkem bylo vytvořeno více než 100 modelů. Následovalo
ověřování chování modelů, při kterém byly nastavovány a upravovány parametry učení
s cílem dosáhnout nejnižších hodnot topografické a kvantizační chyby. Po ověření chování
modelů byl z každé skupiny zvolen model, který dosahoval nejlepších výsledků. V obou
skupinách byl zvolen model s lineární inicializací a Gaussovu funkcí okolí. Hodnocení bylo
provedeno dle hodnot topografické a kvantizační chyby s cílem získat co nejvhodnější model
pro klasifikaci. Nejlepšího výsledku ve skupině modelů se sekvenčním učícím algoritmem
dosáhl model s hodnotami TE = 0,0078 a QE = 0,4995 a ve skupině modelů s dávkovým
učícím algoritmem dosáhl nejlepších výsledků model s hodnotami TE = 0,0089
a QE = 0,5187. Počet shluků byl určen pomocí Davies Bouldinova indexu. U těchto modelů
82
byl proveden popis U-matice a také popis závislostí mezi jednotlivými parametry. Tyto
závislosti lze interpretovat na základě vyšších (nebo nižších) hodnot jednotlivých parametrů
ve stejné pozici KSOM. Nalezené závislosti jsou popsány v kapitole 4. Po výběru modelu
s nejmenšími chybovými hodnotami, který byl naučen na trénovacích datech, bylo
přistoupeno ke klasifikaci. Pro klasifikaci dat byla použita testovací množina dat. Modely,
u kterých bylo dosaženo dobrých výsledků, byly dále vyhodnocovány jednak vizuálně, ale
také rozkladem shluků v prostředí softwarového produktu Microsoft Excel 2007
a STATISTICA10. Pro interpretaci shluků je také možné vytvořit rozhodovací strom. Model
se sekvenčním učícím algoritmem dosáhl u trénovacích dat hodnot TE = 0,0083
a QE = 0,5178 při shlukování do 6 shluků a model s dávkovým učícím algoritmem dosáhl
hodnot TE = 0,0111 QE = 0,4967 při shlukování do 7 shluků. Vzniklým shlukům byly
přiřazeny třídy a dále následoval popis charakteristických vlastností objektů, které jsou
v jednotlivých třídách zastoupeny. Výsledné KSOM trénovacích a testovacích dat byly
porovnány. Po porovnání závislostí mezi jednotlivými parametry lze konstatovat, že závislosti
nalezené v trénovacích datech byly také nalezeny na datech testovacích. U modelu
s dávkovým učícím algoritmem byla také nalezena shoda pozic stejných závislostí mezi daty.
Lze tedy učinit závěr, že KSOM byla úspěšně natrénována a získané závislosti nejsou
náhodné nebo zkreslené. Modely byly také porovnány z hlediska správnosti klasifikace
pomocí rozhodovacích stromů. U modelu se sekvenčním algoritmem učení byla dle
rozhodovacích pravidel určena správnost klasifikace 85,16 % a u modelu s dávkovým
algoritmem byla vypočítána správnost klasifikace 89,16 %.
V závěru je třeba zmínit, že pro rozdílné typy úloh je ideální nastavení parametrů učení KSOM
různé a je třeba jej testovat. Mohou se tak lišit počty neuronů v kompetiční vrstvě, topologie nebo
ideální nastavení učících parametrů. Interpretace grafické reprezentace KSOM je snadná
a umožňuje kromě zařazení dat do shluků odhalit pomocí topologických vztahů dat také skryté
závislosti mezi daty, což běžné hierachické metody shlukování neumožňují. Tímto lze učinit
závěr, že KSOM je vhodným nástrojem pro klasifikaci dat charakterizujících virtuální server
a také dalších složitých úloh, které mohou zpracovávat neúplné nebo neurčité informace.
83
POUŽITÁ LITERATURA
[1]
BEDNÁŘOVÁ, I. Statistika a výpočetní technika [online]. 2012 [cit. 2012-11-15].
Dostupné na: <http://cit.vfu.cz/statpotr/POTR/Teorie/Predn5/nelinear.htm>.
[2]
BERKA, P. Dobývání znalostí z databází. Vyd. 1. Praha: Academia, 2003. 366 s.
ISBN 80-200-1062-9
[3]
BĚLOCH, T. Motivace malých a středních firem pro využití cloudových řešení. Praha:
2012, 83 s. Diplomová práce. Fakulta informatiky a statistiky, Vysoká škola
ekonomická.
[4]
CIO Business World. Co je to virtualizace [online]. 1999 [cit. 2012-08-01]. Dostupné
na: <http://businessworld.cz/ostatni/co-je-to-virtualizace-7158>.
[5]
FAUSETT, L. Fundamentals of neural network: archtectures, algorithms and
applications.
Vyd
1.
Englewood
Cliffs:
Prentice
Hall,
1994.
461
p.
ISBN 0-13-334186-0.
[6]
FeedIT.cz. Důvodem k virtualizaci malých a středních firem není jen úspora nákladů
[online]. 2012 [cit. 2012-07-31]. Dostupné na: <http://www.feedit.cz/wordpress/2012
/05/17/duvodem-k-virtualizaci-malych-a-strednich-firem-neni-jen-uspora-nakladu/>.
[7]
FindTheBest. How to find virtualization software & hypervisors [online]. 2012
[cit. 2012-08-23]. Dostupné na: <http://virtualization.findthebest.com/guide>.
[8]
HÁJEK, P. Air Quality Modelling by Neural Networks. Modelling of Selected Area sof
Sustainable Development by Artificial Intelligence and Soft Computing. OLEJ, V.,
OBRŠÁLOVÁ, I., KŘUPKA, J. a kol. Vyd 1. Pardubice: Univerzita Pardubice, 2009.
pp. 33-49. ISBN 978-80-247-3167-4
[9]
HÁJEK, P.,OLEJ, V. Air Quality Modelling by Kohonen’s Self-organizing Feature
Maps and LVQ Neural Networks. WSEAS Transactions on Environment and
Development, WSEAS Press, Isue 1, Vol.4, 2008, pp. 45-55, ISSN 1790-5079.
[10] HÁJEK, P. Modelování bonity obcí metodami výpočetní inteligence. Pardubice, 2006.
171 s. Disertační práce, Fakulta ekonomicko – správní, Univerzita Pardubice.
[11] INTEL. Hardware-assisted Virtualization Technology [online]. 2012 [cit. 2012-08-21].
Dostupné na: <http://www.intel.com/content/www/us/en/ virtualization/virtualizationtechnology/hardware-assist-virtualization-echnology.html>.
[12] KELBEL, J., ŠILHÁN, D. Shluková analýza [online]. 2008 [cit. 2012-12-22]. Dostupné
na: <http://gerstner.felk.cvut.cz/biolab/X33BMI/slides/KMeans.pdf>.
[13] KOHONEN, T. Self-Organizing Maps,
edition. Vyd. 3. New York: Springer Velag
Berlin Heidelberg, 2001. 501 p. ISBN 3-540-67921-9.
84
[14] KOVÁCS, F., LEGÁNY, C., BABOS, A. Cluster Validity Measurement Techniques.
[online].
2008
[cit.
2012-12-26].
Dostupné
na:
<http://www.bmf.hu/
conferences/mtn2005/KovacsFerenc.pdf>.
[15] KUBANOVÁ, J. Statistické metody pro ekonomickou a technickou praxi. Vyd. 3.
Bratislava: Statis, 2008. 247 s. ISBN 978-80-85659-47-4.
[16] KVASNIČKA, V. a kol. Úvod do teórie neurónových sietí. Vyd 1. Bratislava: IRIS,
1997. 285 s. ISBN 80-88778-30-1.
[17] MAŘÍK, V., ŠTĚPÁNKOVÁ, O., LAŽANSKÝ, J. a kol. Umělá inteligence (4).
Vyd. 1. Praha: Academia, 2003. 480 s. ISBN 80-200-1044-0.
[18] MATYSKA,
Techniky
L.
virtualizace
počítačů
(2)
[online].
2011
[cit. 2012-08-01]. Dostupné na: <http://www.ics.muni.cz/zpravodaj/articles/545.html>.
[19] MELOUN, M., MILITKÝ, J., HILL, M. Statistická analýza vícerozměrných dat
v příkladech. Vyd. 1. Praha: Academia, 2012. 760 s. ISBN 978-80-200-2071-0.
[20] MELOUN, M. Analýza shluků CLU. [online]. 2002 [cit. 2012-12-27]. Dostupné na:
<http://meloun.upce.cz/docs/research/chemometrics/methodology/4gmetody.pdf>
[21] METZ, C. Can VMware Get a Virtual Machine On the iPhone? [online]. 2012
[cit. 2012-09-04]. Dostupné na: <http://www.wired.com/wiredenterprise/2012/03/
vmware-on-the-iphone>.
[22] Microsoft Corporation. Microsoft Private Cloud. [online]. 2012 [cit. 2012-09-04].
Dostupné na: <http://www.microsoft.com/cze/privatnicloud/private-cloud/private-cloud.aspx>.
[23] Microsoft Corporation. Introduction to Virtualisation – Microsoft Virtuální Akademie
[online].
2012
[cit.
Dostupné
2012-07-31].
na:
<http://download.microsoft.com/documents/uk/msdn/MVA/Track_1_Module_2_Ways_
to_Virtualise_TRANSCRIPT_Final.pdf>.
[24] MILATA, M. Pokročilé architektury počítačů [online]. 2011 [cit. 2012-08-20].
Dostupné
na:
<http://wh.cs.vsb.cz/mil051/index.php/Pokro%C4%8Dil%C3%A9
architektury po%C4%8D%C3%ADta%C4%8D%C5%AF>.
[25] OldanyGroup s.r.o. Co je virtualizace? [online]. 2012 [cit. 2012-08-18]. Dostupné na:
<http://www.oldanygroup.cz/virtualizace-vmware-zakladni-informace-9/>.
[26] OLEJ, V., HÁJEK, P. Úvod do umělé inteligence. Moderní přístupy. Distanční opora.
Vyd. 1. Pardubice: Univerzita Pardubice, 2010. 98 s. ISBN 978-80-7395-307-2.
[27] PRODĚLAL,
J.
Virtualizace,
clustery
a
cloud
computing.
[online].
2012
[cit. 2012-08-21]. Dostupné na: <http://www.oldanygroup.cz/virtualizace-vmwarezakladni-informace-9/>.
85
[28] RUEST, D., RUEST, N. Virtualizace: Podrobný průvodce. Vyd. 1. Brno: Computer
Press, a.s, 2010. 408 s. ISBN 978-80-251-2676-9.
[29] ŘEZANKOVÁ, H., HÚSEK, D., SNÁŠEL, V. Shluková analýza dat. Vyd. 2. Praha:
Professional Publishing, 2009. 218 s. ISBN 978-80-86946-81-8.
[30] ŘEZANKOVÁ, H. Hodnocení kvality shluků. [online]. 2008 [cit. 2012-12-26].
Dostupné na: <http://nb.vse.cz/~rezanka/Shlukova_analyza2008.pdf>.
[31] SILVA, B., MARQUES, C. A hybrid parallel SOM algorithm for large maps in datamining. In Proc. Portuguese Conf. on Artificial Intelligence. [online]. 2007
[cit. 2012-10-05] Dostupné na: <http://ssdi.di.fct.unl.pt/~nmm/MyPapers/SM2007.pdf>.
[32] ŠNOREK, M. Neuronové sítě a neuropočítače. Vyd. 1. Praha: České vysokké učení
technické v Praze, 2004. 156 s. ISBN 80-01-02549-7.
[33] ŠÍMA, J., NERUDA R. Teoretické otázky neuronových sítí. Vyd. 1. Praha: Matfyzpress,
1996. 390 s. ISBN 80-85863-18-9.
[34] TOMEČEK, J. Virtualizace na úrovni jádra operačního systému. [online]. 2007
[cit. 2012-08-03]. Dostupné na: <http://www.abclinuxu.cz/clanky/system/virtualizacena-urovni-jadra-operacniho-systemu>.
[35] TUČKOVÁ, J. Úvod do teorie a aplikací umělých neuronových sítí. Vyd. 1. Praha:
ČVUT, 2003. 103 s. ISBN 80-01-02800-3.
[36] TUČKOVÁ, J. Vybrané aplikace umělých neuronových sítí při zpracování signálů.
Vyd.
1.
Praha:
České
vysokké
učení
technické
v Praze,
2009.
224
s.
ISBN 978-80-01-04229-8.
[37] VESANTO, J., HIMBERG, J., ALHONIEMI, E., PARHANKANGAS, J. SOM Toolbox
for
Matlab
5.
[online].
2000.
[cit.
2012-12-03].
Dostupné
na:
<http://www.cis.hut.fi/projects/somtoolbox/package/papers/techrep.pdf>.
[38] VÍTEČEK, A. Virtualizace. [online]. 2008 [cit. 2012-08-18]. Dostupné na:
<http://www.fi.muni.cz/~kas/p090/referaty/2008-jaro/ct/virtualizace.html>.
[39] VOJÁČEK, A. Samoučící se neuronová síť- SOM, Kohonenovy mapy. 2006
[cit. 2012-12-27]. Dostupné na: <http://automatizace.hw.cz/clanek/2006051401>.
[40] ZELINKA, I. Umělá inteligence 1: Neuronové sítě a genetické algoritmy. Vyd. 1. Brno:
Vysoké učení technické, 1998. 126 s. ISBN 80-214-1163-5.
86
SEZNAM PŘÍLOH
Příloha A: Stream SPSS Clementine ........................................................................................ 88
Příloha B: SPSS Clementine – výsledek shlukování KSOM ................................................... 89
Příloha C: M-file....................................................................................................................... 90
Příloha D: Modely – sekvenční algoritmus .............................................................................. 92
Příloha E: Modely – dávkový algoritmus ............................................................................... 101
Příloha F: Rozhodovací strom ................................................................................................ 105
Příloha G: Zastoupení objektů ve třídách dle času ................................................................. 106
Příloha H: Zastoupení objektů ve třídách dle dne .................................................................. 107
87
Příloha A: Stream SPSS Clementine
Obrázek 35: Stream SPSS Clementine
Zdroj: vlastní zpracování
Příloha B: SPSS Clementine – výsledek shlukování KSOM
Obrázek 36: SPSS Clementine - výsledky
Zdroj: vlastní zpracování
Příloha C: M-file
% DOKUMENTACE
% http://www.cis.hut.fi/projects/somtoolbox/package/docs2/somtoolbox.html
% ----------------------------------------------------------------------% ODSTRANĚNÍ PROMĚNNÝCH Z WORKSPACE
close all
clear all
clc
% NAČTENÍ DAT A VYTOŘENÍ DATOVÉ STRUKTURY
D = load('D:\skola\1_DP\script\Tren-900.txt');
sD=som_data_struct(D,'name','dat_struktura','comp_names',{'CPU Ready
Portal)','Memory Consumed (Portal)','Disk Usage (Portal)','Network Usage
(Portal)','CPU Usage(ORA)','CPU Ready (ORA)','Memory Consumed (ORA)','Disk
Usage (ORA)','Network Usage (ORA)'});
% NAČTENÍ MAPY
%sMap = som_read_cod('M15.cod');
%sMap=load('sMap.mat')
% NORMOVÁNÍ DAT
sD=som_normalize(sD,'var');
% INICIALIZACE
%sMap=som_randinit(sD,'msize', [15 10],'hexa', 'sheet');
sMap=som_lininit(sD,'msize', [15 10],'hexa', 'sheet');
% UČENÍ - Dávkový algoritmus (Nastavení funkce okolí, poloměru okolí, délky
učení v epochách a sledování kvantizační chyby)
%sMap=som_batchtrain(sMap,sD,'gaussian','radius_ini',3,'radius_fin',1,'trainlen
',100);
%sMap=som_batchtrain(sMap,sD,'gaussian','radius_ini',2,'radius_fin',1,'trainlen
',400,'tracking',3);
% UČENÍ - Sekvenční algoritmus (Nastavení fce okolí,poloměr okolí, délka učení
v epochách, rychlosti učení, funkce rychlosti učení)
sMap=som_seqtrain(sMap,sD,'gaussian','radius_ini',7,'radius_fin',1,'trainlen',5
00,'alpha_ini',0.8,'linear','random','epochs');
sMap=som_seqtrain(sMap,sD,'gaussian','radius_ini',3,'radius_fin',1,'trainlen',2
000,'alpha_ini',0.05,'linear','random','epochs','tracking',3);
% ZOBRAZENÍ U-MATICE
figure(2)
colormap(1-gray);
som_show(sMap,'umat','all');
% ZOBRAZENÍ U-MATICE
figure(3)
som_show(sMap,'umat','all');
% ZOBRAZENÍ MATICE VZDÁLENOSTÍ PARAMETRU (Denormalizované hodnoty)
figure(4)
som_show(sMap,'comp',1:9,'norm','d');
%pause % Strike any key to continues...
% SHLUKOVÁNÍ K-MEANS
[c,p,err,ind]=kmeans_clusters(sMap,9);
% ZOBRAZENÍ- DAVIES-BOULDIN INDEX (Graf, počet shluů dle minimální hodnoty)
figure(6)
plot(1:length(ind),ind,'x-');
[dummy,i]=min(ind);
title ('Davies-Bouldin Index');
% ZOBRAZENÍ SHLUKU
figure(7)
som_show(sMap,'color',{p{i},sprintf('%d clusters',i)});
%colormap(jet(i)),som_recolorbar;
% ULOŽENÍ REPREZENTANTU
bmus=som_bmus(sMap,sD);
[bmus_qerrs] = som_bmus(sMap, sD);
% ULOŽENÍ POČTU OBJEKTU NÁLEŽÍCÍCH JEDNOTLIVÝM REPREZENTANTUM
hit=hits(bmus);
figure(8)
som_show(sMap,'umat','all');
hold on;
som_show_add('hit',som_hits(sMap,sD));
hold off
% KVANTIZAČNÍ A TOPOGRAFICKÁ CHYBA
[qe,te]=som_quality(sMap,sD);
% DISTORZE
[adm,admu,tdmu]=som_distortion(sMap,sD);
% ULOŽENÍ MAPY
som_write_cod(sMap,'D:\skola\1_DP\script\mapa13.cod');
save sMap;
% SAMMONOVA PROJEKCE
%P = sammon(D,2);
%P = sammon(sMap,2);
%figure(8)
%som_grid(sMap,'Coord',P);
% MATICE VZDÁLENOSTÍ (v trojrozměrném prostoru)
Co=som_unit_coords(sMap);
S=som_umat(sMap);
S=S(1:2:size(S,1),1:2:size(S,2));
figure(9)
som_grid(sMap,'Coord',[Co, S(:)],'Surf',S(:),'Marker','none');
view(-80,45)
title ('Matice vzdáleností');
%PCA (pro první dvě hlavní komponenty)
figure(10)
[Pd,V,me] = pcaproj (D,2);
Pca = pcaproj (sMap.codebook,V,me);
colormap(hot);
som_grid (sMap,'Coord',Pca,'Linecolor','k');
title ('PCA');
%ZASTOUPENÍ HODNOT PARAMETRU NA VÝSTUPU (sloupcový graf)
figure(11)
som_show(sMap,'color',{p{i},sprintf('%d clusters',i)});
hold on;
M = som_normalize(sMap.codebook,'range');
som_barplane(sMap, M, '', 'unitwise');
hold off
% ZOBRAZENI OBJEKTU NÁLEŽÍCÍCH JEDNOTLIVÝM REPREZENTANTUM (histogram)
hit=hits(bmus);
figure(12)
%colormap(1-gray);
som_show(sMap,'color',{p{i},sprintf('%d clusters',i)});
hold on;
som_show_add('hit',som_hits(sMap,sD));
hold off
Příloha D: Modely – sekvenční algoritmus
Tabulka 8: Modely 1 – lineární funkce učení
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Fáze učení
Funkce rychlosti učení
Lineární
Lineární
Lineární
Lineární
Lineární
Doba učení
Epochy
Epochy
Epochy
Epochy
Epochy
Pořadí trénovacích objektů
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
3
3
3
5
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
4
20
40
100
100
0,5
0,5
0,5
0,5
0,8
Počáteční poloměr okolí λ(t)
1
1
2
2
2
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
80
160
400
400
0,05
0,01
0,05
0,05
0,05
Kvantizační chyba (QE)
0,5020
0,5081
0,5370
0,4995
0,5353
Topografická chyba (TE)
0,0111
0,0133
0,0256
0,0078
0,0089
0,7528
0,8203
0,6373
0,7107
0,6117
8
6
2
5
2
Fáze uspořádávání
Rychlost učení η
Fáze ladění
Rychlost učení η
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 9: Modely 2 – lineární funkce učení
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Fáze učení
Funkce rychlosti učení
Lineární
Lineární
Lineární
Lineární
Lineární
Doba učení
Epochy
Epochy
Epochy
Epochy
Epochy
Pořadí trénovacích objektů
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
5
7
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
200
300
500
500
Rychlost učení η
0,5
0,5
0,8
0,8
0,8
Počáteční poloměr okolí λ(t)
1
1
1
3
1
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
800
1200
2000
2000
0,05
0,01
0,05
0,05
0,01
Kvantizační chyba (QE)
0,4978
0,5004
0,4815
0,5378
0,5095
Topografická chyba (TE)
0,0089
0,0244
0,0200
0,0144
0,0144
0,7079
0,5413
0,7744
0,7154
0,6729
9
2
7
9
9
Fáze uspořádávání
Fáze ladění
Rychlost učení η
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 10: Modely 3 – inverzní funkce učení
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Fáze učení
Funkce rychlosti učení
Inverzní
Inverzní
Inverzní
Inverzní
Inverzní
Doba učení
Epochy
Epochy
Epochy
Epochy
Epochy
Pořadí trénovacích objektů
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
3
3
3
5
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
4
20
40
100
100
0,5
0,5
0,5
0,5
0,8
Počáteční poloměr okolí λ(t)
1
1
2
2
2
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
80
160
400
400
0,05
0,01
0,05
0,05
0,05
Kvantizační chyba (QE)
0,6243
0,6073
0,6146
0,5742
0,5753
Topografická chyba (TE)
0,0122
0,0156
0,0211
0,0122
0,0122
0,6897
0,7564
0,7243
0,7448
0,7588
8
9
8
6
6
Fáze uspořádávání
Rychlost učení η
Fáze ladění
Rychlost učení η
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 11: Modely 4 – inverzní funkce učení
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Fáze učení
Funkce rychlosti učení
Inverzní
Inverzní
Inverzní
Inverzní
Inverzní
Doba učení
Epochy
Epochy
Epochy
Epochy
Epochy
Pořadí trénovacích objektů
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
5
7
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
200
300
500
500
Rychlost učení η
0,5
0,5
0,8
0,8
0,8
Počáteční poloměr okolí λ(t)
1
1
1
3
1
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
800
1200
2000
2000
0,05
0,01
0,05
0,05
0,01
Kvantizační chyba (QE)
0,5548
0,5205
0,5150
0,5580
0,5216
Topografická chyba (TE)
0,0133
0,0144
0,0189
0,0067
0,0144
0,7565
0,7172
0,6713
0,7021
0,7054
8
9
2
7
2
Fáze uspořádávání
Fáze ladění
Rychlost učení η
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 12: Modely 5 – mocninná funkce učení
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Fáze učení
Funkce rychlosti učení
Mocninná
Mocninná
Mocninná
Mocninná
Mocninná
Epochy
Epochy
Epochy
Epochy
Epochy
Pořadí trénovacích objektů
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
3
3
3
5
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
4
20
40
100
100
0,5
0,5
0,5
0,5
0,8
Počáteční poloměr okolí λ(t)
1
1
2
2
2
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
80
160
400
400
0,05
0,01
0,05
0,05
0,05
Kvantizační chyba (QE)
0,5067
0,5067
0,5217
0,5178
0,5217
Topografická chyba (TE)
0,0289
0,0378
0,0122
0,0111
0,0222
0,7878
0,7538
0,7265
0,7099
0,7189
8
9
7
6
9
Doba učení
Fáze uspořádávání
Rychlost učení η
Fáze ladění
Rychlost učení η
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 13: Modely 6 – mocninná funkce učení
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Fáze učení
Funkce rychlosti učení
Mocninná
Mocninná
Mocninná
Mocninná
Mocninná
Epochy
Epochy
Epochy
Epochy
Epochy
Pořadí trénovacích objektů
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
5
7
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
200
300
500
500
Rychlost učení η
0,5
0,5
0,8
0,8
0,8
Počáteční poloměr okolí λ(t)
1
1
1
3
1
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
800
1200
2000
2000
0,05
0,01
0,05
0,05
0,01
Kvantizační chyba (QE)
0,5065
0,4946
0,5008
0,5151
0,4734
Topografická chyba (TE)
0,0333
0,0089
0,0156
0,0122
0,0244
0,6167
0,8005
0,72078
0,6789
0,7942
3
8
7
2
9
Doba učení
Fáze uspořádávání
Fáze ladění
Rychlost učení η
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 14: Modely 7 – Epanechikova funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
Počet neuronů m
v kompetiční
150
150
150
150
150
150
vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Fáze učení
Funkce rychlosti
Lineární
Lineární
Inverzní
Inverzní
Mocninná
Mocninná
učení
Pořadí trénovacích
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
objektů
Funkce okolí
Epanech.
Epanech.
Epanech.
Epanech.
Epanech.
Epanech.
3
7
3
7
3
7
1
1
1
1
1
1
100
500
100
500
100
500
0,5
0,8
0,5
0,8
0,5
0,8
2
3
2
3
2
3
1
1
1
1
1
1
400
2000
400
2000
400
2000
0,05
0,05
0,05
0,05
0,05
0,05
0,3227
0,3209
0,3623
0,3481
0,3195
0,3064
0,0456
0,0456
0,0378
0,0456
0,1289
0,1311
1,0035
1,0580
0,6677
0,7578
1,1307
1,0741
9
9
3
8
3
3
Fáze uspořádávání
Počáteční poloměr
okolí λ(t)
Konečný poloměr
okolí λ(t)
Délka učení epochy
Rychlost učení η
Fáze ladění
Počáteční poloměr
okolí λ(t)
Konečný poloměr
okolí λ(t)
Délka učení epochy
Rychlost učení η
Kvalita učení
KSOM
Kvantizační chyba
(QE)
Topografická
chyba (TE)
Davies-Bouldin
index
Nejnižší hodnota
DB indexu
Počet shluků
odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 15: Modely 8 – bublinková funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
Počet neuronů m
v kompetiční
150
150
150
150
150
150
vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Fáze učení
Funkce rychlosti
Lineární
Lineární
Inverzní
Inverzní
Mocninná
Mocninná
učení
Pořadí trénovacích
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
objektů
Funkce okolí
Bublinková
Bublinková
Bublinková
Bublinková
Bublinková
Bublinková
3
7
3
7
3
7
1
1
1
1
1
1
100
500
100
500
100
500
0,5
0,8
0,5
0,8
0,5
0,8
2
3
2
3
2
3
1
1
1
1
1
1
400
2000
400
2000
400
2000
0,05
0,05
0,05
0,05
0,05
0,05
0,3964
0,3945
0,4292
0,4060
0,3958
0,4262
0,0167
0,0178
0,0256
0,0256
0,0356
0,2780
0,5961
0,1085
0,8292
0,7925
0,1123
0,5289
3
2
8
9
2
3
Fáze uspořádávání
Počáteční poloměr
okolí λ(t)
Konečný poloměr
okolí λ(t)
Délka učení epochy
Rychlost učení η
Fáze ladění
Počáteční poloměr
okolí λ(t)
Konečný poloměr
okolí λ(t)
Délka učení epochy
Rychlost učení η
Kvalita učení
KSOM
Kvantizační chyba
(QE)
Topografická
chyba (TE)
Davies-Bouldin
index
Nejnižší hodnota
DB indexu
Počet shluků
odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 16: Modely 9 – ohraničená Gaussova funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Sekvenční
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
Počet neuronů m
v kompetiční
150
150
150
150
150
150
vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Fáze učení
Funkce rychlosti
Lineární
Lineární
Inverzní
Inverzní
Mocninná
Mocninná
učení
Pořadí trénovacích
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
Náhodné
objektů
Ohraničená Ohraničená Ohraničená Ohraničená Ohraničená Ohraničená
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Fáze uspořádávání
Počáteční poloměr
okolí λ(t)
Konečný poloměr
okolí λ(t)
Délka učení epochy
Rychlost učení η
3
7
3
7
3
7
1
1
1
1
1
1
100
500
100
500
100
500
0,5
0,8
0,5
0,8
0,5
0,8
2
3
2
3
2
3
1
1
1
1
1
1
400
2000
400
2000
400
2000
0,05
0,05
0,05
0,05
0,05
0,05
0,3779
0,3823
0,4226
0,4055
0,3794
0,3806
0,0267
0,0444
0,0189
0,0333
0,0200
0,0189
0,9993
1,0394
0,5338
0,5879
1,0129
0,9422
5
5
3
3
4
9
Fáze ladění
Počáteční poloměr
okolí λ(t)
Konečný poloměr
okolí λ(t)
Délka učení epochy
Rychlost učení η
Kvalita učení
KSOM
Kvantizační chyba
(QE)
Topografická
chyba (TE)
Davies-Bouldin
index
Nejnižší hodnota
DB indexu
Počet shluků
odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Příloha E: Modely – dávkový algoritmus
Tabulka 17: Modely 10 – Gaussova funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Dávkový
Dávkový
Dávkový
Dávkový
Dávkový
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Fáze učení
Funkce okolí
Gaussova
Gaussova
Gaussova
Gaussova
Gaussova
Počáteční poloměr okolí λ(t)
3
3
5
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
100
200
300
500
Počáteční poloměr okolí λ(t)
1
2
3
1
3
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
400
800
1200
2000
Kvantizační chyba (QE)
0,4938
0,4968
0,5187
0,5149
0,5143
Topografická chyba (TE)
0,0267
0,0222
0,0089
0,0100
0,0111
0,7635
0,7517
0,7673
0,5872
0,5930
6
5
6
2
2
Fáze uspořádávání
Fáze ladění
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 18: Modely 11 – Epanechikova funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Dávkový
Dávkový
Dávkový
Dávkový
Dávkový
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Epanechik.
Epanechik.
Epanechik.
Epanechik.
Epanechik.
Počáteční poloměr okolí λ(t)
3
3
5
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
100
200
300
500
Počáteční poloměr okolí λ(t)
1
2
3
1
3
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
400
800
1200
2000
Kvantizační chyba (QE)
0,2651
0,3031
0,2757
0,2460
0,2625
Topografická chyba (TE)
0,2367
0,1367
0,1344
0,1911
0,1422
1,0211
1,1400
1,1406
0,5759
0,4768
7
8
6
3
2
Fáze učení
Funkce okolí
Fáze uspořádávání
Fáze ladění
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 19: Modely 12 – bublinková funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Dávkový
Dávkový
Dávkový
Dávkový
Dávkový
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Bublinková
Bublinková
Bublinková
Bublinková
Bublinková
Počáteční poloměr okolí λ(t)
3
3
5
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
100
200
300
500
Počáteční poloměr okolí λ(t)
1
2
3
1
3
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
400
800
1200
2000
Kvantizační chyba (QE)
0,3968
0,4152
0,4222
0,4042
0,4136
Topografická chyba (TE)
0,0656
0,0467
0,0444
0,0500
0,0322
0,5554
0,4135
0,7234
0,3021
1,0292
3
3
3
3
6
Fáze učení
Funkce okolí
Fáze uspořádávání
Fáze ladění
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Tabulka 20: Modely 13 – ohraničená Gaussova funkce okolí
Parametr
Hodnota
Hodnota
Hodnota
Hodnota
Hodnota
Algoritmus učení
Dávkový
Dávkový
Dávkový
Dávkový
Dávkový
Inicializace
Lineární
Lineární
Lineární
Lineární
Lineární
Velikost mapy
[15 10]
[15 10]
[15 10]
[15 10]
[15 10]
150
150
150
150
150
Počet neuronů m
v kompetiční vrstvě
Struktura KSOM
Šestiúhelník Šestiúhelník Šestiúhelník Šestiúhelník
Šestiúhelník
Ohraničená
Gaussova
Ohraničená
Gaussova
Ohraničená
Gaussova
Ohraničená
Gaussova
Ohraničená
Gaussova
Počáteční poloměr okolí λ(t)
3
3
5
7
7
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
20
100
200
300
500
Počáteční poloměr okolí λ(t)
1
2
3
1
3
Konečný poloměr okolí λ(t)
1
1
1
1
1
Délka učení (v epochách)
80
400
800
1200
2000
Kvantizační chyba (QE)
0,3733
0,4063
0,3895
0,3823
0,3912
Topografická chyba (TE)
0,0956
0,0367
0,0300
0,0411
0,0244
0,6057
0,4585
0,5314
0,2387
0,1130
3
3
3
2
2
Fáze učení
Funkce okolí
Fáze uspořádávání
Fáze ladění
Kvalita učení KSOM
Davies-Bouldin index
Nejnižší hodnota DB indexu
Počet shluků odpovídající
nejnižší hodnotě
Zdroj: vlastní zpracování
Příloha F: Rozhodovací strom
Zdroj: vlastní zpracování
Příloha G: Zastoupení objektů ve třídách dle času
Hodina\Třída
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
10
14
15
16
19
16
13
15
8
10
8
4
4
8
4
6
9
9
6
7
7
5
10
15
4
2
2
-
6
1
-
10
6
7
12
9
6
6
13
7
12
5
7
4
15
9
8
9
12
6
7
5
13
7
8
10
1
3
8
6
5
5
9
14
7
5
13
7
6
7
9
6
1
5
1
1
1
1
1
5
2
1
1
1
1
1
Celkem
238
8
7
203
127
17
Zdroj: vlastní zpracování
Příloha H: Zastoupení objektů ve třídách dle dne
Den\Třída
Pondělí
Úterý
Středa
Čtvrtek
Pátek
Sobota
Neděle
Celkem
36
20
27
33
34
44
44
238
4
2
1
1
8
1
2
1
2
1
7
22
44
29
25
30
27
26
203
6
25
30
25
23
11
7
127
3
14
17
Zdroj: vlastní zpracování

Podobné dokumenty

Práce - cena děkana fakulty dopravní

Práce - cena děkana fakulty dopravní Tentokrát padlo rozhodnutí pro firmu Boeing. V roce 1961 byl zahájen projekt „High Mark“, jehož výsledkem se stal Boeing 707-353B, od počátku navržený k přepravě prezidenta a jeho doprovodu. Boeing...

Více

Logické a číslicové systémy - IMProVET

Logické a číslicové systémy - IMProVET poslední. Až když bude v normálním provozu (ustálený stav), dojde ke spuštění předchozího dopravníku. Tímto způsobem, proti toku dopravovaného materiálu, jsou postupně uvedeny všechny dopravníky do...

Více

ESET Remote Administrator - Virtual Appliance Deployment

ESET Remote Administrator - Virtual Appliance Deployment (VMware vSphere/ESXi a Microsoft Hyper-V), stejně tak hostované hypervizory běžící na desktopovém operačním systému (VMware Workstation, VMware Player a Oracle VirtualBox). Pro seznam podporovaných...

Více

Spínače - AEC ELEKTROTECHNIKA spol. s ro

Spínače - AEC ELEKTROTECHNIKA spol. s ro MRE 1-10 MRE 1-10 C MRE 1-12 MRE 2-5 MRE 2-6 MRE 3-3 MRE 3-4 MRE 4-2 MRE 4-3

Více

Administrace a bezpečnost ArcGIS Serveru

Administrace a bezpečnost ArcGIS Serveru Navrhovaná vylepšení ...................................................................................................................... 54

Více

se jménem Frištenský - Česká asociace Wellness

se jménem Frištenský - Česká asociace Wellness ➠ cenové zvýhodnění členů na kurzech, seminářích, workshopech, tuzemských a zahraničních akcích pořádaných ČAW ➠ možnost využívání slev vzájemně poskytovaných členy asociace ostatním členům ➠ příle...

Více

Ovládání laboratorního modelu Mindstorms NXT (spike) pomocí PC

Ovládání laboratorního modelu Mindstorms NXT (spike) pomocí PC za podněty, rady a odborné vedení mé diplomové práce. Dále bych chtěl poděkovat rodinným členům za projevenou morální a lidskou podporu, která dopomohla vzniku tohoto projektu.

Více