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:
.
[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: .
[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: .
[7]
FindTheBest. How to find virtualization software & hypervisors [online]. 2012 [cit. 2012-08-23]. Dostupné na: .
[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: . [12] KELBEL, J., ŠILHÁN, D. Shluková analýza [online]. 2008 [cit. 2012-12-22]. Dostupné na: . [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:
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: . [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: [21] METZ, C. Can VMware Get a Virtual Machine On the iPhone? [online]. 2012 [cit. 2012-09-04]. Dostupné na: . [22] Microsoft Corporation. Microsoft Private Cloud. [online]. 2012 [cit. 2012-09-04].
Dostupné na: . [23] Microsoft Corporation. Introduction to Virtualisation – Microsoft Virtuální Akademie [online].
2012
[cit.
Dostupné
2012-07-31].
na:
. [24] MILATA, M. Pokročilé architektury počítačů [online]. 2011 [cit. 2012-08-20]. Dostupné
na:
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: . [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: .
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: . [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: . [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: . [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:
. [38] VÍTEČEK, A. Virtualizace. [online]. 2008 [cit. 2012-08-18]. Dostupné na: . [39] VOJÁČEK, A. Samoučící se neuronová síť- SOM, Kohonenovy mapy. 2006 [cit. 2012-12-27]. Dostupné na: . [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í