Takéodběr vzorků, sampleováníPokročilý
Definice
Vzorkování je výběr nebo měření omezeného počtu hodnot z většího celku, například populace, časového signálu, obrazu nebo datové sady. Cílem je získat reprezentaci, se kterou lze počítat rychleji, ukládat ji levněji nebo ji použít pro odhad, aniž by bylo nutné pracovat se vším.
Nezaměňujte: Vzorkování má příbuzné, ale odlišné významy ve statistice, zpracování signálu, počítačové grafice a strojovém učení.
Proč vzorkování nahrazuje práci se vším
Vzorkování snižuje objem dat, měření nebo výpočtů tím, že místo úplného celku pracuje jen s vybranými body. Výsledek má být dostatečně věrný pro daný účel: odhad, trénování modelu, přehrání zvuku, vykreslení obrazu nebo rychlou kontrolu databáze. Úspora ale není zadarmo. Každý vzorek je zjednodušení a nese riziko, že některé části reality zachytí slabě, zkresleně nebo vůbec.
Vzorek v datech, signálu a obraze
Ve statistice znamená vzorkování výběr jednotek z populace, například zákazníků, transakcí nebo měření. Dobře navržený výběr umožní odhadovat vlastnosti celku bez dotazování každého prvku. Ve strojovém učení se vzorkují trénovací data, dávky pro optimalizaci i příklady z nevyvážených tříd.
Ve zpracování signálu vzorkování převádí spojitý průběh na řadu diskrétních hodnot. Mikrofon například nemůže uložit nekonečně mnoho okamžiků zvukové vlny, proto měří v pravidelných intervalech. V grafice se vzorkuje barva, hloubka, světlo nebo textura. Počet a poloha vzorků pak ovlivňují ostrost hran, šum i náklady na výpočet.
Dva praktické příklady
Kontrola chyb v milionech objednávek
Datový analytik potřebuje rychle ověřit, zda se po nasazení nové verze nezměnilo rozložení stavů objednávek. Kompletní dotaz nad celou tabulkou by zbytečně zatížil produkční databázi, proto analytik vezme malé procento řádků a hledá hrubou anomálii. Výsledek není auditní důkaz, ale může rozhodnout, zda má smysl spustit dražší úplnou kontrolu.
SELECT stav, count(*)
FROM objednavky TABLESAMPLE SYSTEM (1)
GROUP BY stav;Textura vykreslená na vzdálené zdi
Herní engine zobrazuje cihlovou zeď, která je od kamery daleko. Jeden pixel na obrazovce pokrývá mnoho texelů v textuře, takže jediný odebraný bod by mohl náhodně trefit světlou nebo tmavou cihlu. Grafická pipeline proto volí vhodnější vzorek nebo předpočítanou úroveň detailu. Výsledek je stabilnější obraz a méně třepotání, což úzce souvisí s anti-aliasingem.
Kde se při vzorkování ztrácí přesnost
Vzorkování selhává hlavně tehdy, když vzorek neodpovídá otázce. Náhodný výběr z návštěvníků webu nepopíše lidi, kteří web nikdy nenavštívili. V signálu zase příliš řídké měření vytvoří aliasing: rychlá změna se v datech tváří jako pomalejší jev. V učení modelů může nevyvážený vzorek naučit algoritmus ignorovat vzácné, ale důležité případy.
Kvalitní vzorkování proto řeší nejen velikost vzorku, ale i způsob výběru, pokrytí menšinových skupin, frekvenci měření a následné vážení. Správná metoda závisí na tom, zda cílem je přesný odhad, rychlý experiment, věrná rekonstrukce nebo levnější výpočet.
Příklady z praxe
Rychlá kontrola objednávek
Datový analytik potřebuje rychle zjistit, zda nová verze aplikace nezměnila rozložení stavů objednávek. Místo úplného průchodu tabulkou použije malý databázový vzorek a hledá výraznou odchylku. Výsledek slouží jako signál pro další kontrolu, ne jako finální audit.
SELECT stav, count(*) FROM objednavky TABLESAMPLE SYSTEM (1) GROUP BY stav;Textura na vzdálené zdi
Grafický engine vykresluje vzdálenou cihlovou zeď, kde jeden pixel odpovídá velké ploše textury. Kdyby engine vzal jen jeden texel, obraz by při pohybu kamery nepříjemně blikal. Vhodnější vzorkování textury nebo mipmapy stabilizují výsledek a sníží vizuální šum.
Časté omyly
- MýtusVzorek stačí udělat náhodně a bude reprezentativní.
- Ve skutečnostiNáhodnost omezuje výběrové zkreslení, ale sama nezaručí dobrý vzorek. Důležitá je velikost, zdrojová populace, pokrytí menšinových skupin a způsob, jakým se s výběrem dál počítá.
- MýtusVyšší vzorkovací frekvence vždy znamená lepší výsledek.
- Ve skutečnostiVyšší frekvence může pomoci, ale po určité hranici přidává hlavně objem dat a náklady. Výsledek často víc ovlivní šum, filtr před vzorkováním, rozlišení měření nebo kvalita následného zpracování.
Časté dotazy
- Kolik vzorků je při vzorkování dost?
- Potřebný počet vzorků závisí na variabilitě dat, požadované přesnosti a riziku špatného rozhodnutí. Homogenní data mohou stačit menšímu výběru, zatímco vzácné jevy nebo segmenty vyžadují větší a cílenější pokrytí. Praktický návrh často kombinuje statistický výpočet velikosti vzorku, znalost domény a kontrolu, zda výběr nevynechal důležité skupiny.
- Proč vzorkování způsobuje aliasing?
- Aliasing vzniká, když vzorkování zachytí signál příliš řídce vzhledem k rychlosti jeho změn. Vzorkovaná data pak mohou vypadat jako jiný, pomalejší průběh, než jaký existoval původně. V obraze se aliasing projevuje zubatými hranami nebo třepotáním detailů, ve zvuku falešnými složkami. Řešením bývá vyšší vzorkovací frekvence, filtrování nebo vhodnější rozmístění vzorků.
- Co znamená vzorkování ve strojovém učení?
- Vzorkování v machine learningu znamená výběr příkladů, mini-batchů nebo tříd, se kterými model během trénování pracuje. Správný výběr zrychluje učení a pomáhá řešit nevyvážená data, například když je podvodných transakcí málo. Špatné vzorkování může model naučit pohodlnou zkratku: model pak dobře vypadá na trénovacích datech, ale selhává na reálných případech.
- Je systematický vzorek horší než náhodný?
- Systematický vzorek není automaticky horší než náhodný vzorek. Systematické vzorkování, například každý tisící záznam, může být jednoduché a dobře použitelné, pokud pořadí dat neskrývá pravidelný vzor. Problém nastane, když se interval výběru potká s periodicitou v datech, třeba s denními špičkami nebo dávkovým importem. Náhodný výběr takové riziko obvykle snižuje.
Zdroje
- Sampling (statistics)(otevře se v novém okně)
- Sampling (signal processing)(otevře se v novém okně)
- PostgreSQL: Documentation(otevře se v novém okně)
- Web Audio API(otevře se v novém okně)