Funkcje sieci neuronowych. Sieci neuronowe: czym są i jak marki z nich korzystają. Schemat struktury biologicznej

Tym razem postanowiłem zbadać sieci neuronowe. Podstawowe umiejętności w tej materii udało mi się zdobyć latem i jesienią 2015 roku. Przez podstawowe umiejętności rozumiem, że potrafię samodzielnie stworzyć od podstaw prostą sieć neuronową. Przykłady można znaleźć w moich repozytoriach GitHub. W tym artykule podam kilka wyjaśnień i udostępnię zasoby, które mogą okazać się przydatne w badaniu.

Krok 1: Neurony i propagacja z wyprzedzeniem

Czym więc jest „sieć neuronowa”? Poczekajmy z tym i zajmijmy się najpierw jednym neuronem.

Neuron jest jak funkcja: przyjmuje wiele danych wejściowych i zwraca jeden.

Poniższy okrąg przedstawia sztuczny neuron. Otrzymuje 5 i zwraca 1. Wejście jest sumą trzech synaps podłączonych do neuronu (trzy strzałki po lewej).

Po lewej stronie obrazu widzimy 2 wartości wejściowe (na zielono) oraz offset (podświetlony na brązowo).

Dane wejściowe mogą być liczbowymi reprezentacjami dwóch różnych właściwości. Na przykład, tworząc filtr antyspamowy, mogą oznaczać więcej niż jedno słowo napisane WIELKIMI LITERAMI i słowo „Viagra”.

Wartości wejściowe są mnożone przez ich tzw. „wagi”, 7 i 3 (podświetlone na niebiesko).

Teraz dodajemy wynikowe wartości z przesunięciem i otrzymujemy liczbę, w naszym przypadku 5 (podświetloną na czerwono). To jest wkład naszego sztucznego neuronu.

Następnie neuron wykonuje jakieś obliczenia i wytwarza wartość wyjściową. Mamy 1, ponieważ zaokrąglona wartość sigmoidy w punkcie 5 wynosi 1 (więcej o tej funkcji później).

Gdyby to był filtr spamu, fakt, że wynik to 1 oznaczałby, że tekst został oznaczony przez neuron jako spam.

Ilustracja sieci neuronowej z Wikipedii.

Jeśli połączysz te neurony, otrzymasz propagującą się do przodu sieć neuronową - proces przechodzi od wejścia do wyjścia, poprzez neurony połączone synapsami, jak na zdjęciu po lewej stronie.

Krok 2. Sigmoid

Po obejrzeniu samouczków Welch Labs warto zapoznać się z czwartym tygodniem kursu uczenia maszynowego Coursera poświęconego sieciom neuronowym, aby pomóc Ci zrozumieć, jak one działają. Kurs zagłębia się w matematykę i jest oparty na Octave, podczas gdy ja preferuję Python. Z tego powodu pominąłem ćwiczenia i uzyskałem całą niezbędną wiedzę z filmu.

Sigmoid po prostu mapuje twoją wartość (na osi poziomej) na segment od 0 do 1.

Pierwszym priorytetem było dla mnie zbadanie esicy, tak jak to się przedstawia w wielu aspektach sieci neuronowych. Wiedziałem już coś o niej od trzeciego tygodnia powyższego kursu, więc obejrzałem stamtąd film.

Ale same filmy nie zaprowadzą Cię daleko. Dla pełnego zrozumienia postanowiłem sam to zakodować. Zacząłem więc pisać implementację algorytmu regresji logistycznej (który wykorzystuje sigmoid).

Zajęło to cały dzień, a wynik raczej nie będzie satysfakcjonujący. Ale to nie ma znaczenia, bo zorientowałem się, jak to wszystko działa. Kod można zobaczyć.

Nie musisz tego robić sam, ponieważ wymaga to specjalnej wiedzy - najważniejsze jest to, że rozumiesz, jak działa esica.

Krok 3 Metoda wstecznej propagacji

Zrozumienie, jak sieć neuronowa działa od wejścia do wyjścia, nie jest takie trudne. O wiele trudniej jest zrozumieć, w jaki sposób sieć neuronowa jest szkolona na zestawach danych. Zasada, której użyłem, nazywa się propagacją wsteczną.

W skrócie: szacujesz, jak błędna jest sieć i zmieniasz wagę wartości wejściowych (niebieskie liczby na pierwszym obrazku).

Proces przebiega od końca do końca, ponieważ zaczynamy od końca sieci (zobacz, jak bardzo domysł sieci odbiega od prawdy) i pracujemy wstecz, zmieniając wagi po drodze, aż dotrzemy do danych wejściowych. Aby to wszystko obliczyć ręcznie, wymagana jest znajomość analizy matematycznej. Khan Academy zapewnia dobre kursy z rachunku różniczkowego, ale studiowałem je na uniwersytecie. Nie możesz też zawracać sobie głowy i korzystać z bibliotek, które obliczą dla Ciebie wszystkie matany.

Zrzut ekranu z przewodnika Matta Mazura na temat propagacji wstecznej.

Oto trzy źródła, które pomogły mi zrozumieć tę metodę:

W trakcie czytania pierwszych dwóch artykułów zdecydowanie musisz sam zakodować, to pomoże ci dalej. Ogólnie rzecz biorąc, sieci neuronowe nie mogą być właściwie zrozumiane, jeśli zaniedba się praktyki. Trzeci artykuł jest również świetny, ale jest bardziej encyklopedią, ponieważ ma rozmiar całej książki. Zawiera szczegółowe wyjaśnienia wszystkich ważnych zasad działania sieci neuronowych. Artykuły te pomogą również w nauce pojęć, takich jak funkcja kosztu i opadanie gradientu.

