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.
Выбор обусловлен тем, что на данном этапе цель
последующей работы состоит в использовании методов
глубокого обучения при решении практических задач, а не
в разработке новых методов или модификации
существующих.
Сравнительный анализ библиотек глубокого обучения