NVIDIA удваивает скорость обучения глубоких нейронных сетей

NVIDIA объявила об обновлении библиотек с алгоритмами глубокого обучения (deep learning) с поддержкой GPU-ускорения. Новая версия ПО позволяет удвоить скорость обучения нейронных сетей.

Более точные нейронные сети благодаря ускоренному обучению моделей и их более сложной структуре позволят ученым и исследователям ускорить работу над проектами, связанными с глубоким обучением.

Система глубокого обучения NVIDIA DIGITS™ Deep Learning GPU Training System версии 2 (DIGITS 2) и библиотека NVIDIA CUDA® Deep Neural Network library версии 3 (cuDNN 3) обеспечивают значительно более высокую производительность и предоставляют новые возможности для исследователей.

DIGITS 2 теперь позволяет автоматически масштабировать обучение нейронных сетей на несколько высокопроизводительных графических процессоров. Для задач классификации изображений это позволит сократить время обучения сети вдвое (по сравнению с системой на базе одного GPU).

cuDNN 3 позволяет оптимизировать хранение данных в памяти GPU при обучении более сложных нейронных сетей. cuDNN 3 также обеспечивает прирост производительности по сравнению с версией cuDNN 2, позволяя исследователям обучать нейронные сети до двух раз быстрее, чем на системах с одним GPU.

Ожидается, что новая библиотека cuDNN 3 будет интегрирована в новые версии фреймворков глубокого обучения Caffe, Minerva, Theano и Torch, которые широко применяются для обучения глубоких нейронных сетей.

Подробнее

AdaBoost в OpenCV

AdaBoost – алгоритм машинного обучения. Алгоритмы типа Boosting предназначены для обучения T «слабых» классификаторов. По отдельности эти классификаторы как правило просты. Каждый классификатор Kt (t = {1, 2, … T}) ассоциирован с весом at, который применяется при объединении результатов со всех классификаторов. Входной вектор признаков
X = (x1, x2, …xi, …, XM)
(где i – номер признака) помечается бинарными метками yi = {-1, +1} (для других Boosting алгоритмов может быть диапазон значений).
Распределение Dt(i), которое должно быть инициализировано заранее, сообщает сколько «стоит» неправильная оценка каждого признака. Ключевой особенностью Boostingа является то, что, когда алгоритм прогрессирует, эта «стоимость» будет развиваться так, что обучение «слабых» классификаторов будет сфокусировано на тех признаках, которые ранее в «слабых» классификаторах давали плохие результаты.
Алгоритм:
1. D1(i) = 1/m, для i = 1,...,m.
2. Для t = 1,...,T:
2.1. Найти классификатор Kt минимизирующий Dt(i) весовую ошибку:

где



( Читать дальше )