Sieci neuronowe kapsułowe - zestaw zagnieżdżonych warstw neuronowych



Sieci kapsułowe - ten blog mówi o ograniczeniach konwolucyjnych sieci neuronowych oraz o tym, jak sieci neuronowe kapsułowe rozwiązują te ograniczenia.

Sieci kapsułowe:

Co to są sieci kapsułowe? Zasadniczo jest to sieć zestawu zagnieżdżonych warstw neuronowych.

Polecam również przejrzenie poniższych blogów:





Zakładam, że znacie konwolucyjne sieci neuronowe (CNN). Tutaj przedstawię wam małe wprowadzenie na ten temat, abym mógł omówić ograniczenia CNN.

Możesz również odnieść się do poniższego wideo na temat Convolutional Neural Network.



Konwolucyjne sieci neuronowe (CNN)

Konwolucyjne sieci neuronowe to w zasadzie stos różnych warstw sztucznych neuronów, które są wykorzystywane do widzenia komputerowego. Poniżej wymieniłem te warstwy:

Konwolucyjna sieć neuronowa - kapsułkowa sieć neuronowa - Edureka

Warstwa splotowa: Kiedy używamy sieci neuronowych typu Feedforward (Multi Layer Perceptron) do klasyfikacji obrazów, wiąże się to z wieloma wyzwaniami. Najbardziej frustrującym wyzwaniem jest to, że wprowadza wiele parametrów, rozważ samouczek wideo w CNN.



Aby sprostać temu wyzwaniu Warstwa splotu został wprowadzony. Zakłada się, że piksele, które są bliżej siebie przestrzennie, będą „współpracować” przy tworzeniu szczególnej interesującej cechy znacznie bardziej niż piksele w przeciwległych rogach obrazu. Ponadto, jeśli okaże się, że jakaś (mniejsza) cecha ma duże znaczenie podczas definiowania etykiety obrazu, będzie równie ważna, jeśli ta cecha została znaleziona w dowolnym miejscu obrazu, niezależnie od lokalizacji.

Warstwa ReLU: Funkcja transformacji rektyfikowanej jednostki liniowej (ReLU) aktywuje węzeł tylko wtedy, gdy wartość wejściowa przekracza pewną wartość, podczas gdy wartość wejściowa jest poniżej zera, wartość wyjściowa wynosi zero, ale gdy wartość wejściowa wzrasta powyżej pewnego progu, ma liniową zależność z zmienna zależna.

  • W tej warstwie usuwamy wszystkie wartości ujemne z przefiltrowanych obrazów i zastępujemy je zerami
  • Ma to na celu uniknięcie sumowania się wartości do zera

Warstwa łącząca: Służy do wykonywania próbkowania w dół, które zużywa małe i (zwykle) rozłączne fragmenty obrazu i agreguje je w jedną wartość. Istnieje kilka możliwych schematów agregacji - najpopularniejsza z nich Max-Pooling , gdzie jest brana maksymalna wartość piksela w każdym kawałku. To sprawia, że ​​sieć jest niezmienna dla małych transformacji, zniekształceń i translacji w obrazie wejściowym (małe zniekształcenie na wejściu nie zmieni wyniku Pooling - ponieważ bierzemy maksymalną / średnią wartość w lokalnym sąsiedztwie).

W pełni połączona warstwa: W tej warstwie zostaną obliczone wyniki klas, gdzie każda z liczb odpowiada wynikowi klasy. Jak w przypadku zwykłych sieci neuronowych i jak sama nazwa wskazuje, każdy neuron w tej warstwie będzie połączony ze wszystkimi neuronami z poprzedniej objętości. Krótko mówiąc, przeprowadza ostateczną klasyfikację.

W ten sposób ConvNets przekształca oryginalny obraz warstwa po warstwie z oryginalnych wartości pikseli do końcowych wyników klas.

To było bardzo krótkie wprowadzenie do konwolucyjnych sieci neuronowych. Nadal polecałbym obejrzenie nagrania wideo CNN, które umieściłem w tym poście.

Na tym blogu Capsule Networks omówię teraz kilka ograniczeń konwolucyjnych sieci neuronowych

Ograniczenia konwolucyjnych sieci neuronowych:

Pozwólcie, że wyjaśnię to za pomocą analogii.

