Co to są sieci neuronowe i gdzie są stosowane?

28.08.2023
24 min
9605
-1
Co to są sieci neuronowe i gdzie są stosowane? Główny kolaż artykułu.

Co to jest sieć neuronowa?

Sieć neuronowa to model matematyczny działający na zasadzie ludzkiego mózgu. Uczy się go poprzez pierwotne przetwarzanie dużego zbioru danych, bez konieczności pisania osobnego kodu dla konkretnego zadania.

Sieci neuronowe to jeden ze sposobów uczenia maszynowego, podzbiór sztucznej inteligencji (AI), stanowią również serce algorytmów głębokiego uczenia się. Potrafią szukać wzorców w nieustrukturyzowanych danych i rozwiązywać wiele problemów.

W ostatnich latach technologia bardzo się rozwinęła. Służy głównie do przetwarzania tekstu, wideo, audio i innych informacji.

Szczególną popularność zyskały sieci neuronowe, które potrafią szybko generować obrazy na podstawie podpowiedzi i udzielać „prawie ludzkich” odpowiedzi na pytania lub zapytania w języku naturalnym. 

Takie modele nie zastępują pracy specjalistów, ale pomagają optymalizować rutynowe procesy.

Z czego składa się sieć neuronowa?

Sztuczne sieci neuronowe tworzone są na wzór sieci biologicznych, które tworzą mózgi istot żywych. Mają neurony i synapsy.

Sztuczne neurony to jednostki strukturalne, które odbierają, przetwarzają i zwracają informacje. Są one połączone synapsami.

Matematycznie neuron jest pewną funkcją nieliniową, która zależy od wartości sygnałów wejściowych, ich wag i aktywatora.

Waga to współczynnik, dzięki któremu mogą zmieniać się informacje przesyłane pomiędzy jednostkami strukturalnymi.

Aktywator decyduje, przy jakich wartościach wejściowych neuron powinien przewodzić sygnał.

Sieć tworzą neurony ułożone warstwowo. Wejście (input) przyjmuje dane, a wyjście (output) dostarcza wynik modelu. Pomiędzy nimi znajdują się warstwy ukryte (hidden). Specjalizują się w przetwarzaniu informacji, ale twórcy sztucznej inteligencji nie zawsze rozumieją, co dzieje się w ukryciu.

Jeżeli liczba ukrytych warstw jest równa jeden, wówczas sieć nazywa się płytką, jeśli jest ich więcej – głęboką.

Płytkie (po lewej) i głębokie (po prawej) sieci neuronowe. Dane: Paczka .

Historia powstania sieci neuronowych

W 1943 roku neurofizjolog Warren McCulloch i logik Walter Pitts opublikowali artykuł symulujący biologiczne działanie neuronu organicznego za pomocą obwodów elektrycznych. Zasugerowali, że neuron można traktować jako jednostkę obliczeniową zdolną do odbierania danych wejściowych, przetwarzania ich i wytwarzania wyników.

Neuron zaproponowany przez McCullocha-Pittsa. Dane: w kierunku nauki o danych .

W 1949 roku fizjolog Donald Hebb napisał książkę Organizacja zachowania: teoria neuropsychologiczna. Naukowiec zauważył w niej, że ścieżki nerwowe ulegają wzmocnieniu przy każdym kolejnym użyciu, zwłaszcza między neuronami, które mają tendencję do jednoczesnego wyzwalania. 

Praca Hebba była początkiem długiej podróży w kierunku ilościowego określenia złożonych procesów zachodzących w mózgu.

W 1958 roku, zainspirowany publikacją McCullocha i Pittsa, neurobiolog Frank Rosenblatt opracował perceptron. Można to nazwać pierwszą praktyczną implementacją sieci neuronowej.

Architektura perceptronu.

W 1960 roku naukowiec stworzył komputer Mark I oparty na perceptronie. Był to system o prostej relacji wejście-wyjście, potrafiący uczyć się w najprostszych zadaniach.

Neurokomputer Mark I jest pierwszą implementacją perceptronu. Dane: Uniwersytet Cornell.

