15 Невідкритих і відкритих програм машинного навчання, які потрібно знати в 2020 році.

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

Це пов’язано не лише з існуванням дешевого та потужного обладнання. Це також через збільшення доступності безкоштовних та відкритих джерелСтруктури машинного навчання , які дозволяють розробникам легко впроваджувати машинне навчання.

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

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

  • Простота використання.
  • Підтримка на ринку (Співтовариство).
  • Бігові швидкості.
  • Відкритість.

Для кого призначена ця стаття?

Ця стаття призначена для тих, хто хоче використовувати знання на практиці після вивчення теорії.

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

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

1. Блоки

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

Ви також можете дізнатись про паливо, механізм обробки даних, розроблений головним чином для блоків.

Мова програмування: Python

Посилання на Github: //github.com/mila-iqia/blocks

2. Зоопарк Analytics

Analytics Zoo забезпечує уніфіковану аналітику даних та платформу AI, яка легко об’єднує програми TensorFlow, Keras, PyTorch, Spark, Flink та Ray в інтегрований конвеєр, який може прозоро масштабуватися від ноутбука до великих кластерів для обробки великих даних. Сховище аналітичного зоопарку

Коли вам слід використовувати Analytics Zoo для розробки вашого рішення для штучного інтелекту:

  • Ви хочете легко прототипувати моделі ШІ.
  • Коли масштабування має значення для вас.
  • Коли ви хочете додати процеси автоматизації у ваш конвеєр машинного навчання, такі як розробка функцій та вибір моделі.

Цей проект підтримується Intel-analytics.

Мова програмування: Python

Посилання на Github: //github.com/intel-analytics/analytics-zoo

3. ML5.js

Ml5.js має на меті зробити машинне навчання доступним для широкої аудиторії художників, творчих програмістів та студентів. Бібліотека забезпечує доступ до алгоритмів та моделей машинного навчання у браузері, будуючи поверх TensorFlow.js. "Репозиторій Ml5.js"

ml5.js натхненний Processing та p5.js.

Цей проект з відкритим кодом розроблений та підтримується програмою NYU Interactive Telecommunications / Interactive Media Arts та художниками, дизайнерами, студентами, технологами та розробниками з усього світу.

ПРИМІТКА: Цей проект наразі розробляється.

Мова програмування: Javascript

Посилання на Github: //github.com/ml5js/ml5-library

4.AdaNet

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

AdaNet пропонує знайомий API, такий як Keras, для навчання, оцінки та обслуговування ваших моделей на виробництві.

Мова програмування: Python

Посилання на Github: //github.com/tensorflow/adanet

5. Мляр

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

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

Mljar може навчати моделі ML для:

  • двійкова класифікація,
  • багатокласова класифікація,
  • регресія.

Mljar надає два типи інтерфейсів:

  • Обгортка Python через API Mljar.
  • Запуск моделей машинного навчання у вашому веб-браузері.

Мова програмування: Python

Посилання на Github: //github.com/mljar/mljar-super nadzorom.

6. ConvNetJS

Поглиблене навчання в Javascript. Навчіть згорткові нейронні мережі (або звичайні) у вашому браузері.

Як і Tensorflow.js, ConvNetJS - це бібліотека JavaScript, яка підтримує навчання різних моделей глибокого навчання у вашому веб-браузері. Вам не потрібні графічні процесори та інше важке програмне забезпечення.

ConvNetJS підтримує:

  • Модулі нейронної мережі.
  • Навчання згорткових мереж для зображень.
  • Функції регресії та класифікації витрат.
  • Модуль посилення навчання, заснований на глибокому навчанні.

Примітка: Не підтримується активно.

Мова програмування: Javascript

Посилання на Github: //github.com/karpathy/convnetjs

7.NNI (Нейромережевий інтелект)

NNI (Neural Network Intelligence) - це легкий, але потужний набір інструментів, який допомагає користувачам автоматизувати інженерію функцій, пошук нейронної архітектури, налаштування гіперпараметрів та стиснення моделей. Інструмент керує експериментами автоматизованого машинного навчання (AutoML), відправляє та запускає пробні завдання експериментів, створені алгоритмами настройки для пошуку найкращої нейронної архітектури та / або гіперпараметрів в різних навчальних середовищах, таких як Local Machine, Remote Servers, OpenPAI, Kubeflow та інші варіанти хмар. Сховище NNI

Коли варто розглянути можливість використання NNI

  • Якщо ви хочете спробувати різні алгоритми AutoML.
  • Якщо ви хочете запускати пробні завдання AutoML в різних середовищах.
  • Якщо ви хочете підтримувати AutoML на своїй платформі.

ПРИМІТКА: Проект з відкритим кодом від Microsoft.

Мова програмування: Python

Посилання на Github: //github.com/Microsoft/nni

8. Датумбокс

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

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

Мова програмування: Java

Посилання на Github: //github.com/datumbox/datumbox-framework

9.XAI (Набір інструментів пояснення для ML)

