GSoC 2018: Заключительный отчет о работе

Рассказывает о статусе моего проекта, будущей работе и опыте работы с наставниками в ЦЕРНе.

В этой записи блога я подведу итоги своей работы над проектом GSoC 2018. Я работал над проектом по разработке модуля LSTM для версии ЦП и расширению библиотеки TMVA-DNN, используемой в приложениях физики элементарных частиц, таких как обработка данных, статистический анализ и визуализация данных. Преимущество наличия модуля LSTM в TMVA-DNN обеспечит дополнительные преимущества среды машинного обучения в структуре ROOT для анализа данных. Более подробную информацию о проекте можно найти здесь.

Предыдущие сообщения в блоге в прошлом на основе моего проекта: -

  1. GSoC 2018: Начиная с ЦЕРН - Часть 1
  2. GSoC 2018: Сети RNN и LSTM - Часть 2
  3. GSoC 2018: Прямое распространение в сети LSTM - Часть 3
  4. GSoC 2018: Обратное распространение во времени в сети LSTM - Часть 4

Текущее состояние работы

Текущая работа модуля LSTM включает полную реализацию функции прямого и обратного распространения. Слой LSTM был разработан с нуля. Уровень в настоящее время поддерживает эталонную и архитектуру ЦП. Для GPU он все еще выполняется и в настоящее время имеет низкий приоритет.

  1. Было реализовано прямое распространение, и оно хорошо работает для версии с процессором. Для вычисления матрицы весов для больших данных требуется время. Есть шанс оптимизировать производительность для большого набора данных, как обсуждалось во время встреч.
  2. Обратное распространение было реализовано в соответствии с аналогичной схемой реализации метода обратного прохода RNN.
  3. Текущий дизайн сети обновляет только внутренние параметры, такие как веса состояний, веса входов и смещения.
  4. Проведен сравнительный анализ производительности набора данных ECAL, зарегистрированного Большим адронным коллайдером (LHC). Достигнута точность данных испытаний ~ 60%. Эту точность можно повысить, предоставив такие функции, как обучающая модель в пакетах данных, экспериментирование и использование правильного оптимизатора и гиперпараметров, таких как скорость обучения и эпохи.

Будущая работа

Сетевой дизайн уровня LSTM и модульные тесты были написаны со ссылкой на модуль torch-rnn, написанный на Lua.

Репозиторий можно найти здесь: https://github.com/jcjohnson/torch-rnn.

Дальнейшая работа, связанная с проектированием уровня LSTM и улучшениями, которые могут быть выполнены в сети, упомянуты ниже:

  1. Дизайн обратного распространения ошибки необходимо улучшить, показывая обновленные значения каждого гейта в процессе обучения на каждом временном шаге.
  2. Повышение точности модели за счет введения обучения модели с использованием данных в пакетном режиме, правильного использования гиперпараметров, таких как скорость обучения, эпохи.
  3. Сеанс обучения модели также может быть улучшен путем внедрения и внедрения новых оптимизаторов для достижения высокой эффективности обучения.
  4. Реализация уровня GRU - вариант сетей LSTM.

Заключение и опыт

Я приобрел большой опыт в области глубокого обучения, так как это был мой первый стажер в области машинного обучения. Я узнал больше о принципах работы в области машинного обучения. Это полностью отличается от разработки программного обеспечения. Изучил лучшие практики разработки с использованием C ++ 14 и встроенных библиотек. Это был отличный опыт работы с наставниками CERN. Их подход и общение просто великолепны. Узнал об объектно-ориентированном программировании и передовых методах разработки программного обеспечения.

Особое упоминание: Лоренцо Монета, Саурав Шекхар и Ким Альбертссон за предоставленную мне возможность поработать над этим рабочим проектом. Вся помощь и предложения, сделанные ими во время еженедельных встреч, действительно помогли мне понять проект и подтолкнули меня к правильному направлению развития.

Это был отличный опыт работы с моими партнерами по проекту, которые в конце концов стали действительно хорошими друзьями: Сиддхартха, Рави, Манос и Анушри.