Krok 4. Stwórz własną sieć neuronową

Czytając różne artykuły i samouczki, w taki czy inny sposób, będziesz pisać małe sieci neuronowe. Polecam właśnie to zrobić, bo to bardzo skuteczna metoda uczenie się.

Kolejny pomocny artykuł

W pierwszej połowie 2016 roku świat usłyszał o wielu nowościach w dziedzinie sieci neuronowych - zademonstrowały Google (odtwarzacz sieciowy w AlphaGo), Microsoft (liczne usługi do identyfikacji obrazów), startupy MSQRD, Prisma i inne ich algorytmy.

Do zakładek

Redaktorzy serwisu opowiadają czym są sieci neuronowe, do czego służą, dlaczego zawładnęły planetą właśnie teraz, a nie lata wcześniej czy później, ile można na nich zarobić i kim są główni gracze rynkowi. Swoimi opiniami podzielili się również eksperci z Moskiewskiego Instytutu Fizyki i Technologii, Yandex, Mail.Ru Group i Microsoft.

Czym są sieci neuronowe i jakie zadania mogą rozwiązać

Sieci neuronowe to jeden z kierunków rozwoju systemów sztucznej inteligencji. Chodzi o to, aby jak najdokładniej zamodelować działanie ludzkiego układu nerwowego, a mianowicie jego zdolność do uczenia się i poprawiania błędów. Co to jest główna cecha dowolna sieć neuronowa – jest w stanie samodzielnie uczyć się i działać na podstawie wcześniejszych doświadczeń, za każdym razem popełniając coraz mniej błędów.

Sieć neuronowa naśladuje nie tylko aktywność, ale także strukturę układu nerwowego człowieka. Taka sieć składa się z dużej liczby pojedynczych elementów obliczeniowych („neuronów”). W większości przypadków każdy „neuron” odnosi się do określonej warstwy sieci. Dane wejściowe są sekwencyjnie przetwarzane we wszystkich warstwach sieci. Parametry każdego „neurona” mogą się zmieniać w zależności od wyników uzyskanych na poprzednich zestawach danych wejściowych, zmieniając tym samym kolejność działania całego systemu.

Andrey Kalinin, szef Mail.ru Search w Mail.Ru Group, zauważa, że ​​sieci neuronowe są w stanie rozwiązać te same problemy, co inne algorytmy uczenia maszynowego, różnica polega tylko na podejściu do uczenia się.

Wszystkie zadania, które mogą rozwiązać sieci neuronowe, są w jakiś sposób związane z uczeniem się. Do głównych obszarów zastosowań sieci neuronowych należą prognozowanie, podejmowanie decyzji, rozpoznawanie wzorców, optymalizacja, analiza danych.

Vlad Shershulsky, dyrektor programów współpracy technologicznej w Microsoft w Rosji, zauważa, że ​​sieci neuronowe są obecnie używane wszędzie: „Na przykład wiele dużych witryn internetowych używa ich, aby reakcja na zachowanie użytkownika była bardziej naturalna i przydatna dla ich odbiorców. Sieci neuronowe są sercem większości nowoczesne systemy rozpoznawanie i synteza mowy oraz rozpoznawanie i przetwarzanie obrazu. Są stosowane w niektórych systemach nawigacyjnych, niezależnie od tego, czy są to roboty przemysłowe, czy pojazdy bezzałogowe. Algorytmy oparte na sieciach neuronowych chronią Systemy informacyjne przed złośliwymi atakami i pomagają wykrywać nielegalne treści w sieci.”

Według Shershulsky'ego w krótkim okresie (5-10 lat) sieci neuronowe będą wykorzystywane jeszcze szerzej:

Wyobraź sobie kombajn rolniczy z wieloma kamerami wideo w siłownikach. Wykonuje pięć tysięcy zdjęć na minutę każdej rośliny w pasie jej trajektorii i za pomocą sieci neuronowej analizuje, czy to chwast, czy jest dotknięty chorobą, czy szkodnikami. I każdą roślinę traktuje indywidualnie. Fikcja? Już nie bardzo. A za pięć lat może stać się normą. - Vlad Shershulsky, Microsoft

Mikhail Burtsev, kierownik Laboratorium Systemów Neuronowych i Głębokiego Uczenia w MIPT Center for Living Systems, przedstawia wstępną mapę rozwoju sieci neuronowych na lata 2016-2018:

  • systemy rozpoznawania i klasyfikacji obiektów na obrazach;
  • interfejsy głosowe interakcje dla Internetu rzeczy;
  • systemy monitorowania jakości obsługi w call center;
  • rozwiązywanie problemów z systemami (w tym czas predykcyjny) Konserwacja), anomalie, zagrożenia cyberfizyczne;
  • systemy bezpieczeństwa i monitoringu intelektualnego;
  • zastąpienie przez boty części funkcji operatorów call center;
  • systemy analizy wideo;
  • samouczące się systemy optymalizujące zarządzanie przepływami materiałów czy lokalizacją obiektów (w magazynach, transporcie);
  • inteligentne, samouczące się systemy sterowania procesami i urządzeniami produkcyjnymi (w tym zrobotyzowanymi);
  • pojawienie się uniwersalnych systemów tłumaczeniowych „w locie” na konferencje i do użytku osobistego;
  • pojawienie się botów-doradców pomoc techniczna lub asystenci osobiści, w zakresie funkcji bliskich osobie.

