Как складываются структуры глубокого обучения с открытым исходным кодом?


По мере того, как растет популярность глубокого обучения, находящего применение во всех случаях, растет и популярность различных фреймворков и библиотек DL, что затрудняет выбор между ними. Чтобы предоставить осознанный выбор, академические исследователи разработали и запустили тесты.

Результаты опубликованы в препринте на arxiv.org под названием «Подробное сравнительное исследование фреймворков глубокого обучения с открытым исходным кодом».
Целью этой работы сотрудников факультета компьютерных и информационных технологий Иорданского университета науки и технологий является качественное и количественное сравнение трех самых популярных и наиболее полных структур DL, TensorFlow, Theano и CNTK, чтобы пользователи могут принять обоснованное решение о том, какая структура DL соответствует их потребностям.
Причина исследования заключается в том, что, хотя эти платформы используют одни и те же базовые алгоритмы, они реализуют их по-разному, а также предоставляют дополнительные функции и возможности, связанные с этими алгоритмами.
В документе проводится сравнительный анализ каждой из трех структур на ряде наборов данных, относящихся к случаям обработки изображений, компьютерного зрения, обработки речи и обработки естественного языка, чтобы рекомендовать наиболее подходящие для каждого случая.
Но прежде чем мы перейдем к этому, сначала дается краткий обзор основ — что такое нейронная сеть и искусственные нейроны, перцептрон, функция активации, одноуровневые сети и многоуровневые сети.
Затем он переходит к глубоким нейронным сетям (DNN), объясняя, что:
DNN — это просто NN с более чем одним скрытым слоем модулей нелинейной обработки, которые извлекают признаки, передавая входные данные из одного слоя в другой, пока не будет получен желаемый результат «,
и что обратное распространение
«одним из наиболее часто используемых алгоритмов в DL является алгоритм Backpropagation, который используется для обучения сети путем обновления весов соединений между последовательными скрытыми слоями. Этот процесс повторяется много раз, пока результат не совпадет с желаемым.
После рассмотрения различий между двумя наиболее широко используемыми сетями — сверточной (CNN) и рекуррентной (RNN) — мы переходим к еще одному обзору, на этот раз рассматриваемых фреймворков, CNTK, TensorFlow и Theano.
Microsoft Cognitive Toolkit (CNTK) — это среда DL с открытым исходным кодом, разработанная Microsoft Research, Theano — это библиотека Python с открытым исходным кодом, разработанная в лаборатории MILA Монреальского университета, а TensorFlow — это среда с открытым исходным кодом, разработанная Google Brain Team.
Кроме того, Keras, библиотека DL с открытым исходным кодом, разработанная на Python, запускается поверх фреймворков.
Затем перейдем к самому тесту, который работает на ноутбуке с Windows 10×64, процессором Intel Core i7-6700HQ @ 2,60 ГГц (4 ядра), 16 ГБ ОЗУ и видеокартой NVIDIA GEFORCE GTX 960m (ноутбук) с поддержкой шины PCI Express 3.0. 4 ГБ памяти GDDR5 и 640 ядер CUDA. Он измеряет:

Продолжительность
Потребление памяти
Использование CPU и GPU
Количество эпох

Тест использует вышеупомянутые структуры для обучения CNN и RNN на ряде наборов данных; MNIST, CIFAR-10, PennTreeBank, Self-Driving Cars и IMDB.
Набор данных MNIST (Смешанный национальный институт стандартов и технологий) представляет собой базу данных компьютерного зрения для рукописных цифр. MNIST имеет обучающий набор из 60 000 изображений и набор для тестирования из 10 000 изображений.
Набор данных CIFAR-10 состоит из 60 000 цветных изображений 32 × 32, равномерно распределенных по десяти классам: самолет, автомобиль, птица, кошка, олень, собака, лягушка, лошадь, корабль и грузовик. Имеется 50 000 обучающих изображений и 10 000 тестовых изображений.
PennTreeBank — это большой аннотированный корпус английского языка, состоящий из Brown и Wall Street Journal Corpus.
Набор данных IMDB — это онлайн-набор данных о фильмах, телепрограммах и видеоиграх. Он состоит из 25 000 отзывов, помеченных настроением (положительным / отрицательным) каждого обзора.
Набор данных Self-Driving Car использует симулятор Udacity Self-Driving Car в качестве испытательного стенда для обучения автономному автомобилю.

Результаты теста в первую очередь показывают, что использование графического процессора, а не центрального процессора дает превосходные результаты почти во всех экспериментах, даже когда центральный процессор использует несколько потоков. Затем для каждого набора данных результаты агрегируются, что приводит к выводу о наилучшей структуре для например, в наборах данных MNIST и CIFAR-10
У TensorFlow было самое низкое использование графического процессора, за ним следовали Theano и CNTK. Что касается загрузки ЦП, у Theano была самая низкая загрузка, за ней следовали TensorFlow и CNTK. Для использования памяти при использовании CPU и GPU результаты были близки друг к другу.
То же самое и с остальными наборами данных. Победители указаны в таблице тестов выше, но для получения сводки и выводов вам придется самостоятельно проверить документ. Достаточно сказать, что в целом CNTK от Microsoft выигрывает.
Отличная статья, если вам нужен обзор наиболее широко используемых алгоритмов DL и лучшая структура для каждого из них. Получение неопровержимых фактов приводит к лучшему использованию ресурсов, ускорению исследований и экономии драгоценного времени.


Добавить комментарий