Załóżmy, że istnieje człowiek, którego oczy mogą wykryć cechy różnych obrazów. Jako przykład rozważmy twarz człowieka. Tak więc ten nieszczęśnik może zidentyfikować różne cechy, takie jak oczy, nos itp., Ale nie jest w stanie zidentyfikować relacji przestrzennych między cechami (perspektywa, rozmiar, orientacja). Na przykład poniższy obrazek może oszukać tego gościa, klasyfikując go jako dobry szkic ludzkiej twarzy.

To jest również problem z konwolucyjnymi sieciami neuronowymi. CNN jest dobry w wykrywaniu cech, ale nieprawidłowo aktywuje neuron do wykrywania twarzy. Dzieje się tak, ponieważ jest mniej skuteczny w badaniu relacji przestrzennych między cechami.

Prosty model CNN może prawidłowo wyodrębnić cechy nosa, oczu i ust, ale nieprawidłowo aktywuje neuron do wykrywania twarzy. Bez zdawania sobie sprawy z niedopasowania w orientacji przestrzennej i rozmiarze, aktywacja wykrywania twarzy będzie zbyt wysoka.

Cóż, to ograniczenie wynika z warstwy Max Pooling.

Maksymalna pula w CNN obsługuje wariancję translacyjną. Nawet funkcja została nieznacznie przesunięta, jeśli nadal znajduje się w oknie puli, nadal można ją wykryć. Niemniej jednak takie podejście zachowuje tylko funkcję maksimum (najbardziej dominującą) i odrzuca pozostałe.

Tak więc zdjęcie twarzy pokazane powyżej zostanie sklasyfikowane jako normalna twarz. Warstwa puli również dodaje ten typ niezmienności.

To nigdy nie było zamiarem warstwy łączącej. Łączenie miało wprowadzić niezmienności pozycyjne, orientacyjne i proporcjonalne.

W rzeczywistości ta warstwa puli dodaje wszelkiego rodzaju niezmienności pozycyjne. Jak widać również na powyższym diagramie, prowadzi to do dylematu prawidłowego wykrywania twarzy.

Zobaczmy, jakie rozwiązanie proponuje Geoffrey Hinton .

Jak rozwiązać ten problem?

Teraz wyobrażamy sobie, że każdy neuron zawiera zarówno prawdopodobieństwo, jak i właściwości cech. Na przykład generuje wektor zawierający [prawdopodobieństwo, orientację, rozmiar]. Dzięki tym informacjom przestrzennym możemy wykryć niespójność w orientacji i rozmiarze nosa, oczu i uszu, a tym samym generować znacznie niższą aktywację wykrywania twarzy.

W artykule wydanym przez Geoffrey Hinton , tego typu neurony nazywane są kapsułkami. Te kapsuły wysyłają wektor zamiast pojedynczej wartości skalera.

Pozwólcie, że zapalę kilka świateł na temat tego, czym są sieci kapsułkowe.

Co to są sieci kapsułowe?

Kapsuła to w zasadzie zestaw zagnieżdżonych warstw neuronowych. Stan neuronów wewnątrz kapsuły rejestruje różne właściwości, takie jak - pozycja (pozycja, rozmiar, orientacja), deformacja, prędkość, tekstura itp. Jednej jednostki wewnątrz obrazu.

Zamiast przechwytywać cechę za pomocą określonego wariantu, kapsuła jest trenowana, aby uchwycić prawdopodobieństwo cechy i jej wariantu. Tak więc celem kapsuły jest nie tylko wykrycie cechy, ale także nauczenie modelu uczenia się wariantu.

Taki, że ta sama kapsuła może wykryć tę samą klasę obiektów z różnymi orientacjami (na przykład obrócić zgodnie z ruchem wskazówek zegara):

Można powiedzieć, że działa na zasadzie równoważności, a nie niezmienności.

Niezmienność: to wykrywanie cech niezależnie od wariantów. Na przykład neuron wykrywający nos wykrywa nos niezależnie od orientacji.

Równoważność: to wykrywanie obiektów, które mogą się wzajemnie przekształcać (na przykład wykrywanie twarzy o różnych orientacjach). Intuicyjnie, sieć kapsuły wykrywa, że ​​twarz jest obrócona w prawo o 31 ° (ekwiwalentność), zamiast zdawać sobie sprawę, że twarz jest dopasowana do wariantu, który jest obrócony o 31 °. Zmuszając model do uczenia się wariantu funkcji w kapsule, możemy efektywniej ekstrapolować możliwe warianty przy mniejszej ilości danych szkoleniowych. Ponadto możemy skuteczniej odrzucać przeciwników.

