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

Машинното обучение (ML) е една от най-бързо развиващите се технологии днес. А прилагането на машинното обучение в различни области на изчисленията бързо набира популярност.

Това не е само поради съществуването на евтин и мощен хардуер. Това е и поради нарастващата наличност на безплатни и с отворен кодМашинно обучение рамки , които позволяват на разработчиците да реализират машинно обучение лесно.

Тази широка гама от рамки за машинно обучение с отворен код позволяват на учените по данни и инженерите по машинно обучение да изграждат, внедряват и поддържат системи за машинно обучение, генерират нови проекти и създават нови и въздействащи системи за машинно обучение.

Изборът на рамка за машинно обучение или библиотека за решаване на вашия случай на употреба включва извършване на оценка, за да се реши кое е подходящо за вашия случай на употреба. Няколко фактора са важни за тази оценка като:

  • Лесно използване.
  • Подкрепа на пазара (Общност).
  • Работещи скорости.
  • Откритост.

За кого е тази статия?

Тази статия е за тези, които искат да използват знанията на практика след изучаване на теорията.

Също така е за тези, които искат да проучат други потенциални рамки за машинно обучение с отворен код за бъдещия си ML проект.

Сега тук е списъкът с неоткрити рамки или библиотеки с отворен код, които бизнесът и хората могат да използват за изграждане на системи за машинно обучение.

1. Блокове

Blocks е рамка, която ви помага да изграждате модели на невронни мрежи на върха на Theano. Понастоящем той поддържа и осигурява, изграждане на параметризирани операции Theano, наречени „тухли“, съвпадение на шаблони за избор на променливи и тухли в алгоритми на големи модели за оптимизиране на вашия модел и запазване и възобновяване на обучението. Хранилището на блок

Можете също така да научите за гориво, механизма за обработка на данни, разработен предимно за блокове.

Език за програмиране: Python

Връзка към Github: //github.com/mila-iqia/blocks

2. Анализ зоопарк

Analytics Zoo предоставя единна платформа за анализ на данни и AI, която безпроблемно обединява програмите TensorFlow, Keras, PyTorch, Spark, Flink и Ray в интегриран конвейер, който може прозрачно да се мащабира от лаптоп до големи клъстери за обработка на големи данни. Хранилище за зоопарк на Analytics

Кога трябва да използвате Analytics Zoo за разработване на вашето AI решение:

  • Искате лесно да прототипирате AI модели.
  • Когато мащабирането има значение за вас.
  • Когато искате да добавите процеси на автоматизация във вашия конвейер за машинно обучение, като инженеринг на функции и избор на модел.

Този проект се поддържа от Intel-analytics.

Език за програмиране: Python

Връзка към Github: //github.com/intel-analytics/analytics-zoo

3. ML5.js

Ml5.js има за цел да направи машинното обучение достъпно за широка аудитория от художници, творчески програмисти и студенти. Библиотеката осигурява достъп до алгоритми и модели на машинно обучение в браузъра, изграждайки върху TensorFlow.js. "Ml5.js Repository"

ml5.js е вдъхновен от Processing и p5.js.

Този проект с отворен код е разработен и се поддържа от програмата за интерактивни телекомуникации / интерактивни медийни изкуства на NYU и от художници, дизайнери, студенти, технолози и разработчици по целия свят.

ЗАБЕЛЕЖКА: Този проект в момента се разработва.

Език за програмиране: Javascript

Връзка към Github: //github.com/ml5js/ml5-library

4. AdaNet

AdaNet е лека базирана на TensorFlow рамка за автоматично обучение на висококачествени модели с минимална експертна намеса. AdaNet се основава на последните усилия на AutoML да бъде бърз и гъвкав, като същевременно предоставя гаранции за обучение. Важното е, че AdaNet предоставя обща рамка не само за изучаване на архитектура на невронна мрежа, но и за обучение за ансамблиране, за да се получат още по-добри модели.

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

Език за програмиране: Python

Връзка към Github: //github.com/tensorflow/adanet

5. Мляр

Ако търсите платформа за създаване на прототипи модели и услуга за внедряване, Mljar е правилният избор за вас. Mljar е склонен да търси различни алгоритми и да извършва настройка на хипер-параметри, за да намери най-добрия модел.

Той също така осигурява бързи резултати, като изпълнява всички изчисления в облака и накрая създава модели на ансамбли, След това създава отчети за намаление от обучението по AutoML.

Mljar може да обучава ML модели за:

  • бинарна класификация,
  • мултикласова класификация,
  • регресия.

Mljar предоставя два вида интерфейси:

  • Python обвивка над Mljar API.
  • Стартиране на модели за машинно обучение във вашия уеб браузър.

Език за програмиране: Python

Връзка към Github: //github.com/mljar/mljar-superposed.