Grigorij Bakunov, dyrektor ds. rozpowszechniania technologii w Yandex, uważa, że ​​zdolność takich systemów do podejmowania różnych decyzji stanie się podstawą rozprzestrzeniania się sieci neuronowych w ciągu najbliższych pięciu lat: „Najważniejszą rzeczą, jaką sieci neuronowe robią teraz dla człowieka, jest by uchronić go przed nadmiernym podejmowaniem decyzji. Dzięki temu można ich używać niemal wszędzie tam, gdzie niezbyt inteligentne decyzje podejmuje żywa osoba. W ciągu najbliższych pięciu lat to właśnie ta umiejętność zostanie wykorzystana, co zastąpi ludzkie podejmowanie decyzji prostą maszyną”.

Dlaczego sieci neuronowe stały się teraz tak popularne

Naukowcy opracowują sztuczne sieci neuronowe od ponad 70 lat. Pierwsza próba sformalizowania sieci neuronowej datuje się na rok 1943, kiedy to dwóch amerykańskich naukowców (Warren McCulloch i Walter Pitts) przedstawiło artykuł na temat rachunku logicznego ludzkich idei i aktywności neuronowej.

Jednak do niedawna, mówi Andrey Kalinin z Mail.Ru Group, prędkość sieci neuronowych była zbyt niska, aby mogły być powszechnie stosowane, dlatego takie systemy były wykorzystywane głównie w opracowaniach związanych z wizją komputerową, a inne algorytmy były wykorzystywane w innych obszary uczenie maszynowe.

Pracochłonną i czasochłonną częścią procesu tworzenia sieci neuronowej jest jej uczenie. Aby sieć neuronowa mogła poprawnie rozwiązywać postawione zadania, konieczne jest „uruchomienie” swojej pracy na dziesiątkach milionów zbiorów danych wejściowych. Andrey Kalinin i Grigory Bakunov kojarzą rozprzestrzenianie się sieci neuronowych z pojawieniem się różnych technologii przyspieszonego uczenia się.

Najważniejszą rzeczą, która się teraz wydarzyła, jest to, że pojawiły się różne sztuczki, które pozwalają tworzyć sieci neuronowe, które są znacznie mniej podatne na nadmierne dopasowanie - Grigory Bakunov, Yandex

„Po pierwsze pojawiła się duża i publicznie dostępna gama oznaczonych obrazów (ImageNet), na których można się uczyć. Po drugie, nowoczesne karty graficzne umożliwiają setki razy szybsze trenowanie i używanie sieci neuronowych. Po trzecie pojawiły się gotowe, wstępnie wytrenowane sieci neuronowe, rozpoznające obrazy, na podstawie których można tworzyć własne aplikacje bez długotrwałego przygotowywania sieci neuronowej do pracy. Wszystko to zapewnia bardzo potężny rozwój sieci neuronowych w dziedzinie rozpoznawania wzorców” – zauważa Kalinin.

Jakie są rozmiary rynkowe sieci neuronowych?

„Bardzo łatwo obliczyć. Możesz wziąć dowolny obszar, który wykorzystuje nisko wykwalifikowaną siłę roboczą - na przykład operatorów call center - i po prostu odjąć wszystkie zasoby ludzkie. powiedziałabym to rozmawiamy o wielomiliardowym rynku, nawet w obrębie jednego kraju. Ile osób na świecie zajmuje się pracą wymagającą niskich kwalifikacji, można łatwo zrozumieć. Więc nawet bardzo abstrakcyjnie mówiąc, myślę, że mówimy o rynku o wartości stu miliardów dolarów na całym świecie ”- mówi Grigory Bakunov, dyrektor ds. dystrybucji technologii w Yandex.

Według niektórych szacunków ponad połowa zawodów zostanie zautomatyzowana – to jest maksymalna głośność, co może zwiększyć rynek algorytmów uczenia maszynowego (w szczególności sieci neuronowych) – Andrey Kalinin, Mail.Ru Group

„Algorytmy uczenia maszynowego to kolejny krok w automatyzacji dowolnych procesów, w rozwoju dowolnego oprogramowanie. Dlatego rynek przynajmniej pokrywa się z całym rynkiem oprogramowania, ale raczej go przewyższa, ponieważ staje się możliwe tworzenie nowych inteligentnych rozwiązań, niedostępnych dla starego oprogramowania” – kontynuuje Andrey Kalinin, szef Mail.ru Search w grupie Mail.Ru .

Dlaczego programiści sieci neuronowych tworzą aplikacje mobilne na rynek masowy

W ciągu ostatnich kilku miesięcy na rynku pojawiło się jednocześnie kilka głośnych projektów rozrywkowych wykorzystujących sieci neuronowe - jest to również popularna usługa wideo, która jest społecznie Sieć Facebook, rosyjskie aplikacje do przetwarzania obrazu (w czerwcu inwestycje Grupy Mail.Ru) i inne.

Możliwości własnych sieci neuronowych zademonstrowały również Google (technologia AlphaGo zwyciężyła w Go; w marcu 2016 roku korporacja sprzedała na aukcjach 29 obrazów narysowanych przez sieci neuronowe itd.) oraz Microsoft (projekt CaptionBot, który rozpoznaje obrazy na zdjęciach i automatycznie generuje dla nich podpisy ; projekt WhatDog, który określa rasę psa na podstawie zdjęcia; usługa HowOld, która określa wiek osoby na zdjęciu itd.) oraz Yandex (w czerwcu zespół zbudował w aplikacji Avto.ru usługę rozpoznawania samochodów na zdjęciach, zaprezentował album muzyczny, w maju stworzyła projekt LikeMo.net do rysowania w stylu znanych artystów).

Takie usługi rozrywkowe są tworzone nie po to, by rozwiązywać globalne problemy, na które kierują się sieci neuronowe, ale po to, by zademonstrować możliwości sieci neuronowej i przeprowadzić jej szkolenie.

