encyklopedia.run.place

CNN – sieć neuronowa splotowa (Convolutional Neural Network)

CNN (ang. Convolutional Neural Network) to rodzaj sieci neuronowej zaprojektowany specjalnie do przetwarzania danych o strukturze siatki, najczęściej obrazów cyfrowych. Charakteryzuje się warstwami splotowymi (operacji splotu), które automatycznie uczą się lokalnych cech wejściowych, oraz warstwami spłaszczającymi i w pełni połączonymi, co umożliwia klasyfikację lub regresję.

Historia

Pomysł wykorzystania splotów w architekturach neuronowych sięga lat 1970, ale pierwsza praktyczna implementacja pojawiła się w pracach Yanna LeCuna w 1998 roku – sieć LeNet‑5, przeznaczona do rozpoznawania ręcznie pisanych cyfr w projekcie ZIP Code. Przełomowy sukces nastąpił w 2012 roku dzięki architekturze AlexNet, wygrywającej konkurs ImageNet i otwierającej erę szerokiego zastosowania uczenia głębokiego w widzeniu komputerowym.

Podstawowa budowa

Typowa architektura CNN składa się z następujących elementów:

  • Warstwa splotowa (convolutional layer) – stosuje zestaw filtrów (jąder splotowych), które wyodrębniają cechy przestrzenne. Każdy filtr jest uczony w trakcie procesu backpropagation.
  • Warstwa aktywacji – najczęściej używa się funkcji ReLU lub jej wariantów (Leaky ReLU, ELU).
  • Warstwa podpróbkowania (pooling layer) – zmniejsza wymiarowość map cech, najczęściej poprzez max‑pooling lub average‑pooling.
  • Warstwa normalizacji – np. Batch Normalization, stabilizująca uczenie.
  • Warstwa w pełni połączona (fully connected) – na końcu sieci, służy do podjęcia decyzji klasyfikacyjnej lub regresyjnej.
  • Warstwa wyjściowa – zazwyczaj zawiera softmax w zadaniach klasyfikacji wieloklasowej lub funkcję liniową w regresji.

Kluczowe pojęcia

Filtr (jądro splotowe)
Małe macierze parametrów (np. 3 × 3, 5 × 5), które konwoluuje się z wejściem, generując mapę cech.
Współczynnik przesunięcia (stride)
Określa krok, z jakim filtr przemieszcza się po macierzy wejściowej.
Padding
Dopełnianie obrazu zerami w celu zachowania wymiarów po splotach.

Zastosowania

Sieci splotowe znalazły zastosowanie w wielu dziedzinach, w tym:

Popularne architektury

W ciągu ostatniej dekady opracowano wiele wariantów CNN:

  • AlexNet – pierwsza głęboka sieć, która przełamała barierę ImageNet w 2012 r.
  • VGG – sieć charakteryzująca się jedynie małymi filtrami 3 × 3.
  • GoogLeNet (Inception) – wprowadził moduły Inception, łączące filtry o różnych rozmiarach.
  • ResNet – wprowadził połączenia zwrotne (skip connections), umożliwiając budowę setek warstw.
  • DenseNet – gęste połączenia między warstwami, poprawiające przepływ gradientu.
  • MobileNet – zoptymalizowana pod kątem urządzeń mobilnych poprzez separowalne sploty.

Trening i optymalizacja

Trening CNN wymaga dużych zbiorów danych oraz znaczących zasobów obliczeniowych (GPU/TPU). Typowe techniki przyspieszające i stabilizujące proces to:

  • Regularizacja: Dropout, L2.
  • Zaawansowane optymalizatory: Adam, RMSprop, SGD z momentum.
  • Wstępne uczenie (transfer learning) – wykorzystanie wstępnie wytrenowanych modeli (np. ImageNet‑pretrained) i dostosowanie ich do nowego zadania.
  • Augmentacja danych: obrót, skalowanie, odbicia, zmiany jasności – zwiększają różnorodność danych treningowych.

Wyzwania i ograniczenia

Mimo sukcesów, CNN napotykają na kilka problemów:

  • Potrzeba dużych zbiorów danych oznakowanych.
  • Wysokie zapotrzebowanie na moc obliczeniową i pamięć.
  • Trudności w interpretacji – tzw. czarna skrzynka (Explainable AI).
  • Wrażliwość na drobne zmiany w danych (np. przykłady adwersarialne).

Przyszłość

Badania skupiają się na zwiększaniu efektywności parametrów (NAS), łączeniu splotów z innymi mechanizmami (np. transformery) oraz rozwijaniu hybrydowych modeli łączących sieci neuronowe i reguły logiki rozmytej. Przewiduje się również rosnącą rolę CNN w dziedzinach robotyki, systemów autonomicznych oraz w medycynie precyzyjnej.

Literatura

  1. Y. LeCun, L. Bottou, Y. Bengio, P. Haffner, „Gradient-based learning applied to document recognition”, Proceedings of the IEEE, 1998.
  2. A. Krizhevsky, I. Sutskever, G. Hinton, „ImageNet Classification with Deep Convolutional Neural Networks”, Advances in Neural Information Processing Systems, 2012.
  3. K. Simonyan, A. Zisserman, „Very Deep Convolutional Networks for Large-Scale Image Recognition”, ICLR, 2015.
  4. K. He, X. Zhang, S. Ren, J. Sun, „Deep Residual Learning for Image Recognition”, CVPR, 2016.

Artykuł przybliża podstawy i znaczenie CNN jako kluczowego elementu współczesnej sztucznej inteligencji.