Pełny przegląd sztucznych sieci neuronowych (ANN)
Opublikowany: 2020-07-17Nawet jeśli nie pracujesz w dziedzinie nauki o danych lub inżynierii oprogramowania, trudno jest uniknąć terminu „sztuczne sieci neuronowe”.
Sztuczne sieci neuronowe (SSN) są wszechobecne. Są wykorzystywane w chatbotach, obrazowaniu medycznym, planowaniu mediów i wielu innych dziedzinach. Ale czy zapytaliśmy z głęboką ciekawością: czym jest sztuczna sieć neuronowa i co tak naprawdę może osiągnąć?
Wszyscy spotkaliśmy się z powszechną definicją, że sztuczne sieci neuronowe naśladują funkcjonowanie ludzkiego systemu nerwowego. To wyjaśnia zasadę działania, ale większość z nas nadal nie wie, co sprawia, że SSN jest tak wyjątkowa ani do jakich zestawów problemów jest idealna. Aby oczyścić powietrze, oto najbardziej wszechstronny, a jednocześnie dostępny przewodnik po sztucznych sieciach neuronowych.
Co to jest sztuczna sieć neuronowa?
Kiedy kilkanaście terminów, takich jak sztuczna inteligencja, uczenie maszynowe, głębokie uczenie i sieci neuronowe, łatwo się pomylić. Rzeczywista bifurkacja między tymi pionami nie jest tak skomplikowana.
AI jest zbiorem uniwersalnym, który jest tematem na wyciągnięcie ręki. Jest to systematyczne badanie działania i tworzenia inteligentnych programów. Uczenie maszynowe to podzbiór sztucznej inteligencji, który koncentruje się na tym, jak maszyny mogą się same uczyć. Głębokie uczenie to kolejny podzbiór ML, który koncentruje się na sposobach wykorzystania warstw sieci neuronowych do generowania wyników. Możesz użyć tej wizualizacji do poruszania się po hierarchii:

