No Free Lunch Theorem
No Free Lunch Theorem (NFL) hovorí (zjednodušene), že ak spriemeruješ výkon algoritmov cez všetky možné problémy, žiadny nemá výhodu. Inými slovami: ak niečo vyhráva často, je to preto, že „hrá“ na konkrétny typ úloh — nie preto, že je univerzálne najlepšie. Vetu sformulovali Wolpert a Macready v 90. rokoch a je jedným z mála skutočne fundamentálnych tvrdení v strojovom učení.
1. Definícia
- Jadro myšlienky: neexistuje algoritmus, ktorý by bol nadpriemerne dobrý na všetky možné úlohy, ak nemáš žiadne predpoklady o tom, aké úlohy ťa čakajú.
- Prečo sa o tom hovorí: v AI často hľadáme „silver bullet“ — jeden model, jeden trik, jeden optimalizátor. NFL pripomenie, že bez štruktúry problému to nejde.
- Analógia – univerzálny kľúč: kľúč, ktorý „ako-tak“ pasuje do všetkých zámkov, bude pri konkrétnom zámku horší než kľúč vyrobený presne naň.
2. Dve verzie vety
NFL existuje v dvoch príbuzných formách:
- NFL pre optimalizáciu: spriemerované cez všetky možné cieľové funkcie dosiahne každý optimalizačný algoritmus rovnaký výkon. Žiadna heuristika nie je univerzálne lepšia než slepé hľadanie.
- NFL pre učenie/klasifikáciu: spriemerované cez všetky možné distribúcie dát má každý učiaci algoritmus rovnakú očakávanú chybu na nevidených dátach.
Spoločná pointa: výhoda algoritmu vždy pochádza z toho, že realita nie je „všetky problémy rovnako“ — má štruktúru, a algoritmus na ňu sadne.
3. Prečo to platí (intuícia)
- Priemerovanie cez všetko: veta predpokladá, že „všetky problémy“ sú rovnako pravdepodobné. Vtedy sa výhody a nevýhody algoritmov navzájom vyrušia.
- Skryté predpoklady: ak algoritmus funguje výborne na nejakej triede úloh, implicitne má inductive bias na túto triedu.
- Konzervácia výkonu: čo algoritmus získa na jednej skupine problémov, presne to stratí na inej. Je to ako bilancia, ktorá musí vyjsť na nulu.
Σ (výkon algoritmu A cez VŠETKY problémy) = Σ (výkon algoritmu B cez VŠETKY problémy)
→ ak A poráža B na tvojej úlohe, musí B porážať A na nejakej inej.
4. Hlavné prejavy v praxi
- „Vyhral benchmark“ ≠ „vyhrá u teba“: model môže dominovať na sade testov, ale mimo tejto distribúcie výkon padá.
- Hyperparametre ako lotéria: pri ladení naslepo narazíš na bod, kde zlepšenie jednej metriky zhorší inú.
- Doménová znalosť sa vracia zadnými dverami: aj keď tvrdíš, že „nepredpokladáš nič“, už len výber dát, metrík a architektúry sú predpoklady.
5. Mýty vs. realita
| Častá predstava | Čo NFL vlastne hovorí |
|---|---|
| Existuje „najlepší model“ | Najlepší je vždy na nejakú distribúciu úloh |
| Stačí viac dát | Aj viac dát je predpoklad (aké dáta? z akej domény?) |
| Stačí tuning | Tuning je hľadanie biasu, ktorý sedí tvojej úlohe |
| Benchmarky rozhodnú | Benchmarky sú len proxy pre tvoju realitu |
6. Prečo to nie je dôvod na rezignáciu
NFL sa často zneužíva ako výhovorka („veď aj tak nič nie je lepšie“). To je nesprávne čítanie. Reálne problémy nie sú náhodné — majú štruktúru (hladkosť, lokalitu, kompozičnosť). Práve preto:
- hlboké siete fungujú na obraze a jazyku,
- gradientný zostup je užitočný,
- predtrénovanie pomáha.
NFL teda nehovorí „vzdaj to“, ale „urob svoje predpoklady explicitné a vyber model, ktorý s nimi ladí“.
7. Bezpečnostný a praktický rozmer
- Realistické očakávania: výsledok je vždy kombinácia dát, biasu, metrík a domény.
- Riziko cudzích receptov: „použi tento model + tento prompt“ bez porozumenia doméne vedie k sklamaniu — recept je bias na niečo iné.
- Dôveryhodnosť: ak nevieš, v akých režimoch model zlyháva, môžeš mu dať úlohy, kde bude presne najhorší (a nevšimneš si to).
8. Ako s tým pracovať
- Out-of-domain testy: neostaň pri jednej testovacej sade — skús dáta z iných zdrojov, období a štýlov.
- Ablácie a porovnania: zisti, čo naozaj pomáha (architektúra, dáta, regularizácia, prompting), nie „celý balík naraz“.
- Zarovnanie na cieľ: definuj úspech (presnosť, robustnosť, náklady, bezpečnosť, interpretovateľnosť) a podľa toho vyberaj.
- Vedome voľ bias: vyber model, ktorého predpoklady sedia tvojej úlohe.
Zhrnutie
- No Free Lunch Theorem hovorí, že bez predpokladov o probléme neexistuje univerzálne najlepší algoritmus.
- Existuje vo verzii pre optimalizáciu aj učenie — pointa je rovnaká.
- Víťaz na benchmarku vyhráva najmä tam, kde benchmark pripomína tvoju realitu.
- Nie je to dôvod na rezignáciu, ale návod: urob inductive bias explicitným, testuj mimo domény a meraj to, na čom ti záleží.