logo

VGG-16 | modelu CNN

Architektura konwolucyjnej sieci neuronowej (CNN) to model głębokiego uczenia się przeznaczony do przetwarzania ustrukturyzowanych danych przypominających siatkę, takich jak obrazy. Składa się z wielu warstw, w tym warstw splotowych, pulujących i w pełni połączonych. Sieci CNN są bardzo skuteczne w zadaniach takich jak klasyfikacja obrazu, wykrywanie obiektów i segmentacja obrazu ze względu na ich możliwości hierarchicznej ekstrakcji cech.

VGG-16

Model VGG-16 to architektura splotowej sieci neuronowej (CNN) zaproponowana przez Visual Geometry Group (VGG) na Uniwersytecie Oksfordzkim. Charakteryzuje się głębokością, na którą składa się 16 warstw, w tym 13 warstw splotowych i 3 warstwy w pełni połączone. VGG-16 słynie ze swojej prostoty i skuteczności, a także zdolności do osiągania dobrych wyników w różnych zadaniach związanych z wizją komputerową, w tym w klasyfikacji obrazów i rozpoznawaniu obiektów. Architektura modelu obejmuje stos warstw splotowych, po których następują warstwy o maksymalnym łączeniu, o stopniowo rosnącej głębokości. Taka konstrukcja umożliwia modelowi naukę skomplikowanych, hierarchicznych reprezentacji cech wizualnych, co prowadzi do solidnych i dokładnych przewidywań. Pomimo swojej prostoty w porównaniu z nowszymi architekturami, VGG-16 pozostaje popularnym wyborem w wielu zastosowaniach głębokiego uczenia się ze względu na swoją wszechstronność i doskonałą wydajność.



ImageNet Large Scale Visual Recognition Challenge (ILSVRC) to coroczny konkurs z zakresu widzenia komputerowego, w którym zespoły radzą sobie z zadaniami obejmującymi lokalizację obiektów i klasyfikację obrazów. VGG16, zaproponowany przez Karen Simonyan i Andrew Zissermana w 2014 roku, w obu zadaniach osiągnął czołowe miejsca, wykrywając obiekty z 200 klas i klasyfikując obrazy w 1000 kategorii.


co sprawia, że ​​komputer jest szybki

Architektura VGG-16



Ten model osiąga 92,7% w pierwszej piątce sprawdź dokładność zbioru danych ImageNet, który zawiera 14 milionów obrazów należących do 1000 klas.

Cel modelu VGG-16:

Zbiór danych ImageNet zawiera obrazy o stałym rozmiarze 224*224 i mają kanały RGB. Mamy więc tensor (224, 224, 3) jako nasz wkład. Model ten przetwarza obraz wejściowy i generuje wektor a 1000 wartości:

hat{y} =egin{bmatrix} hat{y_0} hat{y_1} hat{y_2} . . . hat{y}_{999} end{bmatrix}



Wektor ten reprezentuje prawdopodobieństwo klasyfikacji dla odpowiedniej klasy. Załóżmy, że mamy model, który przewiduje, że obraz należy z prawdopodobieństwem do klasy 0 1 , Klasa 1 z prawdopodobieństwem 0,05 , klasa 2 z prawdopodobieństwem 0,05 , klasa 3 z prawdopodobieństwem 0,03 , klasa 780 z prawdopodobieństwem 0,72 , klasa 999 z prawdopodobieństwem 0,05 i wszystkie inne zajęcia z 0 .

zatem wektor klasyfikacji dla tego będzie następujący:

hat{y}=egin{bmatrix} hat{y_{0}}=0.1 0.05 0.05 0.03 . . . hat{y_{780}} = 0.72 . . hat{y_{999}} = 0.05 end{bmatrix}

Aby mieć pewność, że te prawdopodobieństwa się sumują 1 , używamy funkcji softmax.

Ta funkcja softmax jest zdefiniowana w następujący sposób:

hat{y}_i = frac{e^{z_i}}{sum_{j=1}^{n} e^{z_j}}

alfabet na cyfry

Następnie przenosimy do wektora 5 najbardziej prawdopodobnych kandydatów.

C =egin{bmatrix} 780 0 1 2 999 end{bmatrix}

a nasz podstawowy wektor prawdy jest zdefiniowany w następujący sposób:

G = egin{bmatrix} G_{0} G_{1} G_{2} end{bmatrix}=egin{bmatrix} 780 2 999 end{bmatrix}

Następnie definiujemy naszą funkcję Error w następujący sposób:

E = frac{1}{n}sum_{k}min_{i}d(c_{i}, G_{k})

indeks listy

Oblicza minimalną odległość pomiędzy każdą podstawową klasą prawdy a przewidywanymi kandydatami, gdzie funkcja odległości d jest zdefiniowana jako:

  • d=0 jeślic_i=G_k
  • w przeciwnym razie d=1

Zatem funkcja straty w tym przykładzie wygląda następująco:

egin{aligned} E &=frac{1}{3}left ( min_{i}d(c_{i}, G_{1}) +min_{i}d(c_{i}, G_{2})+min_{i}d(c_{i}, G_{3}) ight ) &= frac{1}{3}(0 + 0 +0) &=0 end{aligned}

Ponieważ wszystkie kategorie prawdy podstawowej znajdują się w macierzy Przewidywanych pierwszych 5, więc strata wynosi 0.

VGG Architektura:

Architektura VGG-16 to głęboka splotowa sieć neuronowa (CNN) przeznaczona do zadań klasyfikacji obrazów. Został wprowadzony przez Visual Geometry Group na Uniwersytecie Oksfordzkim. VGG-16 charakteryzuje się prostotą i jednolitą architekturą, dzięki czemu jest łatwy do zrozumienia i wdrożenia.

niedeterministyczne automaty skończone

Konfiguracja VGG-16 składa się zazwyczaj z 16 warstw, w tym 13 warstw splotowych i 3 warstw w pełni połączonych. Warstwy te są zorganizowane w bloki, przy czym każdy blok zawiera wiele warstw splotowych, po których następuje warstwa maksymalnego łączenia danych do próbkowania w dół.

Mapa architektury VGG-16

Oto zestawienie architektury VGG-16 na podstawie dostarczonych szczegółów:

  1. Warstwa wejściowa:
    1. Wymiary wejściowe: (224, 224, 3)
  2. Warstwy splotowe (64 filtry, filtry 3×3, to samo wypełnienie):
    • Dwie kolejne warstwy splotowe, każda po 64 filtry i rozmiar filtra 3×3.
    • To samo wypełnienie służy do zachowania wymiarów przestrzennych.
  3. Maksymalna warstwa łączenia (2×2, krok 2):
    • Warstwa maksymalnego łączenia o rozmiarze basenu 2×2 i kroku 2.
  4. Warstwy splotowe (128 filtrów, filtry 3×3, to samo wypełnienie):
    • Dwie kolejne warstwy splotowe, każda po 128 filtrów i rozmiarze filtra 3×3.
  5. Maksymalna warstwa łączenia (2×2, krok 2):
    • Warstwa maksymalnego łączenia o rozmiarze basenu 2×2 i kroku 2.
  6. Warstwy splotowe (256 filtrów, filtry 3×3, to samo wypełnienie):
    • Dwie kolejne warstwy splotowe, każda po 256 filtrów i rozmiarze filtra 3×3.
  7. Warstwy splotowe (512 filtrów, filtry 3×3, to samo wypełnienie):
    • Dwa zestawy trzech kolejnych warstw splotowych po 512 filtrów każda i rozmiarze filtra 3×3.
  8. Maksymalna warstwa łączenia (2×2, krok 2):
    • Warstwa maksymalnego łączenia o rozmiarze basenu 2×2 i kroku 2.
  9. Stos warstw splotowych i maksymalne łączenie:
    • Dwie dodatkowe warstwy splotowe po poprzednim stosie.
    • Rozmiar filtra: 3×3.
  10. Spłaszczenie:
    • Spłaszcz wyjściową mapę cech (7x7x512) do wektora o rozmiarze 25088.
  11. W pełni połączone warstwy:
    • Trzy w pełni połączone warstwy z aktywacją ReLU.
    • Pierwsza warstwa z rozmiarem wejściowym 25088 i rozmiarem wyjściowym 4096.
    • Druga warstwa z rozmiarem wejściowym 4096 i rozmiarem wyjściowym 4096.
    • Trzecia warstwa z rozmiarem wejściowym 4096 i rozmiarem wyjściowym 1000, co odpowiada 1000 klasom w wyzwaniu ILSVRC.
    • Aktywacja Softmax jest stosowana do wyjścia trzeciej w pełni połączonej warstwy w celu klasyfikacji.

