Základy AI
Co je Overfitting?
Co je Overfitting?
Při trénování neuronové sítě je nutné se vyvarovat overfittingu. Overfitting je problém v oblasti strojového učení a statistiky, kdy model naučí vzory trénovací datové sady příliš dobře, dokonale vysvětluje trénovací datovou sadu, ale selhává při generalizaci své predikční síly na jiné sady dat.
Chcete-li to říci jinak, v případě modelu s overfittingem se často zobrazí extrémně vysoká přesnost na trénovací datové sadě, ale nízká přesnost na datech shromážděných a spuštěných v modelu v budoucnu. To je rychlé definice overfittingu, ale pojďme se podívat na koncept overfittingu podrobněji. Pojďme se podívat, jak overfitting nastává a jak jej lze避nout.
Pochopení „Fit“ a Underfitting
Je užitečné se podívat na koncept underfittingu a „fit“ obecně, když se diskutuje o overfittingu. Když trénujeme model, snažíme se vyvinout rámec, který je schopen předpovídat povahu nebo třídu položek v datové sadě na základě funkcí, které tyto položky popisují. Model by měl být schopen vysvětlit vzorec v datové sadě a předpovědět třídy budoucích datových bodů na základě tohoto vzorce. Čím lépe model vysvětluje vztah mezi funkcemi trénovací sady, tím „lepší“ je náš model.

Modrá linie reprezentuje předpovědi modelu, který podhodnocuje, zatímco zelená linie reprezentuje lepší fit model. Foto: Pep Roca via Wikimedia Commons, CC BY SA 3.0, (https://commons.wikimedia.org/wiki/File:Reg_ls_curvil%C3%ADnia.svg)
Model, který špatně vysvětluje vztah mezi funkcemi trénovacího údaje a tudíž selhává při přesné klasifikaci budoucích datových příkladů, je podhodnocující. Pokud byste graficky znázornili předpovězený vztah modelu proti skutečnému průsečíku funkcí a labelů, předpovědi by se odchýlily od značky. Pokud bychom měli graf se skutečnými hodnotami trénovací sady, značně podhodnocující model by dramaticky minoval většinu datových bodů. Model s lepším fit by mohl procházet středem datových bodů, s jednotlivými datovými body, které by se lišily od předpovězených hodnot pouze málo.
Podhodnocování se často vyskytuje, když není dostatek dat pro vytvoření přesného modelu, nebo když se snažíme navrhnout lineární model s nelineárními daty. Více trénovacích dat nebo více funkcí často pomáhá snížit podhodnocování.
Proč bychom neměli vytvořit model, který vysvětluje každý bod v trénovací datové sadě dokonale? Není přece dokonalá přesnost žádoucí? Vytvoření modelu, který se naučil vzory trénovací datové sady příliš dobře, je to, co způsobuje overfitting. Trénovací datová sada a budoucí datové sady, které budete spouštět v modelu, nebudou přesně stejné. Budou pravděpodobně velmi podobné ve mnoha ohledech, ale budou se také lišit v klíčových ohledech. Proto návrh modelu, který vysvětluje trénovací datovou sadu dokonale, znamená, že skončíte s teorií o vztahu mezi funkcemi, která se nezobecní dobře na jiné datové sady.
Pochopení Overfitting
Overfitting nastává, když model naučí detaily v trénovací datové sadě příliš dobře, což způsobuje, že model trpí, když se dělají předpovědi na vnější data. To může nastat, když model nejen naučí funkce datové sady, ale také naučí náhodné fluktuace nebo šum v datové sadě, a dává jim důležitost, místo aby se soustředil na skutečné vzorce.
Overfitting je pravděpodobnější, když se používají nelineární modely, protože jsou flexibilnější při učení funkcí dat. Nelinační algoritmy strojového učení často mají různé parametry a techniky, které lze použít k omezení citlivosti modelu na data a tím snížit overfitting. Například modely rozhodovacích stromů jsou vysoce náchylné k overfittingu, ale technika zvaná prořezávání lze použít k náhodnému odstranění některých detailů, které model naučil.
Pokud byste graficky znázornili předpovědi modelu na osách X a Y, měli byste linii předpovědí, která se prohýbá sem a tam, což odráží fakt, že model se snažil příliš tvrdě přizpůsobit všechny body v datové sadě do svého vysvětlení.
Kontrola Overfitting
Když trénujeme model, ideálně chceme, aby model dělal žádné chyby. Když se výkon modelu sbližuje s tím, že dělá správné předpovědi na všech datech v trénovací datové sadě, fit se stává lepším. Model s dobrým fit je schopen vysvětlit téměř všechny trénovací datové sady bez overfittingu.
Když model trénujeme, jeho výkon se zlepšuje s časem. Často se modelova chybovost snižuje, jakmile trénovací doba projde, ale snižuje se pouze do jistého bodu. Bod, ve kterém se modelova výkonnost na testovací sadě začíná opět zvyšovat, je obvykle bod, ve kterém dochází k overfittingu. Abyste získali nejlepší fit pro model, chcete zastavit trénování modelu v bodě nejnižší ztráty na trénovací sadě, předtím, než chyba začne opět zvyšovat. Optimální bod zastavení lze určit grafickým znázorněním výkonu modelu během trénovací doby a zastavením trénování, když je ztráta nejnižší. Existuje však jeden riziko spojené s touto metodou kontroly overfittingu: specifikace koncového bodu pro trénování na základě testovací výkonnosti znamená, že testovací data se stávají součástí trénovací procedury a ztrácí svůj status jako „neporušená“ data.
Existuje několik způsobů, jak bojovat proti overfittingu. Jednou z metod snížení overfittingu je použití resampling taktiky, která funguje odhadem přesnosti modelu. Můžete také použít validační datovou sadu kromě testovací sady a graficky znázornit trénovací přesnost proti validační sadě místo testovací datové sadě. To udržuje vaše testovací data neviditelná. Populární resampling metodou je K-folds cross-validace. Tato technika umožňuje rozdělit vaše data do podmnožin, na kterých je model trénován, a poté se analyzuje výkon modelu na těchto podmnožinách, aby se odhadla, jak model bude fungovat na vnějších datech.
Používání cross-validace je jedním z nejlepších způsobů, jak odhadnout přesnost modelu na neviditelných datech, a když se kombinuje s validační datovou sadou, overfitting lze často minimalizovat.












