8 найкращих рамок глибокого навчання для любителів наукових даних

Оскільки все більше і більше підприємств прагнуть розширити свою діяльність, для них стає невід'ємною частиною використання як машинного навчання, так і прогнозованої аналітики. AI у поєднанні з правильною рамкою глибокого навчання по-справжньому посилили загальну шкалу того, що бізнес може досягти та отримати у своїх сферах.

Парадигма машинного навчання постійно розвивається. Ключовим моментом є перехід до розробки моделей машинного навчання, які працюють на мобільних пристроях, щоб зробити додатки розумнішими та набагато розумнішими. Глибоке навчання - це те, що робить можливим вирішення складних проблем. Як сказано в цій статті, глибоке навчання - це в основному машинне навчання на стероїдах. Існує кілька шарів для обробки функцій, і, як правило, кожен шар витягує частину цінної інформації.

Зважаючи на те, що глибоке навчання є запорукою виконання завдань вищого рівня складності - успішно будувати та розгортати їх виявляється геркулесовим завданням для науковців даних та інженерів даних по всьому світу. Сьогодні у нас в наявності безліч фреймворків, які дозволяють нам розробити інструменти, які можуть запропонувати кращий рівень абстрагування, а також спрощення складних завдань програмування.

Кожна основа побудована по-різному для різних цілей. Тут ми розглядаємо 8 глибоких навчальних рамок, щоб дати вам краще уявлення про те, яка структура буде ідеально підійде або стане в нагоді для вирішення ваших бізнес-завдань.

1. TensorFlow

TensorFlow, мабуть, є однією з найкращих рамок глибокого навчання і був прийнятий кількома гігантами, такими як Airbus, Twitter, IBM та інші, в основному завдяки своїй гнучкої системній архітектурі.

Найвідомішим випадком використання TensorFlow має стати Google Translate у поєднанні з такими можливостями, як обробка природними мовами, класифікація / узагальнення тексту, розпізнавання мови / зображення / рукописного тексту, прогнозування та тегування.

TensorFlow доступний як для настільних, так і для мобільних пристроїв, а також підтримує такі мови, як Python, C ++ і R для створення моделей глибокого навчання разом із бібліотеками обгортки.

TensorFlow постачається з двома інструментами, які широко використовуються:

  1. TensorBoard для ефективної візуалізації даних моделювання та продуктивності мережі.
  2. TensorFlow Служить для швидкого розгортання нових алгоритмів / експериментів при збереженні тієї ж архітектури сервера та API. Він також забезпечує інтеграцію з іншими моделями TensorFlow, що відрізняється від звичайних практик і може бути розширено для обслуговування інших моделей та типів даних.

Якщо ви робите свої перші кроки на шляху глибокого навчання, не потрібно брати участь у TensorFlow, враховуючи, що це на основі Python, підтримується Google, і завантажується документацією та покроковими інструкціями, які допоможуть вам допомогти.

2. Кава

Caffe - це програма глибокого навчання, яка підтримується інтерфейсами, такими як C, C ++, Python та MATLAB, а також інтерфейсом командного рядка. Він добре відомий своєю швидкістю та транспозитимістю та застосованістю для моделювання нейронних мереж згортки (CNN). Найбільша перевага використання бібліотеки C ++ Caffe (постачається з інтерфейсом Python) - це можливість доступу до доступних мереж із глибокого нетто-сховища Caffe Model Zoo, які попередньо підготовлені і можуть бути використані негайно. Що стосується моделювання CNN або вирішення проблем з обробкою зображень, це має бути вашою перехідною бібліотекою.

Найбільший USP у Caffe - це швидкість. Він може обробляти понад 60 мільйонів зображень щодня за допомогою одного GPU Nvidia K40. Це 1 мс / зображення для висновку та 4 мс / зображення для навчання - і новіші бібліотечні версії все ж швидші.

Caffe - популярна мережа глибокого навчання для візуального розпізнавання. Однак Caffe не підтримує дрібнозернисті мережеві шари, як, наприклад, TensorFlow або CNTK. Враховуючи архітектуру, загальна підтримка періодичних мереж та моделювання мови є досить поганою, а встановлення складних типів шару повинно здійснюватися мовою низького рівня.

