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.

Kategorie: Umělá inteligenceAktualizováno

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

  1. 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:]
  2. 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

  1. Machine Learning Glossary(otevře se v novém okně)Google Developers
  2. Load and preprocess data(otevře se v novém okně)TensorFlow
  3. torch.utils.data(otevře se v novém okně)PyTorch
  4. Datasets(otevře se v novém okně)Hugging Face

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.