Быстрый старт: обзор основных Deep Learning фреймворков |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-04-07 00:50 Привет, Хабр! Предлагаем вам перевод поста “Getting Started with Deep Learning” от Мэтью Рубашкина из Silicon Valley Data Science о преимуществах и недостатках существующих Deep Learning технологий и о том, какой фреймворк выбрать, учитывая специфику задачи и способности команды.
Здесь, в SVDS, наш R&D отдел изучает различные технологии Deep Learning: от распознавания изображений поездов, до расшифровки человеческой речи. Перед нами стояла цель построить непрерывный процесс обработки данных, создания модели и оценки ее качества. Однако, начав изучение доступных технологий, мы так не смогли найти подходящего руководства по запуску нового Deep Learning проекта. Тем не менее, стоит отдать должное сообществу энтузиастов, которые занимаются разработкой и улучшением Deep Learning технологий с открытым исходным кодом. Следуя их примеру, необходимо помогать другим оценивать и выбирать эти инструменты, делиться собственным опытом. В таблице ниже указаны критерии выбора тех или иных фреймворков Deep Learning: Теперь перейдем к более подробному описанию нашей системы оценивания: Языки программирования: Начиная работать с Deep Learning, лучше всего использовать наиболее удобный для вас язык программирования. К примеру, Caffee (C++) и Torch (Lua) имеют обёртки для своей API на Python, однако использование данных инструментов рекомендуется, только если вы на должном уровне владеете C++ или Lua соответственно. Для сравнения, TensorFlow и MXNet поддерживают множество языков программирования, что делает возможным использования данного инструментария, даже если вы не профессионал в C++. Замечание: К сожалению, у нас пока не было возможности протестировать новую Python обертку для Torch, PyTorch, выпущенную Facebook AI Research (FAIR) в январе 2017 года. Данный фреймворк был создан для того, чтобы Python-разработчики могли совершенствовать построение нейронных сетей в Torch. Возможности для моделирования RNN: Рекуррентные нейронные сети (RNN) используются для распознавания речи, прогнозирования временных рядов, захвата изображений и решения других задач, в которых требуется обработка последовательной информации. В связи с тем, что встроенные RNN модели не так распространены среди фреймворков как CNN, при реализации Deep Learning проекта важно изучить другие open-source проекты, использующие подходящую вам технологию. К примеру, Caffe имеет минимальное количество возможностей для RNN моделирования, в то время как Microsoft CNTK и Torch обладают богатыми наборами документаций и встроенных моделей. Tensorflow так же имеет некоторый набор материалов по RNN, а TFLearn и Keras включают в себя большое количество примеров RNN, использующих TensorFlow. Архитектура и easy-to use модульный пользовательский интерфейс: Для того, чтобы создавать и обучать новые модели, фреймворк должен иметь легкий в использовании, модульный пользовательский интерфейс. TensorFlow, Torch и MXNet, например, им обладают, создавая интуитивно понятную среду для разработки. Для сравнения, такие фреймворки как Caffe требуют значительных усилий для создания нового слоя сети. Мы также выяснили, что, в частности, TensorFlow легко отлаживается не только во время, но и после обучения, благодаря TensorBoard GUI. Скорость: Torch и Nervana показали наилучшие результаты при тестировании производительности сверточных нейронных сетей. TensorFlow прошел испытания с сопоставимыми результатами, а Caffe и Theano значительно отстали от лидеров. В свою очередь, Microsoft CNTK показал себя наилучшим образом при обучении рекуррентных нейронных сетей (RNN). Авторы другого исследования, сравнивая Theano, Torch и TensorFlow, выбрали Theano победителем по части обучения RNN. Поддержка множества GPU: Большинство алгоритмов Deep Learning требуют невероятного количества FLOPS (floating point operations). К примеру, DeepSpeech, модель распознавания образов от Baidu, требует 10 экзафлопсов для обучения, а это более чем 10e18 вычислений! Учитывая, что один из лидеров рынка графических процессоров, NVIDIA`s Pascal TitanX может выполнять 11е9 флопов в секунду, потребуется больше недели, чтобы обучить достаточно большой массив данных. Для того, чтобы уменьшить время создания модели, необходимо использовать различные GPU на различных системах. К счастью, большинство вышеуказанных инструментов предоставляют такую возможность. В частности, считается, что MXNet обладает одним из самых оптимизированных движков для работы с несколькими видеокартами. Совместимость с Keras: Keras — это высокоуровневая библиотека для быстрой реализации Deep Learning алгоритмов, которая отлично подходит для знакомства аналитиков с областью. На данный момент Keras поддерживает 2 back-end-а, TensorFlow и Theano и в будущем будет получать официальную поддержку от TensorFlow. Более того, в пользу Keras говорит тот факт, что библиотека, по словам ее автора, продолжит выступать в качестве пользовательского интерфейса, который может быть использован с несколькими back-end-ами. Таким образом, если вы заинтересованы в том, чтобы развиваться в области Deep Learning, я бы рекомендовал сперва оценить способности и требования вашей команды и проекта соответственно. Например, для распознавания изображений командой разработчиков на Python, оптимальным вариантом будет использовать TensorFlow, учитывая его обширную документацию, высокую производительность и отличный инструментарий для проектирования. С другой стороны, для реализации проекта на основе RNN с командой профессионалов в Lua, наилучший вариант — это Torch и его невероятная скорость вкупе с возможностями моделирования рекуррентных сетей. Биография: Мэтью Рубашкин наряду с солидным бэкграундом в оптической физике и биомедицинских исследованиях обладает опытом разработки, управления базами данных и предиктивной аналитики. === В своей программе Deep Learning, которая 8 апреля стартует уже во второй раз, мы используем две библиотеки: Keras и Caffe. Как было отмечено, Keras является более высокоуровневой библиотекой и позволяет быстро прототипировать. Это является плюсом, поскольку на программе не придется тратить время на то, чтобы узнать, как работать с тем же TensorFlow, а сразу взять и попробовать на практике разные вещи. Caffe — также довольно понятная в использовании, хоть и не очень удобная, но при этом она может использоваться в production-решениях. В обзоре она не отмечена как самая быстрая. Если перейти по ссылке на исходный анализ скорости, то можно увидеть примечание: “может показаться, что TensorFlow и Chainer быстрее, чем Caffe, но на самом деле это может быть не так, поскольку указанные фреймворки тестировались на CuDNN, а Caffe на своем дефолтном движке”. Источник: habrahabr.ru Комментарии: |
|