Инструментарий специалиста по большим данным: Caffe

Мы продолжаем разговор об инструментарии специалиста по большим данным. На очереди Caffe – библиотека, реализующая алгоритмы глубокого обучения, разработанная с упором на такие важные характеристики, как поддержание уровня чистоты данных, их читабельность и скорость обработки. В этой статье мы рассмотрим основные принципы работы инструмента, а также расскажем о ключевых характеристиках и главных преимуществах Caffe в сравнении с аналогами.

Что такое Caffe?

Искусственные нейронные сети как пример глубоких структур и их обучение сегодня – предмет разговоров по всему миру. В одной из прошлых статей мы осветили общие понятия, связанные с этими концепциями, и напомнили о важности их применения – как в области больших данных и искусственного интеллекта, так и для решения задач распознавания образов.

Один из главных инструментов, применяющихся сегодня для решения задач этих направлений (если быть точнее, задач распознавания визуальных и аудио-образов, в том числе речи) – разработка Центра распознаваний образов и машинного обучения университета Беркли, США (Berkeley Visionand Learning Center) и связанных с ним сторонних исследователей под названием Caffe.

Анализ мультимедийных данных – задача, бесспорно, важная. Распознавание образов – лишь вершина айсберга. Современное положение дел призывает мыслить шире и работать в направлении распознавания любых мультимедийных данных, будь то изображение, звук или даже сенсорная информация. Предыдущий опыт показал, что обработка больших объемов данных вручную – дело не просто неблагодарное, но и вовсе неосуществимое. На смену пришло глубокое обучение – машинное обучение многоуровневых структур без участия человека (если быть точнее, с минимальным участием, да и то в процессе подготовки), то есть с учителем.

Основные характеристики

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

Библиотека Caffe – и на этом разработчики делают особый акцент – в отличие от своих предшественников, полностью ориентирована на коммерческое использование. При этом весь код является открытым, написан на языке C++, а сам продукт полностью поддерживает написание пользовательских алгоритмов на Python/NumPy, а также совместим с MATLAB.

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

Принципы работы

Итак, как же работает Caffe? Библиотека хранит данные в четырехмерных массивах, называемых блобами (blob, «сгусток»), которые предоставляют интерфейс для хранения серий изображений (или других файлов), их параметров и данных об обновлении этих параметров.

Caffe net

Поскольку операции над этими данными происходят посредством взаимодействия процессора и графического процессора – а это, понятное дело, налагает определенные ограничения на скорость их обработки – Caffe позволяет снизить временные затраты посредством синхронизации работы устройств «по требованию».

Это означает, что центральный процессор передает данные графическому устройству только после того, как произойдет запрос к этим данным, причем «вспомогательные» параметры нижних слоев архитектуры (блоба) игнорируются. Таким образом достигается приличная скорость работы системы – что, естественно, немаловажно в случае глубоких архитектур с большим количеством уровней информации. Кроме того, это очевидно позволяет существенно повысить эффективность использования памяти компьютера.

Главные преимущества

В чем же преимущества Caffe по сравнению с аналогичными инструментами (среди которых популярные библиотеки Decaf, OverFeat, cuda-convnet и другие)?

  • Во-первых, «чистая» архитектура позволяет осуществить мгновенное развертывание. Сети определяются простыми файлами конфигурации, без жесткого «вшивания» параметров данных в код. Благодаря этому переключение между центральным и графическим процессором происходит легко и быстро – и появляется возможность тренировать модели на компьютере с мощным графическим процессором, а затем использовать на любой машине кластера.
  • Во-вторых, открытый код позволяет не только контролировать внедрение, но и модифицировать его под свои нужды. В первые 6 месяцев активного использования Caffe более 300 независимых разработчиков внесли свой вклад в развитие библиотеки, просто подстраивая ее под себя.
  • В-третьих, скорость работы делает Caffe незаменимым инструментом для коммерческого использования. Всего лишь на одной машине с графическим процессором уровня NVIDIA K40 при помощи библиотеки можно обработать болеее 400 млн изображений в сутки. Это соответствует скорости обучения в 5 миллисекунд на изображение и скорости тестирования в 2 миллисекунды на изображения. Разработчики справедливо подчеркивают, что Caffe – лидер по скорости работы среди сверточных нейронных сетей.

Еще одно преимущество Caffe – наличие уже готовых свободно распространяемых моделей обучения, полностью интегрированных в систему. Так разработчики надеются «подстегнуть» разработки – причем неважно, будет ли система использоваться в исследовательских или в коммерческих целях.

Создавая новые алгоритмы, пользователи системы вносят вклад в ее развитие – таким образом, в ближайшем будущем создатели смогут существенно расширить горизонты и еще на один шаг приблизиться к «дивному новому миру», в котором искусственный интеллект будет способен распознавать мультимедийную информацию любого характера и структуры – подобно человеческому мозгу.

Резюме

Подводя итоги, хотелось бы еще раз подчеркнуть, что по сравнению с аналогами Caffe обладает рядом преимуществ, а именно:

1. открытый код;

2. высокая скорость обучения и тестирования;

3. высокий уровень взаимодействия центрального и графического процессоров

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

Автор: Елизавета Филиппова

1 комментарий

  1. Николай:

    Я только одного не понял как понять какую глубину слоёв мне хватит и когда какой тип слоёв использовать?
    с чего вообще начать?

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

Ваш e-mail не будет опубликован.

закрыть

Поделиться

Отправить на почту
закрыть

Вход

закрыть

Регистрация

+ =