W 1959 roku badacze z Uniwersytetu Stanforda, Bernard Widrow i Ted Hoff, opracowali pierwszą sieć neuronową MADALINE, którą z powodzeniem zastosowano do rozwiązywania rzeczywistych problemów. Jest nadal używany i pomaga wyeliminować zakłócenia w liniach telefonicznych.

Te wczesne postępy wywołały rosnące zamieszanie wokół możliwości i potencjału sieci neuronowych.

W 1958 roku, u szczytu popularności „myślącej maszyny”, „The New York Times” opublikował artykuł na temat perspektyw dla modelek.

W roku 1961 przeprowadzono także wywiad z pionierami sztucznej inteligencji Jeromem Wisnerem, Oliverem Selfridgem i Claudem Shannonem na temat przyszłości tej technologii.

https://youtube.com/watch?v=aygSMgK3BEM%3Fenablejsapi%3D1%26autoplay%3D0%26cc_load_policy%3D0%26cc_lang_pref%3D%26iv_load_policy%3D1%26loop%3D0%26modestbranding%3D0%26rel%3D0%26fs%3D1%26playsinline%3D0%26autohide%3D2%26theme%3Ddark%26color%3Dred%26controls%3D1%26

Jednak w 1969 roku założyciel MIT AI Lab, Marvin Minsky i jego dyrektor, Seymour Papert, opublikowali książkę Perceptrons. Naukowcy zasugerowali w niej, że modeli jednowarstwowych nie da się skutecznie przekształcić w modele wielowarstwowe.

Zdaniem naukowców oszacowanie prawidłowych względnych wartości wag neuronów rozproszonych w warstwach na podstawie wyniku końcowego wymagałoby dużej liczby, jeśli nie nieskończonej liczby iteracji. Obliczenia zajęłyby bardzo dużo czasu.

Minsky i Papert przedstawili także inne problemy związane z algorytmami. Doprowadziło to społeczność naukową i agencje finansujące do wniosku, że dalsze badania w tym kierunku nie mają sensu. Rozpoczęła się zima AI.

Zainteresowanie tą technologią powróciło w 1982 r., kiedy naukowiec John Hopfield przedstawił model z dwukierunkowymi połączeniami neuronów, znany jako sieć neuronowa Hopfielda. Stał się pierwszym algorytmem z pamięcią asocjacyjną .

Sieć neuronowa Hopfielda.

W tym samym roku na konferencji poświęconej kooperatywnym i konkurencyjnym sieciom neuronowym Japonia ogłosiła nowe prace nad modelami piątej generacji. W USA bali się przegrać wyścig. Finansowanie badań zostało wznowione.

W 1985 roku Amerykański Instytut Fizyki zorganizował doroczne spotkanie poświęcone sieciom neuronowym w informatyce.

W 1987 roku Instytut Inżynierów Elektryków i Elektroników zorganizował pierwszą Międzynarodową Konferencję na temat Sieci Neuronowych.

W 1986 roku trzy niezależne grupy badaczy ponownie odkryły metodę propagacji wstecznej zaproponowaną przez socjologa Paula Verbosa w 1974 roku.

W latach 90. sieci neuronowe ponownie stały się popularne, pobudzając wyobraźnię świata i spełniając, jeśli nie przekraczając, jego oczekiwania. 

W 2006 roku naukowiec Geoffrey Hinton i jego współpracownicy opracowali głębokie sieci neuronowe przy użyciu algorytmu propagacji wstecznej. Był to przełom w rozwoju technologii, który pozwolił na bardziej precyzyjne i efektywne szkolenie. Od tego czasu sieci neuronowe stały się szeroko stosowane w różnych dziedzinach.

Zasada działania sieci neuronowej

Informacja trafia do warstwy wejściowej, której neurony przetwarzają informację, analizują ją lub klasyfikują. Dane są następnie przekazywane synapsami do następnej warstwy.

Każda synapsa ma swoją wagę, a każdy następny neuron w nowej warstwie może mieć wiele wejść.

Następnie dane trafiają do warstw ukrytych, których może być kilka i zawierają miliony neuronów połączonych ze sobą. Każda następna warstwa przetwarza dane wyjściowe poprzedniej.

Informacja przekazywana jest dalej, aż dotrze do warstwy wyjściowej. Może zawierać jeden lub więcej węzłów.

