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

  • Peter Holmes
  • 0
  • 2258
  • 79
Reklama

Jeśli nadążasz za nowinkami technologicznymi, prawdopodobnie spotkałeś się z koncepcją sieci neuronowe (znany również jako sieci neuronowe).

Na przykład w 2016 r. Sieć neuronowa AlphaGo firmy Google pokonała jednego z najlepszych profesjonalnych graczy Go na świecie w serii 4-1. YouTube ogłosił również, że użyje sieci neuronowych, aby lepiej zrozumieć swoje filmy. YouTube użyje sieci neuronowych, aby faktycznie zrozumieć filmy. YouTube użyje sieci neuronowych, aby faktycznie zrozumieć filmy. Wyszukiwanie w YouTube może być frustrujące, ponieważ YouTube nie widzi filmów w ten sposób, że osoba wie. Ostatnio Google składa patent, który może to zmienić. . Przychodzą mi na myśl dziesiątki innych historii.

Ale czym dokładnie jest sieć neuronowa? Jak to działa? I dlaczego jest tak popularny w uczeniu maszynowym?

Komputer jak mózg

Współcześni neuronaukowcy często omawiają mózg jako rodzaj komputera. Sieci neuronowe mają na odwrót: zbudować komputer, który działa jak mózg.

Oczywiście, mamy pobieżne zrozumienie niezwykle złożonych funkcji mózgu, ale tworząc uproszczoną symulację przetwarzania danych przez mózg, możemy zbudować rodzaj komputera, który działa zupełnie inaczej niż standardowy.

Procesory komputerowe przetwarzają dane szeregowo (“w porządku”). Wykonują wiele operacji na zestawie danych, pojedynczo. Przetwarzanie równoległe (“przetwarzając kilka strumieni jednocześnie”) znacznie przyspiesza pracę komputera dzięki szeregowym procesorom.

Na poniższym obrazie przykład przetwarzania równoległego wymaga pięciu różnych procesorów:

Źródło zdjęcia: ExplainThatStuff

Sztuczna sieć neuronowa (tak zwana w celu odróżnienia jej od rzeczywistych sieci neuronowych w mózgu) ma zasadniczo inną strukturę. Jest wysoce połączony. Umożliwia to bardzo szybkie przetwarzanie danych, wyciąganie wniosków z tych danych i aktualizowanie własnej struktury wewnętrznej w celu poprawy wydajności.

Wysoki stopień wzajemnych powiązań ma jednak zdumiewające skutki. Na przykład sieci neuronowe bardzo dobrze rozpoznają niejasne wzorce danych.

Umiejętność uczenia się

Zdolność sieci neuronowej do nauki jest jej największą siłą. Przy standardowej architekturze obliczeniowej programista musi opracować algorytm, który mówi komputerowi, co zrobić z przychodzącymi danymi, aby upewnić się, że komputer wysyła poprawną odpowiedź.

Odpowiedź wejścia / wyjścia może być tak prosta jak “po naciśnięciu klawisza A wyświetl na ekranie „A”” lub tak skomplikowane, jak wykonywanie skomplikowanych statystyk. Z drugiej strony sieci neuronowe nie potrzebują tego samego rodzaju algorytmów. Dzięki mechanizmom uczenia się mogą zasadniczo zaprojektować własne algorytmy. 4 Algorytmy uczenia maszynowego, które kształtują twoje życie. 4 Algorytmy uczenia maszynowego, które kształtują twoje życie. Być może nie zdajesz sobie z tego sprawy, ale uczenie maszynowe jest już wszędzie wokół ciebie i może wywrzeć zaskakujący wpływ. przez całe życie. Nie wierzysz mi? Możesz być zaskoczony. które zapewniają prawidłowe działanie.

Należy zauważyć, że ponieważ sieci neuronowe to programy napisane na komputerach, które używają standardowego sprzętu do przetwarzania szeregowego, obecna technologia wciąż nakłada ograniczenia. Właściwie zbudowanie wersji sprzętowej sieci neuronowej to zupełnie inny problem.

Od neuronów do węzłów

