w tym poście omówię powszechnie używane architektury dla sieci konwolucyjnych. Jak widać, prawie wszystkie architektury CNN kierują się tymi samymi ogólnymi zasadami projektowania, polegającymi na sukcesywnym nakładaniu na dane wejściowe warstw konwolucyjnych, okresowym zmniejszaniu wymiarów przestrzennych przy jednoczesnym zwiększaniu liczby map funkcji.,

podczas gdy Klasyczne architektury sieciowe składały się po prostu z ułożonych warstw konwolucyjnych, nowoczesne architektury odkrywają nowe i innowacyjne sposoby konstruowania warstw konwolucyjnych w sposób, który pozwala na bardziej efektywne uczenie się. Prawie wszystkie te architektury są oparte na powtarzalnej jednostce, która jest używana w całej sieci.

te architektury służą jako ogólne wytyczne projektowe, które praktycy uczenia maszynowego będą następnie dostosowywać do rozwiązywania różnych zadań wizji komputerowej., Te architektury służą jako bogate ekstraktory funkcji, które mogą być używane do klasyfikacji obrazu, wykrywania obiektów, segmentacji obrazu i wielu innych bardziej zaawansowanych zadań.

Klasyczne architektury sieciowe (włączone do celów historycznych)

  • LeNet-5
  • AlexNet
  • VGG 16

nowoczesne architektury sieciowe

  • Incepcja
  • ResNet
  • ResNeXt
  • DenseNet

LeNet-5

model lenet-5 firmy Yann lecun został opracowany w 1998 roku w celu identyfikacji odręcznych cyfr do rozpoznawania kodów pocztowych w usługach pocztowych., Ten pionierski model w dużej mierze wprowadził konwolucyjną sieć neuronową, jaką znamy dzisiaj.

Architektura

warstwy Konwolucyjne wykorzystują podzbiór kanałów poprzedniej warstwy dla każdego filtra, aby zmniejszyć obliczenia i wymusić przerwanie symetrii w sieci. Warstwy podpróbkowania wykorzystują formę średniego poolingu.

parametry: 60 000

artykuł: gradientowe uczenie się stosowane do rozpoznawania dokumentów

AlexNet

AlexNet został opracowany przez Alex Krizhevsky et al. w 2012 roku wystartował w konkursie ImageNet., Ogólna architektura jest dość podobna do LeNet-5, chociaż model ten jest znacznie większy. Sukces tego modelu (który zajął pierwsze miejsce w konkursie ImageNet 2012) przekonał wiele społeczności Computer vision do poważnego przyjrzenia się głębokiemu uczeniu w zadaniach computer vision.

Architektura

parametry: 60 milionów

artykuł: Klasyfikacja ImageNet z głębokimi Konwolucyjnymi sieciami neuronowymi

VGG-16

wprowadzona w 2014 roku sieć VGG oferuje głębszy i prostszy wariant omawianych powyżej struktur konwolucyjnych., W momencie jego wprowadzenia model ten był uważany za bardzo głęboki.

Architektura

parametry: 138 milionów

artykuł: bardzo głębokie sieci Konwolucyjne do rozpoznawania obrazów Na Dużą Skalę

Inception (GoogLeNet)

w 2014 roku naukowcy z Google wprowadzili sieć Inception, która zajęła pierwsze miejsce w konkursie ImageNet 2014 w zakresie klasyfikacji i wykrywania wyzwań.

model składa się z podstawowej jednostki określanej jako „komórka Incepcji”, w której wykonujemy szereg splotów w różnych skalach, a następnie agregujemy wyniki., Aby zapisać obliczenia, stosuje się sploty 1×1 w celu zmniejszenia głębokości kanału wejściowego. Dla każdej komórki uczymy się zestawu filtrów 1×1, 3×3 i 5×5, które mogą nauczyć się wyodrębniać funkcje w różnych skalach z wejścia. Max pooling jest również używany, aczkolwiek z” tą samą ” wyściółką, aby zachować wymiary, tak aby wyjście mogło być odpowiednio połączone.

, Sploty z dużymi filtrami przestrzennymi (takimi jak 5×5 lub 7×7) są korzystne pod względem wyrazistości i zdolności do wyodrębniania cech w większej skali, ale obliczenia są nieproporcjonalnie drogie. Naukowcy zwrócili uwagę, że splot 5×5 może być tańszy reprezentowany przez dwa ułożone filtry 3×3.

podczas gdy filtr $5 \times 5 \times C$ wymaga parametrów $25C$, dwa filtry $3 \times 3 \times C$ wymagają tylko parametrów $18C$. Aby jak najdokładniej przedstawić filtr 5×5, nie powinniśmy używać żadnych nieliniowych aktywacji między dwiema warstwami 3×3., Jednak odkryto, że ” aktywacja liniowa zawsze była gorsza od stosowania rektyfikowanych jednostek liniowych na wszystkich etapach faktoryzacji.”