„Gry są charakterystyczną cechą naszego zachowania jako gatunku biologicznego. Z jednej strony prawie wszystkie typowe scenariusze ludzkich zachowań mogą być wzorowane na sytuacjach w grze, a z drugiej strony twórcy gier, a zwłaszcza gracze, mogą czerpać z tego wiele przyjemności. Jest też aspekt czysto utylitarny. Dobrze zaprojektowana gra nie tylko przynosi satysfakcję graczom: podczas gry trenują oni algorytm sieci neuronowej. W końcu sieci neuronowe opierają się na uczeniu się na przykładach ”- mówi Vlad Shershulsky z Microsoft.

„Przede wszystkim robi się to po to, aby pokazać możliwości technologii. Naprawdę nie ma innego powodu. Jeśli mówimy o Prismie, jasne jest, dlaczego to zrobili. Chłopaki zbudowali potok, który pozwala im pracować ze zdjęciami. Aby to zademonstrować, wybrali dość prosty sposób tworzenia stylizacji. Dlaczego nie? To tylko demonstracja działania algorytmów” – mówi Grigory Bakunov z Yandex.

Andrey Kalinin z Mail.Ru Group ma inne zdanie: „Oczywiście jest to spektakularne z punktu widzenia opinii publicznej. Z drugiej strony nie powiedziałbym, że produkty rozrywkowe nie mogą być stosowane w bardziej użytecznych obszarach. Na przykład zadanie stylizacji obrazów jest niezwykle istotne dla wielu branż (projektowanie, gry komputerowe, animacja to tylko kilka przykładów), a pełne wykorzystanie sieci neuronowych może znacząco zoptymalizować koszty i metody tworzenia dla nich treści.”

Najwięksi gracze na rynku sieci neuronowych

Jak zauważa Andrei Kalinin, w zasadzie większość sieci neuronowych na rynku niewiele się od siebie różni. „Technologia jest prawie taka sama dla wszystkich. Ale korzystanie z sieci neuronowych to przyjemność, na którą nie każdy może sobie pozwolić. Aby samodzielnie trenować sieć neuronową i przeprowadzać na niej wiele eksperymentów, potrzebne są duże zestawy treningowe oraz flota maszyn z drogimi kartami graficznymi. Oczywiście duże firmy mają takie możliwości – mówi.

Wśród głównych graczy rynkowych Kalinin wymienia Google i jego oddział Google DeepMind, który stworzył sieć AlphaGo, oraz Google Brain. Microsoft ma w tym zakresie własne opracowania - są one obsługiwane przez laboratorium Microsoft Research. Sieci neuronowe powstają w IBM, Facebooku (oddział Facebook AI Research), Baidu (Baidu Institute of Deep Learning) i innych. Na uczelniach technicznych na całym świecie dokonuje się wielu opracowań.

Grigorij Bakunov, dyrektor ds. upowszechniania technologii w Yandex, zauważa, że ​​wśród startupów można znaleźć również interesujące odkrycia w dziedzinie sieci neuronowych. „Pamiętam na przykład ClarifAI. To mały startup, kiedyś stworzony przez ludzi z Google. Teraz są prawdopodobnie najlepsi na świecie w identyfikowaniu treści obrazu”. Te startupy to MSQRD, Prisma i inne.

W Rosji rozwój w dziedzinie sieci neuronowych jest prowadzony nie tylko przez startupy, ale także przez duże firmy technologiczne - na przykład holding Mail.Ru Group wykorzystuje sieci neuronowe do przetwarzania i klasyfikowania tekstów w „Wyszukiwarce”, analizie obrazu . Firma prowadzi również eksperymentalne opracowania związane z botami i systemami konwersacyjnymi.

Yandex tworzy również własne sieci neuronowe: „Zasadniczo takie sieci są już wykorzystywane w pracy z obrazem, z dźwiękiem, ale badamy ich możliwości w innych obszarach. Teraz przeprowadzamy wiele eksperymentów z wykorzystaniem sieci neuronowych w pracy z tekstem”. Rozwój odbywa się na uniwersytetach: w Skoltech, Moskiewskim Instytucie Fizyki i Technologii, Moskiewskim Uniwersytecie Państwowym, Wyższej Szkole Ekonomicznej i innych.

Sieci neuronowe to model matematyczny zbudowany w oparciu o zasady działania bionicznych sieci neuronowych. Znajomość tego zjawiska należy rozpocząć od koncepcji wielowarstwowego perceptronu jako pierwszej realizacji tego systemu jako modelu komputerowego.

Co to jest perceptron wielowarstwowy w skrócie

Perceptron wielowarstwowy to hierarchiczny model obliczeniowy, w którym kalkulator jest zbudowany z zestawu neuronów prostych węzłów, które mają wiele wejść i jedno wyjście. Każde wejście (synapsa) ma przypisaną wagę.

Wejścia układu zasilane są wartościami, które rozchodzą się poprzez połączenia międzyneuronowe. Te wartości, które są liczbami rzeczywistymi, są mnożone przez wagi linków.

Logiczny schemat zasady działania perceptronu najłatwiej przedstawić za pomocą rysunku graficznego z różnymi kolorami i połączeniami między nimi:

Korzystanie z sieci neuronowych

Ta metoda jest używana do różnych celów. Na przykład, jeśli jako dane wejściowe prześlesz notowania papierów wartościowych na giełdzie, otrzymany wynik może zostać zinterpretowany jako sygnał, że papier wartościowy spadnie lub wzrośnie w przyszłości.

Innym przykładem wykorzystania sieci neuronowych w przyszłości jest dokładniejsze przewidywanie recesji globalnych i finansowych.

Jeżeli na wejściu podano np. wartość jasności zbioru kropek rastrowych, to na wyjściu można uzyskać decyzję o tym, jaki jest obraz.

