Сторінка не перевірена
| Тип | обробка природної мови,глибоке навчання,комп'ютерний зір,штучний інтелект |
|---|---|
| Автор | Адам Ґібсон,Кріс Ніколсон, Джош Паттерсон |
| Розробник | Адам Ґібсонd |
| Платформа | віртуальна машина Java |
| Операційна система | Linux |
| Мова програмування | Java і Scala |
| Доступні мови | англійська |
| Стан розробки | активний |
| Ліцензія | Apache License |
| Репозиторій | github.com/deeplearning4j/deeplearning4j |
| Вебсайт | deeplearning4j.org |
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 і розподілу операцій на графічних процесорах.
Deeplearning4j включає клас для роботи зn-вимірним масивом даних у бібліотеціND4J. Це полегшує обчислення для наукових задач мовамиJava іScala, функціональність при цьому подібна до функціональності, яку бібліотекаNumPy забезпечує для мовиPython. Ефективність у практичних застосуваннях досягається завдяки використанню бібліотеклінійної алгебри іматричних перетворень.
Бібліотека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 до десяти разів.
{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)[Архівовано 2016-05-18 уArchive.is]