Głębokie uczenie4j - Deeplearning4j

Głębokie uczenie Eclipse4j
Pierwotny autor (autorzy) Alex D. Black, Adam Gibson, Wiaczesław Kokorin, Josh Patterson
Deweloper(zy) Kondiut KK i współpracownicy
Wersja zapoznawcza
1.0.0-beta7 / 13 maja 2020 ; 17 miesięcy temu ( 2020-05-13 )
Magazyn
Napisane w Java , CUDA , C , C++ ,
System operacyjny Linux , macOS , Windows , Android , iOS
Platforma CUDA , x86 , ramię , PowerPC
Dostępne w język angielski
Rodzaj Przetwarzanie języka naturalnego , głębokie uczenie , widzenie maszynowe , sztuczna inteligencja
Licencja Licencja Apache 2.0
Strona internetowa www .deeplearning4j .org Edytuj to na Wikidanych

Eclipse Deeplearning4j to biblioteka programistyczna napisana w języku Java dla wirtualnej maszyny Java (JVM). Jest to framework z szerokim wsparciem dla algorytmów głębokiego uczenia. Deeplearning4j obejmuje implementacje ograniczonej maszyny Boltzmanna , głębokiej sieci przekonań , głębokiego autoenkodera, ułożonego autokodera odszumiającego i rekurencyjnej sieci tensora neuronowego , word2vec , doc2vec i GloVe . Wszystkie te algorytmy obejmują rozproszone wersje równoległe, które integrują się z Apache Hadoop i Spark .

Deeplearning4j to oprogramowanie typu open source wydane na licencji Apache License 2.0, opracowane głównie przez grupę zajmującą się uczeniem maszynowym z siedzibą w San Francisco . Jest wspierany komercyjnie przez startup Skymind, który łączy DL4J, TensorFlow , Keras i inne biblioteki głębokiego uczenia się w dystrybucji korporacyjnej zwanej Skymind Intelligence Layer. Deeplearning4j został wniesiony do Fundacji Eclipse w październiku 2017 roku.

Wstęp

Deeplearning4j opiera się na powszechnie używanym języku programowania Java , chociaż jest kompatybilny z Clojure i zawiera interfejs programowania aplikacji Scala (API). Jest zasilany przez własną bibliotekę obliczeniową typu open source ND4J i współpracuje zarówno z jednostkami centralnymi (CPU), jak i procesorami graficznymi (GPU).

Deeplearning4j został wykorzystany w kilku zastosowaniach komercyjnych i akademickich. Kod jest hostowany na GitHub . Na Gitterze prowadzone jest forum pomocy technicznej .

Szkielet można komponować, co oznacza, że ​​płytkie sieci neuronowe, takie jak ograniczone maszyny Boltzmanna, sieci konwolucyjne, autokodery i sieci rekurencyjne, można dodawać do siebie, aby tworzyć głębokie sieci różnych typów. Posiada również rozbudowane narzędzia do wizualizacji i wykres obliczeniowy.

Rozpowszechniane

Trening z Deeplearning4j odbywa się w klastrze. Sieci neuronowe są trenowane równolegle za pomocą iteracyjnej redukcji, która działa na Hadoop -YARN i na Spark . Deeplearning4j integruje się również z jądrami CUDA w celu prowadzenia czystych operacji GPU i współpracuje z rozproszonymi GPU.

Obliczenia naukowe dla JVM

Deeplearning4j zawiera n-wymiarową klasę tablicy używającą ND4J, która umożliwia obliczenia naukowe w Javie i Scali, podobnie jak funkcje, które NumPy zapewnia Pythonowi . Skutecznie opiera się na bibliotece do algebry liniowej i manipulacji macierzami w środowisku produkcyjnym.

Biblioteka wektoryzacji DataVec do uczenia maszynowego

DataVec wektoryzuje różne formaty plików i typy danych przy użyciu systemu formatów wejścia/wyjścia podobnego do MapReduce w Hadoop; oznacza to, że przekształca różne typy danych w kolumny skalarów zwane wektorami . DataVec jest przeznaczony do wektoryzacji plików CSV, obrazów, dźwięku, tekstu, wideo i szeregów czasowych.

