Základy AI

Co je Gradient Boosting?

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Společný typ modelu strojového učení, který se ukázal být extrémně užitečným v soutěžích datové vědy, je model gradientního zvyšování. Gradientní zvyšování je基本ně proces konverze slabých modelů učení na silné modely učení. Jak přesně se to ale dělá? Podívejme se blíže na algoritmy gradientního zvyšování a lépe pochopíme, jak model gradientního zvyšování konvertuje slabé učitele na silné učitele.

Definice Gradientního Zvyšování

Tento článek si klade za cíl dát vám dobrý přehled o tom, co je gradientní zvyšování, bez mnoha rozborů matematiky, která leží v základě algoritmů. Jakmile budete mít lepší představu o tom, jak gradientní zvyšování funguje na vysoké úrovni, budete vyzváni k tomu, aby jste se ponořili hlouběji a prozkoumali matematiku, která to umožňuje.

Začneme definicí toho, co znamená “zvýšit” učitele. Slabí učitele jsou konvertováni na silné učitele úpravou vlastností modelu učení. Jaký přesně je algoritmus učení, který je zvyšován?

Modely zvyšování fungují tak, že doplňují jiný běžný model strojového učení, rozhodovací strom.

Model rozhodovacího stromu funguje tak, že rozděluje dataset na menší a menší části, a jednou, kdy nelze části dále rozdělit, výsledkem je strom s uzly a listy. Uzly v rozhodovacím stromu jsou místa, kde se dělají rozhodnutí o datech pomocí různých filtrů. Listy v rozhodovacím stromu jsou datové body, které byly klasifikovány. Algoritmy rozhodovacích stromů mohou zpracovat jak numerické, tak kategorické údaje, a rozdělení ve stromu jsou založena na specifických proměnných/vlastnostech.

Ilustrace toho, jak jsou modely zvyšování trénovány.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

Jeden typ algoritmu zvyšování je AdaBoost algoritmus. AdaBoost algoritmy začínají trénováním modelu rozhodovacího stromu a přiřazují stejné váhy každému pozorování. Po vyhodnocení prvního stromu pro přesnost jsou váhy pro různá pozorování upraveny. Pozorování, která byla snadno klasifikována, mají své váhy sníženy, zatímco pozorování, která byla obtížně klasifikována, mají své váhy zvýšeny. Druhý strom je vytvořen pomocí těchto upravených vah, s cílem, že předpovědi druhého stromu budou přesnější než předpovědi prvního stromu.

Model se nyní skládá z předpovědí původního stromu a nového stromu (nebo Strom 1 + Strom 2). Přesnost klasifikace je opět vyhodnocena na základě nového modelu. Třetí strom je vytvořen na základě vypočtené chyby modelu, a váhy jsou opět upraveny. Tento proces pokračuje po stanovený počet iterací, a konečným modelem je soubor modelů, který používá váženou sumu předpovědí vytvořených všemi dříve vytvořenými stromy.

Popisovaný proces výše používá rozhodovací stromy a základní prediktory/modely, nicméně přístup zvyšování lze provést s širokým spektrem modelů, jako jsou standardní klasifikační a regresní modely. Klíčové koncepty, které je třeba pochopit, jsou, že následné prediktory se učí z chyb předchozích a že prediktory jsou vytvářeny sekvenčně.

Hlavní výhodou algoritmů zvyšování je, že vyžadují méně času na nalezení aktuálních předpovědí ve srovnání s jinými modely strojového učení. Je však třeba dbát na to, aby se algoritmy zvyšování používaly opatrně, protože jsou náchylné k přeučení.

Gradientní Zvyšování

Teď se podíváme na jeden z nejčastějších algoritmů zvyšování. Modely gradientního zvyšování (GBM) jsou známé svou vysokou přesností a rozšiřují obecné principy používané v AdaBoost.

Hlavní rozdíl mezi modelem gradientního zvyšování a AdaBoost je, že GBM používá jiný způsob výpočtu, který učitele špatně identifikují data. AdaBoost vypočítává, kde model špatně funguje, zkoumáním datových bodů, které jsou silně váženy. GBM naopak používá gradienty k určení přesnosti učitele, aplikuje funkci ztráty na model. Funkce ztráty jsou způsobem, jak měřit přesnost modelu, vypočítávají chybu a optimalizují model pro snížení této chyby. GBM umožňuje uživateli optimalizovat specifikovanou funkci ztráty na základě jeho cíle.

Budeme-li brát nejčastější funkci ztráty – Průměrnou čtvercovou chybu (MSE) – jako příklad, gradientní sestup se používá k aktualizaci předpovědí na základě předem definované rychlosti učení, s cílem najít hodnoty, kde je ztráta minimální.

Abychom to uvedli na pravou míru:

Nové předpovědi modelu = výstupní proměnné – staré nedokonalé předpovědi.

V statistickém smyslu GBM cílí na nalezení relevantních vzorců v reziduích modelu, úpravu modelu pro přizpůsobení se vzorci a přiblížení reziduí k nule. Pokud byste provedli regresi na předpovědích modelu, rezidua by byla rozložena kolem 0 (perfektní shoda), a GBM nachází vzorce v reziduích a aktualizuje model kolem těchto vzorců.

Jinými slovy, předpovědi jsou aktualizovány tak, aby součet všech reziduí byl co nejblíže 0, což znamená, že předpovězené hodnoty budou velmi blízké skutečným hodnotám.

Je třeba poznamenat, že široká škála dalších funkcí ztrát (jako logaritmická ztráta) může být použita GBM. MSE byla vybrána výše pro účely jednoduchosti.

Variace Modelů Gradientního Zvyšování

Modely gradientního zvyšování jsou žadatelé algoritmy, které jsou náchylné k přeučení na dataset. To lze ochránit různými metodami, které mohou zlepšit výkon GBM.

GBM lze regulovat čtyřmi různými metodami: Shrinkage, Tree Constraints, Stochastic Gradient Boosting a Penalized Learning.

Shrinkage

Jako bylo zmíněno dříve, v GBM jsou předpovědi sečteny společně v sekvenčním způsobem. V “Shrinkage” jsou přidání každého stromu k celkovému součtu upravena. Používají se váhy, které zpomalují rychlost učení algoritmu, vyžadující, aby bylo přidáno více stromů do modelu, což obvykle zlepšuje robustnost a výkon modelu. Náklad je, že model potřebuje déle k trénování.

Tree Constraints

Omezení stromu různými úpravami, jako je přidání větší hloubky stromu nebo zvýšení počtu uzlů nebo listů ve stromu, může učinit modelu obtížnější přeučit se. Uvalení omezení na minimální počet pozorování na split má podobný efekt. Opět, náklad je, že model potřebuje déle k trénování.

Random Sampling

Jednotlivé učitele lze vytvořit pomocí stochastického procesu, založeného na náhodně vybraných podmnožinách trénovacího datasetu. To má efekt snižování korelací mezi stromy, což chrání proti přeučení. Dataset lze podmnožinovat před vytvořením stromů nebo před zvažováním splitu ve stromu.

Penalized Learning

Beyond omezující model prostřednictvím omezení struktury stromu, je možné použít regresní strom. Regresní stromy mají numerické hodnoty připojené k каждému listu, a tyto fungují jako váhy a mohou být upraveny pomocí běžných funkcí regularizace, jako je L1 a L2 regularizace.

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.