Takétraining set, trénovací množina, trénovací sada, trénovací datasetPokročilý
Definice
Trénovací data je odborné označení pro datovou sadu, ze které se model strojového učení učí vztahy mezi vstupy a očekávanými výstupy. Mohou obsahovat texty, obrázky, tabulky, zvuk nebo události z aplikace. Jejich kvalita, reprezentativnost a správné oddělení od testovacích dat zásadně ovlivňují spolehlivost modelu.
Co se do trénovacích dat počítá
Trénovací sada může mít mnoho podob podle úlohy, kterou má model řešit. U klasifikace obrázků obsahuje snímky a jejich štítky, u jazykového modelu textové ukázky, u predikce odchodu zákazníka tabulkové záznamy o chování uživatelů. Důležité nejsou jen samotné hodnoty, ale také kontext: čas sběru, způsob měření, původ dat, pravidla anotace a známá omezení.
Trénovací data nejsou totéž co libovolný export z databáze. Datová sada se obvykle čistí, převádí do vhodného formátu a doplňuje o informace, podle kterých se model učí. Špatně vybraná nebo neúplná data mohou vést k modelu, který vypadá přesvědčivě při vývoji, ale selhává na reálných vstupech.
Proč se trénink odděluje od validace a testu
Model při tréninku upravuje své parametry tak, aby na trénovacích datech dělal menší chybu. Validační data slouží k ladění postupu, například k volbě architektury, prahu nebo pravidel zastavení tréninku. Testovací data mají zůstat stranou až do závěrečného měření, protože mají napodobit dosud neviděnou realitu.
Promíchání těchto rolí vytváří únik informací. Výsledek pak měří spíš paměť modelu a šikovnost vývojového procesu než skutečnou schopnost zobecnit vzory. U časových řad bývá zvlášť důležité dělit data podle času, aby model netrénoval na budoucnosti a nehodnotil se na minulosti.
Kvalita trénovacích dat rozhoduje o chování modelu
Kvalitní trénovací data pokrývají situace, které model později potká. Reprezentativnost neznamená jen velký objem, ale i správné zastoupení běžných a okrajových případů. U označených dat záleží na konzistenci anotátorů, protože rozporuplné štítky učí model protichůdné signály.
Datová chyba se často projeví až ve výrobním provozu. Model může zvýhodňovat skupinu, která je v datech nadměrně zastoupená, ignorovat vzácné případy nebo kopírovat historické předsudky. Kontrola trénovacích dat proto zahrnuje vzorkování, hledání duplicit, analýzu chybějících hodnot, kontrolu licencí a posouzení osobních údajů.
Dva praktické příklady trénovacích dat
Detekce spamu ve formuláři
Tým provozuje kontaktní formulář a chce oddělit běžné zprávy od spamu. Trénovací data tvoří historické zprávy, jejich metadata a ručně ověřený štítek spam nebo ham. Po rozdělení dat se model učí na trénovací části a závěrečná metrika se počítá na záznamech, které model během učení neviděl.
import random
records = load_messages() # seznam dvojic: text zprávy, štítek
random.shuffle(records)
cut = int(len(records) * 0.8)
train_records = records[:cut]
test_records = records[cut:]
Rozpoznávání vadných výrobků z fotek
Výrobní firma fotí produkty na lince a sbírá snímky dobrých i vadných kusů. Trénovací data musí obsahovat různé směny, osvětlení, šarže materiálu a typy vad. Model natrénovaný jen na nejčastější vadu by mohl v provozu přehlížet méně časté, ale drahé selhání.
Právní a provozní hranice trénovacích dat
Trénovací data mohou obsahovat osobní údaje, obchodní tajemství nebo licencovaný obsah. Organizace musí vědět, odkud data pocházejí, k jakému účelu byla získána a kdo k nim smí přistupovat. U citlivých sad pomáhá anonymizace, omezení přístupu, audit datových toků a dokumentace rozhodnutí, proč byla konkrétní data použita.
Příklady z praxe
Detekce spamu ve formuláři
Tým provozuje kontaktní formulář a chce oddělit běžné zprávy od spamu. Trénovací data tvoří historické zprávy, jejich metadata a ručně ověřený štítek spam nebo ham. Po rozdělení dat se model učí na trénovací části a závěrečná metrika se počítá na záznamech, které model během učení neviděl.
import random records = load_messages() # seznam dvojic: text zprávy, štítek random.shuffle(records) cut = int(len(records) * 0.8) train_records = records[:cut] test_records = records[cut:]Rozpoznávání vadných výrobků z fotek
Výrobní firma fotí produkty na lince a sbírá snímky dobrých i vadných kusů. Trénovací data musí obsahovat různé směny, osvětlení, šarže materiálu a typy vad. Model natrénovaný jen na nejčastější vadu by mohl v provozu přehlížet méně časté, ale drahé selhání.
Časté omyly
- MýtusČím víc trénovacích dat, tím lepší model.
- Ve skutečnostiVětší objem pomáhá jen tehdy, když data přidávají užitečnou rozmanitost a nemnoží chyby. Duplicitní, špatně označená nebo nereprezentativní data mohou výkon zhoršit.
- MýtusTestovací data můžeme přidat do tréninku, když je dat málo.
- Ve skutečnostiPřidání testovacích dat do tréninku zničí nezávislé měření. Pokud je dat málo, je vhodnější použít křížovou validaci, opatrné vzorkování nebo získat další data.
Časté dotazy
- Kolik trénovacích dat model potřebuje?
- Potřebné množství trénovacích dat závisí na složitosti úlohy, kvalitě signálu a typu modelu. Jednoduchý tabulkový model může fungovat s menší sadou, pokud jsou příznaky dobře zvolené a štítky spolehlivé. Rozpoznávání obrazu, řeči nebo generování textu obvykle potřebuje mnohem více rozmanitých ukázek. Praktické rozhodnutí se dělá podle validačních výsledků, chybové analýzy a toho, zda další data ještě zlepšují výkon.
- Proč se trénovací data nesmí míchat s testovacími?
- Trénovací data se nesmí míchat s testovacími, protože test má simulovat nové vstupy po nasazení modelu. Pokud se stejný nebo velmi podobný záznam objeví při učení i při měření, výsledek je nadhodnocený. Model pak může vypadat přesnější, než ve skutečnosti je. Oddělení sad chrání vyhodnocení před únikem informací a pomáhá odhalit přeučení.
- Může model trénovat na datech bez ručních štítků?
- Model může trénovat i na datech bez ručních štítků, pokud se použije neřízené, samořízené nebo polosupervizované učení. Jazykové modely se například učí z textu předpovídat části vstupu bez toho, aby každý dokument ručně označil člověk. U konkrétních obchodních úloh ale bývá nějaká forma validace nebo pozdějšího označení potřebná, aby šlo měřit, zda model řeší správný problém.
- Jak poznat, že trénovací data obsahují bias?
- Bias v trénovacích datech se hledá porovnáním zastoupení skupin, časových období, regionů nebo typů případů proti situacím, které má model obsloužit. Důležitá je také chybová analýza: model může celkově dosahovat dobré metriky, ale selhávat na malé skupině vstupů. Kontrola biasu vyžaduje znalost domény, dokumentaci sběru dat a pravidelné měření po nasazení.
Zdroje
- Machine Learning Glossary(otevře se v novém okně)
- Load and preprocess data(otevře se v novém okně)
- torch.utils.data(otevře se v novém okně)
- Datasets(otevře se v novém okně)