Oprogramowanie sieci neuronowych
Oprogramowanie sieci neuronowych służy do symulacji , badań , rozwoju i stosowania sztucznych sieci neuronowych , koncepcji oprogramowania zaadaptowanych z biologicznych sieci neuronowych , aw niektórych przypadkach szerszej gamy systemów adaptacyjnych, takich jak sztuczna inteligencja i uczenie maszynowe .
Symulatory
Symulatory sieci neuronowych to aplikacje służące do symulacji zachowania sztucznych lub biologicznych sieci neuronowych. Koncentrują się na jednym lub ograniczonej liczbie określonych typów sieci neuronowych. Są one zazwyczaj samodzielne i nie są przeznaczone do tworzenia ogólnych sieci neuronowych, które można zintegrować z innym oprogramowaniem. Symulatory mają zwykle jakąś formę wbudowanej wizualizacji do monitorowania procesu szkolenia. Niektóre symulatory wizualizują również fizyczną strukturę sieci neuronowej.
Symulatory badawcze
Historycznie najpopularniejszy rodzaj oprogramowania sieci neuronowych był przeznaczony do badania struktur i algorytmów sieci neuronowych. Głównym celem tego typu oprogramowania jest, poprzez symulację, lepsze zrozumienie zachowania i właściwości sieci neuronowych. Obecnie w badaniu sztucznych sieci neuronowych symulatory zostały w dużej mierze zastąpione przez bardziej ogólne środowiska programistyczne oparte na komponentach jako platformy badawcze.
Powszechnie używane symulatory sztucznych sieci neuronowych obejmują Stuttgart Neural Network Simulator (SNNS), Emergent i Neural Lab .
Jednak w badaniu biologicznych sieci neuronowych nadal jedynym dostępnym podejściem jest oprogramowanie symulacyjne. W takich symulatorach badane są fizyczne, biologiczne i chemiczne właściwości tkanki nerwowej, a także impulsy elektromagnetyczne między neuronami.
Do powszechnie używanych symulatorów sieci biologicznych należą Neuron , GENESIS , NEST i Brian .
Symulatory analizy danych
W przeciwieństwie do symulatorów badawczych, symulatory analizy danych przeznaczone są do praktycznych zastosowań sztucznych sieci neuronowych. Ich głównym celem jest eksploracja danych i prognozowanie. Symulatory analizy danych zwykle mają jakąś formę możliwości wstępnego przetwarzania. W przeciwieństwie do bardziej ogólnych środowisk programistycznych, symulatory analizy danych wykorzystują stosunkowo prostą statyczną sieć neuronową, którą można skonfigurować. Większość dostępnych na rynku symulatorów analizy danych wykorzystuje jako rdzeń sieci z propagacją wsteczną lub samoorganizujące się mapy. Zaletą tego typu oprogramowania jest to, że jest stosunkowo łatwe w użyciu. Projektant neuronowy jest jednym z przykładów symulatora analizy danych.
Symulatory do nauczania teorii sieci neuronowych
Kiedy w latach 1986-87 ukazały się tomy Parallel Distributed Processing , zawierały stosunkowo proste oprogramowanie. Oryginalne oprogramowanie PDP nie wymagało żadnych umiejętności programistycznych, co doprowadziło do jego przyjęcia przez wielu naukowców z różnych dziedzin. Oryginalne oprogramowanie PDP zostało rozwinięte w potężniejszy pakiet o nazwie PDP++, który z kolei stał się jeszcze potężniejszą platformą o nazwie Emergent . Z każdym ulepszeniem oprogramowanie stawało się coraz potężniejsze, ale także bardziej zniechęcające dla początkujących.
W 1997 roku wydano oprogramowanie tLearn jako dodatek do książki. Był to powrót do pomysłu dostarczenia małego, przyjaznego dla użytkownika symulatora, który został zaprojektowany z myślą o nowicjuszu. tLearn umożliwił podstawowe sieci sprzężenia zwrotnego wraz z prostymi sieciami rekurencyjnymi, z których oba można trenować za pomocą prostego algorytmu propagacji wstecznej. tLearn nie był aktualizowany od 1999 roku.
W 2011 roku ukazał się symulator Basic Prop. Basic Prop to samodzielna aplikacja, dystrybuowana jako niezależny od platformy plik JAR, który zapewnia wiele takich samych prostych funkcji jak tLearn.
W 2012 roku Wintempla zawierała przestrzeń nazw o nazwie NN z zestawem klas C++ do implementacji: sieci typu feed forward, probabilistyczne sieci neuronowe i sieci Kohonena. Neural Lab bazuje na klasach Wintempla. Samouczek Neural Lab i samouczek Wintempla wyjaśnia niektóre z tych klas dla sieci neuronowych. Główną wadą Wintempla jest to, że kompiluje się tylko z Microsoft Visual Studio.
Środowiska deweloperskie
Środowiska programistyczne dla sieci neuronowych różnią się od opisanego powyżej oprogramowania przede wszystkim z dwóch powodów – mogą służyć do tworzenia niestandardowych typów sieci neuronowych oraz wspierają wdrażanie sieci neuronowej poza środowiskiem. W niektórych przypadkach mają zaawansowane wstępnego przetwarzania , analizy i wizualizacji.
Oparte na komponentach
Bardziej nowoczesny typ środowisk programistycznych, który jest obecnie preferowany zarówno w zastosowaniach przemysłowych, jak i naukowych, oparty jest na paradygmacie opartym na komponentach . Sieć neuronowa jest budowana przez połączenie elementów filtra adaptacyjnego w przepływie filtra rurowego. Pozwala to na większą elastyczność, ponieważ można budować niestandardowe sieci, a także niestandardowe komponenty używane przez sieć. W wielu przypadkach pozwala to na współpracę elementów adaptacyjnych i nieadaptacyjnych. Przepływem danych steruje system sterowania, który jest wymienny oraz algorytmy adaptacyjne. Inną ważną cechą są możliwości wdrażania.
Wraz z pojawieniem się platform opartych na komponentach, takich jak .NET i Java , środowiska programistyczne oparte na komponentach są w stanie wdrażać opracowane sieci neuronowe w tych platformach jako komponenty dziedziczne. Ponadto niektóre oprogramowanie może również wdrażać te komponenty na kilku platformach, takich jak systemy wbudowane .
Środowiska programistyczne oparte na komponentach obejmują: Peltarion Synapse , NeuroDimension NeuroSolutions , Scientific Software Neuro Laboratory oraz zintegrowane oprogramowanie LIONsolver . Darmowe środowiska oparte na komponentach typu open source obejmują Encog i Neuroph .
Krytyka
Wadą środowisk programistycznych opartych na komponentach jest to, że są bardziej złożone niż symulatory. Wymagają więcej nauki, aby w pełni działać i są bardziej skomplikowane do opracowania.
Niestandardowe sieci neuronowe
Większość dostępnych implementacji sieci neuronowych to jednak implementacje niestandardowe w różnych językach programowania i na różnych platformach. Podstawowe typy sieci neuronowych są proste do bezpośredniego wdrożenia. Istnieje również wiele bibliotek programistycznych , które zawierają funkcje sieci neuronowych i które mogą być używane w niestandardowych implementacjach (takich jak TensorFlow , Theano itp., zazwyczaj dostarczając powiązania z językami takimi jak Python , C++ , Java ).
Normy
Aby modele sieci neuronowych mogły być współużytkowane przez różne aplikacje, niezbędny jest wspólny język. W celu zaspokojenia tej potrzeby zaproponowano Predictive Model Markup Language (PMML ) . PMML to język oparty na XML, który umożliwia aplikacjom definiowanie i udostępnianie modeli sieci neuronowych (i innych modeli eksploracji danych) między aplikacjami zgodnymi z PMML.
PMML zapewnia aplikacjom niezależną od dostawcy metodę definiowania modeli, dzięki czemu kwestie własności i niezgodności nie stanowią już bariery w wymianie modeli między aplikacjami. Umożliwia użytkownikom opracowywanie modeli w ramach aplikacji jednego dostawcy i używanie aplikacji innych dostawców do wizualizacji, analizy, oceny lub innego wykorzystania modeli. Wcześniej było to bardzo trudne, ale dzięki PMML wymiana modeli między zgodnymi aplikacjami jest teraz prosta.
Konsumenci i producenci PMML
Oferowana jest gama produktów do produkcji i konsumpcji PMML. Ta stale rosnąca lista obejmuje następujące produkty sieci neuronowych:
- R: tworzy PMML dla sieci neuronowych i innych modeli uczenia maszynowego za pośrednictwem pakietu pmml.
- SAS Enterprise Miner: tworzy PMML dla kilku modeli eksploracji, w tym sieci neuronowych , regresji liniowej i logistycznej, drzew decyzyjnych i innych modeli eksploracji danych.
- SPSS: produkuje PMML dla sieci neuronowych, a także wiele innych modeli eksploracji.
- STATISTICA: tworzy PMML dla sieci neuronowych, modeli eksploracji danych i tradycyjnych modeli statystycznych.
Zobacz też
- Akcelerator AI
- Fizyczna sieć neuronowa
- Porównanie oprogramowania do głębokiego uczenia
- Eksploracja danych
- Zintegrowane środowisko programistyczne
- Regresja logistyczna
- Memrystor
Linki zewnętrzne
- Porównanie symulatorów sieci neuronowych na University of Colorado