Teraz, kiedy położyliśmy podwaliny pod funkcjonowanie sieci neuronowych, możemy zacząć przyglądać się niektórym szczegółom. Podstawowa struktura sztucznej sieci neuronowej wygląda następująco:

Każdy z kręgów nosi nazwę a “węzeł” i symuluje pojedynczy neuron. Po lewej stronie są węzły wejściowe, w środku są ukryte węzły, a po prawej są węzły wyjściowe.

Mówiąc najprościej, węzły wejściowe akceptują wartości wejściowe, które mogą być binarne 1 lub 0, częścią wartości koloru RGB, statusem szachy lub czymkolwiek innym. Te węzły reprezentują informacje wpływające do sieci.

Każdy węzeł wejściowy jest podłączony do pewnej liczby ukrytych węzłów (czasami do każdego ukrytego węzła, a czasem do podzbioru). Węzły wejściowe pobierają podane informacje i przekazują je do ukrytej warstwy.

Na przykład węzeł wejściowy może wysłać sygnał (“ogień,” w języku neuronauki), jeśli otrzyma 1, i pozostań w uśpieniu, jeśli otrzyma zero. Każdy ukryty węzeł ma próg: jeśli wszystkie zsumowane dane wejściowe osiągną określoną wartość, uruchamia się.

Od synaps do połączeń

Każde połączenie, równoważne anatomicznej synapsie, ma również określoną wagę, co pozwala sieci kłaść większy nacisk na działanie określonego węzła. Oto przykład:

Jak widać, waga połączenia B jest wyższa niż waga połączenia A i C. Powiedzmy, że ukryty węzeł 4 będzie uruchamiany tylko wtedy, gdy otrzyma łączny sygnał wejściowy równy 2 lub większy. Oznacza to, że jeśli 1 lub 3 wystrzelą same, 4 nie zostaną uruchomione, ale 1 i 3 razem uruchomią węzeł. Węzeł 2 może również samodzielnie uruchamiać węzeł poprzez połączenie B.

Weźmy pogodę za praktyczny przykład. Załóżmy, że projektujesz prostą sieć neuronową, aby ustalić, czy powinno być ostrzeżenie o burzy zimowej.

Korzystając z powyższych połączeń i ciężarów, węzeł 4 może strzelać tylko wtedy, gdy temperatura jest niższa niż 0 F, a wiatry są powyżej 30 MPH, lub zadziałałby, jeśli istnieje więcej niż 70 procent szans na śnieg. Temperatura byłaby doprowadzana do węzła 1, wiatry do węzła 3, a prawdopodobieństwo śniegu do węzła 2. Teraz węzeł 4 może wziąć to wszystko pod uwagę przy określaniu, jaki sygnał wysłać do warstwy wyjściowej.

Lepsza niż prosta logika

Oczywiście tę funkcję można po prostu wprowadzić za pomocą prostych bramek logicznych AND / OR. Ale bardziej złożone sieci neuronowe, takie jak ta poniżej, są w stanie wykonywać znacznie bardziej złożone operacje.

Źródło zdjęcia: Sieci neuronowe i głębokie uczenie się autorstwa Michaela A. Nielsena

Węzły warstwy wyjściowej działają w taki sam sposób, jak węzły warstwy ukrytej: węzły wyjściowe sumują dane wejściowe z warstwy ukrytej, a jeśli osiągną określoną wartość, węzły wyjściowe uruchamiają się i wysyłają określone sygnały. Pod koniec procesu warstwa wyjściowa wyśle ​​zestaw sygnałów wskazujących wynik wejścia.

Chociaż sieć pokazana powyżej jest prosta, głębokie sieci neuronowe mogą mieć wiele ukrytych warstw i setki węzłów.

Źródło zdjęcia: Sieci neuronowe i głębokie uczenie się autorstwa Michaela A. Nielsena

Korekcja błędów

Jak dotąd proces ten jest stosunkowo prosty. Ale tam, gdzie sieci neuronowe naprawdę świecą, uczenie się. Większość sieci neuronowych wykorzystuje proces o nazwie propagacja wsteczna, który wysyła sygnały wstecz przez sieć.

