10 лучших фреймворков машинного обучения

Опубликовано: 2017-03-11
Оглавление показать
1. Тензорный поток
2. Кафе
3. Машинное обучение Amazon
4. Апач Синга
5. Microsoft CNTK
6. Факел
7. Аккорд.NET
8. Апач Махаут
9. Теано
10. Мозговой штурм

При погружении в мир машинного обучения (ML) выбор одной платформы из множества альтернатив может быть пугающей задачей. Возможно, вы уже знакомы с именами, но полезно оценить варианты в процессе принятия решения. В мире машинного обучения существуют различные фреймворки, библиотеки, приложения, наборы инструментов и наборы данных, которые могут сбивать с толку, особенно если вы новичок. Привыкание к популярным платформам машинного обучения необходимо, когда дело доходит до выбора одной из них для создания вашего приложения. Вот почему мы составили список из 10 лучших фреймворков машинного обучения.

1. Тензорный поток

Tensorflow был разработан командой Google Brain Team для различных задач понимания языка и восприятия. Эта платформа с открытым исходным кодом используется для обширных исследований глубоких нейронных сетей и машинного обучения. Будучи второй платформой машинного обучения от Google Brain, она совместима с большинством новых процессоров и графических процессоров. Многие из популярных сервисов Google, которые мы используем ежедневно, такие как Gmail, распознавание речи, Google Фото и даже поиск Google, оснащены Tensorflow.

Tensorflow использует графы потоков данных для выполнения сложных числовых задач. Математические вычисления выполняются с использованием ориентированного графа, содержащего ребра и узлы. Эти узлы используются для реализации операций, а также могут выступать в качестве конечных точек, куда передаются данные. Ребра также представляют ассоциации ввода/вывода между различными узлами.

2. Кафе

Caffe — это среда машинного обучения, которая была разработана с учетом лучшего выражения, скорости и модульности в качестве основных моментов. Он был разработан для компьютерного зрения/классификации изображений с использованием сверточных нейронных сетей (CNN). Caffe популярен своим модельным зоопарком, который представляет собой набор предварительно обученных моделей, для реализации которых не требуется кодирование.

Он лучше подходит для создания приложений, в отличие от Tensorflow, который лучше подходит для исследований и разработок. Если вы имеете дело с приложениями с текстом, звуком или данными временных рядов, обратите внимание, что Caffe не предназначен ни для чего другого, кроме компьютерного зрения. Тем не менее, он может динамически работать на множестве аппаратных средств и хорошо справляется с переключением между ЦП и ГП, используя всего один флаг.

3. Машинное обучение Amazon

Amazon разработала собственный сервис машинного обучения для разработчиков под названием AML. Это набор инструментов и мастеров, которые можно использовать для разработки сложных, высокотехнологичных и интеллектуальных моделей обучения, фактически не возясь с кодом. Используя AML, прогнозы, необходимые для ваших приложений, могут быть получены с помощью более простых в использовании API. Технология, лежащая в основе AML, используется внутренними специалистами по обработке данных Amazon для обеспечения работы своих облачных сервисов Amazon и отличается высокой масштабируемостью, динамичностью и гибкостью. AML может подключаться к данным, хранящимся в Amazon S3, RDS или Redshift, и выполнять такие операции, как бинарная классификация, регрессия или мультиклассовая категоризация для создания новых моделей.

4. Апач Синга

Apache Singa в первую очередь ориентирован на распределенное глубокое обучение с использованием разделения моделей и распараллеливания процесса обучения. Он предоставляет простую и надежную модель программирования, которая может работать в кластере узлов. Основные области применения — распознавание изображений и обработка естественного языка (NLP).

