25
Нижегородский государственный университет им. Н.И. Лобачевского Факультет Вычислительной математики и кибернетики Сравнительный анализ библиотек глубокого обучения Кручинин Дмитрий

Дмитрий Кручинин - Сравнительный анализ библиотек глубинного обучения

  • Upload
    aist

  • View
    113

  • Download
    5

Embed Size (px)

Citation preview

Нижегородский государственный университет им. Н.И. Лобачевского

Факультет Вычислительной математики и кибернетики

Сравнительный анализ библиотек глубокого обучения

Кручинин Дмитрий

22015 г.

Введение…

Глубокое обучение ̶ множество алгоритмов машинного

обучения, которые моделируют высокоуровневые

абстракции в данных, используя архитектуры, состоящие

из множества нелинейных трансформаций.

Сравнительный анализ библиотек глубокого обучения

32015 г.

Введение

Цель работы ̶ обзор и сравнение наиболее известных

библиотек глубинного обучения для дальнейшего

использования.

Для изучения выбраны 4 фреймворка:

– Caffe

– Pylearn2

– Torch

– Theano

Сравнительный анализ библиотек глубокого обучения

42015 г.

План сравнения

Краткое описание библиотеки.

Обзор функциональных возможностей.

Результаты вычислительных экспериментов.

Итоги сравнения.

Сравнительный анализ библиотек глубокого обучения

52015 г.

Библиотека Caffe

Калифорнийский университет г. Беркли,

сентябрь 2013 г.

Язык: C++.

Обертки на Python и MATLAB.

ОС: Linux и OS X, порт на Windows.

Используется в Google, Adobe…

Сравнительный анализ библиотек глубокого обучения

62015 г.

Библиотека Caffe. Функциональные

возможности…

Основные типы модулей Caffe:

Blob – класс, использующийся для передачи данных

между слоями сети, между нейросетями, также между

CPU и GPU.

Layer – класс – основа любой сети, слоем являются и

данные, и функции активации, и полносвязные или

сверточные слои.

Solver – класс, реализует какой-либо метод оптимизации,

отвечает за процесс обучения сети.

Data – класс производный от Layer, отвечает за загрузку

данных.

Сравнительный анализ библиотек глубокого обучения

72015 г.

Библиотека Caffe. Функциональные

возможности

Примеры классов:

Данные: hdf5, lmdb, leveldb.

Слои:

– Полносвязные, свёрточные, пулинг.

– Функции ошибки:

• среднеквадратичная, краевая, логистическая, и др.

– Функции активации:

• ReLU, tanh, abs, power, и др.

Методы оптимизации: SGD, AdaGrad, NAG.

Сравнительный анализ библиотек глубокого обучения

82015 г.

Библиотека Theano

Лаборатория LISA, январь 2008 г.

Язык: Python.

ОС: Windows, Linux и MacOS.

Используется в Google, Yahoo!, Card.io, Pylearn2.

Как возникла Theano и зачем нужна эта библиотека?

Сравнительный анализ библиотек глубокого обучения

Python – медленная работа с памятью Использовать NumPy (ndarray)

Многократные вызовы NumPy

сказываются на производительности

Использовать Cython,

scipy.weave, numexpr

Нужны символьные вычисления Использовать SymPy

Рост числа ошибок из-за “оптимизаций

вручную”

Автоматизировать работу

(написать Theano)

92015 г.

Библиотека Theano. Функциональные

возможности

Theano – низкоуровневая библиотека, она не содержит

готовых функций или объектов для создания и обучения

нейронных сетей.

Модули:

– tensor содержит базовые классы и функции для их

обработки.

• nnet – простые функции активации и ошибки.

• conv – функции свертки для 2-х и 3-х мерных данных.

– gradient – функции для символьного

дифференцирования (также Якобиан, Гессиан).

– config – настройки библиотеки.

– compile, scan – объекты для компиляции функций.

Сравнительный анализ библиотек глубокого обучения

102015 г.

Библиотека Pylearn2

Лаборатория LISA в университете Монреаля,

февраль 2011 г.

Язык: Python.

ОС: Linux (на других ОС

с использованием Vagrant).

Надстройка над Theano.

Cuda-convnet для ускорения вычислений.

Сравнительный анализ библиотек глубокого обучения

112015 г.

Библиотека Pylearn2. Функциональные

возможности

Базовые классы Pylearn2:

Dataset – обрабатывает и загружает данные.

Model – определяет конфигурацию нейросети.

TrainingAlgorithm – определяет как обучать Model на

Dataset.

Все три класса являются модульными (легко заменяемыми).

Сравнительный анализ библиотек глубокого обучения

122015 г.

Библиотека Pylearn2. Функциональные

возможности

Готовые реализации базовых классов:

Dataset: MNIST, CIFAR, NORB, SVHN…

Model: MLP, CNN, RBM, AE…

– Activation: ReLU, tanh, линейная функция…

TrainingAlgorithm: SGD, BGD, NCG.

– Loss: кросс-энтропия, функция максимального

правдоподобия…

Сравнительный анализ библиотек глубокого обучения

132015 г.

Библиотека Torch

“A Matlab-like Environment for Machine Learning”

Idiap Research Institute, New York University

и NEC Laboratories America, начиная с 2002 г.

Язык: Lua.

ОС: Linux, FreeBSD, MacOS X, Android и iOS.

Используется в Google Deepmind, Facebook, Twitter.

Высокая производительность достигается за счёт

использования OpenMP/SSE и CUDA.

Сравнительный анализ библиотек глубокого обучения

142015 г.

Библиотека Torch. Функциональные

возможности

Библиотека состоит из набора модулей, каждый из

которых отвечает за различные стадии работы с

нейросетями:

– torch ̶ базовые классы, функции для их сериализации.

– nn ̶ контейнеры, функции активации, ошибки, слои

нейросетей.

– optim ̶ методы оптимизации для обучения.

– cutorch, cunn ̶ аналогичные функции, но для работы с

CUDA.

– gnuplot, gfx.js ̶ визуализация данных, графики.

– …

Сравнительный анализ библиотек глубокого обучения

152015 г.

Библиотека Torch. Функциональные

возможности…

Типы слоев:

– полностью связанные слои,

– сверточные слои (convolution, subsampling, max-pooling,

average-pooling, LP-pooling, subtractive normalization).

Функции ошибки:

– среднеквадратичная ошибка (MSE),

– кросс-энтропия, …

Методы оптимизации:

– стохастический градиентный спуск (SGD),

– усредненный стохастический градиентный спуск,

– алгоритм L-BFGS,

– метод сопряженных градиентов (CG).Сравнительный анализ библиотек глубокого обучения

162015 г.

Сравнение функциональных возможностей

НазваниеМетоды

обученияFC NN, CNN RBM AE RNN

Theano * * * * *

Pylearn2

SGD,

BGD,

NCG

+ + + -

Torch

SGD,

LBFGS,

CG

+ + + +

CaffeSGD

+ - - -

Сравнительный анализ библиотек глубокого обучения

172015 г.

Тестовая инфраструктура

Ubuntu 14.04.

Intel Core i5-3210M 2.5GHz (CPU эксперименты)

Intel Core i5-2430M @ 2.4GHz +

NVIDIA GeForce GT 540M (GPU эксперименты)

GCC 4.8, NVCC 6.5.

Сравнительный анализ библиотек глубокого обучения

182015 г.

Тренировочные и тестовые данные

База рукописных цифр MNIST.

Изображения одноканальные и имеют разрешение 28x28.

Цифры отцентрированы на изображении.

Вся база разбита на две части:

– Тренировочная часть – 50,000 изображений.

– Тестовая часть – 10,000 изображений.

Сравнительный анализ библиотек глубокого обучения

192015 г.

Конфигурации нейронных сетей…

Многослойный персептрон (MLP):

Сравнительный анализ библиотек глубокого обучения

202015 г.

Конфигурации нейронных сетей

Сверточная нейронная сеть (CNN):

Сравнительный анализ библиотек глубокого обучения

212015 г.

Параметры обучения сетей

Начальные веса сетей распределены равномерно в

интервале −6

𝑛𝑖𝑛+𝑛𝑜𝑢𝑡,

6

𝑛𝑖𝑛+𝑛𝑜𝑢𝑡.

Параметры стохастического градиентного спуска (SGD):

– learning rate – 0.01,

– momentum – 0.9,

– weight decay – 5e-4,

– batch size - 128,

– максимальное число итераций - 150.

Сравнительный анализ библиотек глубокого обучения

222015 г.

Результаты вычислительных экспериментов

CPU

GPU

Сравнительный анализ библиотек глубокого обучения

232015 г.

Результаты сравнения

Сравнительный анализ библиотек глубокого обучения

Скорость Удобство Гибкость ФункционалДокументация +

tutorial’ыСумма

Caffe 3 3 1 1 2 10

Pylearn2 1 2 1 3 1 8

Torch 2 2 2 2 3 11

Theano 2 1 3 2 2 10

242015 г.

Выводы

В дальнейшем планируется применять Caffe и Torch.

Выбор обусловлен тем, что на данном этапе цель

последующей работы состоит в использовании методов

глубокого обучения при решении практических задач, а не

в разработке новых методов или модификации

существующих.

Сравнительный анализ библиотек глубокого обучения

252015 г.

Спасибо за внимание!

Сравнительный анализ библиотек глубокого обучения