Zgodnie z tym schematem sieci neuronowe nauczyły się naśladować obrazy znanych artystów, w tym Van Gogha, a także same rysować unikalne obrazy w szerokiej gamie stylów artystycznych.

Dla tak znaczącego osiągnięcia w rozwoju sieci neuronowych termin został zaproponowany przez Google incepcjonizm - obraz stworzony przez sztuczną inteligencję i charakteryzujący się ekstremalną psychodelią w najlepszych tradycjach.

Oczywiście, aby system udzielał poprawnych odpowiedzi, konieczne jest jego dostrojenie. Początkowo zasada działania opierała się na losowym doborze zmiennych losowych. Dlatego istotą algorytmu jest dostosowanie systemu do najbardziej poprawnych odpowiedzi.

W tym celu strukturę sieci neuronowej uzupełniono o algorytm korekcji wagowej, który pozwala na minimalizację błędów. Jest to niezwykle przydatna rzecz, która została wielokrotnie udokumentowana w wielu produktach komercyjnych.

Jednak paradoksalnie system nadal nie upodobnił się do ludzkiego mózgu. Stało się jasne, że aby rozwiązać problemy poważniejsze niż prognoza wymiany, na przykład dla złożonego systemu sterowania robotem z informacją multimodalną, sieć neuronowa musi być duża, podczas gdy tradycyjne sieci neuronowe są trudne do wykonania.

Faktem jest, że mózg składa się z 10 miliardów neuronów, z których każdy ma 10 000 połączeń. To niezwykle energooszczędny i dźwiękoszczelny system, tworzony przez miliony lat. Jaka jest różnica?

Różnice w zasadzie działania mózgu i sieci neuronowych

To wszystko o inna zasada sygnalizacja naszej biologicznej sieci neuronów i perceptronu. W wielowarstwowym perceptronie neurony wymieniają między sobą wartości, które są liczbami rzeczywistymi. A w mózgu następuje wymiana impulsów o ściśle ustalonej amplitudzie i krótkim czasie trwania. Oznacza to, że impulsy są prawie natychmiastowe.

Skutkuje to całym szeregiem zalet i korzyści. Po pierwsze, takie linie sygnałowe są bardzo ekonomiczne i nieaktywne - prawie nic nie rozchodzi się przez połączenia między neuronami. W perceptronie każda linia sygnałowa musi nieść naprawdę znaczącą wartość.

Po drugie, schemat transmisji sygnału impulsowego, wraz z efektywnością energetyczną, zapewnia również łatwość wdrożenia, ponieważ generowanie i przetwarzanie impulsów można przeprowadzić przy użyciu najprostszego obwody analogowe, w przeciwieństwie do skomplikowanych maszyn wspierających transfer rzeczywistych wartości.

Po trzecie, sieci impulsowe (skokowe) są chronione przed zakłóceniami. Mamy skalibrowany impuls, nałożenie szumu na który nie zakłóca pracy układu. Z drugiej strony, szum ma wpływ na liczby rzeczywiste.

I oczywiście, jeśli mówimy o symulacji numerycznej z transmisją cyfrową, a nie analogową, to do zakodowania 1 bajta informacji potrzebujemy 8 linii sygnałowych zamiast jednej.

Czyli implementacja cyfrowa podobne systemy również nie wchodzi w grę. Nawet instalacja routerów wielowarstwowych nie rozwiązuje problemu, ponieważ sieć neuronowa zwalnia i nadal jest nieefektywna.

Dlatego oczywiste jest, że do tworzenia wielkoskalowych sieci neuronowych należy zastosować podejście bioniczne, a mianowicie próbować stworzyć system na obraz i podobieństwo mózgu.

O tej najciekawszej klasie impulsowych sieci neuronowych będziemy mówić dalej:

Film o istocie sieci neuronowych w prostych słowach:

Ostatnio coraz częściej mówi się o tzw. sieciach neuronowych, mówią, że niedługo będą aktywnie wykorzystywane w robotyce, inżynierii mechanicznej i wielu innych obszarach ludzkiej działalności, ale algorytmy wyszukiwarek, same Google, już powoli zaczynają z nich korzystać. Czym są te sieci neuronowe, jak działają, jakie są ich zastosowania i jak mogą nam się przydać, o tym wszystkim czytaj dalej.

Czym są sieci neuronowe

Sieci neuronowe to jeden z obszarów badań naukowych w dziedzinie tworzenia sztucznej inteligencji (AI), która opiera się na chęci naśladowania układu nerwowego człowieka. W tym jej (układ nerwowy) umiejętność korygowania błędów i samouczenia się. Wszystko to, choć nieco szorstkie, powinno pozwolić na symulację pracy ludzkiego mózgu.

Biologiczne sieci neuronowe

Ale ta definicja w powyższym akapicie jest czysto techniczna, ale mówiąc językiem biologii, sieć neuronowa to ludzki układ nerwowy, czyli zespół neuronów w naszym mózgu, dzięki któremu myślimy, podejmujemy określone decyzje, postrzegamy otaczający nas świat. nas.

Neuron biologiczny to specjalna komórka składająca się z jądra, ciała i procesów, ponadto ma ścisły związek z tysiącami innych neuronów. Dzięki temu połączeniu impulsy elektrochemiczne są stale przesyłane, wprowadzając całą sieć neuronową w stan podniecenia lub odwrotnie. Na przykład jakieś przyjemne, a zarazem emocjonujące wydarzenie (spotkanie ukochanej osoby, wygrana w konkursie itp.) wygeneruje impuls elektrochemiczny w sieci neuronowej, która znajduje się w naszej głowie, co doprowadzi do jej wzbudzenia. W efekcie sieć neuronowa w naszym mózgu przekaże swoje pobudzenie do innych narządów naszego ciała i doprowadzi do zwiększonego tętna, częstszego mrugania oczami itp.

