Samuel, minimax i narodziny „machine learning"
🎯 Po co Ci to?
Termin „machine learning" (uczenie maszynowe) słyszysz dziś wszędzie — w reklamach, w mediach, w opisach niemal każdej nowej aplikacji. Mało kto wie, że słowo to zostało ukute przez jednego inżyniera z IBM w 1959 roku, przy okazji programu, który… grał w warcaby. Ta jednostka cofa Cię do samych korzeni pojęcia, które zdominuje drugą część tej książki (działy 8–10) — i pokazuje, że „uczenie się" maszyny wcale nie musi wyglądać jak ludzkie uczenie się.
✅ Czego się nauczysz
Po tej lekcji potrafisz:
- opisać program Arthura Samuela do gry w warcaby i wyjaśnić, w jakim sensie „uczył się";
- wyjaśnić intuicję stojącą za algorytmem minimax;
- podać definicję terminu „machine learning" ukutego przez Samuela w 1959 roku;
- umiejscowić chronologicznie osiągnięcie Samuela względem warsztatu w Dartmouth.
🔁 Przypomnij sobie
W jednostce 6.2 poznałeś Physical Symbol System Hypothesis — przekonanie, że manipulacja symbolami wystarcza do inteligencji. Program Samuela do gry w warcaby jest ciekawym przypadkiem granicznym: manipuluje symbolami (stanami planszy) tak jak Logic Theorist, ale robi coś więcej — modyfikuje własne zachowanie na podstawie wcześniejszych rozgrywek. To właśnie ta dodatkowa cecha zasługuje na osobną nazwę.
📘 Wyjaśnienie — program Samuela i minimax
Arthur Samuel, inżynier pracujący w IBM, napisał w 1952 roku program grający w warcaby na standardowej planszy 8×8 — kilka lat przed warsztatem w Dartmouth (choć sam Samuel wziął udział w tym wydarzeniu w 1956 roku jako jeden z uczestników). Głównym wyzwaniem technicznym było przeszukanie ogromnej liczby możliwych stanów gry i ocenienie, które ruchy prowadzą do korzystnej pozycji. Do tego celu Samuel zastosował algorytm zwany minimax.
💭 Pomyśl: Grasz z przeciwnikiem, który — zakładasz — zawsze wybierze ruch najgorszy dla Ciebie (najlepszy dla siebie). Jak powinieneś wybierać swoje ruchy, jeśli chcesz zminimalizować najgorszy możliwy scenariusz, a nie liczyć na to, że przeciwnik się pomyli?
Sprawdź odpowiedź
Powinieneś dla każdego możliwego swojego ruchu założyć, że przeciwnik odpowie swoim najlepszym ruchem (czyli tym, który najbardziej Ci zaszkodzi), a następnie wybrać ten swój ruch, po którym „najgorsza możliwa odpowiedź przeciwnika" jest dla Ciebie najmniej dotkliwa. To dokładnie logika minimax: maksymalizujesz swój minimalny wynik — stąd nazwa min(imalizacja przeciwnika)-max(imalizacja twojego wyniku). Zakładanie, że przeciwnik gra optymalnie, jest bezpieczniejszą strategią niż liczenie na jego błędy — bo jeśli przeciwnik faktycznie gra optymalnie, jesteś przygotowany; jeśli się pomyli, tym lepiej dla Ciebie.
📐 DEFINICJA — algorytm minimax: strategia przeszukiwania drzewa możliwych ruchów w grach dwuosobowych o sumie zerowej, w której gracz maksymalizujący (siebie) i gracz minimalizujący (przeciwnika) na przemian wybierają najlepsze dla siebie ruchy; algorytm ocenia każdą możliwą pozycję, zakładając, że przeciwnik zawsze zagra optymalnie.
Po ludzku: zakładasz najgorszy, ale realistyczny scenariusz (przeciwnik gra najlepiej, jak potrafi) i wybierasz swój ruch tak, żeby nawet w tym najgorszym scenariuszu wypaść możliwie najlepiej.
Program Samuela nie tylko przeszukiwał stany gry algorytmem minimax — dodatkowo poprawiał swoją funkcję oceniającą pozycje na podstawie wyników poprzednich partii, w tym partii rozegranych sam ze sobą. Innymi słowy: program stawał się z czasem coraz lepszym graczem bez tego, by ktokolwiek ręcznie zmieniał jego kod po każdej partii.
Program Samuela zadebiutował publicznie 24 lutego 1956 r. — pokaz w amerykańskiej telewizji zrobił takie wrażenie, że następnego dnia kurs akcji IBM wyraźnie podskoczył. Sześć lat później program ograł Roberta Nealeya, silnego gracza turniejowego, a partię z dumą opisywały gazety: oto maszyna przewyższyła człowieka w grze wymagającej „myślenia". Sam Samuel przyznawał zresztą z rozbrajającą szczerością, że jego program od dawna grał w warcaby lepiej niż on sam — najlepszy dowód, że maszyna nie była ograniczona wiedzą swojego twórcy.
📘 Wyjaśnienie — narodziny terminu „machine learning"
W 1959 roku, opisując swoje osiągnięcia, Samuel ukuł termin, który dziś zna cały świat: machine learning, czyli uczenie maszynowe. Zdefiniował je (w duchu, choć nie dosłownie cytatem) jako dziedzinę, w której komputer nabywa zdolność do wykonywania zadania bez bycia do tego jawnie zaprogramowanym krok po kroku — czyli w przeciwieństwie do klasycznego programowania, gdzie każdą regułę postępowania musi z góry wpisać człowiek.
📐 DEFINICJA — machine learning (uczenie maszynowe): dziedzina informatyki, w której komputer nabywa zdolność do skuteczniejszego wykonywania zadania na podstawie danych lub doświadczenia (np. rozegranych partii), zamiast działać wyłącznie według z góry zaprogramowanych, sztywnych reguł.
Po ludzku: zamiast mówić komputerowi krok po kroku, jak grać w warcaby idealnie, dajesz mu regułę oceny pozycji i pozwalasz, by sam poprawiał tę ocenę na podstawie tego, co zadziałało, a co nie. Czym to NIE jest: uczenie maszynowe w tym sensie nie oznacza, że program „rozumie", czym jest warcabowa strategia, ani że posiada świadomość swoich postępów — zmienia jedynie liczby (wagi w funkcji oceniającej) na podstawie wyniku wcześniejszych rozgrywek. To rozróżnienie stanie się kluczowe, gdy w działach 7–8 poznasz sieci neuronowe — kolejny, znacznie potężniejszy przykład tej samej idei.
🕰️ Oś czasu działu 6
- 1952 — Arthur Samuel pisze program do gry w warcaby (chronologicznie przed Dartmouth).
- 1955 — wniosek grantowy McCarthy'ego, Minsky'ego, Rochestera i Shannona.
- Lato 1956 — warsztat w Dartmouth: narodziny nazwy „sztuczna inteligencja"; prezentacja Logic Theorist.
- 1957 — General Problem Solver.
- 1958 — John McCarthy tworzy LISP.
- 1959 — Arthur Samuel ukuwa termin „machine learning".
- Lata 60. — Joseph Weizenbaum tworzy ELIZĘ (MIT).
⚠️ Uwaga, pułapka
Zwróć uwagę na coś nietypowego w tej osi czasu: program Samuela powstał w 1952 roku — cztery lata przed Dartmouth, gdzie dopiero „ochrzczono" całą dziedzinę nazwą „sztuczna inteligencja". To dobra okazja, żeby przypomnieć sobie pułapkę z jednostki 6.1: historia nauki rzadko jest tak uporządkowana chronologicznie jak podręcznik. Ważne wydarzenia (program Samuela) mogą poprzedzać formalne narodziny dziedziny (Dartmouth), a mimo to zostać włączone w jej historię post factum — bo z perspektywy czasu widzimy, że były częścią tego samego nurtu myślenia. Nie szukaj więc w historii AI jednej, idealnie liniowej linii wydarzeń — to raczej gęsta sieć wzajemnie powiązanych odkryć.
📌 Najważniejsze w pigułce
- Arthur Samuel napisał w 1952 roku program do gry w warcaby, który poprawiał swoją funkcję oceny pozycji na podstawie wyników wcześniejszych partii.
- Algorytm minimax zakłada, że przeciwnik zawsze gra optymalnie, i wybiera ruch minimalizujący najgorszy możliwy scenariusz.
- W 1959 roku Samuel ukuł termin „machine learning" — uczenie się bez jawnego, ręcznego programowania każdej reguły.
- Program Samuela chronologicznie poprzedza warsztat w Dartmouth (1956), mimo że oba wydarzenia zaliczane są do tej samej, wspólnej historii AI.
- Pułapka: historia AI nie jest linią prostą — pojedyncze odkrycia bywają włączane w narrację dziedziny, zanim ta dziedzina formalnie powstała.
🎒 Zadania
Zadanie 6.4.1. Wyjaśnij krok po kroku, jak działałby algorytm minimax w prostej grze w kółko i krzyżyk (trzy w rzędzie), rozważając pierwszy ruch gracza X na środkowym polu planszy 3×3. Nie musisz analizować całego drzewa gry — opisz samą logikę wyboru.
Sprawdź odpowiedź
Gracz X (maksymalizujący) rozważa wszystkie możliwe swoje ruchy. Dla każdego z nich algorytm zakłada, że gracz O (minimalizujący) odpowie najlepszym możliwym dla siebie ruchem — czyli takim, który najbardziej ograniczy szanse X na wygraną. Algorytm „schodzi" w głąb drzewa możliwych dalszych ruchów na przemian dla X i O, aż dotrze do zakończonych partii (wygrana X, wygrana O, remis), przypisuje im wartości liczbowe (np. +1 dla wygranej X, −1 dla wygranej O, 0 dla remisu), a następnie „cofa się" w górę drzewa, wybierając na każdym poziomie ruch maksymalizujący (dla X) lub minimalizujący (dla O) wynik. Środkowe pole w kółko i krzyżyk jest znanym optymalnym pierwszym ruchem, bo daje kontrolę nad największą liczbą potencjalnych linii wygrywających — minimax to potwierdzi, analizując wszystkie warianty dalszej gry.
Zadanie 6.4.2. Porównaj sposób, w jaki „uczył się" program Samuela, z tym, jak uczysz się Ty, ćwicząc np. grę na instrumencie muzycznym. Wskaż jedno podobieństwo i jedną fundamentalną różnicę.
Sprawdź odpowiedź
Podobieństwo: obie formy uczenia się polegają na poprawianiu przyszłego zachowania na podstawie wyników wcześniejszych prób — grasz fragment utworu, słyszysz błąd, następnym razem grasz go inaczej; program Samuela rozgrywał partię, oceniał wynik, następnym razem oceniał podobne pozycje inaczej. Fundamentalna różnica: Ty rozumiesz dlaczego dany fragment brzmiał źle (np. zła aplikatura, zły rytm) i świadomie zmieniasz strategię — masz wgląd w przyczyny błędu i intencję poprawy. Program Samuela nie „rozumiał" niczego w tym sensie — jedynie mechanicznie dostosowywał liczby (wagi) w swojej funkcji oceniającej na podstawie tego, czy dana partia zakończyła się wygraną czy przegraną, bez żadnej świadomej refleksji nad przyczyną błędu. To rozróżnienie — uczenie się ze zrozumieniem kontra uczenie się jako czysto statystyczna korekta parametrów — będzie wracać w dyskusjach o współczesnych systemach uczenia maszynowego (działy 8–10).
🔍 Sprawdź, czy umiesz
- [ ] Opisać, na czym polegał program Arthura Samuela i w jakim sensie „się uczył".
- [ ] Wyjaśnić intuicję algorytmu minimax na własnym przykładzie.
- [ ] Podać definicję terminu „machine learning" i wskazać, kto i kiedy go ukuł.
- [ ] Umiejscowić chronologicznie osiągnięcie Samuela względem warsztatu w Dartmouth i wyjaśnić, dlaczego kolejność ta bywa myląca.