Na przykład, jeśli rozwiązanie problemu wymaga odpowiedzi „tak” lub „nie”, wówczas sieć neuronowa będzie miała jeden węzeł wyjściowy i zwróci wynik „1” lub „0”. Jednakże w przypadku klasyfikacji wielokrotnej warstwa wyjściowa może składać się z więcej niż jednego węzła.

Trening sieci neuronowych

Uczenie sieci neuronowej to proces uczenia modelu w celu wykonania określonego zadania. Dowiaduje się, które połączenia między neuronami są ważne dla skutecznego przewidywania.

Na każdym etapie algorytm wykorzystuje funkcję matematyczną do określenia różnicy pomiędzy swoją ostatnią prognozą a oczekiwanym wynikiem – błędem.

Błędy te mogą zostać wykorzystane przez system do obliczenia, w jaki sposób model powinien aktualizować wartości wag każdego neuronu, a ostatecznym celem jest poprawa dokładności przewidywań sieci.

Po wielu cyklach uczenia i ręcznym dostrajaniu algorytm uczy się, aby dokonywać dokładniejszych przewidywań. Trwa to do momentu, gdy sieć neuronowa osiągnie swoją maksymalną wartość.

Na tym etapie, gdy model np. rozpoznaje na zdjęciu koty z dokładnością przekraczającą 95%, można powiedzieć, że jest wytrenowany.

Dane szkoleniowe

Do uczenia sieci neuronowej programiści używają oznaczonych lub nieoznaczonych zestawów danych. Mogą zawierać informacje w dowolnym formacie: tekst, tabele, obrazy, wideo, audio i inne.

Programiści korzystają z trzech typów zbiorów danych: szkoleniowe, testowe i walidacyjne. Pierwsze z nich są niezbędne do uczenia sieci neuronowej, drugie do sprawdzenia dokładności uczenia, a trzecie do oceny działania algorytmu.

uczeniu nadzorowanym modele dostarczają oznakowanych danych, które z góry dają poprawną odpowiedź.

Na przykład podczas uczenia sieci neuronowej głębokiego uczenia się w zakresie rozpoznawania twarzy wyświetla się wiele zdjęć osób z opisowymi etykietami, takimi jak płeć i rasa.

Analizując oznaczone dane, model gromadzi wiedzę. Po treningu sieć neuronowa próbuje odgadnąć płeć i rasę osoby na zdjęciu, której wcześniej nie widziała.

Jeśli dane są źle oznaczone, model może zawierać błędy.

uczeniu się przez wzmacnianie informacje wejściowe nie muszą być etykietowane. Zadanie polega na wyszkoleniu agenta w środowisku, aby samodzielnie wyszukiwał wzorce i otrzymywał nagrodę po osiągnięciu celu.

Architektury sieci neuronowych

W chwili pisania tego tekstu znanych jest około 30 odmian sieci neuronowych. Mają swoje własne cechy i są przeznaczone do rozwiązywania różnych problemów.

Rodzaje sieci neuronowych. Dane: Instytut Asimova .

Sieci neuronowe ze sprzężeniem zwrotnym (FNN) są wykorzystywane w zadaniach rozpoznawania i przewidywania. Często łączy się je także z innymi modelami w celu uzyskania nowych algorytmów.

Takie sieci działają w jednym kierunku – przesyłają informacje z wejścia na wyjście.

Architektura sieci neuronowej z połączeniem bezpośrednim.

W FNN wszystkie neurony są zebrane w warstwy składające się z komórek wejściowych, ukrytych i wyjściowych. W obrębie jednej warstwy neurony nie są ze sobą połączone, ale sąsiednie warstwy są całkowicie połączone.

Konwolucyjne sieci neuronowe (CNN) są powszechnie stosowane w zadaniach związanych z widzeniem komputerowym . 

Początkowe warstwy takiego modelu specjalizują się w wydobywaniu z obrazu różnych cech, które następnie przekazywane są do konwencjonalnej sieci neuronowej w celu klasyfikacji obiektów na obrazie.

Architektura głębokiej splotowej sieci neuronowej.

CNN nie analizują wszystkich danych na raz, ale przeglądają je za pomocą filtra o zadanej wielkości.

