Co to są grafowe sieci neuronowe? Wyjaśnienie i zastosowania [ze schematami]
Opublikowany: 2021-01-08Spis treści
Wstęp
W ostatnim czasie sieci neuronowe zyskały ogromną popularność ze względu na swoje zastosowanie i łatwość użycia w dziedzinie rozpoznawania wzorców i eksploracji danych. Zastosowanie Deep Learning do zadań takich jak wykrywanie obiektów i rozpoznawanie mowy przy użyciu technik takich jak CNN, RNN i autokodery wniosło ogromną pracę w badania i rozwój sieci neuronowych.
Zastosowanie Deep Learning na danych, takich jak obrazy, tekst i filmy, jest łatwe do wykonania, ponieważ są one oparte na danych euklidesowych. A co z aplikacjami, w których dane są przedstawiane jako wykresy (nieeuklidesowe) z bardzo złożonymi relacjami między obiektami?
W tym miejscu wprowadzamy koncepcję Graph Neural Networks (GNN). W tym artykule omówimy definicje i podstawy wykresów i sieci GNN oraz zapoznamy się z niektórymi z najnowszych zastosowań sieci neuronowych wykresów.
Co to jest wykres?
Z tytułu – Graph Neural Networks, widzimy, że najbardziej podstawową częścią GNN jest Graph.
W informatyce wykres definiuje się jako strukturę danych składającą się z dwóch elementów. Wierzchołki i krawędzie. Wykres G można zdefiniować jako G = VE . Gdzie V to zbiór wierzchołków, a E to krawędzie między nimi. Terminy wierzchołki i węzły są często używane zamiennie. Jeśli na krawędziach znajduje się jakaś strzałka, nazwana zależnością kierunkową, to jest to graf skierowany. Jeśli nie, są to grafy nieskierowane.
Źródło

Wykres może przedstawiać kilka rzeczy – sieć mediów społecznościowych, sieć miast, cząsteczki itp. Rozważmy poniższy wykres, który przedstawia sieć miast. Miasta są reprezentowane jako węzły, a łączące je drogi to krawędzie.
Źródło
Korzystając z powyższej sieci wykresów, możemy rozwiązać kilka problemów dotyczących tych miast, takich jak znalezienie, które miasta są dobrze skomunikowane lub znalezienie najkrótszej odległości między dwoma miastami.
Czym są grafowe sieci neuronowe?
Ponieważ wykresy mają niezwykle silne moce ekspresji, zyskują na popularności w dziedzinie uczenia maszynowego. Z każdym węzłem powiązane jest osadzenie. To osadzanie definiuje węzeł w przestrzeni danych. Grafowe sieci neuronowe odnoszą się do architektur sieci neuronowych działających na grafie.
Podstawowym celem architektury GNN jest nauczenie się osadzania, które zawiera informacje o jego sąsiedztwie. Korzystając z tego osadzania, możemy rozwiązać kilka problemów, takich jak etykietowanie węzła, przewidywanie węzłów i krawędzi itp.
Innymi słowy, Graph Neural Networks to dodatkowa klasa metod Deep Learning, które są przeznaczone do wnioskowania na podstawie danych przedstawionych na wykresach. Są one stosowane na wykresach i mogą z łatwością wykonywać zadania przewidywania na poziomie węzła, krawędzi i wykresu.
Dlaczego nie CNN?
Główną zaletą GNN jest to, że może wykonywać zadania, których nie udało się wykonać Convolutional Neural Networks (CNN). Sieci CNN służą do wykonywania zadań, takich jak wykrywanie obiektów, klasyfikacja obrazów i rozpoznawanie. Korzystając z ukrytych warstw splotowych i warstw zbiorczych, CNN osiąga to.
Wykonanie CNN na danych grafowych jest trudne obliczeniowo, ponieważ jest to wysoce arbitralna i złożona topologia, co oznacza, że nie ma lokalizacji przestrzennej. Ponadto istnieje niestała kolejność węzłów, co utrudnia stosowanie CNN.
Graficzne sieci neuronowe
Tak więc rozumie się, że tak się nazywa, GNN jest siecią neuronową, która jest bezpośrednio stosowana do grafów, zapewniając wygodny sposób na zadania przewidywania na poziomie krawędzi, węzła i poziomu grafu. Istnieją głównie trzy typy grafowych sieci neuronowych:
- Sieć neuronowa z grafem cyklicznym
- Przestrzenna sieć konwolucyjna
- Widmowa sieć splotowa
Jedną z intuicji GNN jest to, że węzły są definiowane przez sąsiadów i połączenia. Możemy to zwizualizować wyobrażając sobie, że jeśli wszyscy sąsiedzi węzła zostaną usunięci, wówczas węzeł utraci wszystkie swoje informacje. Zatem pojęcie sąsiadów węzła i połączenia z sąsiadami definiują węzeł.
Mając to na uwadze, nadajmy każdemu węzłowi stan (x) reprezentujący jego koncepcję. Możemy użyć stanu węzła (x) do wytworzenia wyniku (o), który jest decyzją o koncepcji. Stan końcowy (x_n) węzła nazywany jest „osadzeniem węzła”. Głównym zadaniem wszystkich Graph Neural Network jest określenie „osadzenia węzła” każdego węzła poprzez przejrzenie informacji o sąsiednich węzłach.
Zacznijmy od najpotężniejszej wersji GNN, Recurrent Graph Neural Network lub RecGNN
Sieć neuronowa z grafem cyklicznym
Jak wspomniano w oryginale, RecGNN jest zbudowany przy założeniu twierdzenia Banacha o punkcie stałym, które mówi, że: Niech (X,d) będzie całkowitą przestrzenią metryczną, a (T:X→X) odwzorowaniem skurczowym. Wtedy T ma jednoznaczny punkt stały (x∗) i dla dowolnego x∈X ciąg T_n(x) dla n→∞ jest zbieżny do (x∗). Oznacza to, że jeśli zastosuję mapowanie T na x dla k razy, x^k powinno być prawie równe x^(k-1).
Przestrzenna sieć konwolucyjna
Intuicja Przestrzennej Sieci Konwolucyjnej jest podobna do intuicji CNN. Jak wiemy w CNN, pomysł polega na wykonaniu konwolucji poprzez zsumowanie sąsiednich pikseli wokół centralnego piksela z filtrem i uczeniem się wag. Przestrzenne sieci splotowe przyjmują podobną koncepcję, agregując cechy sąsiednich węzłów w kierunku węzła środkowego.

