Kapsułowe sieci neuronowe: co to jest, jak to działa, architektura i komponenty

Opublikowany: 2020-04-03

Jak rozpoznajesz rzeczy? Jeśli napiszę „Their” i „Thier”, czy przeczytałbyś je oba jako „ich”? Twoja odpowiedź byłaby prawdopodobnie tak.

Twój mózg może zidentyfikować podstawowe cechy i pomóc ci rozpoznać rzeczy. Dlatego łatwo dostrzegasz twarze. Podobnie działają kapsułowe sieci neuronowe. W tym artykule przyjrzymy się, czym one są i jak działają. Jeśli interesują Cię algorytmy uczenia maszynowego , z pewnością spodoba Ci się ten artykuł. Więc zacznijmy.

Spis treści

Co to jest sieć neuronowa kapsułki?

Kapsułkowa sieć neuronowa skupia się na replikacji biologicznych sieci neuronowych w celu lepszego rozpoznawania i segmentacji. Są rodzajem sztucznej sieci neuronowej. Mają zagnieżdżoną warstwę pod jedną warstwą sieci neuronowych kapsułki, na co wskazuje słowo „kapsuła”.

Kapsuły w tych sieciach określają parametry cech obiektu. Załóżmy, że twoja sieć kapsuł musi zidentyfikować twarz. Kapsułki skupią się na ustaleniu, czy określone rysy twarzy są obecne, czy nie. Nie ograniczają się tylko do tego. Sprawdzą też, jak zorganizowane są rysy danej twarzy. Tak więc twój system może zidentyfikować twarz tylko wtedy, gdy kapsułki określą, że elementy tej twarzy są we właściwej kolejności.

Możesz się zastanawiać, w jaki sposób określają kolejność tych funkcji? Te sieci mogą to robić dzięki danym, które im przekazujesz. Po zbadaniu setek (a nawet tysięcy) obrazów mogą skutecznie wykonać to zadanie.

Dowiedz się więcej: Sieci neuronowe: aplikacje w świecie rzeczywistym

Jak działają sieci kapsuł?

Przyjrzyjmy się teraz, jak działają te sieci. Początkowo kapsułki dokonują mnożenia macierzy macierzy wag z wektorami wejściowymi. Daje nam to informacje na temat relacji przestrzennych między kilkoma obiektami niskiego i wysokiego poziomu.

Następnie kapsułki wybierają kapsułkę rodzicielską. Dokonują wyboru za pomocą routingu dynamicznego, który omówiliśmy w dalszej części tego artykułu. Po wybraniu kapsuły macierzystej znajdują sumę wektorów zmiażdżonych między 0 a 1, gdy trzymają się swojego kierunku. Przeprowadzasz zgniatanie, używając normy układu współrzędnych jako prawdopodobieństwa istnienia, a odległość cosinus jest miarą zgodności.

Istnieje znacząca różnica między standardowymi sieciami neuronowymi a kapsułowymi sieciami neuronowymi. Podczas gdy sieci kapsuł wykorzystują kapsuły do ​​enkapsulacji istotnych bitów informacji o obrazie, standardowe sieci neuronowe wykorzystują do tego celu neurony. Kapsułki wytwarzają wektory, podczas gdy neurony mogą wytwarzać tylko ilości skalarne. Z tego powodu kapsułki mogą identyfikować kierunek twarzy (lub określoną cechę), ale neurony nie. Jeśli zmienisz kierunek dowolnej cechy, wartość wektora pozostanie taka sama, ale jego kierunek zmieni się zgodnie ze zmianą pozycji.

Sieci kapsułowe działają zadziwiająco dobrze na małych zestawach danych i ułatwiają interpretację solidnych obrazów. Poza tym zachowują wszystkie informacje o zdjęciu, w tym teksturę, lokalizację i pozę. Ich jedyną wadą jest to, że nie mogą przewyższyć ogromnych zbiorów danych.

Przeczytaj: 6 rodzajów funkcji aktywacji w sieciach neuronowych

Jaka jest architektura kapsułowej sieci neuronowej?

Dwa podstawowe elementy sieci kapsuł to koder i dekoder. W sumie zawierają sześć warstw. Koder ma pierwsze trzy warstwy i odpowiada za pobranie i przekształcenie obrazu wejściowego na wektor (16-wymiarowy). Pierwsza warstwa kodera to splotowa sieć neuronowa, która wydobywa podstawowe cechy obrazu.

Druga warstwa to sieć PrimaryCaps, która pobiera te podstawowe funkcje i znajduje wśród nich bardziej szczegółowe wzorce. Na przykład może zobaczyć relacje przestrzenne między poszczególnymi pociągnięciami. Różne zestawy danych mają różną liczbę kapsuł w sieci PrimaryCaps; na przykład zbiór danych MNIST zawiera 32 kapsuły. Trzecia warstwa to sieć DigitCaps, a liczba obecnych w niej kapsułek również się zmienia. Po tych warstwach koder ma 16-wymiarowy wektor, który trafia do dekodera.

