AI, практический курс. Сравнение ПО глубокого обучения |
||||||||||||||||||||||||||||||||||||||||||||||||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-05-24 23:11 На определенном этапе своего проекта AI вам придется решить, какую среду машинного обучения вы будете использовать. Для некоторых задач традиционных алгоритмов машинного обучения будет достаточно. Однако, если вы работаете с большим объемом текстов, изображений, видео или речевых данных, рекомендуется использовать глубокое обучение.
Итак, какую среду глубокого обучения выбрать? Эта статья посвящена сравнительному анализу существующих сред глубокого обучения. Общая информация Среды глубокого обучения упрощают разработку и обучение моделей глубокого обучения за счет предоставления простейших элементов высокого уровня для сложных и ненадежных математических преобразований, например, функции градиентного спуска, обратного распространения и логического вывода. Критерии оценки Оценку сред мы производили в два этапа.
Предварительная оценка Каждую среду мы оценили исходя из активности сообщества и оценок участников.
Stack Overflow
Подробный анализ
Среды глубокого обучения По результатам нашего анализа популярных сред мы составили следующую таблицу для оценки каждой среды по популярности и активности.
Подробнее о самых популярных средах Среды глубокого обучения различаются по своему уровню функциональности. Некоторые из них, такие как Theano и TensorFlow, позволяют определять нейронные сети произвольного уровня сложности, используя самые базовые структурные элементы. Среды такого типа даже можно назвать языками. Другие среды, такие как Keras, являются движками или оболочками, призванными повысить производительность разработчиков, но ограниченными в функциональности из-за более высокого уровня абстракции. Caffe Caffe представляет собой среду глубокого обучения, которая создавалась с учетом выражения, скорости и модульного принципа. Она была создана компанией Berkeley AI Research (BAIR) при участии членов сообщества. Янгквин Джиа (Yangqing Jia) создал проект во время своей работы над докторской диссертацией в Калифорнийском университете в Беркли. Библиотека Caffe издана под лицензией 2 статьи о распространении программного обеспечения университета Беркли. Важные особенности:
Microsoft Cognitive Toolkit Microsoft Cognitive Toolkit (прежнее название — CNTK) — это унифицированный набор инструментов для глубокого обучения, который представляет нейронные сети как серию вычислительных действий через направленный граф. В графе листья представляют входные значения или параметры сети, а другие узлы — операции матрицы в ответ на входные значения. Набор инструментов позволяет легко реализовывать и комбинировать популярные типы моделей, например, упреждающие глубокие нейронные сети, сверточные нейронные сети, рекуррентные нейронные сети (RNN) и сети с долгой краткосрочной памятью (LSTM). Он реализует обучение по принципу стохастического градиентного спуска (SGD, обратное распространение ошибки) с автоматической дифференциацией и распараллеливанием по нескольким графическим процессорам и серверам. Библиотека доступна по лицензии на ПО с открытым исходным кодом с апреля 2015 года. Важные особенности.
Keras Keras представляет собой API для нейронных сетей высокого уровня, написанный на Python. Эту библиотеку можно использовать дополнительно к TensorFlow или Theano. Библиотека Keras главным образом предназначена для ускорения экспериментов. Важным условием удачного исследования является возможность перехода от замысла к результату с минимальной возможной задержкой. Важные особенности.
DeepLearning4j Deeplearning4j (DL4J) — это первая библиотека распределенного глубокого обучения с открытым исходным кодом для коммерческой эксплуатации, написанная для Java* и Scala*. Библиотека DL4J интегрирована с Hadoop* и Apache Spark* и предназначена для использования в корпоративных средах на распределенных графических процессорах (GPU) и ЦП. DL4J представляет собой новейшую готовую библиотеку, больше ориентированную на стандарт, чем на настройку и обеспечивающую быстрое создание прототипов для специалистов, не являющихся профессиональными исследователями. DL4J можно настраивать при масштабировании. Библиотека доступна по лицензии Apache 2.0, при этом все производные продукты от DL4J принадлежат их создателям. DL4J позволяет импортировать модели нейронных сетей из большинства основных сред через Keras, включая TensorFlow, Caffe, Torch и Theano, закрывая брешь между экосистемой Python и виртуальной машиной Java (JVM) с помощью общего набора инструментов, предназначенного для аналитиков-исследователей, инженеров данных и разработчиков. В качестве прикладного программного интерфейса DL4J на Python используется Keras. Важные особенности.
MXNet MXNet представляет собой простую, универсальную и ультрамасштабируемую среду для глубокого обучения. Среда поддерживает современные модели глубокого обучения, включая сверточные нейронные сети и LSTM. Библиотека берет свое начало в научной среде и является продуктом совместной и индивидуальной работы исследователей из нескольких ведущих университетов. Библиотека, активно поддерживаемая компанией Amazon, разрабатывалась с особым упором на машинное зрение, обработку и понимание речи и языка, порождающие модели, сверточные и рекуррентные нейронные сети. MXNet позволяет определять, обучать и развертывать сети в самых разных условиях: начиная от мощных облачных инфраструктур и заканчивая мобильными и подключенными устройствами. Библиотека обеспечивает универсальную среду с поддержкой многих распространенных языков, давая возможность использовать как императивные, так и символические программные конструкции. Библиотека MXNet также занимает мало места. Благодаря этому ее можно эффективно масштабировать на нескольких графических процессорах и машинах, что хорошо подходит для обучения на больших наборах данных в облачной среде. Важные особенности.
Среда neon Благодаря языку на основе Python с открытым исходным кодом и набору библиотек для разработки моделей глубокого обучения, neon является быстрым, мощным и простым в использовании инструментом. Важные особенности.
TensorFlow TensorFlow представляет собой открытую программную библиотеку для числовых вычислений с использованием графов потоков данных. Узлы в графе представляют математические операции, а ветви графа — многомерные массивы данных (тензоры), которыми они обмениваются. Благодаря универсальной архитектуре вычисления можно развертывать на одном или нескольких ЦП или графических процессорах настольного компьютера, сервера или мобильного устройства с одним API. TensorFlow изначально был разработан научными сотрудниками и инженерами, работавшими в группе Google Brain в подразделении Google по изучению машинного интеллекта, для проведения машинного обучения и изучения нейронных сетей, однако благодаря своему общему характеру систему также можно использовать в других областях. Theano Theano — это библиотека Python, предназначенная для определения, оптимизации и оценки математических выражений, особенно выражений с многомерными массивами (numpy.ndarray). Theano позволяет достичь скоростей работы с большими объемами данных, которые могут конкурировать только со специально изготовленными программами на языке СИ. Theano также превосходит СИ на ЦП во много раз за счет использования последних версий графических процессоров. Theano совмещает в себе аспекты системы компьютерной алгебры (СКА) с аспектами оптимизирующего компилятора. С помощью Theano также можно создавать пользовательский код на языке СИ для многих математических операций. Такое сочетание СКА с оптимизирующей компиляцией особенно хорошо подходит для задач, в которых сложные математические выражения оцениваются многократно, поэтому для них важна скорость оценки. В ситуациях, когда оценивается множество разных выражений только один раз, Theano помогает уменьшить количество непроизводительных компиляций и анализов, по-прежнему обеспечивая символьные функции, такие как автоматическая дифференциация. Важные особенности.
Torch Torch представляет собой научную вычислительную среду с широкой поддержкой алгоритмов машинного обучения, в которой упор сделан на графические процессоры (GPU). Она отличается удобством в использовании и быстродействием благодаря простому и быстрому языку скриптов, LuaJIT и базовой программе на основеC/CUDA. Важные особенности.
Подробный анализ Большинство сред имеют общие черты: скорость, портативность, сообщество и экосистема, простота разработки, совместимость и масштабируемость.
Производительность разработчиков: Язык Производительность разработчиков представляет большую важность, особенно на этапе создания прототипов, поэтому необходимо выбирать среду, соответствующую навыкам и знаниям участников вашей команды. По этой причине мы исключим все среды, основывающиеся на альтернативных языках.
Новые или существующие алгоритмы глубокого обучения и сетевая архитектура Большинство проектов, включая наш учебный проект, используют только некоторый существующий алгоритм нейронной сети, такой как AlexNet или LSTM. В нашем случае должна подойти любая среда глубокого обучения. Однако, если вы работаете над исследовательским проектом (например, разрабатываете новый алгоритм, тестируете новую гипотезу или оптимизируете библиотеку), высокоуровневые системы, такие как Keras, вам не подойдут. Среды низкого уровня, скорее всего, потребуют от вас написания нового алгоритма на языке C++.
Поддерживаемые архитектуры нейронных сетей Наш учебный проект предполагает решение двух традиционных задач глубокого обучения:
все среды поддерживают сверточные нейронные сети (применяются в основном для обработки изображений) и рекуррентные нейронные сети (применяются для моделирования последовательности). Наш перечень остается прежним:
Наличие предварительно обученных моделей Поскольку у нас нет большого набора данных (например, 6000 аннотированных изображений) для обучения модели нашего проекта, мы должны использовать предварительно обученные модели.
У всех этих сред также есть свои собственные парки моделей. Наш перечень остается прежним:
Производительность разработчиков: Простота определения модели Модель можно определить двумя способами: с помощью файла конфигурации (например, при использовании Caffe) или с помощью скриптов (в других средах). Файлы конфигурации удобны с точки зрения портативности модели, но их сложно использовать при создании сложной архитектуры нейронной сети (например, попробуйте вручную скопировать слои в ResNet-101). С другой стороны, с помощью скриптов можно создавать сложные нейронные сети с минимальным повторением кода, однако возможность переноса такого кода в другую среду будет под вопросом. Обычно предпочтительнее использовать скрипты, потому что переходы из одной среды в другую в рамках одного проекта случаются редко.
Поддержка оптимизированных ЦП и нескольких ЦП для обучения моделей глубокого обучения Библиотека Intel Math Kernel Library (Intel MKL) для векторного и матричного умножения была доработана для глубокого обучения и теперь включает интегрированную многоядерную архитектуру Intel Many Integrated Core Architecture. Это процессорная архитектура с широким распараллеливанием, которая существенно ускоряет процессы глубокого обучения на ЦП. Все существующие на сегодняшний день конкурирующие среды уже интегрировали Intel MKL и предлагают версии, оптимизированные Intel.
Производительность разработчиков: Развертывание модели TensorFlow поддерживает специальный инструмент, который носит название TensorFlow Serving. Он берет обученную модель TensorFlow в качестве входных данных и преобразует ее в веб-сервис, позволяющий оценивать входящие запросы. Если вы собираетесь использовать обученную модель на мобильном устройстве, TensorFlow Mobile обеспечивает немедленную компрессию модели. Заключение В этой статье мы представили несколько популярных сред для глубокого обучения и сравнили их по ряду критериев. Простота создания прототипов, развертывания и отладки модели, наряду с размером сообщества и масштабируемостью на нескольких машинах, являются одними из самых важных критериев, на которые следует ориентироваться при выборе среды глубокого обучения. Все современные среды сейчас поддерживают сверточные и рекуррентные нейросети, имеют парки предварительно обученных моделей и предлагают версии, оптимизированные для современных процессоров Intel Xeon Phi. Как показал наш анализ, для целей нашего проекта прекрасным выбором будет Keras на основе версии TensorFlow, оптимизированной Intel. Другим удачным вариантом будет библиотека MXNet, оптимизированная Intel. Источник: habr.com Комментарии: |
|||||||||||||||||||||||||||||||||||||||||||||||||||