Zanim programiści wdrożą sieć neuronową, przeprowadzają ją przez fazę szkolenia, w której otrzymuje zestaw danych wejściowych o znanych wynikach. Na przykład programista może nauczyć sieć neuronową rozpoznawania obrazów. 8 Sprytnych aplikacji do identyfikacji czegokolwiek przy użyciu aparatu w telefonie 8 Sprytnych aplikacji do identyfikowania czegokolwiek przy użyciu aparatu w telefonie Te aplikacje do rozpoznawania obrazów pozwalają identyfikować monety, rośliny, produkty i wiele więcej za pomocą aparat twojego telefonu. . Wejściem może być zdjęcie samochodu, a poprawnym wyjściem byłoby słowo “samochód.”

Programista dostarcza obraz jako dane wejściowe i sprawdza, co wychodzi z węzłów wyjściowych. Jeśli sieć odpowiada za pomocą “samolot,” programista informuje komputer, że jest niepoprawny.

Sieć następnie dostosowuje własne połączenia, zmieniając wagi różnych połączeń między węzłami. To działanie jest kierowane przez określony algorytm uczenia dodany do sieci. Sieć nadal dostosowuje wagi połączeń, dopóki nie zapewni prawidłowego wyniku.

Jest to uproszczenie, ale sieci neuronowe mogą uczyć się bardzo złożonych operacji przy użyciu podobnych zasad.

Nieustanne udoskonalanie

Nawet po szkoleniu propagacja wsteczna trwa - i to właśnie tam sieci neuronowe stają się naprawdę fajne. Wciąż się uczą, gdy są używane, integrując nowe informacje i wprowadzając poprawki do różnych połączeń, stając się coraz bardziej efektywni i wydajni w zadaniu, do którego zostały zaprojektowane.

Może to być tak proste jak rozpoznawanie obrazów lub tak skomplikowane jak odtwarzanie Go.

W ten sposób sieci neuronowe zawsze się zmieniają i ulepszają. Może to mieć zaskakujące efekty, powodując, że sieci będą traktować priorytetowo rzeczy, o których programista nie pomyślałby, że będą traktować priorytetowo.

Oprócz procesu opisanego powyżej, który nazywa się Nadzorowana nauka, jest też inna metoda: uczenie się bez nadzoru.

W tej sytuacji sieci neuronowe pobierają dane wejściowe i próbują odtworzyć je dokładnie w danych wyjściowych, wykorzystując propagację wsteczną do aktualizacji swoich połączeń. Może to zabrzmieć jak bezowocne ćwiczenie, ale w ten sposób sieci uczą się wyodrębniać przydatne funkcje i uogólniać te funkcje, aby ulepszyć swoje modele.

Zagadnienia głębi

Propagacja wsteczna to bardzo skuteczny sposób uczenia sieci neuronowych… gdy mają one tylko kilka warstw głębokości. Wraz ze wzrostem liczby ukrytych warstw maleje skuteczność propagacji wstecznej. Jest to problem dla sieci głębokich. Korzystanie z propagacji zwrotnej często nie jest bardziej skuteczne niż proste sieci.

Naukowcy opracowali szereg rozwiązań tego problemu, których specyfika jest dość skomplikowana i wykracza poza zakres tego wstępnego tekstu. Wiele z tych rozwiązań próbuje, w prostych słowach, zmniejszyć złożoność sieci poprzez jej szkolenie “kompres” dane.

Źródło zdjęcia: Song Han

Aby to zrobić, sieć uczy się wyodrębniać mniejszą liczbę identyfikujących danych wejściowych, co ostatecznie staje się bardziej wydajne w obliczeniach. W efekcie sieć dokonuje uogólnień i abstrakcji, podobnie jak ludzie się uczą.

Po tym nauczeniu sieć może przycinać węzły i połączenia, które uważa za mniej ważne. Dzięki temu sieć jest bardziej wydajna, a uczenie się łatwiejsze.

Aplikacje sieci neuronowej

Sieci neuronowe symulują zatem sposób uczenia się mózgu za pomocą wielu warstw węzłów - wejściowych, ukrytych i wyjściowych - i są w stanie uczyć się zarówno w sytuacjach nadzorowanych, jak i nienadzorowanych. Złożone sieci są w stanie tworzyć abstrakcje i generalizować, dzięki czemu są bardziej wydajne i lepiej się uczą.

