Sieć neuronowa (, ) – system przeznaczony do przetwarzania informacji, którego budowa i zasada działania są w pewnym stopniu wzorowane na funkcjonowaniu fragmentów rzeczywistego (biologicznego) systemu nerwowego. Na przesłankach biologicznych oparte są schematy sztucznych neuronów wchodzących w skład sieci oraz (w pewnym stopniu) jej struktura. Jednak schematy połączeń neuronów w sieci neuronowej są wybierane arbitralnie, a nie stanowią modelu rzeczywistych struktur nerwowych.
Wyróżniającą cechą sieci neuronowej jako narzędzia informatycznego jest możliwość komputerowego rozwiązywania przy jej pomocy praktycznych problemów bez ich uprzedniej matematycznej formalizacji. Dalszą zaletą jest brak konieczności odwoływania się przy stosowaniu sieci do jakichkolwiek teoretycznych założeń na temat rozwiązywanego problemu.
Najbardziej znamienną cechą sieci neuronowej jest jej zdolność uczenia się na podstawie przykładów i możliwość automatycznego uogólniania zdobytej wiedzy (generalizacja).
Czasem nazwą „sztuczne sieci neuronowe” określa się interdyscyplinarną dziedzinę wiedzy zajmującą się konstrukcją, trenowaniem i badaniem możliwości tego rodzaju sieci.
Sieci neuronowe często określane są jako tzw. czarna skrzynka, z powodu tego, że nie jest możliwe zrozumienie jak naprawdę działają, gdy używają dużej ilości parametrów. Były jednak próby opracowania matematycznej teorii jak naprawdę działają sieci neuronowe, z uwzględnieniem modelu .
thumb|Uproszczony schemat jednokierunkowej sieci neuronowej, gdzie zielone kółka oznaczają wejścia, niebieskie - sztuczne neurony, żółte kółko - wyjście.
Typy sieci neuronowych Cechą wspólną wszystkich sieci neuronowych jest to, że na ich strukturę składają się neurony połączone ze sobą synapsami. Z synapsami związane są wagi, czyli wartości liczbowe, których interpretacja zależy od modelu.
Sieci jednokierunkowe Sieci jednokierunkowe to sieci neuronowe, w których nie występuje sprzężenie zwrotne, czyli pojedynczy wzorzec lub sygnał przechodzi przez każdy neuron dokładnie raz w swoim cyklu. Najprostszą siecią neuronową jest pojedynczy perceptron progowy, opracowany przez McCullocha i Pittsa w roku 1943.
W bardziej zaawansowanych rozwiązaniach stosuje się funkcje przejścia. Najpopularniejszą klasę funkcji stosowanych w sieciach neuronowych stanowią funkcje sigmoidalne, np. tangens hiperboliczny. Sieć zbudowana z neuronów wyposażonych w nieliniową funkcję przejścia ma zdolność nieliniowej separacji wzorców wejściowych. Jest więc uniwersalnym klasyfikatorem.
Do uczenia perceptronów wielowarstwowych stosuje się algorytmy spadku gradientowego, między innymi algorytm propagacji wstecznej.
Sieci jednokierunkowe dzielą się na jednowarstwowe, dwuwarstwowe i wielowarstwowe. Sieci jednowarstwowe mogą rozwiązać jedynie wąską klasę problemów. Sieci dwu i wielowarstwowe mogą rozwiązać znacznie szerszą klasę i są pod tym względem równoważne, jednak stosuje się do nich inne algorytmy uczenia (dla wielowarstwowych są one prostsze).
Sieci rekurencyjne Mianem sieci rekurencyjnej określa się sieć, w której połączenia między neuronami stanowią graf z cyklami. Wśród różnorodności modeli rekurencyjnych sztucznych sieci neuronowych wyróżnić można: sieć Hopfielda – układ gęsto połączonych ze sobą neuronów (każdy z każdym, ale bez połączeń zwrotnych) realizującą dynamikę gwarantującą zbieżność do preferowanych wzorców maszyna Boltzmanna – opracowana przez Geoffreya Hintona i Terry’ego Sejnowskiego stochastyczna modyfikacja sieci Hopfielda; modyfikacja ta pozwoliła na uczenie neuronów ukrytych i likwidację wzorców pasożytniczych kosztem zwiększenia czasu symulacji.
Sieci Hopfielda i maszyny Boltzmanna stosuje się jako pamięci adresowane kontekstowo, do rozpoznawania obrazów, rozpoznawania mowy, a także do rozwiązywania problemów minimalizacji (np. problemu komiwojażera).
Samoorganizujące się mapy
Samoorganizujące się mapy (, ), zwane też sieciami Kohonena, to sieci neuronów, z którymi są stowarzyszone współrzędne na prostej, płaszczyźnie lub w dowolnej -wymiarowej przestrzeni.
Uczenie tego rodzaju sieci polega na zmianach współrzędnych neuronów tak, by dążyły one do wzorca zgodnego ze strukturą analizowanych danych. Sieci zatem „rozpinają się” wokół zbiorów danych, dopasowując do nich swoją strukturę.
Sieci te stosowane są do klasyfikacji wzorców, np. głosek mowy ciągłej, tekstu, muzyki. Do najciekawszych zastosowań należy rozpinanie siatki wokół komputerowego modelu skanowanego obiektu.
Inne Popularnymi modelami są również maszyny wektorów nośnych (), sieci oparte na radialnych funkcjach bazowych (sieci radialne, ) i sieci przesyłające żetony (). Stosunkowo nowym modelem są sieci oparte na neuronach impulsujących.
Wybrane narzędzia do budowy sieci neuronowych Matlab Matlab jest programem komputerowym do wykonania obliczeń naukowych, przeznaczony do numerycznych obliczeń macierzowych. Sieci neuronowe są w zasadzie macierzami, w nich zapisane są przykłady zadań, których sieć ma się nauczyć. Program umożliwia również rysowanie wykresów funkcji dwu i trójwymiarowych, dzięki czemu można wizualizować wyniki obliczeń. Do tworzenia sieci neuronowej w Matlabie wykorzystuje się funkcję biblioteki Deep Learning Toolbox oraz Fuzzy Logic Toolbox.
Statistica Neural Networks Wśród narzędzi stosowanych do projektowania i symulacji sieci neuronowych, Statistica Neural Networks jest programem najbardziej rozbudowanym pod kątem dostępnych funkcji. Program cechuje się dużą sprawnością w działaniu oraz dostępnością wielu rzadko spotykanych narzędzi. Jest również łatwy w obsłudze dla mniej doświadczonego użytkownika – posiada m.in. kreator „Automatyczny projektant”, który służy użytkownikowi pomocą na każdym etapie budowy sieci neuronowej. Bardziej doświadczeni użytkownicy znajdą tu duży zestaw typów sieci neuronowych oraz algorytmów uczących te sieci.
Zastosowania
Współcześnie nie ma wątpliwości, że sztuczne sieci neuronowe nie stanowią dobrego modelu mózgu, choć różne ich postacie wykazują cechy charakterystyczne dla biologicznych układów neuronowych: zdolność do uogólniania wiedzy, uaktualniania kosztem wcześniej poznanych wzorców, dawanie mylnych odpowiedzi po przepełnieniu. Mimo uproszczonej budowy sztuczne sieci neuronowe stosuje się czasem do modelowania schorzeń mózgu.
Sztuczne sieci neuronowe znajdują zastosowanie w rozpoznawaniu i klasyfikacji wzorców (przydzielaniu wzorcom kategorii), predykcji szeregów czasowych, analizie danych statystycznych, odszumianiu i kompresji obrazu i dźwięku oraz w zagadnieniach sterowania i automatyzacji.
Najpopularniejsze obecnie zastosowanie sieci neuronowych: generatywna sztuczna inteligencja (duże modele językowe), bazująca na architekturze transformera, w programach do rozpoznawania pisma (), na lotniskach do sprawdzania, czy prześwietlony bagaż zawiera niebezpieczne ładunki, do syntezy mowy. W dziedzinie nauk technicznych sztuczne sieci neuronowe wykorzystuje się m.in. do, w tym: Application of statistical methods and artificial neural networks for appraximation of ship’s roll in beam.: aproksymacji, prognozowania, przewidywania danych wyjściowych na podstawie danych wejściowych bez konieczności jawnego definiowania związku pomiędzy nimi; klasyfikacji i rozpoznawania; kojarzenia danych – sieci neuronowe pozwalają zautomatyzować procesy wnioskowania i pomagają wykrywać istotne powiązania pomiędzy danymi; analizy danych, czyli poszukiwania związków pomiędzy danymi.
Zobacz też
logika rozmyta uczenie głębokie sztuczna inteligencja system GC-NN mechatronika oraz
maszyna Boltzmanna model Isinga sieć Hopfielda
Przypisy
Bibliografia
Bartkowiak Anna, Sieci Neuronowe, Notatki do wykładu „Sieci Neuronowe” dla studentów kierunku Informatyka na Uniwersytecie Wrocławskim, 2002; wykład dostępny online tutaj. Ciskowski Piotr, Poznawanie własności sieci neuronowych w środowisku MATLAB, Politechnika Wrocławska, Wrocław 2012; książka dostępna online tutaj (do pobrania wersja pdf). Tadeusiewicz Ryszard, Sieci neuronowe, Akademicka Oficyna Wydawnicza, Warszawa 1993; książka dostępna online tutaj (do pobrania też wersja pdf).
Linki zewnętrzne prof. Włodzisława Ducha, Linki do informacji o sieciach neuronowych - strona internetowa Europejskie Towarzystwo Sieci Neuronowych Polskie Towarzystwo Sieci Neuronowych