О влиянии функций активации в CNN на время вычислений

В настоящее время я читаю следующую статью: «SqueezeNet: точность уровня AlexNet с в 50 раз меньшим количеством параметров и размером модели ‹0,5 МБ».

В этом 4.2.3 (уровень функции активации) есть следующее утверждение:

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

Я понимаю влияние функции активации следующим образом. Функция активации (ReLU и т. д.) применяется к каждой единице карты признаков после обработки операции свертки. Я думаю, что обработка в это время является одной и той же обработкой как в режиме обучения, так и в режиме вывода. Почему мы можем сказать, что это оказывает большое влияние на обучение и не оказывает большого влияния на вывод?

Может кто-нибудь объяснить это.




Ответы (1)


Я думаю, что обработка в это время является одной и той же обработкой как в режиме обучения, так и в режиме вывода.

Вы правы, время обработки функции активации такое же. Но все же есть большая разница между временем обучения и временем тестирования:

  • Время обучения включает в себя применение прямого прохода для нескольких эпох, где каждая эпоха обычно состоит из всего набора обучающих данных. Даже для небольшого набора данных, такого как MNIST (состоящего из 60 000 обучающих изображений), это составляет десятки тысяч вызовов. Точное влияние времени выполнения зависит от ряда факторов, например. Графические процессоры позволяют выполнять множество вычислений параллельно. Но в любом случае это на несколько порядков больше, чем количество вызовов во время тестирования, когда обычно один пакет обрабатывается ровно один раз.

  • Кроме того, не стоит забывать об обратном проходе, при котором также применяется производная от активации на такое же количество эпох. Для некоторых активаций производная может быть значительно дороже, например. elu против reluelu есть обучаемые параметры, которые необходимо обновить).

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

person Maxim    schedule 15.04.2018
comment
Спасибо, Макс. Я был бы очень признателен. - person rykami; 19.04.2018