Do czego możemy wykorzystać te fascynujące systemy?

Teoretycznie możemy używać sieci neuronowych do prawie wszystkiego. I prawdopodobnie używasz ich, nie zdając sobie z tego sprawy. Są one bardzo popularne na przykład w rozpoznawaniu mowy i obrazu, ponieważ mogą nauczyć się wybierać określone cechy, które mają wspólne dźwięki lub obrazy.

Kiedy więc pytasz Siri o 8 rzeczy, których prawdopodobnie nie zdawałeś sobie sprawy, Siri może zrobić 8 rzeczy, których prawdopodobnie nie zdawałeś sobie sprawy, że Siri może zrobić Siri stała się jedną z głównych cech iPhone'a, ale dla wielu osób nie zawsze jest to najbardziej przydatne. Chociaż niektóre z nich wynikają z ograniczeń rozpoznawania głosu, dziwne jest używanie… w pobliżu najbliższej stacji benzynowej, twój iPhone przekazuje mowę przez sieć neuronową, aby dowiedzieć się, co mówisz. Może istnieć inna sieć neuronowa, która uczy się przewidywać rodzaje rzeczy, o które prawdopodobnie będziesz prosić.

Samochody samojezdne mogą wykorzystywać sieci neuronowe do przetwarzania danych wizualnych, przestrzegając w ten sposób przepisów drogowych i unikając kolizji. Roboty wszelkiego rodzaju mogą korzystać z sieci neuronowych, które pomagają im nauczyć się skutecznie wykonywać zadania. Komputery mogą nauczyć się grać w gry takie jak szachy, Go i Atari klasyka. Jeśli kiedykolwiek rozmawiałeś z chatbotem, istnieje szansa, że ​​użył sieci neuronowej, aby zaoferować odpowiednie odpowiedzi.

wyszukiwanie w Internecie może znacznie skorzystać z sieci neuronowych, ponieważ wysoce wydajny model przetwarzania równoległego może szybko zmarnować wiele danych. Sieć neuronowa może również nauczyć się twoich nawyków, aby spersonalizować wyniki wyszukiwania lub przewidzieć, czego będziesz szukać w najbliższej przyszłości. Ten model przewidywania byłby oczywiście bardzo cenny dla marketerów (i każdego innego, kto musi przewidywać złożone zachowania ludzkie).

Rozpoznawanie obrazu, optyczne rozpoznawanie znaków 5 najlepszych narzędzi OCR do wyodrębniania tekstu z obrazów 5 najlepszych narzędzi OCR do wyodrębniania tekstu z obrazów Kiedy masz ryz papieru, w jaki sposób przekształcić cały wydrukowany tekst w coś, co program cyfrowy będzie w stanie rozpoznać i zindeksować? Trzymaj dobre oprogramowanie OCR w pobliżu. , prognozy giełdowe, wyszukiwanie tras, przetwarzanie dużych zbiorów danych, analiza kosztów medycznych, prognozowanie sprzedaży, sztuczna inteligencja gier wideo… możliwości są prawie nieograniczone. Zdolność sieci neuronowych do uczenia się wzorców, dokonywania uogólnień i skutecznego przewidywania zachowania czyni je cennymi w niezliczonych sytuacjach.

Przyszłość sieci neuronowych

Sieci neuronowe przeszły od bardzo prostych modeli do bardzo złożonych symulacji uczenia się. Są w naszych telefonach, tabletach i obsługują wiele usług internetowych, z których korzystamy. Istnieje wiele innych systemów uczenia maszynowego.

Ale sieci neuronowe, ze względu na ich podobieństwo (w bardzo uproszczony sposób) do ludzkiego mózgu, są jednymi z najbardziej fascynujących. W miarę rozwoju i udoskonalania modeli nie wiadomo, do czego będą zdolni.

Czy znasz jakieś ciekawe zastosowania sieci neuronowych? Czy sam masz z nimi doświadczenie? Co jest najbardziej interesujące w tej technologii? Podziel się swoimi przemyśleniami w komentarzach poniżej!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.