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:
- Rozpoznawanie obrazów i klasyfikacja obiektów (ImageNet, CIFAR‑10).
- Detekcja i segmentacja obiektów (YOLO, Mask R‑CNN).
- Analiza wideo (rozpoznawanie akcji, śledzenie obiektów).
- Rozpoznawanie znaków (OCR) i analiza dokumentów.
- Medycyna – wykrywanie zmian chorobowych w tomografii komputerowej i rezonansie magnetycznym.
- Przetwarzanie sygnałów 1‑D (np. rozpoznawanie mowy) – przy użyciu jednowymiarowych konwolucji.
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
- Y. LeCun, L. Bottou, Y. Bengio, P. Haffner, „Gradient-based learning applied to document recognition”, Proceedings of the IEEE, 1998.
- A. Krizhevsky, I. Sutskever, G. Hinton, „ImageNet Classification with Deep Convolutional Neural Networks”, Advances in Neural Information Processing Systems, 2012.
- K. Simonyan, A. Zisserman, „Very Deep Convolutional Networks for Large-Scale Image Recognition”, ICLR, 2015.
- 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.