XAI - це бібліотека машинного навчання, розроблена з пояснювальною інформацією про штучний інтелект. XAI містить різні інструменти, які дозволяють аналізувати та оцінювати дані та моделі. Бібліотека XAI підтримується Інститутом етичного інтелекту та інтелектуальної власності та розроблена на основі 8 принципів відповідального машинного навчання. "Репозиторій XAI"

8 принципів відповідального машинного навчання включає:

  • Збільшення людини
  • Оцінка упередженості
  • Пояснюваність обґрунтуванням
  • Відтворювані операції
  • Стратегія переміщення
  • Практична точність
  • Довіряйте конфіденційності
  • Поінформованість про ризик даних

Щоб дізнатись більше про XAI, ви можете ознайомитись із цією бесідою в Tensorflow London. Він містить уявлення про визначення та принципи роботи цієї бібліотеки.

На даний момент XAI знаходиться на початковій стадії розробки, поточна версія - 0,05 (альфа).

Мова програмування: Python

Посилання на Github: //github.com/EthicalML/xai

10.Платон

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

Він підтримує взаємодію за допомогою тексту, мови та актів діалогу. Щоб дізнатися, як працює Діалогова система дослідження Платона, прочитайте статтю тут.

ПРИМІТКА: Plato - це проект з відкритим кодом від Uber.

Мова програмування: Python

Посилання на Github: //github.com/uber-research/plato-research-dialogue-system

11.DeepDetect

DeepDetect - це API машинного навчання та сервер, написаний на C ++. Це робить сучасне машинне навчання простим у роботі та інтеграції в існуючі програми.

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

DeepDetect покладається на зовнішні бібліотеки машинного навчання, такі як:

  • Бібліотека посилення градієнта XGBoost.
  • Бібліотеки глибокого навчання (Caffe, Tensorflow, Caffe2, Torch, NCNN та Dlib).
  • кластеризація з T-SNE.
  • пошук подібності з Annoy та FAISS.

DeepDetect розроблений, впроваджений і підтримується Jolibrain за допомогою інших авторів.

Мова програмування: C ++

Посилання на Github: //github.com/jolibrain/deepdetect

12. Стрімліт

Streamlit - найшвидший спосіб створення власних інструментів ML.

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

Streamlit не вимагає знання веб-розробки. Якщо ви знаєте Python, тоді вам добре!

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

Погляньте на Streamlit в дії:

Мова програмування: Javascript & Python

Посилання на Github: //github.com/streamlit/streamlit

13.Допамін

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

Принципи проектування дофаміну включають:

  • Легке експериментування.
  • Гнучкий розвиток.
  • Компактний і надійний.
  • Відтворюється.

Минулого року (2019) дофамін змінив свої мережеві визначення на використання tf.keras.Model . Попередні мережі на основі tf.contrib.slim були видалені.

Щоб дізнатись, як користуватися дофаміном, перегляньте зошити Colaboratory.

Примітка. Допамін - це проект Google із відкритим кодом.

Мова програмування: Python

Посилання на Github: //github.com/google/dopamine

14.TuriCreate

TuriCreate - це набір інструментів з відкритим кодом для створення власних моделей Core ML.

За допомогою TuriCreate ви можете виконувати різні завдання ML, такі як класифікація зображень, класифікація звуків, виявлення об’єктів, перенесення стилів, класифікація діяльності, рекомендація схожості зображень, класифікація тексту та кластеризація.

Фреймворк простий у використанні, гнучкий та візуальний. Він працює на великих наборах даних і готовий до розгортання. Навчені моделі можна використовувати одразу в додатках iOS, macOS, tvOS і watchOS без додаткового перетворення.

Перегляньте переговори TuriCreate на WWDC 2019 та WWDC 2018, щоб дізнатись більше про TuriCreate.

ПРИМІТКА: TuriCreate - це проект із відкритим джерелом від 0pen від Apple.

Мова програмування: Python

Посилання на Github: //github.com/apple/turicreate

15.Флер

Flair - це простий механізм обробки природних мов (NLP), розроблений і відкритий у Берлінському університеті Гумбольдта. Flair є офіційною частиною екосистеми PyTorch і використовується в сотнях промислових та академічних проектів.

Flair дозволяє застосувати до вашого тексту найсучасніші моделі обробки природної мови (NLP), такі як розпізнавання іменних сутностей (NER), позначення частини мови (PoS), розмитість сенсу та класифікація. Сховище Флер

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

Примітка : Оцінка F1 - це показник оцінки, який в основному використовується для завдань класифікації. Оцінка F1 враховує розподіл присутніх класів.

Дізнайтеся, як виконати класифікацію тексту, використовуючи Flair Embeddings, у цій статті.

Мова програмування: Python

Посилання на Github: //github.com/flairNLP/flair

Висновок

Перш ніж почати створювати додаток для машинного навчання, вам потрібно вибрати один фреймворк ML із безлічі варіантів. Це може бути складним завданням.

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

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

  • Tensorflow
  • Піторх
  • Фастай
  • Керас
  • scikit-learn
  • Когнітивний набір інструментів Microsoft
  • Теано
  • Кава2
  • DL4J
  • MxNet
  • Н20
  • Accord.NET
  • Apache Spark

Побачимось у наступному дописі! Зі мною також можна зв’язатись у Twitter @Davis_McDavid.