Машинное обучение
Фреймворки и платформы для разработчиков
Машинное обучение, нейронные сети и искусственный интеллект стали доминирующими темами в разработке - приложений, ботов, программ, сервисов.

Независимо от того, простой вы разработчик, стартап или уже большая компания, вам нужны правильные инструменты для работы. Ниже 23 популярных фреймворка, которые помогут вам разобраться с машинным обучением и ускорят внедрение искусственного интеллекта в ваши продукты.
Apache Spark наиболее известен как часть системы Hadoop, но этот фреймворк для обработки данных появился вне Hadoop. Благодаря своей растущей библиотеке алгоритмов, Spark стал надежным инструментом машинного обучения, который можно применить для высокоскоростной обработки данных.
H2O предоставляет доступ к алгоритмам машинного обучения и работает с распространенными средами разработки (Python, Java, Scala, R), системами big data (Hadoop, Spark) и источниками данных (HDFS, S3, SQL, NoSQL). H2O - это end-to-end решение для сбора данных, построения моделей и прогнозов.
Apache Singa предоставляет простую модель для тренировки сетей глубокого обучения на ряде устройств, она поддерживает многие распространенные типы тренировки: сверточные нейронные сети, ограниченные машины Больцмана, рекуррентные нейронные сети. Модели можно тренировать синхронно или асинхронно, на кластерах CPU или GPU.
Caffe2 - вторая итерация фреймворка Caffe от Facebook, изначально разработанного для работы с машинным зрением, сейчас включает и другие применения, например, речь и мультимедиа. Главные черты Caffe2 - это скорость и модульность, поэтому фреймворк написан преимущественно на C++.
TensorFlow применяется для создания графов потоков данных, в которых партии данных могут быть обработаны серией алгоритмов, описанных графом. Графы можно создавать при помощи Python и C++ и обрабатывать на CPU или GPU.
Amazon Machine Learning предоставляет данные из Amazon S3, Redshift и RDS для создания моделей бинарной классификации, мультиклассовой классификации и регрессии. Эти модели нельзя экспортировать. Если вы не хотите работать с облаком Amazon, инструмент предлагает многие другие фреймворки машинного обучения.
Microsoft Azure ML Studio позволяет пользователям создавать и тренировать модели, превращать их в API и использовать в других сервисах. В бесплатной версии доступно 10 Гб для хранения данных для обучения. Сервис включает множество обучающих алгоритмов как от Microsoft, так и от сторонних компаний.
Microsoft Distributed Machine Learning Toolkit решает проблему распределенного машинного обучения и распространяет разные виды работ по кластеру систем. DMTK создан как фреймворк, а не как готовое решение, поэтому в него по умолчанию включено немного алгоритмов.
TensorFlow – библиотека машинного обучения, созданная и поддерживаемая компанией Google. В конце 2016 были открыты ее исходные коды, а в феврале вышла версия 1.0. Мы попросили представителей компании рассказать о том, что такое TensorFlow, как с ним работать, какие задачи с его помощью можно решать. Все это в нашем интервью.
Позволяет пользователям создавать нейронные сети способом ориентированного графа. CNTK может достигать высокой скорости работы при использовании нескольких CPU и GPU одновременно.
Apache Mahout представлял масштабируемое машинное обучение в Hadoop до появления Spark. Недавно Mahout был обновлен: в него добавлена новая среда Samsara, которая запускает алгоритмы в распределенном кластере Spark. Фреймворк раньше был привязан к Hadoop, но сейчас многие алгоритмы могут быть запущены вне Hadoop.
Veles - распределенная платформа для создания моделей глубокого обучения. Наборы данных перед отправкой в кластер можно проанализировать и нормализовать, а REST API позволяет сразу использовать модель после тренировки.
Библиотека для машинного обучения, написанная на C++ и предназначенная для быстрого, простого и масштабируемого использования. В библиотеке доступно множество алгоритмов.
Neon - open source-проект компании Nervana, которая входит в состав Intel. Neon написан преимущественно на Python, а многие стандартные модели нейронных сетей доступны как готовые модели.
Massive Online Analysis - фреймворк для обучения на потоках данных. Он включает ряд алгоритмов машинного обучения, например, классификацию, регрессию, кластеринг, определение выбросов, а также инструменты для оценки.
scikit-learn использует Python для математической и научной работы. scikit-learn включает инструменты для многих стандартных задач машинного обучения (таких как кластеризация, классификация, регрессия и т. д.). И так как scikit-learn разрабатывается большим сообществом разработчиков и экспертов по машинным обучению, перспективные новые методы, как правило, включаются в довольно короткий срок.
Shogun - одна из самых старых библиотек машинного обучения. Она постоянно обновляется и может работать не только на C++, но и на таких языках и средах, как Java, Python, C#, Ruby, R, Lua, Octave и Matlab.
Python-библиотека, которая позволяет вам определять, оптимизировать и оценивать математические выражения, особенно с многомерными массивами. Theano позволяет достичь скоростей, близких к решениям на C++ для проблем, связанных с большими объемами данных.
Torch представляет собой научную вычислительную среду с широкой поддержкой алгоритмов машинного обучения. Цель Torch - обеспечить максимальную гибкость и скорость в построении научных алгоритмов, делая процесс чрезвычайно простым. Она поставляется с большой экосистемой пакетов по машинному обучению, компьютерному зрению, обработке сигналов, параллельной обработке и т.д.
Accord.NET - open source-фреймворк, идеально подходящий для научных вычислений. Он состоит из разных библиотек, которые могут использоваться для распознавания образов, искусственных нейронных сетей, обработки статистических данных, линейной алгебры, обработки изображений и т. д. Accord.NET имеет библиотеку матриц, которая облегчает повторное использование кода и постепенные алгоритмические изменения.
Weka - это набор алгоритмов машинного обучения для задач интеллектуального анализа данных. Алгоритмы могут быть применены непосредственно к набору данных или вызваны из вашего собственного кода Java. Weka содержит инструменты для предварительной обработки данных, классификации, регрессии, кластеризации, правил ассоциации и визуализации. Он также подходит для разработки новых схем машинного обучения.
Фреймворк от разработчиков приложения Prisma. Они предоставляют API и SDK, работающие с изображениями.
Core ML позволяет использовать на iOS предобученные серверные модели. На самом устройстве обучать модели пока нельзя. Уже сейчас можно использовать Core ML, например, для отслеживания и распознавания лиц, определения штрих-кодов, объектов на фото и видео, анализа движений (Vision) или для понимания и распознавания текста (Natural Language). На основе Core ML работают собственные приложения Apple – Siri, Camera и QuickType.
Neural Processing Engine (NPE) - библиотека машинного обучения для процессоров Snapdragon. Фреймворк позволяет задействовать различные функции машинного обучения прямо на устройствах – например, для наложения эффектов на фотографии, распознавания лиц, отслеживания объектов, понимания естественного языка и т.п. – и значительно ускоряет их работу.
Что читать, смотреть и где учиться машинному обучению
Список материалов, с которых стоит начать изучение этой предметной области.