Architektura ta jest zgodna z dostarczonymi specyfikacjami, łącznie z wykorzystaniem funkcji aktywacji ReLU i ostatecznymi prawdopodobieństwami wyjściowymi w pełni połączonej warstwy dla 1000 klas przy użyciu aktywacji Softmax.

Konfiguracja VGG-16:

Główna różnica pomiędzy konfiguracjami C i D VGG-16 polega na zastosowaniu rozmiarów filtrów w niektórych warstwach splotowych. Podczas gdy obie wersje wykorzystują głównie filtry 3×3, w wersji D zdarzają się przypadki, w których zamiast nich używane są filtry 1×1. Ta niewielka różnica skutkuje różnicą w liczbie parametrów, przy czym wersja D ma nieco większą liczbę parametrów w porównaniu do wersji C. Jednakże obie wersje zachowują ogólną architekturę i zasady modelu VGG-16.

Inna konfiguracja VGG

Lokalizacja obiektu na obrazie:

Aby przeprowadzić lokalizację, musimy zastąpić wynik klasy współrzędnymi lokalizacji ramki ograniczającej. Położenie ramki ograniczającej jest reprezentowane przez wektor 4-D (współrzędne środka (x, y), wysokość, szerokość). Istnieją dwie wersje architektury lokalizacji, jedna to obwiednia współdzielona pomiędzy różnymi kandydatami (wyjściem jest 4 wektor parametrów), a drugi to ramka ograniczająca specyficzna dla klasy (wyjście to 4000 wektor parametrów). W artykule eksperymentowano z obydwoma podejściami do architektury VGG -16 (D). Tutaj musimy również zmienić stratę z utraty klasyfikacji na funkcje straty regresji (takie jak MSE ), które penalizują odchylenie przewidywanej straty od podstawowej prawdy.

Wyniki: Architektura VGG-16 okazała się jedną z najlepszych w konkursie ILSVRC 2014. Zajęła drugie miejsce w zadaniu klasyfikacyjnym z pięcioma największymi błędami klasyfikacyjnymi wynoszącymi 7,32% (tylko za GoogLeNet z błędem klasyfikacji 6,66% ). Został także zwycięzcą zadania lokalizacyjnego z 25,32% błąd lokalizacji.

Ograniczenia VGG 16:

  • Uczenie się jest bardzo powolne (oryginalny model VGG był trenowany na karcie graficznej Nvidia Titan przez 2-3 tygodnie).
  • Rozmiar wyszkolonych wag imageNet VGG-16 wynosi 528 MB. Zajmuje więc sporo miejsca na dysku i przepustowości, co czyni go nieefektywnym.
  • 138 milionów parametrów prowadzi do problemu eksplodujących gradientów.

Dalsze ulepszenia: Wprowadzono sieci Resnet, aby zapobiec problemowi eksplodujących gradientów, który wystąpił w VGG-16.