Czym więc jest sztuczna sieć neuronowa? Odpowiedź brzmi dokładnie tak, jak zachwalają to popularne media. Jest to system przetwarzania danych i generowania danych wyjściowych, który replikuje system neuronowy w celu rozwikłania nieliniowych relacji w dużym zbiorze danych. Dane mogą pochodzić z tras sensorycznych i mogą mieć postać tekstu, zdjęć lub dźwięku.
Najlepszym sposobem na zrozumienie, jak działa sztuczna sieć neuronowa, jest zrozumienie, jak działa naturalna sieć neuronowa w mózgu i narysowanie paraleli między nimi. Neurony są podstawowym składnikiem ludzkiego mózgu i są odpowiedzialne za uczenie się oraz zatrzymywanie wiedzy i informacji, jakie znamy. Możesz je uznać za jednostkę przetwarzającą w mózgu. Biorą dane czuciowe jako dane wejściowe, przetwarzają je i podają dane wyjściowe wykorzystywane przez inne neurony. Informacje są przetwarzane i przekazywane do momentu uzyskania rozstrzygającego rozstrzygnięcia.
Podstawowa sieć neuronowa w mózgu jest połączona synapsami. Możesz je wizualizować jako końcowe węzły mostu, który łączy dwa neurony. Tak więc synapsa jest miejscem spotkania dwóch neuronów. Synapsy są ważną częścią tego systemu, ponieważ siła synapsy determinuje głębię zrozumienia i przechowywanie informacji.
Kiedy ćwiczysz jakieś działanie, wzmacniasz te relacje synaptyczne. W ten sposób możesz zwizualizować sieć neuronową w swoim mózgu:
Wszystkie dane sensoryczne, które twój mózg zbiera w czasie rzeczywistym, są przetwarzane przez te sieci neuronowe. Mają punkt wyjścia w systemie. A kiedy są przetwarzane przez początkowe neurony, przetworzona forma sygnału elektrycznego wychodzącego z jednego neuronu staje się wejściem dla innego neuronu. To przetwarzanie mikroinformacji w każdej warstwie neuronów sprawia, że ta sieć jest skuteczna i wydajna. Replikując ten powtarzający się temat przetwarzania danych w sieci neuronowej, sieci SSN są w stanie generować doskonałe wyniki.
W SSN wszystko jest zaprojektowane tak, aby replikować ten proces. Nie przejmuj się równaniem matematycznym. To nie jest kluczowa idea, którą należy teraz zrozumieć. Wszystkie dane wprowadzane do systemu z etykietą „X” mają wagę „W”, aby wygenerować sygnał ważony. Odtwarza to rolę siły sygnału synaptycznego w mózgu. Zmienna bias jest dołączona do sterowania wynikami danych wyjściowych funkcji.
Tak więc wszystkie te dane są przetwarzane w funkcji i otrzymujesz dane wyjściowe. Tak wyglądałaby jednowarstwowa sieć neuronowa lub perceptron. Idea sztucznej sieci neuronowej polega na łączeniu kilku kombinacji takich sztucznych neuronów w celu uzyskania silniejszych sygnałów wyjściowych. Dlatego typowa struktura koncepcyjna sztucznej sieci neuronowej wygląda mniej więcej tak:
Wkrótce zdefiniujemy ukrytą warstwę, gdy zagłębimy się w działanie sztucznej sieci neuronowej. Ale jeśli chodzi o podstawowe zrozumienie sztucznej sieci neuronowej, znasz już pierwsze zasady.
Ten mechanizm służy do odszyfrowywania dużych zbiorów danych. Wynikiem zwykle jest ustalenie związku przyczynowego między zmiennymi wprowadzonymi jako dane wejściowe, które można wykorzystać do prognozowania. Teraz, gdy znasz proces, możesz w pełni docenić definicję techniczną tutaj:
„Sieć wzorowana na ludzkim mózgu, tworząc sztuczny system neuronowy za pomocą rozpoznającego wzorce algorytmu komputerowego, który uczy się, interpretuje i klasyfikuje dane sensoryczne”.
Jak działają i uczą się sztuczne sieci neuronowe?
Przygotuj się, tutaj będzie ciekawie. I nie martw się – nie musisz teraz robić tony matematyki.
Magia dzieje się najpierw w funkcji aktywacji. Funkcja aktywacji wykonuje wstępne przetwarzanie, aby określić, czy neuron zostanie aktywowany, czy nie. Jeśli neuron nie jest aktywowany, jego wyjście będzie takie samo jak wejście. Wtedy nic się nie dzieje. Ma to kluczowe znaczenie w sieci neuronowej, w przeciwnym razie system będzie zmuszony przetworzyć mnóstwo informacji, które nie mają wpływu na wynik. Widzisz, mózg ma ograniczoną pojemność, ale został zoptymalizowany, aby jak najlepiej go wykorzystać.
Jedną z głównych właściwości wspólnych dla wszystkich sztucznych sieci neuronowych jest koncepcja nieliniowości. Większość badanych zmiennych wykazuje w rzeczywistości zależność nieliniową.
Weźmy na przykład cenę czekolady i liczbę czekoladek. Załóżmy, że jedna czekolada kosztuje 1 dolara. Ile kosztowałoby 100 czekoladek? Prawdopodobnie 100 dolarów. Ile kosztowałoby 10 000 czekoladek? Nie 10 000 $; ponieważ albo sprzedawca doliczy koszty użycia dodatkowego opakowania, aby złożyć wszystkie czekoladki razem, albo obniży koszty, ponieważ za jednym zamachem usuwasz z jej rąk tak dużą część jej zapasów. To jest koncepcja nieliniowości.
Funkcja aktywacji użyje podstawowych zasad matematycznych, aby określić, czy informacje mają być przetwarzane, czy nie. Najczęstsze formy funkcji aktywacji to binarna funkcja kroku, funkcja logistyczna, hiperboliczna funkcja styczna i wyprostowane jednostki liniowe. Oto podstawowa definicja każdego z nich:
- Funkcja kroku binarnego: Ta funkcja aktywuje neuron na podstawie progu. Jeśli funkcja ma wynik końcowy, który jest powyżej lub poniżej wartości odniesienia, neuron jest aktywowany.
- Funkcja logistyczna: Ta funkcja ma matematyczny wynik końcowy w postaci krzywej „S” i jest używana, gdy prawdopodobieństwa są kluczowymi kryteriami określającymi, czy neuron powinien zostać aktywowany. Tak więc w dowolnym momencie możesz obliczyć nachylenie tej krzywej. Wartość tej funkcji mieści się w zakresie od 0 do 1.
Nachylenie jest obliczane za pomocą funkcji różniczkowej. Pojęcie jest używane, gdy dwie zmienne nie mają relacji liniowej. Nachylenie to wartość stycznej, która dotyka krzywej dokładnie w punkcie, w którym pojawia się nieliniowość. Problem z funkcją logistyczną polega na tym, że nie nadaje się ona do przetwarzania informacji o wartościach ujemnych. - Funkcja tangensa hiperbolicznego: jest dość podobna do funkcji logistycznej, z wyjątkiem tego, że jej wartości mieszczą się w zakresie od -1 do +1. W ten sposób znika problem ujemnej wartości nieprzetwarzanej w sieci.
- Wyprostowane jednostki liniowe (ReLu): Wartości tej funkcji leżą między 0 a dodatnią nieskończonością. ReLu upraszcza kilka rzeczy – jeśli wejście będzie dodatnie, da wartość 'x'. Dla wszystkich innych danych wejściowych wartością będzie „0”. Możesz użyć Leaky ReLu, który ma wartości między ujemną nieskończonością a dodatnią nieskończonością. Jest używany, gdy związek między przetwarzanymi zmiennymi jest naprawdę słaby i może zostać całkowicie pominięty przez funkcję aktywacji.
Teraz możesz odwołać się do tych samych dwóch diagramów perceptronu i sieci neuronowej. Jaka jest różnica poza liczbą neuronów? Kluczową różnicą jest ukryta warstwa. Ukryta warstwa znajduje się pomiędzy warstwą wejściową a wyjściową w sieci neuronowej. Zadaniem warstwy ukrytej jest dopracowanie przetwarzania i wyeliminowanie zmiennych, które nie będą miały dużego wpływu na wynik.
Jeśli liczba wystąpień w zbiorze danych, w których wpływ zmiany wartości zmiennej wejściowej jest zauważalny na zmienną wyjściową, ukryta warstwa pokaże tę relację. Warstwa ukryta ułatwia SSN wysyłanie silniejszych sygnałów do następnej warstwy przetwarzania.
Nawet po wykonaniu całej tej matematyki i zrozumieniu, jak działa warstwa ukryta, możesz się zastanawiać, w jaki sposób sztuczna sieć neuronowa się uczy? Zacznijmy od podstawowego pytania, czego się uczy. Uczenie się, w najprostszym ujęciu, to ustalenie przyczynowości między dwiema rzeczami (działaniami, procesami, zmiennymi itp.). Kiedy „uczysz się”, jak rzucać podkręconą piłką, ustalasz związek przyczynowy między fizycznym działaniem polegającym na rzuceniu piłki w określony sposób a ustawieniem trajektorii piłki w określonym kierunku.
Ta przyczynowość jest bardzo trudna do ustalenia. Pamiętasz powiedzenie, że korelacja nie równa się przyczynowości? Dość łatwo określić, kiedy dwie zmienne poruszają się w tym samym kierunku. Bardzo trudno powiedzieć z absolutną pewnością, która zmienna powoduje ruch w której zmiennej. Oczywiście często jesteśmy w stanie to ustalić intuicyjnie; ale jak sprawić, by algorytm rozumiał intuicję?