Źródło
Widmowa sieć splotowa
W przeciwieństwie do innych Graph Neural Networks, ten typ GNN ma mocne podstawy matematyczne. Został opracowany w oparciu o teorię przetwarzania sygnałów grafowych. W celu uproszczenia wykorzystuje wielomianowe przybliżenie Czebyszewa.
Co może zrobić GNN?
Problemy, które może rozwiązać GNN, są ogólnie podzielone na 3 kategorie:
- Klasyfikacja węzłów
- Przewidywanie linków
- Klasyfikacja wykresu
Klasyfikacja węzłów
polega na przewidywaniu osadzania węzła dla każdego węzła na grafie. W takich przypadkach tylko część wykresu jest oznaczona etykietą i dlatego nazywa się to wykresem częściowo nadzorowanym. Niektóre aplikacje to filmy z YouTube, rekomendacje znajomych z Facebooka itp.
Przewidywanie linków
głównym zadaniem jest zidentyfikowanie relacji między dwoma podmiotami na wykresie i przewidzenie, czy istnieje jakikolwiek związek między tymi dwoma podmiotami. Rozważmy na przykład system rekomendacji, w którym model otrzymuje zestaw recenzji od użytkowników różnych produktów. Zadaniem jest przewidywanie preferencji użytkowników i dostrojenie systemu rekomendacji do promocji produktów odpowiadających zainteresowaniom użytkowników.
Klasyfikacja wykresu
polega na zaklasyfikowaniu całego wykresu do kilku różnych kategorii. Jest to dość podobne do zadania klasyfikacji obrazów, ale celem jest tutaj domena wykresów. Istnieje kilka przykładów klasyfikacji wykresów, na przykład w chemii, modelowi nadaje się strukturę molekularną w postaci wykresu, a zadaniem jest zaklasyfikowanie celu do określonej kategorii.
Aplikacje czasu rzeczywistego GNN
Od czasu wprowadzenia w 2018 r. sieci GNN znalazły sporo aplikacji działających w czasie rzeczywistym, które podsumowano poniżej.
Przetwarzanie języka naturalnego
GNN znajduje swoje zastosowanie w wielu różnych zastosowaniach NLP, takich jak klasyfikacja nastrojów, klasyfikacja tekstu, etykietowanie sekwencji. Wykorzystywane są w NLP ze względu na łatwość aplikacji. Są również wykorzystywane w analizach sieci społecznościowych, takich jak przewidywanie podobnych postów i polecanie użytkownikom określonych treści.
Wizja komputerowa
Widzenie komputerowe to rozległa dziedzina, która szybko się rozwinęła dzięki pomocy głębokiego uczenia się w obszarach takich jak klasyfikacja obrazów, wykrywanie obiektów itp. Najpopularniejszą aplikacją są splotowe sieci neuronowe. Późno sieci GNN zostały również zastosowane w tej dziedzinie. Chociaż zastosowanie GNN w Computer Vision jest w początkowej fazie, wykazuje ogromny potencjał w nadchodzących latach.