Kapsuła generuje wektor reprezentujący istnienie bytu. Orientacja wektora reprezentuje właściwości jednostki.

Wektor jest wysyłany do wszystkich możliwych rodziców w sieci neuronowej. Dla każdego możliwego rodzica kapsułka może znaleźć wektor predykcyjny. Wektor prognozy jest obliczany na podstawie pomnożenia jego własnej wagi i macierzy wag. Ktokolwiek z rodziców ma największy skalarny produkt wektora predykcyjnego, zwiększa wiązanie kapsułki. Reszta rodziców zmniejsza swoją więź. Nazywa się to Trasa na podstawie umowy .

Jest to zdecydowanie lepsze podejście niż maksymalne pule, w którym routing jest oparty na najsilniejszej funkcji wykrytej w niższej warstwie.

Następnie jest dodawana funkcja zgniatania. Ma to na celu wprowadzenie nieliniowości. Ta funkcja zgniatania jest stosowana do wyjścia wektorowego każdej kapsułki.

Powiem ci teraz, jak działają Capsule Networks.

Jak działają sieci kapsułowe?

Cofnijmy się o krok. W całkowicie połączonej sieci wyjściem każdego neuronu jest ważona suma wejść.

Zobaczmy teraz, co się dzieje w Capsule Networks.

jest Java oparta na c

Sieć neuronowa kapsuły:

Rozważmy sieć neuronową kapsuły, w której „uja„Jest wektorem aktywności dla kapsułki”ja'w warstwie poniżej.

Krok - 1: Zastosuj macierz transformacjiWijdo wyjścia kapsułki uja poprzedniej warstwy. Na przykład za pomocą macierzy m × k transformujemy k-Duja do m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

To jest przepowiednia ( głosować ) z kapsuły „i” na wyjściu kapsuły „j” powyżej. „Vjot„Jest wektorem aktywności dla kapsułki”jot'w warstwie powyżej

Krok - 2: Oblicz sumę ważoną sjotz ciężarkamidoij.doijsą współczynnikami sprzężenia. Suma tych współczynników jest równa jeden. Jest to rzeczywisty parametr, który działa na relację grupy kapsułek, o której mówiliśmy wcześniej.

Krok - 3: W Convolutional Neural Networks użyliśmy funkcji ReLU. Tutaj zastosujemy funkcję zgniatania, aby przeskalować wektor od 0 do długości jednostki. Zmniejsza małe wektory do zera, a długie wektory do wektorów jednostkowych. Dlatego prawdopodobieństwo każdej kapsułki jest ograniczone od zera do jednego.

To jest przepowiednia ( głosować ) z kapsuły „i” na wyjściu kapsuły „j” powyżej. Jeśli wektor aktywności ma bliskie podobieństwo z wektorem predykcyjnym, dochodzimy do wniosku, żeja'jest mocno związany z kapsułkąjot'. (Na przykład torebka nosowa jest silnie powiązana z torebką twarzy). Takie podobieństwo mierzy się za pomocą iloczynu skalarnego predykcji i wektora aktywności. Dlatego podobieństwo uwzględnia zarówno prawdopodobieństwo, jak i właściwości cech. (zamiast tylko prawdopodobieństwa w neuronach).

Krok - 4: Oblicz punktację trafności „bij„. Będzie to iloczyn skalarny wektora aktywności i wektora predykcji. Współczynniki sprzężeniadojajotjest obliczany jako softmax dlabjajot:

Współczynnik sprzężenia cijjest obliczana jako softmax bij.

Ten bijjest aktualizowany iteracyjnie w wielu iteracjach.

Nazywa się to Trasa na podstawie umowy .

Poniższy diagram to jeden przykład:

Po tym blogu w Capsule Networks, będę wymyślał blog na temat implementacji Capsule Neural Network przy użyciu TensorFlow.

Mam nadzieję, że podobało Ci się czytanie tego bloga w sieciach kapsułowych, sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka Deep Learning with TensorFlow Certification Training pomaga uczniom stać się ekspertami w zakresie szkolenia i optymalizacji podstawowych i konwolucyjnych sieci neuronowych z wykorzystaniem projektów i zadań w czasie rzeczywistym, wraz z takimi koncepcjami, jak funkcja SoftMax, Auto-encoder Neural Networks, Restricted Boltzmann Machine (RBM).

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.