Używasz funkcji kosztu. Matematycznie jest to kwadrat różnicy między rzeczywistą wartością zbioru danych a wartością wyjściową zbioru danych. Możesz również wziąć pod uwagę stopień błędu. Podnosimy to do kwadratu, ponieważ czasami różnica może być ujemna.
Każdy cykl przetwarzania danych wejściowych do wyjściowych można oznakować za pomocą funkcji kosztu. Twoim zadaniem i SSN jest zminimalizowanie funkcji kosztu do najniższej możliwej wartości. Osiągasz to, dostosowując wagi w SSN. (Pamiętasz relacje synaptyczne, czyli wagi? O tym właśnie mówimy). Można to zrobić na kilka sposobów, ale o ile rozumiesz tę zasadę, do jej wykonania używasz po prostu różnych narzędzi.
W każdym cyklu dążymy do minimalizacji funkcji kosztów. Proces przechodzenia od wejścia do wyjścia nazywa się propagacją do przodu. A proces wykorzystywania danych wyjściowych do minimalizowania funkcji kosztu przez dostosowanie wagi w odwrotnej kolejności od ostatniej warstwy ukrytej do warstwy wejściowej nazywa się propagacją wsteczną.
Możesz dostosowywać te wagi przy użyciu metody Brute Force, która renderuje nieefektywnie, gdy zestaw danych jest zbyt duży, lub metody Batch-Gradient Descent, która jest algorytmem optymalizacji. Teraz intuicyjnie rozumiesz, w jaki sposób uczy się sztuczna sieć neuronowa.
Rekurencyjne sieci neuronowe (RNN) a konwolucyjne sieci neuronowe (CNN)
Zrozumienie tych dwóch form sieci neuronowych może być również wprowadzeniem do dwóch różnych aspektów aplikacji AI – wizji komputerowej i przetwarzania języka naturalnego. W najprostszej formie te dwie gałęzie sztucznej inteligencji pomagają maszynie wizualnie identyfikować obiekty i rozumieć kontekst danych językowych. Jak można sobie wyobrazić, są już wykorzystywane aplikacje tych gałęzi w samochodach autonomicznych i wirtualnych asystentach takich jak Siri.
Teraz każda z tych gałęzi ma swoją własną sieć neuronową. NLP jest silnie uzależniony od rekurencyjnych sieci neuronowych. Różnica między RNN a SNN polega na tym, że w SNN każdy sygnał wejściowy jest uważany za niezależny od następnego sygnału wejściowego. Tak więc dane wejściowe, które istnieją między dwoma węzłami, same w sobie nie mają żadnego związku.
W rzeczywistości tak nie jest. Kiedy się komunikujemy, każde słowo oczyszcza kontekstową drogę do następnego słowa. Stąd fundamentalna natura języka polega na tym, że tworzy współzależności między informacjami wprowadzonymi wcześniej a informacjami wprowadzonymi później. Sieci RNN są na to wrażliwe, uruchamiając pamięć równoległą, która ustala relację między tymi danymi wejściowymi w celu wyczyszczenia kontekstu.
Konwolucyjne sieci neuronowe idealnie nadają się do widzenia komputerowego. Oprócz ogólnie stosowanych funkcji aktywacji dodają funkcję łączenia i funkcję konwolucji. Mówiąc prościej, funkcja splotu pokazuje, w jaki sposób wprowadzenie jednego obrazu i wprowadzenie drugiego obrazu (filtr) da w wyniku trzeci obraz (wynik). Możesz to sobie wyobrazić, wizualizując go jako przefiltrowany obraz (nowy zestaw wartości pikseli) umieszczony nad obrazem wejściowym (oryginalny zestaw wartości pikseli), aby uzyskać obraz wynikowy (zmienione wartości pikseli).
Funkcja puli przyjmie maksymalną lub minimalną wartość, w zależności od dodanej funkcji, aby ułatwić przetwarzanie tego zestawu informacji. Oto jak możesz je wizualizować:


Funkcja łączenia
5 zastosowań sztucznych sieci neuronowych
To, o czym do tej pory rozmawialiśmy, działo się pod maską. Teraz możemy pomniejszyć i zobaczyć te SSN w akcji, aby w pełni docenić ich więź z naszym ewoluującym światem:
1. Spersonalizuj rekomendacje na platformach e-commerce
Jednym z najwcześniejszych zastosowań SSN była personalizacja doświadczeń platformy eCommerce dla każdego użytkownika. Czy pamiętasz naprawdę skuteczne rekomendacje na Netflix? Lub odpowiednie sugestie produktów Amazon? Są wynikiem ANN.
Wykorzystuje się tu mnóstwo danych: Twoje wcześniejsze zakupy, dane demograficzne, dane geograficzne i dane, które pokazują, co później kupili ludzie, którzy kupili ten sam produkt. Wszystko to służy jako dane wejściowe do określenia, co może działać dla Ciebie. Jednocześnie to, co naprawdę kupujesz, pomaga zoptymalizować algorytm. Z każdym zakupem wzbogacasz firmę i algorytm wzmacniający SSN. Jednocześnie każdy nowy zakup dokonany na platformie poprawi również sprawność algorytmu w rekomendowaniu Ci odpowiednich produktów.
2. Wykorzystanie przetwarzania języka naturalnego w chatbotach konwersacyjnych
Nie tak dawno chatboxy zaczęły nabierać tempa na stronach internetowych. Agent siadał po jednej stronie i pomagał przy zapytaniach wpisywanych w polu. Następnie do chatbotów wprowadzono zjawisko zwane przetwarzaniem języka naturalnego (NLP) i wszystko się zmieniło.
NLP generalnie wykorzystuje reguły statystyczne do replikowania ludzkich zdolności językowych i podobnie jak inne aplikacje ANN, z czasem staje się coraz lepsze. Twoje znaki interpunkcyjne, intonacje i wypowiedzenia, wybory gramatyczne, wybory syntaktyczne, kolejność słów i zdań, a nawet wybrany język mogą służyć jako dane wejściowe do trenowania algorytmu NLP.
Chatbot staje się konwersacyjny, wykorzystując te dane wejściowe zarówno do zrozumienia kontekstu zapytań, jak i do formułowania odpowiedzi w sposób, który najlepiej pasuje do Twojego stylu. Ten sam NLP jest również używany do edycji dźwięku w celach muzycznych i weryfikacji bezpieczeństwa.
3. Przewidywanie wyników głośnego wydarzenia
Większość z nas podąża za przewidywaniami wyników opracowywanymi przez algorytmy oparte na sztucznej inteligencji podczas wyborów prezydenckich, a także Mistrzostw Świata FIFA. Ponieważ oba zdarzenia są podzielone na etapy, pomaga to algorytmowi szybko zrozumieć jego skuteczność i zminimalizować funkcję kosztów, gdy zespoły i kandydaci zostają wyeliminowani. Prawdziwym wyzwaniem w takich sytuacjach jest stopień zmiennych wejściowych. Od kandydatów po statystyki graczy, dane demograficzne i możliwości anatomiczne – wszystko musi być uwzględnione.
Na giełdach algorytmy predykcyjne wykorzystujące SSN istnieją już od jakiegoś czasu. Aktualizacje wiadomości i wskaźniki finansowe są kluczowymi zmiennymi wejściowymi. Dzięki temu większość giełd i banków może z łatwością handlować aktywami w ramach inicjatyw handlowych o wysokiej częstotliwości z prędkością znacznie przekraczającą ludzkie możliwości.
Problem z giełdami polega na tym, że dane są zawsze zaszumione. Losowość jest bardzo duża, ponieważ stopień subiektywnej oceny, która może mieć wpływ na cenę papieru wartościowego, jest bardzo wysoki. Niemniej jednak obecnie wszystkie wiodące banki wykorzystują SSN w działaniach marketingowych.
4. Sankcje kredytowe
Tabele aktuarialne były już wykorzystywane do określenia czynników ryzyka związanych z każdym wnioskodawcą ubezpieczeniowym. SSN zebrały wszystkie te dane o krok wyżej.
Wszyscy pożyczkodawcy mogą przeglądać posiadane przez dziesięciolecia dane z silnie ustalonymi wagami w systemie i wykorzystywać Twoje informacje jako dane wejściowe do określenia odpowiedniego profilu ryzyka związanego z Twoim wnioskiem o pożyczkę. Twój wiek, płeć, miasto zamieszkania, szkoła ukończenia studiów, branża zaangażowania, wynagrodzenie i wskaźnik oszczędności są wykorzystywane jako dane wejściowe do określenia oceny ryzyka kredytowego.
To, co wcześniej było silnie zależne od indywidualnej oceny kredytowej, stało się teraz znacznie bardziej wszechstronnym mechanizmem. To jest powód, dla którego kilku prywatnych graczy z branży fintech wskoczyło do przestrzeni pożyczek osobistych, aby prowadzić te same sieci ANN i pożyczać osobom, których profile są uważane przez banki za zbyt ryzykowne.
5. Samochody autonomiczne
Tesla, Waymo i Uber używają podobnych ANN. Nakłady i inżynieria produktu mogły się różnić, ale wdrażano zaawansowane obliczenia wizualne, aby urzeczywistnić autonomiczne samochody.
Duża część autonomicznej jazdy wiąże się z przetwarzaniem informacji pochodzących ze świata rzeczywistego w postaci pobliskich pojazdów, znaków drogowych, światła naturalnego i sztucznego, pieszych, budynków i tak dalej. Oczywiście sieci neuronowe zasilające te autonomiczne samochody są bardziej skomplikowane niż te, które omawialiśmy tutaj, ale działają na tych samych zasadach, które przedstawiliśmy.
Wniosek
SSN z dnia na dzień stają się coraz bardziej wyrafinowane. NLP pomagają teraz we wczesnej diagnostyce problemów ze zdrowiem psychicznym, w obrazowaniu medycznym wykorzystuje się widzenie komputerowe, a ANN napędzają dostarczanie dronami. W miarę jak SSN stają się coraz bardziej złożone i warstwowe, zapotrzebowanie na ludzką inteligencję w tym systemie będzie mniejsze. Nawet obszary takie jak projektowanie zaczęły wdrażać rozwiązania AI z projektowaniem generatywnym.
Ostateczną ewolucją wszystkich połączonych sieci ANN byłaby inteligencja ogólna – forma inteligencji tak wyrafinowana, że może uczyć się i postrzegać wszystkie informacje znane i nieznane ludzkości. Chociaż jest to bardzo odległa rzeczywistość, o ile to możliwe, stała się możliwą do wyobrażenia koncepcją dzięki szerokiemu przyjęciu przez ANN.