Konwolucyjne sieci neuronowe (CNN) to rodzaj modelu głębokiego uczenia się, który był szeroko stosowany w różnych zadaniach przetwarzania obrazu komputerowego, takich jak klasyfikacja obrazu, wykrywanie obiektów i segmentacja obrazu. W tej dziedzinie CNN okazały się bardzo skuteczne ze względu na ich zdolność do automatycznego uczenia się i wydobywania znaczących cech z obrazów.
Podstawowe kroki związane z budowaniem CNN można podsumować w następujący sposób:
1. Wstępne przetwarzanie: Pierwszym krokiem w budowaniu CNN jest wstępne przetwarzanie obrazów wejściowych. Zwykle obejmuje to zmianę rozmiaru obrazów do stałego rozmiaru, normalizację wartości pikseli i rozszerzenie zestawu danych, jeśli to konieczne. Przetwarzanie wstępne pomaga zmniejszyć złożoność obliczeniową i poprawić wydajność modelu.
2. Warstwy splotowe: Podstawowymi budulcami CNN są warstwy splotowe. Warstwy te wykonują operację splotu, która polega na przesunięciu małego filtra (znanego również jako jądro) na obraz wejściowy i obliczeniu iloczynu skalarnego między filtrem a lokalnym polem recepcyjnym obrazu. Wynikiem tej operacji jest mapa cech reprezentująca obecność pewnych cech w obrazie wejściowym. Wiele warstw konwolucyjnych można zestawiać razem, aby poznać złożone i hierarchiczne funkcje.
3. Funkcja aktywacji: Po operacji splotu funkcja aktywacji jest stosowana elementarnie do wyjścia każdej warstwy splotu. Najczęściej stosowaną funkcją aktywacji w CNN jest Rectified Linear Unit (ReLU), która wprowadza nieliniowość do modelu i pomaga w nauce złożonych wzorców.
4. Warstwy puli: Warstwy puli służą do zmniejszenia wymiarów przestrzennych map obiektów przy jednoczesnym zachowaniu najważniejszych informacji. Najczęściej używaną operacją puli jest max pooling, która wybiera maksymalną wartość z lokalnego sąsiedztwa na mapie obiektów. Łączenie pomaga zmniejszyć złożoność obliczeniową i uczynić model bardziej odpornym na małe translacje i zniekształcenia w obrazach wejściowych.
5. W pełni połączone warstwy: Po kilku warstwach splotowych i łączących mapy obiektów są spłaszczane do jednowymiarowego wektora i przepuszczane przez jedną lub więcej w pełni połączonych warstw. Warstwy te łączą każdy neuron w jednej warstwie z każdym neuronem w następnej warstwie, podobnie jak w tradycyjnej sieci neuronowej. W pełni połączone warstwy są odpowiedzialne za uczenie się funkcji wysokiego poziomu i dokonywanie ostatecznych prognoz.
6. Warstwa wyjściowa: Warstwa wyjściowa CNN zależy od konkretnego zadania. Na przykład w klasyfikacji obrazów warstwa wyjściowa zazwyczaj składa się z funkcji aktywacji softmax, która tworzy rozkład prawdopodobieństwa w różnych klasach. W przypadku wykrywania obiektów warstwa wyjściowa może składać się z wielu neuronów reprezentujących obecność lub brak różnych obiektów na obrazie.
7. Funkcja straty: Funkcja straty mierzy różnicę między przewidywanym wyjściem CNN a podstawowymi etykietami prawdy. Wybór funkcji straty zależy od konkretnego zadania. Na przykład w klasyfikacji obrazów powszechnie stosuje się utratę entropii krzyżowej.
8. Optymalizacja: Celem optymalizacji jest aktualizacja parametrów CNN w celu zminimalizowania funkcji strat. Zwykle odbywa się to za pomocą algorytmu optymalizacji, takiego jak stochastyczny spadek gradientu (SGD) lub Adam. Parametry CNN są aktualizowane iteracyjnie przez obliczenie gradientów funkcji strat w odniesieniu do parametrów i odpowiednie ich dostosowanie.
9. Trening i ocena: CNN jest szkolony na oznaczonym zbiorze danych, przesyłając obrazy wejściowe przez sieć i dostosowując parametry za pomocą algorytmu optymalizacji. Proces uczenia obejmuje wiele iteracji lub epok, gdzie każda epoka polega na przekazaniu całego zestawu danych przez sieć. Wydajność CNN jest oceniana na oddzielnym zestawie walidacyjnym w celu monitorowania jej zdolności do uogólniania. Po przeszkoleniu CNN można go wykorzystać do przewidywania nowych, niewidocznych obrazów.
Budowa konwolucyjnej sieci neuronowej obejmuje wstępne przetwarzanie obrazów wejściowych, zastosowanie warstw konwolucyjnych w celu wyodrębnienia cech, zastosowanie funkcji aktywacji w celu wprowadzenia nieliniowości, wykorzystanie warstw puli w celu zmniejszenia wymiarów przestrzennych, wykorzystanie w pełni połączonych warstw do nauki cech wysokiego poziomu, zdefiniowanie warstwy wyjściowej na podstawie zadania, wybierając odpowiednią funkcję strat, optymalizując parametry za pomocą algorytmu optymalizacyjnego oraz ucząc i oceniając CNN na oznakowanych danych.
Inne niedawne pytania i odpowiedzi dotyczące Konwolucyjne sieci neuronowe (CNN):
- Jaka jest rola w pełni połączonej warstwy w CNN?
- Jak przygotowujemy dane do trenowania modelu CNN?
- Jaki jest cel propagacji wstecznej w szkoleniu CNN?
- W jaki sposób łączenie pomaga w zmniejszeniu wymiarowości map obiektów?
Więcej pytań i odpowiedzi:
- Pole: Artificial Intelligence
- Program: EITC/AI/DLPTFK Głębokie Uczenie z Python, TensorFlow i Keras (przejdź do programu certyfikacji)
- Lekcja: Konwolucyjne sieci neuronowe (CNN) (przejdź do odpowiedniej lekcji)
- Wątek: Wprowadzenie do konwolucyjnych sieci neuronowych (CNN) (przejdź do powiązanego tematu)
- Przegląd egzaminów

