Uczenie transferowe

Metoda, w której model wytrenowany do jednego zadania jest wykorzystywany jako punkt startowy dla innego. Pozwala oszczędzić dane i czas, korzystając z wcześniej nauczonych cech.

Uczenie transferowe (transfer learning) to technika, w której model nauczony jednego zadania wykorzystujesz jako punkt startowy do innego, pokrewnego problemu. Zamiast trenować sieć od zera na losowych wagach, bierzesz model, który już „widział” miliony obrazów albo miliardy zdań, i dostrajasz go do swojego, zwykle znacznie mniejszego, zbioru danych. Oszczędzasz w ten sposób dane, czas i prąd, bo nie musisz od nowa uczyć modelu rozpoznawania krawędzi, tekstur czy gramatyki — to już ma „w głowie”.

Jak to działa

Sieci neuronowe uczą się warstwami: wcześniejsze warstwy wyłapują cechy ogólne (krawędzie, kształty, podstawowe wzorce języka), a późniejsze — coraz bardziej wyspecjalizowane pod konkretne zadanie. W uczeniu transferowym zamrażasz (ang. freeze) część warstw ogólnych, żeby nie zapomniały tego, czego się nauczyły, i trenujesz tylko górne warstwy pod swój problem. To podejście nazywa się feature extraction. Druga opcja to fine-tuning — odmrażasz całość albo większość i dotrenowujesz na małym learning rate, żeby delikatnie dostroić wagi bez ich rozwalenia.

Najbardziej zyskujesz, gdy masz mało danych i ograniczony budżet na GPU. Wytrenowanie dobrego modelu wizyjnego od zera to setki tysięcy obrazów; z pretrenowanym backbone’em wystarczy czasem kilkaset zdjęć na klasę.

Przykład z praktyki

Chcesz klasyfikator, który odróżni zdrowe liście od chorych. W PyTorch bierzesz torchvision.models.resnet50(weights="IMAGENET1K_V2"), podmieniasz ostatnią warstwę na swoją liczbę klas (model.fc = nn.Linear(2048, 2)), zamrażasz resztę i trenujesz tylko głowicę. W NLP analogicznie — odpalasz AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") z biblioteki Hugging Face Transformers i dostrajasz na własnych recenzjach. Kilka epok na laptopie zamiast tygodni na klastrze.

Częste błędy i mity

  • Za duży learning rate przy fine-tuningu — model „zapomina” wiedzę z pretreningu (zjawisko catastrophic forgetting). Zaczynaj od małych wartości, np. 2e-5.
  • Domena za daleko od źródła — model trenowany na zdjęciach kotów słabo przeniesie się na obrazy z rezonansu magnetycznego. Im bliżej domena źródłowa do docelowej, tym lepiej.
  • Mit, że to zawsze wygrywa — przy dużej ilości własnych danych trening od zera bywa porównywalny albo lepszy.
  • Zapomniana normalizacja danych wejściowych tak samo jak w pretreningu — to klasyczny cichy błąd psujący wyniki.

Pojęcia powiązane: fine-tuning, feature extraction, modele pretrenowane (pretrained), domain adaptation, few-shot learning, catastrophic forgetting, foundation models.