3. Когнітивний інструментарій Microsoft / CNTK

Популярний завдяки простому навчанню та поєднанню популярних типів моделей на серверах, Microsoft Cognitive Toolkit (раніше відомий як CNTK) - це програма з глибоким навчанням з відкритим кодом для підготовки моделей глибокого навчання. Він виконує ефективні нейронні мережі згортки та тренується для зображень, мови та текстових даних. Як і у Caffe, він підтримується інтерфейсами, такими як Python, C ++ та інтерфейсом командного рядка.

Враховуючи послідовне використання ресурсів, реалізацію моделей навчання для посилення чи генеративних змагальних мереж (GAN) можна легко здійснити за допомогою інструментарію. Відомо, що він забезпечує більш високу продуктивність і масштабованість порівняно з наборами інструментів, таких як Theano або TensorFlow під час роботи на декількох машинах.

У порівнянні з Caffe, коли йдеться про винахід нових типів складних шарів, користувачам не потрібно реалізовувати їх мовою низького рівня через дрібну деталізацію будівельних блоків. Посібник Microsoft Cognitive Toolkit підтримує нейронні моделі як RNN, так і CNN, а отже, може вирішувати проблеми з розпізнаванням зображень, рукописного тексту та мови. В даний час через відсутність підтримки ARM-архітектури її можливості на мобільних пристроях досить обмежені.

4. Факел / PyTorch

Факел - наукова обчислювальна система, яка пропонує широку підтримку алгоритмів машинного навчання. Це система глибокого навчання на основі Луї та широко використовується серед гігантів галузі, таких як Facebook, Twitter та Google. Для роботи використовується CUDA разом із бібліотеками C / C ++ для обробки та в основному створено для масштабування виробництва будівельних моделей та забезпечення загальної гнучкості.

Станом на пізнє, PyTorch відчув високий рівень прийняття в рамках спільноти глибокого навчання і вважається конкурентом TensorFlow. PyTorch в основному є портом до рамки глибокого навчання Torch, що використовується для побудови глибоких нейронних мереж та виконання тензорних обчислень, які відрізняються високою складністю.

На відміну від Torch, PyTorch працює на Python, а це означає, що кожен, хто має базове розуміння Python, може почати будувати власні моделі глибокого навчання.

Враховуючи архітектурний стиль рамки PyTorch, весь процес глибокого моделювання набагато простіший і прозоріший порівняно з Torch.

5. MXNet

Розроблений спеціально для високої ефективності, продуктивності та гнучкості, MXNet (вимовляється як змішана мережа) - це програма глибокого навчання, що підтримується Python, R, C ++ та Julia.

Краса MXNet полягає в тому, що він дає користувачеві можливість кодувати різними мовами програмування. Це означає, що ви можете навчити свої моделі глибокого вивчення тією мовою, якою вам зручно, без необхідності вивчати щось нове. Завдяки додатковій програмі, написаній на C ++ та CUDA, MXNet здатний масштабувати та працювати з безліччю GPU, що робить її незамінною для підприємств. Справа в суті: Amazon використовував MXNet як свою довідкову бібліотеку для глибокого вивчення.

MXNet підтримує довгострокову мережу пам'яті (LTSM) разом з RNN та CNN.

Ця рамка глибокого навчання відома своїми можливостями у зображенні, рукописному / розпізнавальному мовленні, прогнозуванні та НЛП.

6. Ланцюжок

Високо потужний, динамічний та інтуїтивно зрозумілий, Chainer - це програма глибокого навчання для нейронних мереж на основі Python, розроблена стратегією запуску. Порівняно з іншими структурами, що використовують ту саму стратегію, ви можете змінювати мережі під час виконання, дозволяючи виконувати довільні оператори управління потоком.

Chainer підтримує як обчислення CUDA, так і багато GPU. Ця система глибокого навчання використовується головним чином для аналізу настроїв, машинного перекладу, розпізнавання мовлення тощо, використовуючи RNN та CNN.

7. Керас

Добре відома тим, що є мінімалістичною, бібліотека нейронних мереж Keras (з підтримуючим інтерфейсом Python) підтримує як згорнуті, так і періодичні мережі, які можуть працювати або на TensorFlow, або на Theano. Бібліотека написана на Python і була розроблена, підтримуючи швидкі експерименти як її USP.

