Úloha zahrnující strojové učení nemusí být lineární, ale má řadu známých kroků:
- Definice problému.
- Příprava dat.
- Učení základního modelu.
- Zlepšení podkladového modelu pomocí kvantitativních a kvalitativních hodnocení.
- Prezentace modelu.
Jedním z dobrých způsobů, jak se vyrovnat s novým problémem, je pracovat s identifikací a definicí problému co nejlépe a naučit se model, který zachycuje smysluplné informace z dat. Přestože problémy v oblasti rozpoznávání vzorů a strojového učení mohou být různého typu, lze je obecně rozdělit do tří kategorií:
- Učení pod dohledem:
Systému jsou předloženy příklady vstupů a jejich požadované výstupy, které jsou dány „učitelem“, a cílem je naučit se obecné pravidlo, které mapuje vstupy na výstupy. - Učení bez dohledu:
Učícímu algoritmu nejsou zadány žádné značky a je ponecháno na něm, aby sám našel strukturu na vstupu. Učení bez dohledu může být cílem samo o sobě (objevování skrytých vzorců v datech) nebo prostředkem k dosažení cíle (učení příznaků). - Učení s posilováním:
Systém interaguje s dynamickým prostředím, ve kterém musí splnit určitý cíl (například řídit vozidlo nebo hrát hru proti soupeři). Systém dostává zpětnou vazbu v podobě odměn a trestů, když se pohybuje v problémovém prostoru.
Mezi učením pod dohledem a bez dohledu se nachází učení s polovičním dohledem, kdy učitel poskytuje neúplný tréninkový signál: tréninkovou množinu, ve které některé (často mnohé) cílové výstupy chybí. V tomto příspěvku se zaměříme na učení bez dohledu a shlukování dat.
Učení bez dohledu
V některých problémech rozpoznávání vzorů se trénovací data skládají ze souboru vstupních vektorů x bez odpovídajících cílových hodnot. Cílem v takových problémech učení bez dohledu může být objevit skupiny podobných příkladů v rámci dat, kde se jedná o tzv. shlukování, nebo určit, jak jsou data rozložena v prostoru, což se nazývá odhad hustoty. Zjednodušeně řečeno, pro n-vzorkový prostor x1 až xn nejsou pro každý vzorek k dispozici pravdivé štítky tříd, proto se nazývá učení bez učitele.
Problémy s neřízeným učením:
- Neřízené učení je ve srovnání s úlohami řízeného učení obtížnější.
- Jak poznáme, zda jsou výsledky smysluplné, když nejsou k dispozici štítky odpovědí?
- Nechat experta podívat se na výsledky (externí hodnocení)
- Definovat objektivní funkci na shlukování (interní hodnocení)
Proč je i přes tyto problémy Unsupervised Learning potřeba?
- Označování velkých souborů dat je velmi nákladné, a proto můžeme ručně označit jen několik příkladů. Příklad: Příklad: Rozpoznávání řeči
- Mohou nastat případy, kdy nevíme, do kolika/jakých tříd jsou data rozdělena. Příklad:
Učení bez dohledu lze dále rozdělit do dvou kategorií:
- Parametrické učení bez dohledu
V tomto případě předpokládáme parametrické rozdělení dat. Předpokládá, že vzorová data pocházejí z populace, která se řídí pravděpodobnostním rozdělením založeným na pevné sadě parametrů. Teoreticky mají v normální rodině rozdělení všechny její členy stejný tvar a jsou parametrizovány střední hodnotou a směrodatnou odchylkou. To znamená, že pokud znáte střední hodnotu a směrodatnou odchylku a že rozdělení je normální, znáte pravděpodobnost jakéhokoli budoucího pozorování. Parametrické učení bez dohledu zahrnuje konstrukci modelů Gaussovských směsí a použití algoritmu Expectation-Maximization k předpovědi třídy daného vzorku. Tento případ je mnohem obtížnější než standardní učení pod dohledem, protože nejsou k dispozici žádné štítky odpovědí, a tudíž není k dispozici správná míra přesnosti pro kontrolu výsledku. - Neparametrické učení bez dohledu
V neparametrické verzi učení bez dohledu jsou data seskupena do shluků, přičemž každý shluk(snad) říká něco o kategoriích a třídách přítomných v datech. Tato metoda se běžně používá k modelování a analýze dat s malou velikostí vzorku. Na rozdíl od parametrických modelů neparametrické modely nevyžadují od modeláře žádné předpoklady o rozdělení populace, a proto se někdy označují jako metoda bez rozdělení.
Co je shlukování?
Shlukování lze považovat za nejdůležitější problém neřízeného učení; jako každý jiný problém tohoto druhu se tedy zabývá nalezením struktury v souboru neoznačených dat. Volná definice shlukování by mohla znít „proces uspořádání objektů do skupin, jejichž členové jsou si nějakým způsobem podobní“. Shluk je tedy soubor objektů, které jsou si mezi sebou „podobné“ a jsou „nepodobné“ objektům patřícím do jiných shluků.
Shlukování založené na vzdálenosti.
Při dané množině bodů s pojmem vzdálenosti mezi body seskupení bodů do určitého počtu shluků tak, že
- vnitřní (v rámci shluku) vzdálenosti by měly být malé i.e členové shluků jsou si blízcí/podobní.
- vnější (vnitroskupinové) vzdálenosti by měly být velké, tj. členové různých shluků jsou si nepodobní.
Cíle shlukování
Cílem shlukování je určit vnitřní seskupení v souboru neoznačených dat. Jak ale rozhodnout, co představuje dobré shlukování? Lze ukázat, že neexistuje žádné absolutně „nejlepší“ kritérium, které by bylo nezávislé na konečném cíli shlukování. V důsledku toho je to uživatel, kdo by měl toto kritérium dodat tak, aby výsledek shlukování vyhovoval jeho potřebám.
Jak na výše uvedeném obrázku poznáme, co je nejlepší řešení shlukování?
Pro nalezení konkrétního řešení shlukování , musíme definovat míry podobnosti pro shluky.
Míry blízkosti
Pro shlukování musíme definovat míru blízkosti pro dva datové body. Blízkost zde znamená, jak jsou si vzorky navzájem podobné/nepodobné.
- Míra podobnosti S(xi,xk): velká, pokud jsou si xi,xk podobné
- Míra nepodobnosti (nebo vzdálenosti) D(xi,xk): malá, pokud jsou si xi,xk podobné
Existují různé míry podobnosti, které lze použít.
- Vektory: Kosinová vzdálenost
- Soubory: Jaccardova vzdálenost
- Body: Euklidovská vzdálenost
q=2
„Dobrá“ míra blízkosti je VELMI závislá na aplikaci. Shluky by měly být invariantní při transformacích „přirozených“ pro daný problém. Při shlukování se také nedoporučuje normalizovat data, která jsou čerpána z více rozdělení.
Algoritmy shlukování
Algoritmy shlukování lze klasifikovat podle níže uvedeného seznamu:
- Výlučné shlukování
- Překrývající se shlukování
- Hierarchické shlukování
- Pravděpodobnostní shlukování
V prvním případě jsou data seskupena výlučným způsobem, takže pokud určitý datový bod patří do určitého shluku, pak nemohl být zahrnut do jiného shluku. Jednoduchý příklad je znázorněn na obrázku níže, kde je oddělení bodů dosaženo přímkou na dvourozměrné rovině.
Druhý typ, shlukování s překrýváním, naopak používá ke shlukování dat fuzzy množiny, takže každý bod může patřit do dvou nebo více shluků s různým stupněm příslušnosti. V tomto případě budou data přiřazena k příslušné hodnotě příslušnosti.
Hierarchický shlukovací algoritmus je založen na sjednocení dvou nejbližších shluků. Počáteční podmínka je realizována nastavením každého datového bodu jako shluku. Po několika iteracích se dospěje k hledaným konečným shlukům.
Nakonec poslední druh shlukování využívá zcela pravděpodobnostní přístup.
V tomto blogu si povíme o čtyřech nejpoužívanějších shlukovacích algoritmech:
- K-means
- Fuzzy K-means
- Hierarchické shlukování
- Mixture of Gaussians
Každý z těchto algoritmů patří do jednoho z výše uvedených typů shlukování. Zatímco K-means je výhradní shlukovací algoritmus, Fuzzy K-means je překrývající se shlukovací algoritmus, hierarchické shlukování je zřejmé a konečně Mixture of Gaussians je pravděpodobnostní shlukovací algoritmus. V následujících odstavcích se budeme zabývat jednotlivými metodami shlukování.
K-means shlukování
K-means je jedním z nejjednodušších algoritmů učení bez dohledu, který řeší známý problém shlukování. Postupuje jednoduchým a snadným způsobem klasifikace daného souboru dat prostřednictvím určitého počtu shluků (předpokládejme k shluků), který je stanoven a priori. Hlavní myšlenkou je definovat k center, jedno pro každý shluk. Tyto středy by měly být umístěny chytrým způsobem, protože různé umístění způsobuje různé výsledky. Lepší volbou je tedy umístit je co nejdále od sebe. Dalším krokem je vzít každý bod patřící do dané sady dat a přiřadit jej k nejbližšímu centroidu. Pokud žádný bod nečeká na přiřazení, je první krok ukončen a provede se předčasné seskupení. V tomto okamžiku musíme znovu vypočítat k nových centroidů jako barycentrů shluků vzniklých v předchozím kroku. Poté, co máme těchto k nových centroidů, je třeba provést novou vazbu mezi stejnými body datové sady a nejbližším novým centroidem. Byla vytvořena smyčka. V důsledku této smyčky si můžeme všimnout, že k centroidů mění svou polohu krok za krokem, dokud se neprovedou další změny. Jinými slovy, centroidy se již dále nepohybují.
Nakonec je cílem tohoto algoritmu minimalizace účelové funkce, v tomto případě funkce čtvercové chyby. Objektivní funkce
kde
je zvolená míra vzdálenosti mezi datovým bodem xi a středem shluku cj, je ukazatel vzdálenosti n datových bodů od jejich příslušných středů shluků.
Algoritmus se skládá z následujících kroků:
- Nechť X = {x1,x2,x3,……..,xn} je množina datových bodů a V = {v1,v2,…….,vc} je množina center.
- Náhodně vyberte ‚c‘ center shluků.
- Vypočtěte vzdálenost mezi každým datovým bodem a centry shluků.
- Přiřaďte datový bod ke středu shluku, jehož vzdálenost od středu shluku je minimální ze všech středů shluku.
- Přepočítejte nový střed shluku pomocí:
kde, ‚ci‘ představuje počet datových bodů v i-tém shluku.
- Přepočítejte vzdálenost mezi každým datovým bodem a nově získanými středy shluků.
- Pokud nebyl žádný datový bod přeřazen, zastavte, jinak opakujte od kroku 3).
Ačkoli lze dokázat, že postup vždy skončí, algoritmus k-means nemusí nutně najít nejoptimálnější konfiguraci, která odpovídá minimu globální účelové funkce. Algoritmus je také značně citlivý na počáteční náhodně vybraná centra shluků. Pro snížení tohoto vlivu lze algoritmus k-means spustit vícekrát.
K-means je jednoduchý algoritmus, který byl přizpůsoben mnoha problémovým doménám. Jak uvidíme, je vhodným kandidátem na rozšíření pro práci s fuzzy vektory příznaků.