wykazano również, że 3×3 convolutions można dalej dekonstruować na kolejne 3×1 i 1×3 convolutions.

uogólniając ten wgląd, możemy efektywniej obliczyć splot $n \times n$ jako splot $1 \times n$, a następnie splot $n \times 1$.

Architektura

w celu poprawy ogólnej wydajności sieci dodano dwa wyjścia pomocnicze w całej sieci., Później odkryto, że najwcześniejsze wyjście pomocnicze nie miało zauważalnego wpływu na końcową jakość sieci. Dodanie dodatkowych wyjść korzystało przede wszystkim z wydajności końcowej modelu, osiągającej nieco lepszą wartość niż ta sama architektura sieci bez oddziału pomocniczego. Uważa się, że dodanie dodatkowych wyjść miało regularny wpływ na sieć.

poprawiona, głębsza Wersja sieci Inception, która wykorzystuje bardziej wydajne komórki Inception, jest pokazana poniżej.,

parametry: 5 milionów (V1) i 23 miliony (V3)

referaty:

  • coraz głębsze zawiłości
  • przemyślenie architektury Incepcji dla wizji komputerowej

ResNet

Głębokie sieci szczątkowe były przełomowym pomysłem, który umożliwił rozwój znacznie głębszych sieci (setki warstw w przeciwieństwie do dziesiątek warstw).

To ogólnie przyjęta zasada, że głębsze sieci są w stanie nauczyć się bardziej złożonych funkcji i reprezentacji danych wejściowych, co powinno prowadzić do lepszej wydajności., Jednak wielu badaczy zauważyło, że dodawanie kolejnych warstw ostatecznie miało negatywny wpływ na końcową wydajność. Takie zachowanie nie było intuicyjnie oczekiwane, jak wyjaśnili autorzy poniżej.

rozważmy płytszą architekturę i jej głębszy odpowiednik, który dodaje do niej więcej warstw. Istnieje rozwiązanie konstrukcyjne do głębszego modelu: dodane warstwy są mapowaniem tożsamości, a pozostałe warstwy są kopiowane z wyuczonego płytszego modelu., Istnienie tak skonstruowanego rozwiązania wskazuje, że głębszy model nie powinien powodować wyższego błędu treningowego niż jego płytszy odpowiednik. Ale eksperymenty pokazują, że nasi obecni rozwiązujący pod ręką nie są w stanie znaleźć rozwiązań, które są porównywalnie dobre lub lepsze niż skonstruowane rozwiązanie (lub nie są w stanie tego zrobić w możliwym czasie).,

zjawisko to jest określane przez autorów jako problem degradacji-nawiązując do faktu, że chociaż lepsze techniki inicjalizacji parametrów i normalizacja wsadowa pozwalają na głębsze łączenie się sieci, często zbiegają się one z wyższym stopniem błędu niż ich płytsze odpowiedniki. W limicie samo ułożenie większej liczby warstw pogarsza najwyższą wydajność modelu.,

autorzy proponują rozwiązanie tego problemu degradacji poprzez wprowadzenie bloków resztkowych, w których warstwy pośrednie bloku uczą się funkcji resztkowej w odniesieniu do danych wejściowych bloku. Możesz myśleć o tej pozostałej funkcji jako o etapie udoskonalania, w którym dowiadujemy się, jak dostosować mapę funkcji wejściowych dla funkcji wyższej jakości. W porównaniu z „zwykłą” siecią, w której oczekuje się, że każda warstwa nauczy się nowych i odrębnych map funkcji., W przypadku, gdy nie jest konieczne udoskonalanie, warstwy pośrednie mogą nauczyć się stopniowo dostosowywać swoje wagi do zera, tak aby blok resztkowy reprezentował funkcję tożsamościową.

Uwaga: później odkryto, że niewielka modyfikacja oryginalnej proponowanej jednostki oferuje lepszą wydajność poprzez bardziej wydajne umożliwienie propagacji gradientów przez sieć podczas treningu.,

szerokie sieci resztkowe
chociaż oryginalny referat ResNet koncentrował się na tworzeniu architektury sieci, aby umożliwić głębsze struktury poprzez złagodzenie problemu degradacji, inni badacze zwrócili uwagę, że zwiększenie szerokości sieci (głębokość kanału) może być bardziej efektywnym sposobem na zwiększenie ogólnej przepustowości sieci.

Architektura

każdy kolorowy blok warstw reprezentuje serię splotów o tym samym wymiarze., Mapowanie funkcji jest okresowo zmniejszane przez stopniowane splot, któremu towarzyszy wzrost głębokości kanału, aby zachować złożoność czasową na warstwę. Kropkowane linie oznaczają pozostałe połączenia, w których projektujemy dane wejściowe za pomocą splotu 1×1, aby dopasować wymiary nowego bloku.

