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ží.