Software pro neurální sítě - Neural network software
Software pro neurální sítě se používá k simulaci , výzkumu , vývoji a aplikaci umělých neuronových sítí , softwarových konceptů upravených z biologických neuronových sítí a v některých případech k širší škále adaptivních systémů, jako je umělá inteligence a strojové učení .
Simulátory
Simulátory neuronových sítí jsou softwarové aplikace, které se používají k simulaci chování umělých nebo biologických neuronových sítí. Zaměřují se na jeden nebo omezený počet konkrétních typů neuronových sítí. Obvykle jsou samostatné a nejsou určeny k vytváření obecných neuronových sítí, které lze integrovat do jiného softwaru. Simulátory mají obvykle nějakou formu vestavěné vizualizace pro sledování tréninkového procesu. Některé simulátory také vizualizují fyzickou strukturu neuronové sítě.
Výzkumné simulátory
Historicky nejběžnější typ softwaru neurální sítě byl určen pro výzkum struktur a algoritmů neuronových sítí. Primárním účelem tohoto typu softwaru je prostřednictvím simulace lépe porozumět chování a vlastnostem neuronových sítí. Dnes při studiu umělých neurálních sítí byly simulátory z velké části nahrazeny obecnějšími vývojovými prostředími založenými na komponentách jako výzkumnými platformami.
Mezi běžně používané simulátory umělé neuronové sítě patří Stuttgartský simulátor neuronových sítí (SNNS), Emergent a Neural Lab .
Při studiu biologických neurálních sítí je však simulační software stále jediným dostupným přístupem. V takových simulátorech jsou studovány fyzikální biologické a chemické vlastnosti nervové tkáně, stejně jako elektromagnetické impulsy mezi neurony.
Mezi běžně používané simulátory biologických sítí patří Neuron , GENESIS , NEST a Brian .
Simulátory analýzy dat
Na rozdíl od simulátorů výzkumu jsou simulátory analýzy dat určeny pro praktické aplikace umělých neuronových sítí. Jejich primárním zaměřením je dolování dat a prognózy. Simulátory analýzy dat mají obvykle nějakou formu schopností předzpracování. Na rozdíl od obecnějších vývojových prostředí používají simulátory analýzy dat relativně jednoduchou statickou neuronovou síť, kterou lze konfigurovat. Většina simulátorů analýzy dat na trhu používá jako jádro sítě se zpětným šířením nebo samoorganizující se mapy. Výhodou tohoto typu softwaru je, že se používá relativně snadno. Neural Designer je jedním příkladem simulátoru analýzy dat.
Simulátory pro výuku teorie neuronových sítí
Když byly v letech 1986–87 vydány svazky Parallel Distributed Processing , poskytovaly poměrně jednoduchý software. Původní software PDP nevyžadoval žádné programovací schopnosti, což vedlo k jeho přijetí širokou škálou výzkumných pracovníků v různých oblastech. Původní software PDP byl vyvinut do výkonnějšího balíčku s názvem PDP ++, který se zase stal ještě výkonnější platformou s názvem Emergent . S každým vývojem se software stal výkonnějším, ale také skličujícím pro použití začátečníky.
V roce 1997 byl vydán software tLearn doprovázející knihu. To byl návrat k myšlence poskytnout malý, uživatelsky přívětivý simulátor, který byl navržen s ohledem na nováčka. tLearn umožnil základní dopředné sítě spolu s jednoduchými rekurentními sítěmi, z nichž obě mohou být trénovány jednoduchým algoritmem zpětné propagace. tLearn nebyl od roku 1999 aktualizován.
V roce 2011 byl vydán simulátor Basic Prop. Basic Prop je samostatná aplikace distribuovaná jako platformově neutrální soubor JAR, která poskytuje mnoho stejných jednoduchých funkcí jako tLearn.
V roce 2012 Wintempla zahrnoval jmenný prostor s názvem NN se sadou tříd C ++ k implementaci: dopředné sítě, pravděpodobnostní neurální sítě a sítě Kohonen. Neural Lab vychází z tříd Wintempla. Kurz Neural Lab a Wintempla tutoriál vysvětluje některé z těchto tříd pro neurální sítě. Hlavní nevýhodou Wintempla je, že kompiluje pouze s Microsoft Visual Studio.
Vývojová prostředí
Vývojová prostředí pro neurální sítě se liší od výše popsaného softwaru především na dvou účtech - lze je použít k vývoji vlastních typů neuronových sítí a podporují nasazení neuronové sítě mimo prostředí. V některých případech mají pokročilé možnosti předzpracování , analýzy a vizualizace.
Na základě komponent
Modernější typ vývojových prostředí, která jsou v současné době upřednostňována v průmyslovém i vědeckém využití, je založena na paradigmatu založeném na komponentách . Neuronová síť je konstruována spojením adaptivních filtračních komponent v toku potrubního filtru. To umožňuje větší flexibilitu, protože lze vytvářet vlastní sítě i vlastní komponenty používané sítí. V mnoha případech to umožňuje kombinaci adaptivních a neadaptivních komponent. Tok dat je řízen řídicím systémem, který je vyměnitelný, stejně jako adaptační algoritmy. Další důležitou funkcí jsou možnosti nasazení.
S příchodem rámců založených na komponentách, jako jsou .NET a Java , jsou vývojová prostředí založená na komponentách schopna nasadit vyvinutou neuronovou síť do těchto rámců jako dědičné komponenty. Některý software navíc může tyto komponenty nasadit na několik platforem, jako jsou vestavěné systémy .
Mezi vývojová prostředí založená na komponentách patří: Peltarion Synapse , NeuroDimension NeuroSolutions , Scientific Software Neuro Laboratory a integrovaný software LIONsolver . Mezi bezplatná prostředí založená na open source komponentách patří Encog a Neuroph .
Kritika
Nevýhodou vývojových prostředí založených na komponentách je, že jsou složitější než simulátory. K plnému fungování vyžadují více učení a jejich vývoj je složitější.
Vlastní neuronové sítě
Většina dostupných implementací neurálních sítí jsou však vlastní implementace v různých programovacích jazycích a na různých platformách. Základní typy neurálních sítí lze snadno přímo implementovat. Existuje také mnoho programovacích knihoven, které obsahují funkce neuronových sítí a které lze použít ve vlastních implementacích (například TensorFlow , Theano atd., Obvykle poskytující vazby na jazyky jako Python , C ++ , Java ).
Standardy
Aby mohly být modely neuronových sítí sdíleny různými aplikacemi, je nutný společný jazyk. K řešení této potřeby byl navržen prediktivní modelový značkovací jazyk (PMML). PMML je jazyk založený na XML, který poskytuje aplikacím způsob, jak definovat a sdílet modely neuronových sítí (a další modely dolování dat) mezi aplikacemi kompatibilními s PMML.
PMML poskytuje aplikacím metodu definování modelů nezávislou na dodavateli, takže proprietární problémy a nekompatibility již nejsou překážkou pro výměnu modelů mezi aplikacemi. Umožňuje uživatelům vyvíjet modely v rámci aplikace jednoho dodavatele a používat aplikace jiných prodejců k vizualizaci, analýze, vyhodnocení nebo jinému použití modelů. Dříve to bylo velmi obtížné, ale s PMML je nyní výměna modelů mezi kompatibilními aplikacemi přímočará.
PMML spotřebitelé a výrobci
K výrobě a spotřebě PMML se nabízí řada produktů. Tento neustále rostoucí seznam obsahuje následující produkty neurální sítě:
- R: produkuje PMML pro neurální sítě a další modely strojového učení prostřednictvím balíčku pmml.
- SAS Enterprise Miner: produkuje PMML pro několik těžebních modelů, včetně neuronových sítí , lineární a logistické regrese, rozhodovacích stromů a dalších modelů dolování dat.
- SPSS: produkuje PMML pro neurální sítě a mnoho dalších těžebních modelů.
- STATISTICA: produkuje PMML pro neuronové sítě, modely dolování dat a tradiční statistické modely.
Viz také
- Urychlovač AI
- Fyzická neurální síť
- Porovnání softwaru pro hluboké učení
- Těžba dat
- Integrované vývojové prostředí
- Logistická regrese
- Memristor
Reference
externí odkazy
- Porovnání simulátorů neurální sítě na University of Colorado