Singa была разработана с использованием интуитивно понятной модели программирования, основанной на многоуровневой абстракции, и поддерживает множество моделей глубокого обучения. Поскольку он основан на очень гибкой архитектуре, он может запускать как синхронные, так и асинхронные и даже гибридные методы обучения. Технический стек Singa состоит из трех важных компонентов: IO, Model и Core. Компонент IO содержит классы, используемые для чтения/записи данных в сеть и на диск. Основной компонент обрабатывает тензорные операции и функции управления памятью. Модель содержит алгоритмы и структуры данных, используемые для моделей машинного обучения.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) — это платформа машинного обучения Microsoft с открытым исходным кодом. Хотя CNTK более популярен в области распознавания речи, его также можно использовать для обучения тексту и изображениям. Имея поддержку широкого спектра алгоритмов машинного обучения, таких как AS CNN, LSTM, RNN, Sequence-to-Sequence и Feed Forward, это одна из самых динамичных сред машинного обучения. CNTK поддерживает несколько типов оборудования, включая различные процессоры и графические процессоры.

Совместимость является одним из основных преимуществ CNTK. Он также считается самой выразительной и простой в использовании архитектурой машинного обучения. На CNTK вы можете работать с такими языками, как C++ и Python, и либо использовать встроенные модели обучения, либо создавать свои собственные.

6. Факел

Torch, возможно, может быть самой простой средой машинного обучения, которую можно быстро и легко настроить и запустить, особенно если вы используете Ubuntu. Разработанный в 2002 году в Нью-Йоркском университете, Torch широко используется в крупных технологических компаниях, таких как Twitter и Facebook. Torch написан на языке под названием Lua, который является необычным, но легко читаемым и понятным. Некоторые из преимуществ Torch можно отнести к этому удобному языку программирования с полезными сообщениями об ошибках, огромным хранилищем образцов кода, руководствами и полезным сообществом.

7. Аккорд.NET

Accord.NET — это платформа машинного обучения с открытым исходным кодом, основанная на .NET, которая идеально подходит для научных вычислений. Он состоит из различных библиотек, которые можно использовать для таких приложений, как распознавание образов, искусственные нейронные сети, статистическая обработка данных, линейная алгебра, обработка изображений и т. д. Платформа состоит из библиотек, доступных в виде установщиков, пакетов NuGet и исходного кода. Accord.NET имеет матричную библиотеку, которая облегчает повторное использование кода и постепенные изменения алгоритмов.

8. Апач Махаут

Будучи бесплатным проектом с открытым исходным кодом Apache Software Foundation, Apache Mahout был создан с целью разработки бесплатных распределенных или масштабируемых платформ машинного обучения для таких приложений, как кластеризация, классификация и совместная фильтрация. Коллекции Java для различных вычислительных операций и библиотеки Java также доступны в Mahout.

Apache Mahout развертывается поверх Hadoop с использованием парадигмы MapReduce. Одним из замечательных приложений является мгновенное преобразование данных в идеи. Как только большие данные, хранящиеся в Hadoop, подключены, Mahout может помочь инструментам обработки и анализа данных найти значимые закономерности в наборах данных.

9. Теано

Theano был разработан в 2007 году в Монреальском университете, всемирно известном своими алгоритмами машинного обучения. Несмотря на то, что он считается недорогим фреймворком машинного обучения, он гибок и молниеносно быстр. Сообщения об ошибках, выдаваемые фреймворком, печально известны своей бесполезностью и загадочностью. Если оставить это в стороне, Theano — это платформа, которая больше подходит для исследовательских задач и может быть чрезвычайно полезной в этом.

В основном он используется в качестве базовой платформы для высокопроизводительных систем абстракции, которые отправляют оболочки API в Theano. Примерами некоторых популярных библиотек являются Lasagne, Blocks и Keras. Одним из недостатков использования Theano является то, что вам придется повозиться с некоторыми обходными путями, чтобы иметь поддержку нескольких графических процессоров.

10. Мозговой штурм

Brainstorm — одна из самых простых в освоении сред машинного обучения, учитывая ее простоту и гибкость. Это делает работу с нейронными сетями быстрее и в то же время увлекательнее. Будучи полностью написанным на Python, Brainstorm был создан для бесперебойной работы на нескольких серверных системах.

Brainstorm предоставляет два «обработчика» или API данных с использованием Python: один для ЦП с библиотекой Numpy, а другой для использования графических процессоров с использованием CUDA. Большая часть тяжелой работы выполняется с помощью сценариев Python, что означает, что богатый внешний интерфейс практически отсутствует.