Tekst i NLP

Deeplearning4j zawiera zestaw narzędzi do modelowania przestrzeni wektorowej i tematu , zaimplementowany w języku Java i integrujący się z równoległymi procesorami graficznymi w celu zapewnienia wydajności. Jest przeznaczony do obsługi dużych zestawów tekstu.

Deeplearning4j zawiera implementacje terminu częstotliwość-odwrotna częstotliwość dokumentu ( tf-idf ), głębokie uczenie oraz algorytm word2vec Mikolova, doc2vec i GloVe, ponownie zaimplementowany i zoptymalizowany w Javie. Opiera się na t-distributed stochastycznym osadzeniu sąsiadów (t-SNE) dla wizualizacji chmur słów.

Rzeczywiste przypadki użycia i integracje

Rzeczywiste przypadki użycia Deeplearning4j obejmują wykrywanie włamań do sieci i cyberbezpieczeństwo, wykrywanie oszustw w sektorze finansowym, wykrywanie anomalii w branżach takich jak produkcja, systemy rekomendacji w handlu elektronicznym i reklamie oraz rozpoznawanie obrazów. Deeplearning4j zintegrował się z innymi platformami uczenia maszynowego, takimi jak RapidMiner, Prediction.io i Weka .

Serwer modelu uczenia maszynowego

Deeplearning4j obsługuje modele uczenia maszynowego do wnioskowania w produkcji przy użyciu bezpłatnej wersji dla programistów SKIL, Skymind Intelligence Layer. Serwer modelu obsługuje parametryczne modele uczenia maszynowego, które podejmują decyzje dotyczące danych. Jest używany na etapie wnioskowania w przepływie pracy uczenia maszynowego, po potokach danych i uczeniu modelu. Serwer modelowy to narzędzie, które umożliwia wdrażanie badań w zakresie analizy danych w rzeczywistym środowisku produkcyjnym.

Czym serwer WWW jest dla Internetu, serwer modelowy jest dla AI. Gdy serwer WWW otrzymuje żądanie HTTP i zwraca dane o witrynie WWW, serwer modelowy otrzymuje dane i zwraca decyzję lub prognozę dotyczącą tych danych: np. wysłał obraz, serwer modelowy może zwrócić etykietę dla tego obrazu, identyfikującą twarze lub zwierzęta na zdjęciach.

Serwer modeli SKIL może importować modele z frameworków Pythona, takich jak Tensorflow, Keras, Theano i CNTK, pokonując główną barierę we wdrażaniu modeli uczenia głębokiego.

Benchmarki

Deeplearning4j jest tak szybki jak Caffe do nietrywialnych zadań rozpoznawania obrazu przy użyciu wielu procesorów graficznych. Dla programistów niezaznajomionych z HPC na maszynie JVM istnieje kilka parametrów, które należy dostosować, aby zoptymalizować czas uczenia sieci neuronowych. Obejmują one ustawienie miejsca na stercie, algorytm zbierania śmieci, wykorzystanie pamięci poza stertą i wstępne zapisywanie danych (wytrawianie) w celu szybszego ETL. Razem te optymalizacje mogą doprowadzić do 10-krotnego przyspieszenia wydajności dzięki Deeplearning4j.

Języki API: Java, Scala, Python , Clojure i Kotlin

Deeplearning4j może być używany przez wiele języków API, w tym Java, Scala, Python, Clojure i Kotlin. Jego API Scala nazywa się ScalNet. Keras służy jako jego API Pythona. A jego opakowanie Clojure jest znane jako DL4CLJ. Podstawowe języki wykonujące operacje matematyczne na dużą skalę niezbędne do głębokiego uczenia się to C, C++ i CUDA C.

Tensorflow, Keras i głębokie uczenie4j

Tensorflow, Keras i Deeplearning4j współpracują ze sobą. Deeplearning4j może importować modele z Tensorflow i innych frameworków Pythona, jeśli zostały utworzone za pomocą Keras.

Zobacz też

Bibliografia