Deeplearning4j
Deeplearning4j — бібліотека програм мовою Java, яка використовується як фреймворк для глибокого навчання[1][2][3]. Включає реалізацію через обмежену машину Больцмана, глибоку мережу переконань, глибокий автокодувальник, стековий автокодувальник з фільтрацією шуму, рекурсивну тензорну нейронну мережу, word2vec, doc2vec та GloVe. Ці алгоритми включено також у версії бібліотеки, що підтримують розподілені обчислення, інтегровані з архітектурою Apache Hadoop і Spark[4]. Є відкритим програмним забезпеченням, поширюється під ліцензією Apache 2.0[5]; головні розробники — група машинного навчання в Сан-Франциско на чолі з Адамом Ґібсоном[6][7], комерційні впровадження підтримує стартап Skymind. ТехнологіяDeeplearning4j реалізована мовою Java і виконується в середовищі, при цьому сумісна з Clojure і включає інтерфейс (API) для мови Scala. Додаткова бібліотека ND4J відкритого доступу забезпечує обчислення на графічних процесорах з підтримкою CUDA[8][9]. Крім того, є засоби для роботи з бібліотекою мовою Python через фреймворк Keras[10]. Фреймворк дозволяє комбінувати компоненти, об'єднуючи звичайні нейронні мережі з машинами Больцмана, згортковими нейронними мережами, автокодувальниками і рекурентними мережами в одну систему. Крім того, підтримуються розширені засоби візуалізації[11]. Навчання відбувається як за допомогою звичайних багатошарових нейронних мереж, так і для складних мереж, в яких визначено граф обчислень[12]. Розподілені обчисленняНавчання в Deeplearning4j здійснюється через кластери. Нейронні мережі навчаються паралельно з застосуванням ітерації, процес підтримується архітектурою Hadoop-YARN та Spark[6][13]. Deeplearning4j здійснює також інтеграцію з ядром архітектури CUDA для проведення чистих операцій з GPU і розподілу операцій на графічних процесорах. Наукові розрахунки для JVMDeeplearning4j включає клас для роботи з n-вимірним масивом даних у бібліотеці ND4J. Це полегшує обчислення для наукових задач мовами Java і Scala, функціональність при цьому подібна до функціональності, яку бібліотека NumPy забезпечує для мови Python. Ефективність у практичних застосуваннях досягається завдяки використанню бібліотек лінійної алгебри і матричних перетворень. Бібліотека векторизації DataVec для машинного навчанняБібліотека DataVec проводить векторизацію файлів різних вхідних і вихідних форматів методом, подібним до MapReduce; при цьому дані перетворюються у векторну форму. DataVec векторизує табличний формат CSV, зображення, звуки, тексти, відео і часові послідовності даних[14][15]. Обробка природної мови і текстівДля обробки великих обсягів текстів з використанням потужності паралельних графічних процесорів Deeplearning4j залучає інструментарій векторного і тематичного моделювання мовою Java. Бібліотека містить реалізації частотної інверсії (TF-IDF), глибоке навчання, алгоритм Міколова word2vec[16], doc2vec, і GloVe, оптимізовані на Java. При цьому використовується принцип стохастичного вбудовування сусідів з розподілом Стьюдента (t-SNE) для реалізації хмари слів. БезпекаУ бібліотеку додано засоби захисту від зовнішнього втручання і безпеки від злому, що особливо важливо у фінансових задачах[17][18], у промислових системах, в електронній комерції та підприємництві, застосовується розпізнавання аномалій[19] і розпізнавання образів[20]. Deeplearning4j інтегрований з іншими платформами машинного навчання — такими як RapidMiner, Prediction.io[21] і Weka[22]. Тести продуктивностіЗіставлення продуктивності показує, що Deeplearning4j можна порівняти з Caffe в задачах нетривіального розпізнавання образів із залученням паралельних графічних процесорів[23]. Для програмістів, які незнайомі з HPC на JVM, є кілька параметрів, які можна регулювати для поліпшення продуктивності навчання нейронних мереж. Серед них — налаштування динамічної пам'яті, алгоритм збирання сміття, підкачка пам'яті і попереднє збереження даних для прискорення ETL[24]. Комбінуючи ці налаштування, можна збільшити продуктивність Deeplearning4j до десяти разів. Примітки
Див. такожЛітература
Посилання
|
Portal di Ensiklopedia Dunia