Strona główna AI i ML Konwolucyjna sieć neuronowa

🧠 Konwolucyjna sieć neuronowa

Zobacz warstwy CNN krok po kroku — filtry splotowe, aktywacje ReLU i max-pooling. Patrz, jak powstają mapy cech, gdy filtr skanuje obraz 8×8.

AI i ML2DŁatwy60 FPS
convolutional-nn ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O wizualizatorze konwolucyjnej sieci neuronowej

Ta symulacja przeprowadza mały obraz przez CNN warstwa po warstwie. Wejście 8×8 pikseli jest poddawane splotowi z jądrem 3×3: w każdej pozycji filtr jest mnożony element po elemencie z leżącym pod nim fragmentem i sumowany, tworząc mapę cech. Ta mapa przechodzi następnie przez aktywację ReLU, f(x)=max(0,x), krok max-poolingu 2×2, drugi splot i końcową aktywację, odzwierciedlając sposób, w jaki prawdziwe sieci CNN budują cechy hierarchicznie.

Elementy sterujące pozwalają wybrać wzór wejściowy (cyfra 7, znak X, koło, krawędź lub szachownica), wybrać jądro warstwy 1 (krawędź pozioma, krawędź pionowa, wyostrzenie lub rozmycie), ustawić prędkość skanowania i przechodzić między zakładkami widoku warstwy (Input, Conv1, ReLU, Pool, Conv2, Output). Sieci CNN zbudowane dokładnie na tych operacjach napędzają klasyfikację obrazów, wykrywanie twarzy, analizę skanów medycznych oraz systemy widzenia w samochodach autonomicznych.

Najczęściej zadawane pytania

Czym jest konwolucyjna sieć neuronowa?

Konwolucyjna sieć neuronowa (CNN) to model głębokiego uczenia zaprojektowany dla danych o strukturze siatki, takich jak obrazy. Zamiast łączyć każdy piksel z każdym neuronem, przesuwa małe, uczące się filtry po wejściu, aby wykryć lokalne wzorce, takie jak krawędzie i tekstury, a następnie układa je w głębsze, bardziej abstrakcyjne cechy.

Jak działa krok splotu w tej symulacji?

Jądro 3×3 jest ustawiane nad każdym pikselem wejścia 8×8. Dziewięć wag jądra mnoży się przez dziewięć pikseli pod nim, a iloczyny sumuje się w jedną wartość wyjściową. Powtórzenie tego dla całego obrazu tworzy mapę cech surowych sum ważonych, które mogą być ujemne tam, gdzie jądro krawędziowe widzi odwróconą zmianę. To właśnie te surowe wartości przetwarza ReLU; tylko odcień szarości pokazany na ekranie jest przeskalowany do zakresu 0–1 dla wizualizacji.

Co właściwie robią cztery przyciski filtrów?

Każdy przycisk wczytuje inne jądro 3×3. Edge H wykrywa poziome zmiany jasności, Edge V — pionowe, Sharpen wyostrza drobne detale, odejmując lokalną średnią od piksela centralnego, a Blur to filtr uśredniający sąsiadujące piksele, wygładzający obraz.

Dlaczego potrzebna jest aktywacja ReLU?

ReLU stosuje f(x)=max(0,x), zerując każdą wartość ujemną. Wprowadza to nieliniowość, która pozwala sieci reprezentować złożone, krzywoliniowe granice decyzyjne zamiast tylko liniowych kombinacji pikseli. Bez nieliniowej aktywacji ułożenie wielu warstw sprowadzałoby się do pojedynczej transformacji liniowej.

Co osiąga max pooling?

Warstwa max-poolingu 2×2 wybiera największą wartość w każdym nienakładającym się oknie 2×2, zmniejszając o połowę szerokość i wysokość. Zachowuje to najsilniejsze aktywacje, redukuje obliczenia i nadaje sieci pewien stopień niezmienniczości na przesunięcie, dzięki czemu cecha jest rozpoznawana nawet przy przesunięciu o piksel lub dwa.

Czy filtry w tym demo są wyuczone, czy stałe?

Są to stałe, ręcznie dobrane jądra, użyte, aby matematyka była widoczna. W wytrenowanej sieci CNN wagi jądra są uczone automatycznie poprzez propagację wsteczną i spadek gradientu, więc sieć odkrywa filtry najlepiej minimalizujące jej stratę na danych treningowych, zamiast polegać na klasycznych jądrach krawędziowych czy rozmywających.

Dlaczego mapa cech kurczy się po poolingu?

Pooling łączy cztery sąsiadujące wartości w jedną, więc mapa 8×8 staje się mapą 4×4. Zmniejszanie wymiarów przestrzennych przy jednoczesnym zwiększaniu liczby kanałów cech to podstawowy wzorzec CNN: głębsze warstwy widzą mniejszą, bardziej zgrubną siatkę, ale reprezentują bogatsze, wyższego poziomu pojęcia, takie jak rogi i krzywizny.

Co oznaczają statystyki takie jak Scan X i Scan Y?

Scan X i Scan Y pokazują bieżącą kolumnę i wiersz jądra, gdy przesuwa się ono po wejściu podczas animacji Conv1. Kernel Weights to 9 — dziewięć liczb pojedynczego jądra 3×3 użytego w tym demo (ponownie wykorzystywanego w Conv1 i Conv2, bez obciążeń i bez treningu), a Feature Maps to 1, ponieważ jedno jądro tworzy dokładnie jedną mapę na warstwę. Produkcyjna sieć CNN używałaby banku wielu jąder na warstwę i tworzyłaby wiele map.

Czy to dokładna reprezentacja prawdziwej sieci CNN?

Operacje są wierne: prawdziwy splot, ReLU, max pooling i drugi splot w poprawnej kolejności. Jest to uproszczone dla jasności — pojedynczy mały obraz, ręcznie ustawione jądra, znormalizowane wartości wyświetlania i brak faktycznego treningu — więc uczy mechaniki, a nie odwzorowuje skali sieci produkcyjnej.

Gdzie w praktyce wykorzystuje się sieci CNN?

CNN leżą u podstaw większości współczesnego widzenia komputerowego. Klasyfikują obiekty na zdjęciach, odczytują odręczne cyfry, wykrywają guzy na skanach medycznych, rozpoznają twarze, zasilają filtry rzeczywistości rozszerzonej i systemy percepcji pojazdów autonomicznych. Te same bloki splotu, aktywacji i poolingu pokazane tutaj skalują się do tych zastosowań.

Podobne symulacje