Uczenie maszynowe: program uczony przykładami, a nie regułami

👁 203 przeczytań
Uczenie maszynowe (ang. machine learning, ML) to sposób budowania programów, w którym nie zapisujesz reguł, tylko pokazujesz przykłady, a komputer sam wyprowadza z nich regułę. Na tym działają filtry spamu, rekomendacje w sklepach, wykrywanie oszustw kartowych i modele językowe, takie jak ChatGPT. Niżej: definicja bez wzorów, trzy rodzaje uczenia, różnica między AI, ML i deep learningiem, przykłady z Polski, od czego zacząć naukę i krótki kod w Pythonie, który sam uruchomiłem, z prawdziwym wynikiem.
Stan na 4 października 2026
- Definicja w jednym zdaniu: program uczy się zależności z danych zamiast wykonywać reguły zapisane przez człowieka.
- Trzy rodzaje: nadzorowane (dane z odpowiedziami), nienadzorowane (dane bez odpowiedzi), ze wzmocnieniem (nagroda za działanie).
- Mój przykład: 25 linijek w Pythonie i scikit-learn 1.9 rozpoznaje odręcznie pisane cyfry z trafnością 96,7 procent (15 pomyłek na 450 obrazkach).
- Na start za darmo: kurs Elements of AI po polsku, Kaggle Learn, dokumentacja scikit-learn.
Co to jest uczenie maszynowe
W klasycznym programowaniu człowiek pisze reguły: „jeśli w temacie maila jest słowo »wygrana« i nadawca jest nieznany, przenieś do spamu”. W uczeniu maszynowym dajesz programowi dziesięć tysięcy maili oznaczonych jako spam i dziesięć tysięcy oznaczonych jako zwykłe, a on sam znajduje cechy, które je odróżniają. Wynikiem jest model: funkcja, która dla nowego maila zwraca odpowiedź „spam” albo „nie spam” wraz z pewnością.
Tej reguły nie da się potem przeczytać jak kodu. To jednocześnie źródło całej mocy tego podejścia (model wyłapuje zależności, których człowiek by nie zapisał) i wszystkich jego kłopotów (nie zawsze wiadomo, dlaczego model zdecydował tak, a nie inaczej).
Każdy projekt ML składa się z tych samych kroków:
- Dane - zebranie przykładów i ich uporządkowanie. To zwykle większość pracy.
- Cechy - wybór tego, co model ma brać pod uwagę (np. piksele obrazka, kwota i godzina transakcji).
- Trening - dopasowanie modelu do części danych.
- Test - sprawdzenie na danych, których model nie widział. Bez tego kroku wynik jest bezwartościowy.
- Wdrożenie i pilnowanie - model działa na nowych danych, a ktoś mierzy, czy nie traci skuteczności.
Trzy rodzaje uczenia maszynowego
Uczenie nadzorowane
Dane mają odpowiedzi: zdjęcia z podpisami, maile oznaczone jako spam, mieszkania z cenami. Model uczy się przewidywać odpowiedź dla nowych przypadków. Gdy odpowiedź to kategoria (spam/nie spam), mówimy o klasyfikacji, gdy liczba (cena mieszkania) - o regresji. To zdecydowana większość zastosowań w firmach i to właśnie robi mój przykład w Pythonie niżej.
Uczenie nienadzorowane
Odpowiedzi nie ma, jest tylko zbiór. Model szuka w nim struktury: grupuje podobnych klientów (klasteryzacja), wykrywa nietypowe transakcje (wykrywanie anomalii), upraszcza dane o setkach kolumn do kilku najważniejszych wymiarów. Używa się go, gdy nie wiadomo z góry, czego się szuka.
Uczenie ze wzmocnieniem
Model (tu nazywany agentem) działa w jakimś środowisku, dostaje nagrodę albo karę i szuka sposobu na maksymalizację nagrody. Tak uczą się programy grające w szachy i go, roboty i systemy sterowania. W uproszczeniu tak dostraja się też zachowanie dzisiejszych modeli językowych, żeby odpowiadały pomocnie, a nie tylko poprawnie gramatycznie.
Między nadzorowanym a nienadzorowanym jest jeszcze uczenie samonadzorowane: odpowiedzi tworzy się z samych danych. Model językowy dostaje zdanie z zakrytym ostatnim słowem i zgaduje je - etykieta „za darmo” jest w tekście. Na tym zbudowano wszystkie duże modele językowe.
AI, uczenie maszynowe, deep learning: czym się różnią
Te pojęcia są zagnieżdżone jak matrioszki: sztuczna inteligencja zawiera uczenie maszynowe, uczenie maszynowe zawiera uczenie głębokie, a modele językowe są zastosowaniem uczenia głębokiego.
| Pojęcie | Co obejmuje | Przykład | Ile danych potrzebuje |
|---|---|---|---|
| Sztuczna inteligencja (AI) | cała dziedzina: każdy program wykonujący zadania kojarzone z inteligencją, także oparty na ręcznie pisanych regułach | system ekspercki do diagnozy usterek, program do szachów z lat 90. | od zera (reguły) do dowolnie wielu |
| Uczenie maszynowe (ML) | metody, w których program uczy się z danych | scoring kredytowy, filtr spamu, prognoza popytu | od setek do milionów przykładów |
| Uczenie głębokie (deep learning) | ML oparte na sieciach neuronowych z wieloma warstwami | rozpoznawanie mowy, tłumaczenie, rozpoznawanie obrazów | zwykle miliony przykładów i karty graficzne |
| Duże modele językowe (LLM) | sieci głębokie trenowane na bilionach tokenów tekstu | ChatGPT, Claude, Gemini, Bielik | biliony tokenów, tysiące kart graficznych |
Kiedy ktoś mówi „to AI”, zwykle ma na myśli uczenie maszynowe, a najczęściej jego głęboką odmianę. Szersze wprowadzenie do całej dziedziny napisałem w tekście o sztucznej inteligencji, a sylwetki ludzi, którzy zbudowali uczenie głębokie, w tekstach o Geoffreyu Hintonie, Yannie LeCunie i Yoshui Bengio.
Nie przepłacaj za te subskrypcje
Prowadzę sklep z rocznymi dostępami do narzędzi AI - te same konta, o których piszę wyżej, tylko taniej niż w cenniku producenta.
Ważna praktyczna uwaga: przy danych w tabelach (Excel, baza klientów, transakcje) klasyczne metody ML, takie jak lasy losowe i boosting gradientowy, wciąż często wygrywają z sieciami neuronowymi, a są szybsze i tańsze. Sieci głębokie dominują przy obrazie, dźwięku i tekście.
Uczenie maszynowe na co dzień w Polsce
- Poczta. Filtry spamu w Gmailu, Outlooku i polskich skrzynkach to klasyczne uczenie nadzorowane na milionach oznaczonych maili.
- Bank. Gdy bank blokuje płatność kartą w nietypowym miejscu i pyta SMS-em, czy to Ty, za decyzją zwykle stoi model wykrywania anomalii. Ten sam typ modeli pomaga ocenić ryzyko przy wniosku kredytowym.
- Zakupy i rozrywka. Polecane produkty w sklepach internetowych, kolejne odcinki w serwisach wideo i utwory w aplikacjach muzycznych dobierają systemy rekomendacyjne.
- Telefon. Odblokowanie twarzą, rozpoznawanie mowy w dyktowaniu, grupowanie zdjęć według osób, tłumaczenie tekstu z aparatu.
- Urzędy. Asystent w aplikacji mObywatel od końca 2025 roku odpowiada na pytania, korzystając z polskiego modelu PLLuM.
- Medycyna. Modele wspierające opis zdjęć RTG i tomografii, które podpowiadają radiologowi podejrzane miejsca. Decyzję podejmuje lekarz.
Mój przykład w Pythonie: rozpoznawanie cyfr w 25 linijkach
Żeby pokazać, jak to wygląda w praktyce, napisałem najprostszy możliwy przykład uczenia nadzorowanego. Biblioteka scikit-learn ma wbudowany zbiór 1797 obrazków odręcznie pisanych cyfr o rozdzielczości 8 na 8 pikseli, każdy z poprawną odpowiedzią. Model uczy się na 75 procentach obrazków, a sprawdzam go na pozostałych 25 procentach, których wcześniej nie widział. Dla porównania dodałem „model”, który zawsze odpowiada najczęstszą cyfrą.
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.dummy import DummyClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
X, y = load_digits(return_X_y=True) # 1797 obrazków 8x8 + poprawne odpowiedzi
print("Przykładów:", len(X), "| cech na obrazek:", X.shape[1])
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.25, random_state=42, stratify=y)
zgadywacz = DummyClassifier(strategy="most_frequent").fit(X_train, y_train)
print("Trafność 'zawsze ta sama cyfra':",
round(accuracy_score(y_test, zgadywacz.predict(X_test)), 3))
model = RandomForestClassifier(n_estimators=200, random_state=42).fit(X_train, y_train)
pred = model.predict(X_test)
print("Trafność lasu losowego:", round(accuracy_score(y_test, pred), 3))
print("Pomyłek na", len(y_test), "obrazkach testowych:", int((pred != y_test).sum()))
cm = confusion_matrix(y_test, pred)
pary = [(cm[i, j], i, j) for i in range(10) for j in range(10) if i != j and cm[i, j] > 0]
for n, i, j in sorted(pary, reverse=True)[:3]:
print(f"Najczęstsza pomyłka: {i} wzięte za {j} - {n} raz(y)")Uruchomiłem to 4 października 2026 na Windows 11, Python 3.13 i scikit-learn 1.9.0 (instalacja: pip install scikit-learn). Wynik, skopiowany z konsoli:
Przykładów: 1797 | cech na obrazek: 64
Trafność 'zawsze ta sama cyfra': 0.102
Trafność lasu losowego: 0.967
Pomyłek na 450 obrazkach testowych: 15
Najczęstsza pomyłka: 8 wzięte za 1 - 3 raz(y)
Najczęstsza pomyłka: 5 wzięte za 9 - 2 raz(y)
Najczęstsza pomyłka: 0 wzięte za 4 - 2 raz(y)Co z tego wynika:
- Las losowy trafił w 96,7 procent przypadków, czyli pomylił się 15 razy na 450 obrazków. Cały skrypt, razem z wczytaniem bibliotek, wykonał się w 2,5 sekundy na procesorze, bez udziału karty graficznej.
- Zgadywacz miał 10,2 procent, czyli tyle, ile daje losowanie jednej z dziesięciu cyfr. To jest punkt odniesienia: wynik modelu ma sens tylko w porównaniu z najgłupszym możliwym rozwiązaniem.
- Pomyłki są „ludzkie”: ósemka wzięta za jedynkę, piątka za dziewiątkę. Przy 64 pikselach część cyfr jest naprawdę niejednoznaczna.
- Parametr
random_state=42ustala losowość podziału i lasu. Z inną wartością wynik będzie minimalnie inny, ale w tym samym rejonie.
Ten sam schemat (dane, podział na trening i test, model, ocena) zostaje w każdym projekcie. Zmieniają się dane i rodzaj modelu.
Gdzie uczenie maszynowe zawodzi
- Model dziedziczy uprzedzenia danych. Jeśli w historycznych decyzjach kredytowych była nierówność, model nauczy się jej i będzie ją powtarzał, tyle że szybciej i pod pozorem obiektywności liczby.
- Wysoka trafność bywa złudzeniem. Przy zjawisku występującym raz na tysiąc przypadków model, który zawsze odpowiada „nie ma”, osiąga 99,9 procent trafności i jest całkowicie bezużyteczny. Dlatego przy rzadkich zdarzeniach patrzy się na precyzję i czułość, a nie samą trafność. Mój zgadywacz z przykładu to ta sama pułapka w łagodnej wersji.
- Świat się zmienia, model nie. Model wytrenowany na danych sprzed dwóch lat po cichu traci skuteczność, gdy zmieniają się zachowania klientów albo rynek. Nic tego nie sygnalizuje samo z siebie, trzeba to mierzyć.
- Nie wiadomo, dlaczego. Przy decyzjach dotyczących ludzi, jak kredyt czy rekrutacja, przepisy (w tym unijny AI Act) coraz częściej wymagają wyjaśnienia wyniku. To bywa trudniejsze niż zbudowanie samego modelu.
- Przeuczenie. Model, który „wkuł” dane treningowe na pamięć, świetnie wypada na nich i słabo na nowych. Dlatego test zawsze robi się na danych odłożonych na bok.
Jak zacząć uczyć się uczenia maszynowego
Nie od matematyki, tylko od danych i jednego działającego przykładu, takiego jak ten wyżej. Jakość danych decyduje o wyniku bardziej niż wybór metody, a większość pracy to porządkowanie, nie modelowanie. Kolejność, którą polecam:
- Pojęcia bez kodu: darmowy kurs Elements of AI Uniwersytetu Helsińskiego, dostępny po polsku od 2020 roku. Pierwsza część nie wymaga programowania. Do pojęć przyda się też mój słownik AI.
- Podstawy Pythona: zmienne, listy, pętle, funkcje. Wystarczy kilka tygodni.
- Pierwszy model: darmowy kurs Intro to Machine Learning na Kaggle (około 3 godzin, po angielsku) uczy scikit-learn i pandas w notatnikach w przeglądarce, bez instalowania czegokolwiek.
- Teoria: Machine Learning Specialization Andrew Ng (DeepLearning.AI, po angielsku). Na Coursera od 2025 roku za darmo można obejrzeć tylko pierwszy moduł kursu, pełny dostęp jest płatny.
- Własny projekt: weź arkusz z czymś, co znasz (wydatki, wyniki sportowe, ceny mieszkań z ogłoszeń) i spróbuj przewidzieć jedną kolumnę na podstawie pozostałych.
Biblioteki, które warto znać:
| Biblioteka | Do czego | Dla kogo |
|---|---|---|
| scikit-learn | klasyczne ML: klasyfikacja, regresja, klasteryzacja, ocena modeli | start, dane w tabelach |
| pandas | wczytywanie i porządkowanie danych w tabelach | każdy |
| XGBoost, LightGBM | boosting gradientowy, najlepsze wyniki na danych tabelarycznych | średniozaawansowani |
| PyTorch | sieci neuronowe i uczenie głębokie | obraz, dźwięk, tekst |
| Hugging Face Transformers | gotowe modele językowe i wizyjne do pobrania i dostrojenia | praca z modelami językowymi |
Do eksperymentów bez instalacji przydadzą się notatniki Google Colab i Kaggle, a do pisania kodu z pomocą AI - Google AI Studio albo Replit. Jeśli myślisz o studiach, porównałem kierunki w tekście studia AI w Polsce.
Najczęstsze pytania
Co to jest uczenie maszynowe w prostych słowach?
To metoda, w której komputer uczy się z przykładów zamiast wykonywać reguły napisane przez programistę. Pokazujesz mu dane z odpowiedziami, a on buduje model, który odpowiada na nowe, podobne pytania.
Czym różni się uczenie maszynowe od sztucznej inteligencji?
Sztuczna inteligencja to cała dziedzina, a uczenie maszynowe to jej najważniejsza dziś część. Każde ML jest AI, ale nie każde AI jest ML: program grający w szachy według ręcznie zapisanych reguł to AI bez uczenia maszynowego.
Czym jest uczenie głębokie (deep learning)?
To odmiana uczenia maszynowego oparta na sieciach neuronowych z wieloma warstwami. Sprawdza się przy obrazach, dźwięku i tekście, ale potrzebuje dużo danych i mocy obliczeniowej. Na nim zbudowane są modele językowe i generatory obrazów.
Czy do uczenia maszynowego trzeba znać matematykę?
Do używania gotowych bibliotek wystarczy matematyka z liceum: średnia, procent, wykres funkcji. Do rozumienia, dlaczego modele działają, i do pracy badawczej potrzebna jest algebra liniowa, rachunek prawdopodobieństwa i podstawy analizy.
Jaki język programowania wybrać do uczenia maszynowego?
Python. Ma najwięcej bibliotek (scikit-learn, PyTorch, pandas), kursów i przykładów. R jest popularny w statystyce, a Julia w obliczeniach naukowych, ale na start nie ma powodu wybierać inaczej.
Czy ChatGPT to uczenie maszynowe?
Tak. ChatGPT działa na dużym modelu językowym, a ten powstał w trzech etapach uczenia maszynowego: samonadzorowanym pretreningu na tekstach, nadzorowanym dostrajaniu na przykładach rozmów i uczeniu ze wzmocnieniem na ocenach odpowiedzi. Szczegóły w tekście LLM: co to jest.
Ile czasu zajmuje nauka uczenia maszynowego?
Pierwszy działający model zbudujesz w jedno popołudnie, korzystając z przykładu wyżej albo kursu Kaggle. Poziom pozwalający samodzielnie prowadzić prosty projekt na własnych danych to zwykle kilka miesięcy regularnej nauki, przy założeniu podstaw Pythona.
Czytasz Promptowego częściej? Dodaj go do preferowanych źródeł w Google, a nowe teksty będą wyżej w Twoich wynikach.
Źródła i data sprawdzenia
Sprawdzone 4 października 2026. Kod uruchomiłem lokalnie (Python 3.13, scikit-learn 1.9.0).
- scikit-learn: zbiór load_digits i dokumentacja lasów losowych
- Elements of AI po polsku
- Kaggle Learn: Intro to Machine Learning
- DeepLearning.AI: Machine Learning Specialization
- Coursera: zmiana trybu audytu na podgląd pierwszego modułu
Przegląd najnowszych osiągnięć w dziedzinie uczenia maszynowegoArtykuły
Robot uczy się nowego zadania z jednego filmiku. To zmienia sens programowania maszynNewsy
Narzędzia AI dla programistów, twórców i firm: przewodniki i ceny w złotychArtykułyCały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →- przelomowy.plNeurIPS 2026 w trzech miastach naraz. Przed startem 178 prac odpadło przez detektor tekstu AI
- generatornia.plList do świętego mikołaja szablon AI: wzory i prompty do druku
- jutropis.plUstawa o AI podpisana. Skargi do KRiBSI i testy dla firm
- przewagi.plAgent AI w małej firmie w 2026: co zrobi sam, ile kosztuje (od 14 900 zł netto) i gdzie potrzebny jest człowiek