Через те, що інтерфейс TensorFlow - це складний біт, який поєднується з тим, що це бібліотека низького рівня, яка може бути складною для нових користувачів, Keras був створений для надання спрощеного інтерфейсу з метою швидкого прототипування шляхом побудови ефективного нейронні мережі, які можуть працювати з TensorFlow.

Легкий, простий у використанні та дійсно простий, коли справа стосується побудови глибокої моделі навчання шляхом складання декількох шарів: це Керас у двох словах. Саме з цієї причини Keras є частиною основної API TensorFlow.

Основне використання Keras полягає в класифікації, генеруванні тексту та узагальненні, маркуванні та перекладі, а також розпізнаванні мовлення тощо. Якщо ви станете розробником, який має певний досвід роботи в Python і хочете зануритися в глибоке навчання, Keras - це те, що ви обов'язково повинні перевірити.

8. Поглиблення4j

Паралельне навчання за допомогою ітеративного скорочення, адаптації архітектури мікросервісів та розподілених процесорів та графічних процесорів є одними з важливих особливостей системи глибокого навчання Deeplearning4j. Він розроблений на Java, а також Scala та підтримує й інші мови JVM.

Широко прийнята як комерційна, галузево орієнтована розподілена програма глибокого навчання, найбільша перевага цієї глибокої основи навчання полягає в тому, що ви можете об'єднати всю екосистему Java для виконання глибокого навчання. Його також можна вводити поверх Hadoop та Spark для оркестрування декількох ниток хоста. DL4J використовує MapReduce для тренування мережі, залежно від інших бібліотек для виконання великих операцій з матрицею.

Deeplearning4j оснащений глибокою мережевою підтримкою через RBM, DBN, конверсійні нейронні мережі (CNN), повторювані нейронні мережі (RNN), рекурсивні нейронні тензорні мережі (RNTN) та довгу короткочасну пам'ять (LTSM).

Оскільки ця основа глибокого навчання реалізована на Java, вона набагато ефективніша порівняно з Python. Що стосується завдань розпізнавання зображень за допомогою декількох графічних процесорів, це так само швидко, як і Caffe. Цей фреймворк демонструє невідповідний потенціал для розпізнавання зображень, виявлення шахрайства, видобутку тексту, тегування частин мови та обробки природних мов.

Оскільки Java є основною мовою програмування, ви, безумовно, повинні обрати цю глибоку основу навчання, якщо ви шукаєте надійний та ефективний метод розгортання ваших моделей глибокого навчання до виробництва.

Висновок

Очевидно, що поява глибокого навчання започаткувала багато практичних випадків машинного навчання та штучного інтелекту. Розбиття завдань найпростішими способами, щоб допомогти машинам максимально ефективно, стало можливим завдяки глибокому навчанню.

Зважаючи на це, яка глибока форма навчання з вищевказаного списку найкраще відповідатиме вашим вимогам бізнесу? Відповідь на це полягає в низці факторів, однак, якщо ви хочете лише почати роботу, то ідеально підходить навчальний майданчик на основі Python, як TensorFlow або Chainer.

Якщо ви шукаєте щось більше, у цьому випадку - швидкість, потреба в ресурсах та використання, а також узгодженість навчальної моделі, слід завжди враховувати до вибору найкращої основи глибокого навчання для ваших потреб бізнесу.

У компанії Maruti Techlabs ми широко використовуємо TensorFlow та Keras для потреб наших клієнтів - один з них обробляє зображення для інтернет-ринку автомобілів. Зображення розпізнаються, ідентифікуються та диференціюються, розуміючи також об'єкти на зображенні. Алгоритм був запроваджений головним чином для оцінки та позначення зображень, які не були пов’язані з автомобілями, і таким чином було подбано про підтримку якості та точності даних, пов'язаних із зображенням.

Там у вас є! 8 найкращих рамок глибокого навчання для любителів наукових даних. Ми сподіваємося, що вам сподобався цей пост та дізналися щось нове та корисне. Якщо ви це зробили, сміливо дайте йому кілька хлопців.