6. ConvNetJS

Дълбоко обучение в Javascript. Обучавайте конволюционни невронни мрежи (или обикновени) във вашия браузър. "Convnetjs Repository"

Подобно на Tensorflow.js, ConvNetJS е JavaScript библиотека, която поддържа обучение на различни модели за дълбоко обучение във вашия уеб браузър. Не са ви необходими графични процесори и друг тежък софтуер.

ConvNetJS поддържа:

  • Модули на невронната мрежа.
  • Обучение на конволюционни мрежи за изображения.
  • Функции за регресия и класификация на разходите.
  • Модул за армировъчно обучение, базиран на Deep Q Learning.

Забележка: Не се поддържа активно.

Език за програмиране: Javascript

Връзка към Github: //github.com/karpathy/convnetjs

7. NNI (Neural Network Intelligence)

NNI (Neural Network Intelligence) е лек, но мощен инструментариум, който помага на потребителите да автоматизират Feature Engineering, Neural Architecture Search, Hyperparameter Tuning и Model Compression. Инструментът управлява експерименти с автоматизирано машинно обучение (AutoML), изпраща и изпълнява пробни задачи на експерименти, генерирани от настройка на алгоритми за търсене на най-добрата невронна архитектура и / или хиперпараметри в различни учебни среди като Local Machine, Remote Servers, OpenPAI, Kubeflow и други опции в облака. Хранилище за NNI

Кога трябва да помислите за използване на NNI

  • Ако искате да изпробвате различни AutoML алгоритми.
  • Ако искате да стартирате пробни задачи на AutoML в различни среди.
  • Ако искате да поддържате AutoML във вашата платформа.

ЗАБЕЛЕЖКА: Проект с отворен код на Microsoft.

Език за програмиране: Python

Връзка към Github: //github.com/Microsoft/nni

8. Датумбокс

Framework за машинно обучение Datumbox е рамка с отворен код, написана на Java, която позволява бързото развитие на машинното обучение и статистическите приложения. Основният фокус на рамката е да включва голям брой алгоритми за машинно обучение и статистически методи и да може да борави с големи масиви от данни.

Datumbox предоставя редица предварително обучени модели за различни задачи като откриване на нежелана поща, анализ на настроението, откриване на език, класификация на теми и т.н.

Език за програмиране: Java

Връзка към Github: //github.com/datumbox/datumbox-framework

9.XAI (набор от инструменти за обяснение за ML)

XAI е библиотека за машинно обучение, която е проектирана с обяснение на AI в основата си. XAI съдържа различни инструменти, които дават възможност за анализ и оценка на данни и модели. XAI библиотеката се поддържа от Института за етичен AI & ML и е разработена въз основа на 8-те принципа за отговорно машинно обучение. "XAI Repository"

8-те принципа за отговорно машинно обучение включват:

  • Увеличаване на човека
  • Оценка на пристрастия
  • Обяснимост чрез обосновка
  • Възпроизводими операции
  • Стратегия за изместване
  • Практическа точност
  • Доверете се чрез поверителност
  • Информираност за риска от данни

За да научите повече за XAI, можете да разгледате тази беседа в Tensorflow Лондон. Той съдържа прозрение за определенията и принципите на тази библиотека.

В момента XAI е в начален етап на разработка, текущата версия е 0,05 (алфа).

Език за програмиране: Python

Връзка към Github: //github.com/EthicalML/xai

10. Плато

Plato е гъвкава рамка за разработване на всякакви разговорни агенти за изкуствен интелект в различни среди. 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 е набор от инструменти с отворен код за създаване на персонализирани 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

Flair превъзхожда предишните най-добри методи за редица NLP задачи: Разпознаване на имена на обекти, Част от маркиране на речта и Чункиране. Вижте тази таблица:

Забележка : Резултатът F1 е показател за оценка, използван предимно за задачи по класификация. Резултатът F1 взема предвид разпределението на присъстващите класове.

Научете как да извършите класификация на текст с помощта на Flair Embeddings в тази статия.

Език за програмиране: Python

Връзка към Github: //github.com/flairNLP/flair

Заключение

Преди да започнете да изграждате приложение за машинно обучение, трябва да изберете една ML рамка от многото опции там. Това може да е трудна задача.

Ето защо е важно да оцените няколко опции, преди да вземете окончателно решение. Споменатите по-горе рамки за машинно обучение с отворен код могат да помогнат на всеки да изгради модели за машинно обучение ефективно и лесно.

Чудите ли се кои са най- популярните рамки за машинно обучение? Ето списъка, който повечето учени по данни и инженери по машинно обучение използват по-голямата част от времето си.

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

Ще се видим в следващия пост! Също така мога да бъда намерен в Twitter @Davis_McDavid.