Na zdjęciu bardzo uproszczony model biologicznej sieci neuronowej mózgu. Widzimy, że neuron składa się z ciała komórki i jądra, z kolei ciało komórki ma wiele rozgałęzionych włókien zwanych dendrytami. Długie dendryty nazywane są aksonami i mają znacznie większą długość niż pokazano na tym rysunku, poprzez aksony odbywa się komunikacja między neuronami, dzięki którym w naszych głowach działa biologiczna sieć neuronowa.

Historia sieci neuronowych

Jaka jest historia rozwoju sieci neuronowych w nauce i technologii? Powstaje wraz z pojawieniem się pierwszych komputerów lub komputerów (komputerów elektronicznych), jak je nazywano w tamtych czasach. Tak więc pod koniec lat 40. pewien Donald Hebb opracował mechanizm sieci neuronowej, który określał zasady uczenia komputerów, tych „protokomputerów”.

Dalsza chronologia wydarzeń przedstawiała się następująco:

  • W 1954 r. pierwszy praktyczne użycie sieci neuronowe w pracy komputerów.
  • W 1958 roku Frank Rosenblatt opracował algorytm rozpoznawania wzorców i matematyczną adnotację do niego.
  • W latach 60. zainteresowanie rozwojem sieci neuronowych nieco osłabło ze względu na słabą moc obliczeniową tamtych czasów.
  • I odżyła ponownie już w latach 80., w tym okresie pojawił się system z mechanizmem sprzężenia zwrotnego, opracowano algorytmy samouczące się.
  • Do 2000 roku moc komputerów wzrosła tak bardzo, że były w stanie realizować najśmielsze marzenia naukowców z przeszłości. W tym czasie pojawiają się programy rozpoznawania głosu, wizja komputerowa i wiele więcej.

Sztuczne sieci neuronowe

Sztuczne sieci neuronowe są powszechnie rozumiane jako: systemy komputerowe posiadają zdolność do samodzielnego uczenia się, stopniowo zwiększając swoją produktywność. Głównymi elementami struktury sieci neuronowej są:

  • Sztuczne neurony, które są elementarnymi, połączonymi ze sobą jednostkami.
  • Synapsa to połączenie, które służy do wysyłania i odbierania informacji między neuronami.
  • Sygnał to rzeczywista informacja do przesłania.

Zastosowanie sieci neuronowych

Zakres sztucznych sieci neuronowych powiększa się z roku na rok, dziś są one wykorzystywane w takich obszarach jak:

  • Uczenie maszynowe to rodzaj sztucznej inteligencji. Opiera się na szkoleniu AI na przykładzie milionów zadań tego samego typu. W dzisiejszych czasach uczenie maszynowe jest aktywnie wdrażane Wyszukiwarki Google, Yandex, Bing, Baidu. Tak więc na podstawie milionów zapytań, które wszyscy wpisujemy każdego dnia w Google, ich algorytmy uczą się pokazywać nam najtrafniejsze wyniki, abyśmy mogli znaleźć dokładnie to, czego szukamy.
  • W robotyce sieci neuronowe są wykorzystywane do opracowywania licznych algorytmów żelaznych „mózgów” robotów.
  • Architekci systemy komputerowe wykorzystać sieci neuronowe do rozwiązania problemu obliczeń równoległych.
  • Za pomocą sieci neuronowych matematycy mogą rozwiązywać różne złożone problemy matematyczne.

Rodzaje sieci neuronowych

Ogólnie rzecz biorąc, do różnych zadań są używane Różne rodzaje oraz rodzaje sieci neuronowych, wśród których są:

  • konwolucyjne sieci neuronowe,
  • rekurencyjne sieci neuronowe,
  • Sieć neuronowa Hopfielda.

Konwolucyjne sieci neuronowe

Sieci konwolucyjne to jeden z najpopularniejszych typów sztucznych sieci neuronowych. Udowodnili więc swoją skuteczność w rozpoznawaniu wzorców wizualnych (wideo i obrazy), systemach rekomendujących i przetwarzaniu języka.

  • Splotowe sieci neuronowe są wysoce skalowalne i mogą być używane do rozpoznawania wzorców o dowolnej dużej rozdzielczości.
  • Sieci te wykorzystują wolumetryczne trójwymiarowe neurony. W obrębie jednej warstwy neurony połączone są jedynie niewielkim polem, zwanym warstwą receptywną.
  • Neurony sąsiednich warstw są połączone mechanizmem lokalizacji przestrzennej. Pracę wielu takich warstw zapewniają specjalne nieliniowe filtry, które reagują na coraz większą liczbę pikseli.

Rekurencyjne sieci neuronowe

Takie sieci neuronowe nazywane są rekurencyjnymi, których połączenia między neuronami tworzą cykl orientacyjny. Ma następujące cechy:

  • Każde połączenie ma swoją wagę, co również jest priorytetem.
  • Węzły dzielą się na dwa typy, węzły wprowadzające i węzły ukryte.
  • Informacje w rekurencyjnej sieci neuronowej są przesyłane nie tylko w linii prostej, warstwa po warstwie, ale także między samymi neuronami.
  • Ważną cechą wyróżniającą sieć neuronową rekurencyjną jest obecność tzw. „obszaru uwagi”, kiedy to maszynie można nadać pewne fragmenty danych, które wymagają wzmożonego przetwarzania.