Nauki ścisłe
GNN są również szeroko stosowane w nauce, takich jak systemy fizyczne, przewidywanie skutków ubocznych i klasyfikacja chorób. Chemicy wykorzystują również GNN do badania struktury grafów związków i molekuł.
Inne domeny
Zastosowanie GNN nie ogranicza się tylko do powyższych zadań. Podjęto kilka prób zastosowania GNN w różnych dziedzinach, takich jak systemy rekomendacji, analiza sieci społecznościowych itp.
Wniosek
W ciągu ostatnich kilku lat od wprowadzenia sieci GNN stały się one silnym i niezawodnym narzędziem do rozwiązywania problemów, które można modelować za pomocą grafów. Wynika to z jego elastyczności, wyrazistej mocy i łatwej wizualizacji. W ten sposób GNN są intuicyjnym rozwiązaniem dla nieustrukturyzowanych danych z szeroką gamą zastosowań w świecie rzeczywistym.
Jeśli chcesz dowiedzieć się więcej o GCN oraz jego funkcjach i zaletach, zarejestruj się w upGrad Education Pvt. Ltd. oraz kurs podyplomowy i dyplomowy IIITB z zakresu uczenia maszynowego i sztucznej inteligencji. Ten kurs na temat uczenia maszynowego i sztucznej inteligencji jest przeznaczony dla studentów i pracujących profesjonalistów.
Kurs zapewnia zbiór studiów przypadków i zadań, sesje mentoringu branżowego, status absolwentów IIIT Bangalore, pomoc w znalezieniu pracy w najlepszych firmach, a co najważniejsze, bogate doświadczenie edukacyjne.
Co rozumiesz przez sieć neuronową?
Sieci neuronowe to algorytmy sieciowe, które pomagają identyfikować wzorce i są nieco zaprojektowane na wzór ludzkiego mózgu. Wykorzystują uczenie maszynowe i sztuczną inteligencję, aby zrozumieć dane sensoryczne, kategoryzować lub grupować surowe dane. Wszystkie rzeczywiste statystyki, czy to obrazy, muzyka, tekst czy szeregi czasowe, powinny zostać przetłumaczone na znaki rozpoznawane przez sieć neuronową, które są numeryczne i zakodowane w wektorach. Pomagają w klasyfikacji i grupowaniu danych. Kategoryzują dane, gdy mają oznaczony zestaw danych, i pomagają grupować dane nieoznakowane na podstawie podobieństw między przykładowymi danymi wejściowymi. Są częścią bardziej rozbudowanych aplikacji do uczenia maszynowego, które obejmują algorytmy uczenia się przez wzmocnienie, różnorodność i regresję.
Co to jest splotowa sieć neuronowa?
Splotowa sieć neuronowa, znana również jako CNN lub ConvNet, to technika, która umożliwia wykonanie obrazu wejściowego i nadanie priorytetu różnym elementom obrazu, a także rozróżnienie między nimi. Ilość przetwarzania wymagana przez CNN jest znacznie mniejsza niż w przypadku innych algorytmów. CNN został zaprojektowany przy pomocy kory wzrokowej i ma podobny wzór do neuronów w naszym mózgu. Nawet w CNN pojedyncze neurony mogą reagować na impulsy tylko w niewielkim obszarze pola widzenia, zwanym polem odbiorczym.
Czym różnią się sieci neuronowe od uczenia maszynowego?
Uczenie maszynowe to zestaw potężnych algorytmów, które analizują dane, badają je i stosują to, co badali, aby znaleźć intrygujące wzorce. Z drugiej strony sieć neuronowa to zestaw technik stosowanych w uczeniu maszynowym do modelowania danych za pomocą wykresów neuronów. Sieć neuronowa organizuje algorytmy w taki sposób, że może samodzielnie dokonywać wiarygodnych osądów, podczas gdy model uczenia maszynowego podejmuje decyzje na podstawie tego, czego nauczył się z danych. W rezultacie, chociaż modele uczenia maszynowego mogą uczyć się na podstawie danych, mogą wymagać interakcji człowieka na wczesnych etapach. Sieci neuronowe nie wymagają interakcji między ludźmi, ponieważ ułożone w nich warstwy przekazują dane wejściowe poprzez hierarchie odrębnych pojęć, umożliwiając im uczenie się na własnych błędach.