Na przykład podczas przetwarzania obrazu o wymiarach 200 x 200 pikseli CNN odczytuje kwadrat o wymiarach 20 x 20 pikseli, przesuwa o jeden piksel i wczytuje nowy kwadrat. Dane wejściowe są następnie przepuszczane przez warstwy splotowe, w których nie wszystkie węzły są połączone.

Splot dwuwymiarowy.

Do przetwarzania języka naturalnego wykorzystywane są rekurencyjne sieci neuronowe (RNN).

Modele takie otrzymują informacje nie tylko z poprzednich warstw, ale także z ich powtarzającego się połączenia. Oznacza to, że sieć neuronowa jest również szkolona w zakresie zapamiętywania sekwencji przychodzących danych.

Architektura rekurencyjnej sieci neuronowej.

Złożoność RNN polega na tak zwanym problemie zanikającego gradientu: sieć z biegiem czasu szybko traci informacje. Wpływa to tylko na wagi, a nie na stan neuronów, ale gromadzi się w nich informacja.

Sieć Long Short Term Memory (LSTM) rozwiązuje problem utraty informacji w modelach rekurencyjnych.

Architektura sieciowa z długotrwałą pamięcią krótkotrwałą.

W LSTM każdy neuron ma komórkę pamięci i trzy filtry: wejściowy, wyjściowy i zapominający. Ich celem jest ochrona informacji. 

Filtr wejściowy określa, ile informacji z poprzedniej warstwy będzie przechowywanych w komórce, a filtr wyjściowy określa, ile informacji otrzymają kolejne warstwy.

Filtr nieświadomości kontroluje stopień, w jakim wartość jest zachowywana w pamięci. Przykładowo, przechodząc do nowego rozdziału książki, decyduje, o których bohaterach zapomnieć z poprzedniego.

Sieci posiadające długotrwałą pamięć krótkotrwałą są w stanie tworzyć złożone struktury, ale wymagają dużych zasobów.

Generacyjne, kontradyktoryjne sieci neuronowe (GAN) służą do tworzenia deepfake’ów oraz treści audio i wideo. Na ich podstawie opracowywane są także aplikacje do stylizacji zdjęć.

GAN składa się z dwóch modeli: generatora tworzącego treść i dyskryminatora, który ją ocenia.

Architektura generatywnej, przeciwstawnej sieci neuronowej.

Sieć dyskryminatorów otrzymuje dane szkoleniowe lub generowane przez generator. W powstawaniu błędu dodatkowo uczestniczy stopień odgadnięcia źródła informacji przez dyskryminator.

W ten sposób powstaje rywalizacja pomiędzy generatorem a dyskryminatorem: pierwszy uczy się oszukiwać drugiego, a drugi uczy się ujawniać oszustwo.

Uczenie takich sieci neuronowych jest trudne, ponieważ konieczne jest nie tylko wytrenowanie każdego z modeli, ale także dostosowanie równowagi między nimi.

Gdzie we współczesnym świecie wykorzystuje się sieci neuronowe

Sieci neuronowe pomagają rozwiązywać różne problemy w niemal wszystkich obszarach.

Służą do rozpoznawania i generowania obrazu, mowy i języka, wykrywania obiektów, przewidywania wartości liczbowych na podstawie danych wejściowych oraz analizy skupień.

Ponadto modele AI w połączeniu z uczeniem się przez wzmacnianie są wykorzystywane w grach – od gier planszowych takich jak Go po gry komputerowe takie jak Dota 2 czy Quake III.

Sieci neuronowe stanowią podstawę wielu aplikacji i usług. Na przykład Apple używa ich do rozumienia i generowania mowy za pomocą asystenta głosowego Siri, a Microsoft używa ich do tłumaczenia stron internetowych w czasie rzeczywistym w przeglądarce Bing. 

Każda wyszukiwarka Google wykorzystuje wiele algorytmów AI, aby zrozumieć język pytania i spersonalizować wyniki.

Za pomocą sieci neuronowych filtry AR Snapchata i TikTok mogą znajdować twarze użytkowników i stosować do nich różne efekty. Modelki pomagają także Instagramowi znajdować odpowiednie filmy w celu uzyskania rekomendacji.

