hluboké učení4j | |
---|---|
Typ | Zpracování přirozeného jazyka , hluboké učení , počítačové vidění , umělá inteligence |
Autor | Adam Gibson , Chris Nicholson , Josh Patterson |
Vývojář | Rozličný |
Zapsáno v | Java , Scala , CUDA , C , C++ , Python , Clojure |
Operační systém | Linux , macOS , Windows , Android |
Jazyky rozhraní | Angličtina |
Hardwarová platforma | multiplatformní |
Nejnovější verze | |
Stát | aktivní |
Licence | Apache 2.0 |
webová stránka | deeplearning4j.org |
Deeplearning4j je programovací knihovna Java používaná jako rámec pro hluboké učení [2] [3] [4] . Zahrnuje implementace Restricted Boltzmann Machine , Deep Web of Trust , Deep Autoencoder , Stacked Autoencoder s filtrováním šumu, Rekurzivní Tensor Neural Network , word2vec , doc2vec a GloVe . Tyto algoritmy jsou také zahrnuty v distribuovaných počítačových verzích knihovny integrované s architekturami Apache Hadoop a Spark [5] .
Jedná se o software s otevřeným zdrojovým kódem distribuovaný pod licencí Apache 2.0 [6] ; hlavními vývojáři je skupina strojového učení v San Franciscu vedená Adamem Gibsonem [7] [8] , komerční implementace podporují startup Skymind .
Deeplearning4j je implementován v Javě a běží v prostředí, které je kompatibilní s Clojure a obsahuje rozhraní ( API ) pro jazyk Scala . Volitelná open source knihovna ND4J poskytuje výpočty na GPU s podporou CUDA [9] [10] . Kromě toho existují nástroje pro práci s knihovnou Python prostřednictvím frameworku Keras [11] .
Framework umožňuje kombinovat komponenty, kombinující běžné neuronové sítě s Boltzmannovými stroji, konvoluční neuronové sítě, autokodéry a rekurentní sítě do jednoho systému. Kromě toho jsou podporovány pokročilé vizualizační nástroje [12] . Trénink se provádí jak pomocí konvenčních vícevrstvých neuronových sítí, tak pro složité sítě , ve kterých je definován výpočetní graf [13] .
Učení v Deeplearning4j se provádí prostřednictvím clusterů. Neuronové sítě jsou trénovány v paralelních iteracích, proces je podporován architekturami Hadoop -YARN a Spark [7] [14] . Deeplearning4j se také integruje se základní architekturou CUDA pro čistě GPU operace a distribuci operací na GPU.
Deeplearning4j obsahuje třídu pro práci s n - rozměrnými daty v knihovně ND4J . To usnadňuje výpočty pro vědecké úlohy v Javě a Scale, zatímco funkčnost je podobná jazyku NumPy pro Python . Použití těchto nástrojů umožňuje efektivně řešit problémy lineární algebry a maticových transformací v praktických aplikacích.
Knihovna DataVec vektorizuje soubory v různých vstupních a výstupních formátech podobným způsobem jako MapReduce ; přičemž data jsou transformována do vektorové podoby. DataVec vektorizuje tabulkový formát CSV , obrázky, zvuky, texty, videa a časové sekvence dat [15] [16] .
Ke zpracování velkých objemů textů pomocí výkonu paralelních GPU používá Deeplearning4j nástroje pro vektorové a tématické modelování v Javě .
Knihovna obsahuje implementace frekvenční inverze ( TF-IDF ), hlubokého učení , algoritmu word2vec [17] Mikolov [17] , doc2vec a GloVe, které jsou optimalizovány v Javě. To využívá principu stochastického vkládání sousedů se Studentovou distribucí ( t-SNE ) k implementaci word cloudu.
Knihovna zahrnuje ochranu proti vnějšímu rušení a zabezpečení proti hackování, což je důležité zejména ve finančních úkolech [18] [19] , v průmyslových systémech, v e-commerce a podnikání se využívá rozpoznávání anomálií [20] a rozpoznávání vzorů [21] . Deeplearning4j je integrován s dalšími platformami strojového učení, jako jsou RapidMiner, Prediction.io [22] a Weka [23] .
Porovnání výkonu ukazuje, že Deeplearning4j je srovnatelný s Caffe v netriviálních úlohách rozpoznávání vzorů zahrnujících paralelní GPU [24] . Pro programátory , kteří neznají JVM HPC , existuje několik parametrů, které lze upravit, aby se zlepšil výkon trénování neuronové sítě. Tyto možnosti zahrnují dynamické ladění paměti, algoritmus garbage collection , stránkování paměti a předběžné ukládání dat pro urychlení ETL [25] . Kombinací těchto nastavení můžete zvýšit výkon Deeplearning4j až desetkrát.
Programy hlubokého učení | |
---|---|
svobodný software |
|
Nesvobodný software |
|
|