W rozpoznawaniu i przetwarzaniu danych tekstowych wykorzystywane są rekurencyjne sieci neuronowe (często bazują na translatorze Google, algorytmie Yandex Palekh, asystent głosowy Apple Siri).

Sieci neuronowe, wideo

I na zakończenie ciekawe wideo o sieciach neuronowych.

1.2 Zastosowania sieci neuronowych

Sztuczne sieci neuronowe są obecnie szeroko stosowane w rozwiązywaniu różnorodnych problemów i są aktywnie wykorzystywane tam, gdzie konwencjonalne rozwiązania algorytmiczne są nieskuteczne lub wręcz niemożliwe. Wśród zadań, którym powierzono rozwiązywanie sztucznych sieci neuronowych, znajdują się: rozpoznawanie tekstu, systemy bezpieczeństwa i nadzoru wideo, automatyzacja procesów rozpoznawania obrazu, sterowanie adaptacyjne, aproksymacja funkcjonalności, prognozowanie - i to nie wszystko. Za pomocą sieci neuronowych możliwe jest wykonanie rozpoznawania optycznych lub sygnały dźwiękowe. Implementacje sprzętowe sieci ANN są idealne do rozwiązywania problemów identyfikacji i sterowania, ponieważ zapewniają, dzięki równoległej strukturze, niezwykle dużą szybkość działania.

Opisane cechy dotyczą głównie warstwowych sieci neuronowych wytrenowanych przez algorytm wstecznej propagacji błędów oraz rosnących sieci neuronowych opartych na wariantach algorytmu korelacji kaskadowej. Ale są inne klasy sieci neuronowych - sieci neuronowe pamięć skojarzeniowa, sieci neuronowe do kwantyzacji danych, kompresja danych przez konstruowanie głównych niezależnych komponentów, sieci neuronowe do rozdzielania mieszanki sygnałów itp. Tzn. zakres zadań rozwiązywanych przez sieci neuronowe jest bardzo, bardzo szeroki, ponieważ sam zestaw algorytmów sieci neuronowych jest również szeroki.

1.3 Klasyfikacja sieci neuronowych

Jest wystarczająco duży wybór uniwersalne sposoby organizacja narzędzi i rzeczywisty proces wykorzystania sieci neuronowych na różnych podstawach sprzętowych i programowych. Zawsze możesz wybrać najbardziej optymalny dla danego zadania - wszystko zależy od właściwości zadania i wymagań dotyczących rozwiązania.

Jednak korzystanie z sieci neuronowych jest skomplikowane z wielu powodów. Nie da się wymyślić jednej uniwersalnej SSN, która byłaby odpowiednia dla różne rodzaje zadania. Sieci neuronowe są używane w dwóch wersjach:

1) budowana jest sieć neuronowa, która rozwiązuje pewną klasę problemów,

2) Dla każdej instancji zadania budowana jest pewna sieć neuronowa, która znajduje quasi-optymalne rozwiązanie tego zadania.

Istnieje kilka rodzajów sieci neuronowych. Ich klasyfikację przedstawiono na rysunku 1.1

Rysunek 1.1 Klasyfikacja INS


Najpopularniejszą rodziną sieci o działaniu bezpośrednim są perceptrony wielowarstwowe, w których neurony są ułożone warstwami i połączone jednokierunkowymi połączeniami biegnącymi od wejścia do wyjścia sieci. Sieci działań bezpośrednich są statyczne w tym sensie, że dla danego wejścia wytwarzają jeden zestaw wartości wyjściowych, od których nie zależą Poprzedni stan sieci.

Sieci rekurencyjne są dynamiczne, ponieważ z racji informacja zwrotna modyfikują wejścia neuronów, co prowadzi do zmiany stanu sieci. Zachowanie sieci rekurencyjnych jest opisane równaniami różniczkowymi lub różnicowymi, zwykle pierwszego rzędu. To znacznie rozszerza zakres sieci neuronowych i sposób ich trenowania. Sieć jest zorganizowana w taki sposób, że każdy neuron otrzymuje dane wejściowe od innych neuronów, być może zarówno od siebie, jak i od otoczenia.

Istnieją również dwa główne podejścia do implementacji sieci neuronowych: cyfrowe i analogowe. Zaletą wdrożeń analogowych są: szybkość, niezawodność i oszczędność. Jednak zakres możliwego masowego wykorzystania wytrenowanych neurochipsów analogowych jest raczej wąski. Wynika to z dużej złożoności sprzętowej implementacji wysoce wydajnych algorytmów uczenia oraz potrzeby specjalnego przeszkolenia potencjalnych użytkowników w celu optymalnej organizacji procesu adaptacyjnego. Jednocześnie powszechnie stosowane mogą być wytrenowane neurokomputery analogowe (sieci neuronowe) o stałej lub nieznacznie regulowanej strukturze połączeń – neuroprocesory.

Zadanie tworzenia neuroprocesorów sprowadza się do nauczenia cyfrowego modelu sieci neuronowej pożądanego zachowania na normalnym komputer cyfrowy.

Sieci można również klasyfikować według liczby warstw. W tym przypadku istotną rolę odgrywa nieliniowość funkcji aktywacji, gdyż gdyby nie posiadała tej właściwości lub nie była uwzględniona w algorytmie działania każdego neuronu, wynik działania dowolnej n-warstwowej sieci neuronowej byłby sprowadzić do pomnożenia wektora sygnału wejściowego φ przez macierz współczynników wag. Oznacza to, że w rzeczywistości taka sieć neuronowa jest równoważna jednowarstwowej sieci neuronowej z macierzą wag pojedynczej warstwy W. Ponadto czasami do połączeń synaptycznych wprowadzana jest nieliniowość.

1.4 Struktura i zasady działania sieci neuronowej