Dekoder ma trzy połączone warstwy. Pobiera 16-wymiarowy wektor i próbuje zrekonstruować ten sam obraz od podstaw za pomocą posiadanych danych. W ten sposób sieć staje się bardziej solidna, ponieważ może dokonywać prognoz zgodnie ze swoją wiedzą.

Przeczytaj także: Rekurencyjna sieć neuronowa w Pythonie

Obliczenia w CNN

Mnożenie macierzy

Pomiędzy pierwszą a drugą warstwą wykonujemy mnożenie macierzy. To koduje informacje o relacjach przestrzennych, a zakodowane informacje pokazują prawdopodobieństwo klasyfikacji etykiet.

Wagi skalarne

Na tym etapie obliczeń, kapsuły niższego poziomu dostosowują swój ciężar zgodnie z wagą kapsuł wysokiego poziomu. Robią to, aby dopasować wagę kapsuł wysokiego poziomu. Kapsuły wysokiego poziomu przedstawiają rozkład masy i akceptują największą alokację do przejścia. Wszystkie komunikują się ze sobą za pomocą dynamicznego routingu.

Routing dynamiczny

W routingu dynamicznym dolne kapsuły wysyłają swoje dane do kapsuły nadrzędnej. Wszyscy wysyłają swoje dane do najbardziej odpowiedniej według nich kapsuły, a kapsuła, która otrzymuje większość danych, staje się kapsułą nadrzędną. Kapsułki nadrzędne postępują zgodnie z umową i odpowiednio przypisują wagi.

Aby zrozumieć dynamiczne routing, załóżmy, że przekazujesz sieci kapsułowe obrazy domu. Ma pewne problemy z identyfikacją dachu domu. Kapsuły analizują więc obraz, a konkretnie jego stałą część. Koordynują szkielet domu względem ścian i dachu.

Najpierw podejmują decyzję, czy obiekt jest domem, czy nie, a następnie przesyłają swoje prognozy do kapsuł wysokiego poziomu. Jeśli rzuty dachu dotyczące ścian zgadzają się z innymi przewidywaniami z kapsuł niskopoziomowych, wynik mówi, że obiekt jest domem. To jest proces wyznaczania tras na podstawie umowy.

Nieliniowość wektor-wektor

Po zakończeniu routingu dynamicznego system ściska informacje, co oznacza, że ​​kompresuje te informacje. Daje to prawdopodobieństwo, że kapsuła rozpozna konkretną cechę, czy nie.

Końcowe przemyślenia

Po zapoznaniu się z tym artykułem na pewno zapoznałeś się z kapsułkowymi sieciami neuronowymi i ich działaniem. Musiałeś też zdać sobie sprawę, jak przydatne mogą być ich działania.

Jeśli chcesz dowiedzieć się więcej o algorytmach uczenia maszynowego, zajrzyj na naszego bloga. Znajdziesz tam kilka fachowych artykułów.

Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Czym są transformatorowe sieci neuronowe?

Kiedy sieć neuronowa pobiera sekwencję wektorów jako dane wejściowe, zmienia ją na wektor o nazwie (proces ten nazywa się kodowaniem), a następnie dekoduje ją z powrotem do innej sekwencji, nazywa się to siecią neuronową transformatora. Transformator jest komponentem występującym w wielu architekturach sieci neuronowych do przetwarzania danych sekwencyjnych, w tym tekstu jawnego, sygnałów akustycznych, sekwencji genomowych i danych szeregów czasowych. Najczęstszym zastosowaniem transformatorowych sieci neuronowych jest przetwarzanie języka naturalnego.

Czym są graficzne sieci neuronowe i jak działają wykresy?

Graficzne sieci neuronowe lub GNN to modele neuronowe, które wykorzystują transmisję wiadomości między węzłami grafu do reprezentowania zależności grafu. Sieci te działają bezpośrednio na danych strukturach grafowych. Mówiąc prościej, każdy węzeł na grafie ma etykietę, a sieć neuronowa służy do przewidywania węzłów etykiety w oparciu o podstawową prawdę. Sieci GNN zyskały ostatnio rozgłos w różnych dyscyplinach, w tym w sieciach społecznościowych, wykresach wiedzy, systemach rekomendacji, a nawet naukach przyrodniczych.

Czy kapsuły różnią się od sieci kapsuł?

Oba terminy, kapsuły i sieci kapsuł, są powiązane z głębokim uczeniem, ale nie są tym samym. Grupa neuronów, których wektory aktywności reprezentują parametry instancji określonego elementu, takiego jak obiekt, nazywana jest kapsułką. Jednak sieci kapsułowe to sieci, które mogą pobierać informacje geograficzne i inne ważne aspekty, aby zminimalizować utratę danych podczas operacji łączenia.