powyższy schemat wizualizuje architekturę ResNet 34., W modelu ResNet 50 po prostu zastępujemy każdy dwuwarstwowy blok resztkowy trójwarstwowym blokiem wąskich gardeł, który wykorzystuje sploty 1×1 w celu zmniejszenia, a następnie przywrócenia głębokości kanału, co pozwala na zmniejszenie obciążenia obliczeniowego przy obliczaniu splotu 3×3.,

parametry: 25 milionów (ResNet 50)

referaty:

  • Deep Residual Learning for Image Recognition
  • mapowanie tożsamości w głębokich sieciach resztkowych
  • Wide Residual Networks

Architektura ResNeXt jest rozszerzeniem głębokiej sieci resztkowej, która zastępuje standardowy blok resztkowy na taki, który wykorzystuje strategię „split-transform-merge” (tj. rozgałęzione ścieżki w komórce) stosowane w modelach Inception., Po prostu, zamiast wykonywać sploty na pełnej mapie funkcji wejściowych, dane wejściowe bloku są rzutowane na szereg niższych (kanałowych) wymiarowych reprezentacji, których oddzielnie stosujemy kilka filtrów konwolucyjnych przed połączeniem wyników.

ten pomysł jest bardzo podobny do GROUP convolutions, który był pomysłem zaproponowanym w artykule AlexNet jako sposób na dzielenie obliczeń splotowych na dwa GPU. Zamiast tworzenia filtrów z pełną głębią kanału wejściowego, wejście jest dzielone pod względem kanału na grupy z każdym, jak pokazano poniżej.,

odkryto, że użycie zgrupowanych splotów prowadziło do pewnego stopnia specjalizacji wśród grup, w których oddzielne grupy skupiały się na różnych cechach obrazu wejściowego.

referat ResNeXt odnosi się do liczby gałęzi lub grup jako cardinality komórki ResNeXt i wykonuje serię eksperymentów w celu zrozumienia względnego wzrostu wydajności między zwiększeniem cardinality, głębokości i szerokości sieci. Eksperymenty pokazują, że zwiększenie cardinality jest bardziej skuteczne w korzystaniu z wydajności modelu niż zwiększenie szerokości lub głębokości sieci., Eksperymenty sugerują również, że ” połączenia resztkowe są pomocne dla optymalizacji, podczas gdy przekształcenia zagregowane są (pomocne dla) silniejszych reprezentacji.”

Architektura

Architektura ResNeXt po prostu naśladuje modele ResNet, zastępując bloki ResNet dla bloku ResNeXt.

Referat: zagregowane transformacje rezydualne dla głębokich sieci neuronowych

DenseNet

idea gęstych sieci konwolucyjnych jest prosta: przydatne może być odwołanie się do map funkcji z wcześniejszych w sieci., W ten sposób Mapa cech każdej warstwy jest łączona z danymi wejściowymi każdej kolejnej warstwy w gęstym bloku. Dzięki temu późniejsze warstwy w sieci mogą bezpośrednio wykorzystywać funkcje z wcześniejszych warstw, zachęcając do ponownego wykorzystania funkcji w sieci. Autorzy stwierdzają: „łączenie funkcji-map poznanych przez różne warstwy zwiększa zmienność wprowadzania kolejnych warstw i poprawia wydajność.”

Kiedy po raz pierwszy natknąłem się na ten model, pomyślałem, że będzie miał absurdalną liczbę parametrów obsługujących gęste połączenia między warstwami., Ponieważ jednak sieć jest w stanie bezpośrednio korzystać z dowolnej poprzedniej mapy funkcji, autorzy stwierdzili, że mogą pracować z bardzo małymi głębokościami kanałów wyjściowych(tj. 12 filtrów na warstwę), znacznie zmniejszając całkowitą liczbę potrzebnych parametrów. Autorzy odnoszą się do liczby filtrów używanych w każdej warstwie convolutional jako” tempo wzrostu”, $k$, ponieważ każda kolejna warstwa będzie miała $k$ Więcej Kanałów niż ostatnia (w wyniku kumulacji i połączenia wszystkich poprzednich warstw z wejściem).,

w porównaniu z modelami ResNet, densenety są zgłaszane do osiągnięcia lepszej wydajności przy mniejszej złożoności.

Architektura

przez większość eksperymentów w artykule autorzy naśladowali ogólną architekturę modelu ResNet, po prostu zamieniając gęsty blok jako powtarzającą się jednostkę.

parametry:

  • 0,8 mln (DenseNet-100, k=12)
  • 15.,3 miliony (DenseNet-250, k=24)
  • 40 milionów (DenseNet-190, k=40)

Papier: gęsto Połączone sieci Konvolutional
wideo: Nagroda Cvpr 2017 Best Paper Award: gęsto Połączone sieci Konvolutional

Czytaj dalej