🎯 Definicja
Deep Learning (uczenie głębokie) to poddziedzina uczenia maszynowego skoncentrowana na wykorzystaniu wielowarstwowych sieci neuronowych, które same uczą się reprezentacji danych i wyciągania wzorców. To kluczowa technologia stojąca za przełomowymi osiągnięciami w dziedzinach takich jak rozpoznawanie obrazów, przetwarzanie języka naturalnego, gry, medycyna i wiele innych.
🔑 Kluczowe pojęcia i mechanizmy
🔎 Model
To algorytm uczący się na danych, przewidujący lub klasyfikujący nowe przypadki. W DL model przyjmuje wejście (np. obraz lub tekst), przetwarza je przez warstwy, używając wag i aktywacji, i generuje wynik.
⚖️ Wagi
Parametry modelu, które decydują o wpływie danych wejściowych na wynik. Są dostosowywane w trakcie uczenia, aby zmniejszyć błąd modelu.
🔁 Struktura działania
- Dane wejściowe → przechodzą przez warstwy modelu → wynik
- Porównanie wyniku z prawdziwą etykietą → obliczenie błędu (funkcja strat)
- Obliczanie gradientów → aktualizacja wag (gradient descent)
- Powtarzanie tego cyklu = nauka
📉 Funkcja strat (loss function)
Mierzy różnicę między przewidywaniami modelu a rzeczywistymi wartościami. Pomaga kierować uczenie się modelu – im mniejsza strata, tym lepszy model.
🧠 Optymalizacja
Proces aktualizacji wag modelu, np. za pomocą algorytmu spadku gradientu. Dzięki temu model „uczy się” z danych.
💪 Model wytrenowany
Np. ResNet18 – model wytrenowany na dużym zbiorze danych (ImageNet), potrafiący rozpoznawać podstawowe cechy obrazu. Można go użyć jako punktu startowego (transfer learning).
🔧 Fine-Tuning
Dostrajanie modelu do konkretnego zadania, bazując na istniejącej architekturze i wadze. Wykorzystywane przy klasyfikacji niestandardowej, segmentacji itp.
🎯 Przewidywanie
Użycie wytrenowanego i (ew. dowolnie) dostrojonego modelu do klasyfikacji nowych danych (np. nowych obrazów ptaków za pomocą .predict).
📚 Praktyczne elementy z kursu fastai
| Element | Opis |
|---|---|
| TIMM | Biblioteka z setkami modeli vision pre-trained. Fastai integruje ją płynnie. |
| Segmentacja obrazu | Przypisanie etykiety do każdego piksela (semantic segmentation) |
| SegmentationDataLoaders | Specjalny loader do danych segmentacyjnych (obrazy + maski klas) |
| DataBlock & show_batch | Sposób przygotowania danych do treningu i ich inspekcji |
Augmentacje (Resize, squish, tta) | Kluczowe dla generalizacji — zmieniają obrazy podczas treningu |
| Gradio, huggingface spaces | Sposoby na szybki deployment modelu na www |
| Rozmiar obrazu vs batch size | Fundamentalna decyzja przy trenowaniu na GPU |
| fastkaggle | Szybki interfejs do Kaggle – pobieranie danych, przesyłanie modeli |
💡 Dodatkowe pojęcia i praktyki
- Modele przed erą DL (np. OneR, SVM, RF) wymagały ręcznego inżynierowania cech.
- Głębokie sieci (np. CNN, RNN, Transformer) same uczą się reprezentacji.
- Implementacja: PyTorch, TensorFlow, fastai.
- Transfer learning powszechny w CV – przyspiesza i zwiększa skuteczność modeli.
🧪 Przykład flow pracy z modelem (vision)
- Pobierz dane (np. przez DuckDuckGo lub ggd).
- Oczyść dane (usuń uszkodzone obrazy).
- Użyj
DataBlock→DataLoaders→show_batch. - Trenuj model (np.
cnn_learner) →fit_one_cycle. - Wykonaj
lr_find,fine_tune. - Eksportuj model (
export.pkl) i buduj interfejs (gr.Interface).
📌 Źródła
- https://course.fast.ai
- https://github.com/rwightman/pytorch-image-models (TIMM)
- https://docs.fast.ai
- https://huggingface.co/docs
- https://paperswithcode.com
👽 Brudnopis
- DL = automatyczne „feature engineering” + przygotowanie reprezentacji
- TIMM = Złoty katalog CV modeli pretrained
- fastai = mniej kodu, a więcej gotowych potężnych narzędzi (API wysokiego poziomu)
- Segmentacja = „klasyfikacja pikseli”
- Show_batch = szybki feedback na jakość danych
- tfms = transformacje → augmentacje
- Notebook + interfejs = szybki prototyp modelu dostępny online