W 2022 roku popularność zaczęły zyskiwać algorytmy, dzięki którym każdy mógł stworzyć niepowtarzalne obrazy na podstawie fragmentu tekstu. Generatory obrazów AI, takie jak DALL-E 2 , Midjourney i Stable Diffusion XL są nadal poszukiwane i będą używane przez długi czas.

W 2023 roku społeczność zaczęła aktywnie rozwijać i wykorzystywać chatboty oparte na dużych modelach językowych. Technologia ta pozwala użytkownikom zadać pytanie, wprowadzić zapytanie lub podpowiedź i otrzymać szczegółową, „prawie ludzką” odpowiedź tekstową.

Chatboty, takie jak ChatGPT OpenAI , potrafią rozmawiać na różne tematy i rozumieć kontekst, przyznawać się do błędów, żartować i kłócić się.

Ponadto sieci neuronowe znajdują zastosowanie w różnych gałęziach przemysłu, m.in.:

  • wizja komputerowa dla pojazdów bezzałogowych, dronów i robotów dostawczych;
  • identyfikacja twarzy w systemach monitoringu wizyjnego;
  • rozpoznawanie i synteza mowy oraz język dla botów usługowych;
  • systemy rekomendacyjne w handlu elektronicznym, platformach muzycznych i wideo, sieciach społecznościowych;
  • pomoc lekarzom w diagnozowaniu chorób i sporządzaniu dokumentacji medycznej z badań klinicznych pacjentów;
  • pomoc specjalistom w poszukiwaniu nowych związków leczniczych;
  • możliwość prewencyjnej konserwacji infrastruktury poprzez analizę danych z czujników IoT i wiele więcej.

Wady sieci neuronowych

Dokładność sieci neuronowej zależy bezpośrednio od jakości i ilości danych szkoleniowych. Czasami tworzenie modeli o wysokiej wydajności wymaga ogromnych ilości informacji.

Na przykład, szkoląc algorytm SAM AI do wykrywania nieznanych wcześniej obiektów na obrazach i filmach, Meta wykorzystała zestaw 11 milionów obrazów i 1,1 miliarda masek adnotacji.

Kolejnym wyzwaniem w tworzeniu sieci neuronowych są nieprawidłowo oznaczone dane szkoleniowe. Markery mogą popełniać błędy, a to wpływa na wynik końcowy.

Algorytmy potrafią także przejmować uprzedzenia ludzi: ucząc się na podstawie stronniczych informacji, zaczynają je powielać.

Wykorzystanie ogromnych ilości danych oraz konieczność przeprowadzenia dużej liczby cykli szkoleniowych wymagają wydajnego i drogiego sprzętu wyposażonego w wysokowydajne procesory graficzne. Może to znacznie zwiększyć koszt rozwoju sieci neuronowej.

Korporacje takie jak Meta, Apple, Microsoft i Alphabet wydają dziesiątki miliardów dolarów na tworzenie algorytmów sztucznej inteligencji. Koszty obejmują badania, rozwój, szkolenia, testowanie wydajności, wdrożenie, komercjalizację i wsparcie technologiczne.

Ponadto zbudowanie dużego i wysoce wydajnego modelu może zająć miesiące, a nawet lata. Deweloperzy nie są w stanie w pełni kontrolować sieci neuronowych. Po przeszkoleniu algorytm generuje wyniki na podstawie zadanych wag, a jeśli nie są one zadowalające, model poddawany jest ponownemu uczeniu.

Kolejny problem związany z wykorzystaniem sieci neuronowych dotyczy etyki. Deweloperzy nie zawsze mają kontrolę nad dystrybucją i wykorzystaniem technologii. Algorytmów nie można uważać za autorów, jednak twórcy ponoszą odpowiedzialność za swoje nieprawidłowe „zachowanie”.

Ze względu na dostępność technologii osoby atakujące mogą wykorzystywać sieci neuronowe do tworzenia obrazów w celu oszukiwania ludzi i szerzenia mowy nienawiści.

Przyszłość sieci neuronowych

Twórcy sieci neuronowych dążą do stworzenia ogólnej sztucznej inteligencji (AGI). Taki system będzie w stanie skutecznie rozwiązać każde zadanie intelektualne, jakie jest w stanie wykonać człowiek.

