Co je to „Overfitting“ a „Underfitting“ ve strojovém učení?

– S1E14

Protože vaším hlavním úkolem je vybrat algoritmus učení a natrénovat ho na nějakých datech, dvě věci, které se mohou pokazit, jsou „špatný algoritmus“ a „špatná data“

Tyto jsou příklady špatného algoritmu-

Overfitting-

Overfitting je chyba modelování, ke které dochází, když funkce příliš přesně odpovídá omezenému souboru datových bodů. Znamená to, že model funguje dobře na trénovacích datech, ale špatně zobecňuje.

Příklad- Řekněme, že jste na návštěvě cizí země a taxikář vás okrade. Mohli byste být v pokušení říci, že všichni taxikáři v této zemi jsou zloději

Overfitting trénovacích dat

Složité modely, jako jsou hluboké neuronové sítě, mohou odhalit jemné vzory v datech, ale pokud je trénovací množina zašuměná nebo pokud je příliš malá (což vnáší šum při vzorkování), pak model pravděpodobně odhalí vzory v samotném šumu.

Příklad – řekněme, že do modelu spokojenosti se životem přidáte atribut názvu země –

V takovém případě může komplexní model odhalit vzory, jako je skutečnost, že všechny země v trénovacích datech s písmenem „w“ v názvu mají spokojenost se životem vyšší než 7: Nový Zéland (7.3), Norsko (7,4), Švédsko (7,2) a Švýcarsko (7,5).

Toto pravidlo spokojenosti s „w“ však nelze zobecnit na Rwandu, Zimbabwe atd.

Je zřejmé, že tento vzorec se v trénovacích datech vyskytl čistě náhodou, ale model nemá možnost zjistit, zda je vzorec skutečný, nebo je pouze výsledkem šumu v datech.

K nadměrnému přizpůsobení dochází, když je model příliš složitý vzhledem k množství a šumu trénovacích dat.

Zde jsou možná řešení:

  • Zjednodušte model výběrem modelu s menším počtem parametrů (např, lineární model namísto polynomického modelu vysokého stupně),
  • snížením počtu atributů v trénovacích datech nebo omezením* modelu.
  • Shromážděte více trénovacích dat.
  • Snižte šum v trénovacích datech (např, opravit chyby v datech a odstranit odlehlé hodnoty).

Omezování modelu za účelem jeho zjednodušení a snížení rizika nadměrného přizpůsobení se nazývá regularizace.

Například lineární model, který jsme definovali dříve, má dva parametry, θ0 a θ1 .

To dává učicímu algoritmu dva stupně volnosti pro přizpůsobení modelu trénovacím datům: může upravovat jak výšku (θ0 ), tak sklon (θ1 ) přímky.

Pokud bychom vynutili θ1 = 0, měl by algoritmus pouze jeden stupeň volnosti a mnohem hůře by se správně přizpůsobil datům: jediné, co by mohl udělat, by bylo posunout přímku nahoru nebo dolů, aby se co nejvíce přiblížila trénovacím instancím, takže by skončila kolem průměru.

Pokud algoritmu umožníme měnit θ1, ale přinutíme ho, aby byl malý, pak bude mít učící algoritmus efektivně něco mezi jedním a dvěma stupni volnosti.

Chcete najít správnou rovnováhu mezi tím, aby model dokonale vyhovoval trénovacím datům, a tím, aby byl dostatečně jednoduchý a zajistil dobrou generalizaci.

Regularizace snižuje riziko nadměrného přizpůsobení
  • Čárkovaná čára – trénováno pouze na kruzích,
  • Čárkovaná čára- natrénovaná na kruzích i čtvercích
  • Plná čára- je model natrénovaný pouze na kruzích

Vidíte, že regularizace donutila model mít menší sklon: Tento model neodpovídá tréninkovým datům (kruhy) tak dobře jako první model, ale ve skutečnosti lépe zobecňuje na nové příklady, které během trénování neviděl (čtverce).

Míru regularizace, která se má během učení použít, lze řídit hyperparametrem.

Hiperparametr je parametr učicího algoritmu (nikoli modelu). Musí být nastaven před trénováním a během trénování zůstává konstantní.

Pokud nastavíte hyperparametr regularizace na-

  • velmi velkou hodnotu – získáte téměř plochý model (sklon blízký nule), učící algoritmus téměř jistě nebude nadměrně přizpůsobovat trénovací data, ale bude méně pravděpodobné, že najde dobré řešení.

Nastavení hyperparametrů je důležitou součástí budování systému strojového učení (podrobný příklad uvidíte v dalších dílech).

Podhodnocení nastává, když je váš model příliš jednoduchý na to, aby se naučil základní strukturu dat.

Lineární model životní spokojenosti je náchylný k podhodnocení, realita je prostě složitější než model, takže jeho předpovědi budou určitě nepřesné.

Zde jsou hlavní možnosti, jak tento problém odstranit-

  • Zvolit výkonnější model s více parametry.
  • Podat učícímu se algoritmu lepší funkce (feature engineering).
  • Snížit omezení modelu (např. počet parametrů), snížit regulární hyperparametr).

Přečtěte si další- Testování a ověřování natrénovaného modelu

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.