Jako model neuronowy wybrano binarny element progowy, który oblicza ważoną sumę sygnałów wejściowych i generuje sygnał o wielkości 1 na wyjściu, jeśli suma ta przekracza określoną wartość progową, a 0 w przeciwnym razie. Do tego czasu ten model nie uległa większym zmianom. Wprowadzono nowe rodzaje funkcji aktywacji. Model strukturalny neuronu technicznego pokazano na rysunku 1.3

Rysunek 1.3 Formalny model sztucznego neuronu

Wejście sztucznego neuronu odbiera pewien zestaw sygnałów, z których każdy jest wyjściem innego neuronu lub sygnałem wejściowym modelu sieci neuronowej. Każdy sygnał wejściowy jest mnożony przez odpowiednią wagę, podobną do siły synaptycznej neuronu biologicznego. Waga określa, jak bardzo odpowiedni sygnał wejściowy neuronu wpływa na jego stan. Wszystkie produkty są sumowane, określając poziom aktywacji neuronów. Stan neuronu określa wzór.

gdzie φ jest zbiorem sygnałów docierających na wejście neuronu,

w i to współczynniki wagowe neuronu.

, (1.2)

gdzie n jest wymiarem wektora wejściowego,

w 0 - "neural bias", wprowadzony do inicjalizacji sieci, - jest podłączony do niezmienionego wejścia +1,

F jest funkcją aktywacji neuronu.

Neurony można grupować w strukturę sieciową na różne sposoby. Cechy funkcjonalne neurony i sposób ich łączenia w strukturę sieci determinuje cechy sieci neuronowej. Do rozwiązywania problemów identyfikacji i sterowania najbardziej odpowiednie są wielowarstwowe sieci neuronowe (MNS) bezpośredniego działania lub wielowarstwowe perceptrony. Podczas projektowania MNS neurony są łączone w warstwy, z których każda przetwarza wektor sygnałów z poprzedniej warstwy. Minimalna implementacja to dwuwarstwowa sieć neuronowa składająca się z warstwy wejściowej (dystrybucyjnej), pośredniej (ukrytej) i wyjściowej.


Rysunek 1.4 Schemat strukturalny dwuwarstwowa sieć neuronowa.

Implementacja modelu dwuwarstwowej sieci neuronowej o działaniu bezpośrednim ma następującą reprezentację matematyczną:

, (1.7)

gdzie n φ jest wymiarem wektora wejściowego φ sieci neuronowej;

n h to liczba neuronów w warstwie ukrytej;

θ – wektor regulowanych parametrów sieci neuronowej, w tym współczynniki wagowe i obciążenia neuronowe (w ji , W ij)

f j (x) jest funkcją aktywacji neuronów w warstwie ukrytej;

Fi (x) – funkcja aktywacji neuronów warstwy wyjściowej.

Perceptron to sieć składająca się z kilku kolejno połączonych warstw formalnych neuronów (rysunek 1.3). Na najniższy poziom Hierarchia to warstwa wejściowa, składająca się z elementów sensorycznych, której zadaniem jest jedynie odbieranie i rozpowszechnianie informacji wejściowych w sieci. Wtedy jest jedna lub rzadziej kilka ukrytych warstw. Każdy neuron w warstwie ukrytej ma kilka wejść połączonych z wyjściami neuronów z poprzedniej warstwy lub bezpośrednio z czujnikami wejściowymi φ 1 ..φ n , oraz jedno wyjście. Neuron charakteryzuje się unikalnym wektorem regulowanych parametrów θ. Funkcją neuronu jest obliczenie sumy ważonej swoich wejść, a następnie nieliniowe przekształcenie jej w sygnał wyjściowy:




Systemy ekspertowe (A. Baturo), a także wykłady prof. JAKIŚ. Garbus w sieciach neuronowych. Załącznik 1. Plakaty obrony dyplomu. TECHNOLOGIA WYDOBYWANIA WIEDZY Z SIECI NEURONOWYCH: ¨ ZATWIERDZENIE, ¨ PROJEKTOWANIE OPROGRAMOWANIA, ¨ ZASTOSOWANIE W PSYCHOLINGWISTYCE CEL PRACY ¨ akceptacja elastycznej technologii ekstrakcji...

MT na niekrytyczną ekstrapolację wyniku uważa się za jego słabość. Sieci RBF są bardziej wrażliwe na „przekleństwo wymiarowości” i doświadczają znacznych trudności, gdy liczba wejść jest duża. 5. MODELOWANIE SIECI NEURONOWYCH DO PROGNOZOWANIA KOSZTÓW NIERUCHOMOŚCI 5.1 Cechy prognozowania sieci neuronowych w problemie wyceny nieruchomości Wykorzystanie sieci neuronowych może być ...

Analizuj ich trendy i przewiduj sytuację w przyszłości. Wszyscy uczestnicy rynku papierów wartościowych planują swoje działania dopiero po wnikliwej analizie. Statystyczne metody prognozowania rozwoju rynku papierów wartościowych opierają się na konstrukcji indeksów giełdowych, obliczaniu dyspersji, zmienności, kowariancji, ekstrapolacji i interpolacji. Indeksy giełdowe cieszą się największą popularnością we wszystkich...


Od 20 maja 2006 r. (Cennik Platan) - 2654 rubli. ANEKS D Dane wyjściowe do realizacji części organizacyjno-ekonomicznej Temat pracy kwalifikacyjnej końcowej: Sieciowy system neuronowy do diagnozowania i sterowania zespołem pompującym. Miejsce praktyki przeddyplomowej: UGATU Cena analogowa: 40 000 rubli. Zapytaj cenę: 35 000 rubli. Wielkość popytu: 1 sztuka Wypisać...