Według niektórych prognoz AGI pojawi się w ciągu najbliższej dekady, a według innych – nie wcześniej niż za 100 lat.

Sieci neuronowe służą dziś do rozwiązywania wysoce specjalistycznych problemów, mają jednak ogromny potencjał rozwojowy.

Wśród najbardziej realistycznych perspektyw dla modeli AI:

  • poprawę wydajności, dokładności i efektywności modeli poprzez tworzenie nowych architektur, optymalizację szkoleń i wykorzystanie bardziej wydajnych zasobów obliczeniowych;
  • rozszerzenie zakresu;
  • wykorzystanie do szkolenia małego zbioru danych, co pozwoli na zastosowanie modeli w sytuacjach, w których dostępna jest ograniczona ilość danych;
  • rozwój systemów samouczących się, zdolnych do ciągłego doskonalenia swoich umiejętności i wiedzy w oparciu o rzeczywiste dane.

Eksperci widzą także potencjał w integracji sieci neuronowych z innymi technologiami, w tym z blockchainem. Niektóre giełdy i akceleratory Web3 uważają, że na tej fuzji skorzystają obie branże, umożliwiając każdej z nich rozwiązanie swoich problemów.

Sieci neuronowe przeszły długą drogę od koncepcji i pierwszego wdrożenia do powszechnego zastosowania.

We współczesnym świecie modele AI wykorzystywane są do rozwiązywania różnorodnych problemów niemal we wszystkich obszarach. Pomagają rozumieć i generować mowę, tworzyć unikalne obrazy na podpowiedzi, tłumaczyć teksty, prowadzić pojazdy bezzałogowe i odkrywać nowe leki.

  • Sztuczna sieć neuronowa jest próbą odtworzenia pracy ludzkiego mózgu za pomocą modeli matematycznych. Składa się z neuronów odbierających, przetwarzających i zwracających informacje oraz synaps.
  • Po raz pierwszy biologiczną pracę neuronu organicznego zamodelowali naukowcy w 1943 roku. Badacze Warren McCulloch i Walter Pitts zaproponowali, że neuron można traktować jako jednostkę obliczeniową zdolną do odbierania danych wejściowych, przetwarzania ich i wytwarzania wyników.
  • Aby szkolić algorytmy do rozwiązywania problemów, programiści używają oznaczonych lub nieoznaczonych zbiorów danych. 
  • Znanych jest około 30 typów modeli, w tym splotowe, rekurencyjne i generatywne, przeciwstawne sieci neuronowe.
  • Wadami sieci neuronowych jest konieczność wykorzystania dużej ilości wysokiej jakości danych treningowych oraz wydajnego sprzętu. Kolejnym wyzwaniem może być czas potrzebny na stworzenie bardzo dokładnych modeli. 
  • Jednym z głównych kierunków rozwoju sieci neuronowych jest poprawa ich wydajności, dokładności i efektywności, poszerzanie zakresu oraz integracja z innymi technologiami takimi jak blockchain.

Często zadawane pytania

Sieć neuronowa to algorytm uczący się, przeznaczony do wykonywania określonych zadań.
Musisz wybrać algorytm odpowiedni do swoich zadań, sprawdzić jego dostępność w Twoim regionie, wyjaśnić, czy usługa jest bezpłatna, czy dystrybuowana w modelu subskrypcyjnym.
Najpopularniejsze serwisy posiadają własne strony internetowe. Takimi zasobami są na przykład DALL-E 2, Midjourney i Stable Diffusion XL.
Sieci neuronowe służą do rozwiązywania różnych problemów w niemal wszystkich obszarach. Pomagają rozumieć i generować mowę, tworzyć unikalne obrazy na podpowiedzi, tłumaczyć teksty, prowadzić pojazdy bezzałogowe i odkrywać nowe leki.

Co sądzisz o tym artykule?

0
1

artykuły na ten sam temat

Jak początkujący może stworzyć i rozpoznać deepfake?
avatar Maryna Hlaiboroda
23.10.2023
Co to jest uczenie maszynowe? Wszystko co powinieneś...
avatar Maryna Hlaiboroda
07.10.2023
11 najlepszych sieci neuronowych do generowania obrazów według...
avatar Ivan Pavlovskyy
13.07.2023