Normalizace a standardizace

Dokončeno 100 XP

škálování funkcí je technika, která mění rozsah hodnot, které má funkce. Díky tomu se modely učí rychleji a robustněji.

Normalizace versus standardizace

normalizace znamená škálování hodnot tak, aby se všechny vešly do určitého rozsahu, obvykle 0–1. Pokud jste například měli seznam věků lidí, které byly 0, 50 a 100 let, můžete normalizovat tak, že věk vydělíte číslem 100, aby hodnoty byly 0, 0,5 a 1.

standardizace je podobná, ale místo toho odečteme střední hodnotu (označovanou také jako průměr) hodnot a vydělíme směrodatnou odchylkou. Pokud nejste obeznámeni se směrodatnou odchylkou, nemusíte si dělat starosti, znamená to, že po standardizaci je střední hodnota nula a přibližně 95% hodnot spadá mezi -2 a 2.

Existují i další způsoby škálování dat, ale drobné odlišnosti jsou nad rámec toho, co potřebujeme vědět právě teď. Pojďme se podívat, proč používáme normalizaci nebo standardizaci.

Proč potřebujeme škálovat?

Existuje mnoho důvodů, proč data před trénováním normalizujeme nebo standardizujeme. Tyto možnosti můžete snadněji pochopit pomocí příkladu. Řekněme, že chceme vytrénovat model tak, aby předpověděl, jestli bude pes úspěšný při práci na sněhu. Naše data jsou zobrazena v následujícím grafu jako tečky a spojnice trendu, kterou se snažíme najít, je zobrazena jako plná čára.

Diagram znázorňující škálování v grafu výšky psů a záchran, začínající od 50.

Škálování poskytuje lepší výchozí bod

Optimální čára v předchozím grafu má dva parametry: průsečík, což je 50, přímka v x=0 a sklon, což je 0,01; každý 1000 milimetrů zvyšuje záchranu o 10. Předpokládejme, že začneme trénovat s počátečními odhady obou těchto parametrů rovnajícími se 0.

Pokud naše iterace trénování mění parametry v průměru o 0,01 na iteraci, trvá před nalezením průsečíku alespoň 5000 iterací: 50 / 0,01 = 5000 iterací. Standardizace může přinést tento optimální průsečík blíže nule, což znamená, že ho můžeme najít mnohem rychleji. Pokud například odečteme průměr od našeho popisu — roční záchrany — a od naší vlastnosti — výška — průsečík bude -0,5, nikoli 50, což můžeme zjistit asi 100krát rychleji.

diagram znázorňující měřítko v grafu výšky psa a záchran s počáteční hodnotou 0

Existují další důvody, proč mohou být složité modely velmi pomalé k trénování, pokud je počáteční odhad daleko od správného řešení, ale řešení je stále stejné: posunout funkce na něco blíže počátečnímu odhadu.

Standardizace umožňuje trénování parametrů stejnou rychlostí.

V našich nově posunových datech máme ideální posun -0,5 a ideální sklon 0,01. Přestože vyrovnání pomáhá zrychlit proces, je stále mnohem pomalejší naučit se vyrovnání než naučit se sklon. To může zpomalit proces a způsobit, že trénink bude nestabilní.

Například naše počáteční odhady posunu a sklonu jsou nula. Pokud měníme parametry o přibližně 0,1 v každé iteraci, zjistíme posun rychle, ale bude velmi obtížné najít správný sklon, protože zvýšení sklonu bude příliš velké (0 + 0,1 > 0,01) a může přetížit ideální hodnotu. Můžeme provést menší úpravy, ale tím se zpomalí, jak dlouho trvá nalezení průsečíku.

Co se stane, když škálujeme naši funkci výšky?

Diagram znázorňující standardizaci na grafu škálované výšky psa a záchrany.

Sklon přímky je nyní 0,5. Věnujte pozornost osě x. Náš optimální průsečík -0,5 a sklon 0,5 jsou ve stejném měřítku! Teď je snadné vybrat rozumnou velikost kroku, která určuje, jak rychle gradientní sestup aktualizuje parametry.

Škálování pomáhá s několika funkcemi

Když pracujeme s více vlastnostmi, může dojít k problémům s fittingem, pokud jsou na jiné škále, podobně jako jsme viděli s průsečíkem a sklonem. Pokud například trénujeme model, který přijímá výšku v mm i hmotnost v metrických tunách, bude se mnoho druhů modelů snažit ocenit důležitost hmotnostní vlastnosti, jednoduše proto, že je tak malá vzhledem k vlastnostem výšky.

Musím vždy škálovat?

Nemusíme vždy škálovat. Některé druhy modelů, včetně předchozích modelů s přímkami, lze namodelovat bez nutnosti iterativní procedury, jako je gradientní sestup, takže nevadí, že jsou znaky nesprávné velikosti. Jiné modely potřebují škálování, aby se dobře trénovaly, ale jejich knihovny často provádějí automatické škálování funkcí.

Obecně řečeno, jediným skutečnými nevýhodami normalizace nebo standardizace je, že může znesnadnit interpretaci našich modelů a že musíme napsat trochu více kódu. Z tohoto důvodu je škálování funkcí standardní součástí vytváření modelů strojového učení.


Další jednotka: Cvičení – škálování funkcí

Předchozí Další