ResNet

Wprowadzenie

ResNet (Sieci rezydualne) — Jest to rodzaj głębokich sieci neuronowych, które zrewolucjonizowały dziedzinę wizji komputerowej i głębokiego uczenia. Ich kluczową innowacją jest wprowadzenie tzw. połączeń rezydualnych lub skrótowych, które pozwalają na efektywne szkolenie bardzo głębokich architektur, liczących nawet setki warstw, bez problemów z zanikającym gradientem czy degradacją wydajności. Tradycyjne głębokie sieci konwolucyjne napotykały trudności w szkoleniu, gdy liczba warstw rosła. ResNet pokonał te bariery, umożliwiając budowanie modeli o niespotykanej dotąd głębi, co znacząco przyczyniło się do poprawy dokładności w zadaniach takich jak klasyfikacja obrazów, detekcja obiektów czy segmentacja semantyczna.

Jak działają ResNet?

Działanie opiera się na koncepcji bloków rezydualnych. Zamiast uczyć warstw bezpośrednio mapowania wejścia na wyjście, blok rezydualny uczy się funkcji rezydualnej, czyli różnicy między wyjściem a wejściem bloku. Odbywa się to poprzez dodanie bezpośredniego połączenia (tzw. shortcut connection) omijającego jedną lub więcej warstw z bloku do jego wyjścia. Matematycznie, jeśli wejście do bloku to X, a funkcja, której uczymy się przez warstwy bloku to F(X), to wyjście z bloku rezydualnego wynosi funkcja opisana słownie. W tradycyjnej sieci, wyjście byłoby po prostu F(X). Dodanie X do F(X) ułatwia uczenie tożsamości (gdy F(X) zmierza do zera), co jest łatwiejsze do osiągnięcia niż uczenie złożonej funkcji tożsamościowej funkcja opisana słownie. Ta mechanika umożliwia efektywne propagowanie gradientów wstecz przez bardzo głębokie sieci, zapobiegając ich zanikaniu i umożliwiając stabilne uczenie. Pozwala to na dodawanie wielu warstw bez obawy o spadek wydajności modelu, a nawet zyskiwanie na dokładności wraz ze wzrostem głębokości.

Główne zalety i charakterystyka

Główną zaletą jest zdolność do efektywnego szkolenia bardzo głębokich sieci neuronowych, co prowadzi do znaczącego wzrostu dokładności w zadaniach wizji komputerowej. Rozwiązuje problem zanikającego i eksplodującego gradientu, który dotykał wcześniejsze architektury. Umożliwia to budowanie modeli o setkach, a nawet tysiącach warstw, które są stabilne i osiągają lepsze wyniki. Dodatkowo, modele te są relatywnie łatwe do optymalizacji i mogą być stosowane jako potężne ekstrakty cech w różnych aplikacjach, dzięki czemu stały się standardem w wielu konkursach i badaniach. Ich modułowa budowa pozwala na łatwe skalowanie i adaptację do specyficznych potrzeb.

Zastosowania w praktyce

  • Klasyfikacja obrazów w medycynie do diagnozowania chorób na podstawie zdjęć rentgenowskich czy rezonansu magnetycznego.
  • Detekcja obiektów w systemach autonomicznej jazdy do identyfikacji pieszych, pojazdów i znaków drogowych.
  • Segmentacja semantyczna obrazów satelitarnych w rolnictwie do monitorowania upraw i oceny stanu gleby.
  • Rozpoznawanie twarzy w systemach bezpieczeństwa i weryfikacji tożsamości.
  • Analiza wideo dla monitoringu miejskiego, np. detekcja nietypowych zachowań czy zliczanie tłumu.
  • Generowanie opisów obrazów, gdzie ResNet służy jako enkoder cech wizualnych.

Porównanie z innymi strukturami danych

W porównaniu do wcześniejszych architektur konwolucyjnych, takich jak VGG czy AlexNet, ResNet wprowadził fundamentalną zmianę w sposobie projektowania głębokich sieci. Podczas gdy VGG skupiało się na zwiększaniu głębokości poprzez stacked convolution layers, co prowadziło do problemów z gradientami, ResNet aktywnie rozwiązał ten problem dzięki połączeniom rezydualnym. To pozwoliło ResNetom osiągnąć znacznie większą głębokość i, co za tym idzie, wyższą dokładność przy jednoczesnym zachowaniu stabilności uczenia. W stosunku do Inception Networks (np. GoogLeNet), które koncentrowały się na efektywnym wykorzystaniu zasobów obliczeniowych poprzez moduły Inception z wieloma rozmiarami filtrów, ResNet skupił się na głębokości i propagacji gradientu. Chociaż Inception również osiągało dobre wyniki, ResNet przesunął granice głębokości sieci, stając się często punktem wyjścia dla dalszych badań nad głębokimi architekturami.

Najlepsze praktyki (2026)

  • Stosowanie pre-trenowanych modeli ResNet (np. ResNet-50, ResNet-101) jako bazowych ekstrakatorów cech w zadaniach transfer learningu, co znacząco przyspiesza szkolenie i poprawia wyniki.
  • Modyfikacja głowy klasyfikatora ResNet dla specyficznych zadań, np. dodanie warstw do detekcji obiektów w medycynie.
  • Wykorzystywanie różnych wariantów ResNet, takich jak ResNeXt czy Wide ResNet, które oferują lepsze kompromisy między wydajnością a złożonością dla konkretnych problemów.
  • Dostosowywanie hiperparametrów, takich jak szybkość uczenia i harmonogramy spadku szybkości uczenia, aby zoptymalizować szkolenie głębokich modeli ResNet.
  • Implementacja technik regularyzacji, takich jak dropout czy weight decay, w celu zapobiegania przeuczeniu w bardzo głębokich sieciach ResNet.

Typowe błędy i pułapki

  • Nieadekwatne skalowanie wejść, prowadzące do niestabilnego uczenia lub słabej generalizacji. Obrazy muszą być odpowiednio przetworzone (normalizacja, standaryzacja) zgodnie z wymaganiami modelu.
  • Ignorowanie rozmiaru bloku rezydualnego, co może prowadzić do zbyt małej lub zbyt dużej złożoności i nieefektywnego wykorzystania zasobów obliczeniowych.
  • Niewłaściwe użycie połączeń skrótowych, np. niezgodność wymiarów tensora przy dodawaniu, co wymaga zastosowania projekcji lub filtracji w połączeniu skrótowym.
  • Przeuczenie modelu, zwłaszcza przy małych zbiorach danych, co można zminimalizować przez transfer learning, zwiększenie zbioru danych lub techniki regularyzacji.
  • Zbyt agresywne spadki szybkości uczenia, które mogą uniemożliwić modelowi konwergencję do optymalnego rozwiązania.