Узкое место применения глубокого обучения на практике

9

После прочтения большого количества документов для глубокого изучения возникает некое ощущение, что существует множество хитростей в обучении сети, чтобы получить лучшую, чем обычно, производительность. С точки зрения отраслевых приложений очень трудно разрабатывать подобные приемы, за исключением тех элитных исследовательских групп в крупных технологических компаниях, как, например, Google или Facebook. Тогда как лучше применять алгоритмы глубокого обучения на практике? Любые мысли и предложения будут высоко оценены.

user3269
источник

Ответы:

9

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

Некоторые вещи, которые вам обязательно понадобятся:

  • Данных много
  • Графические процессоры позволят вам проводить эксперименты быстрее и пробовать больше вещей за более короткий промежуток времени.
  • Анализ кривой обучения. В конце концов, все сводится к производительности на тестовом наборе, но, взглянув как на показатели поезда, так и на показатели теста, вы можете определить причины плохой производительности. Сильный уклон? Слишком много скрытых узлов?
  • Функция активации . Я не думаю, что это уловка, чтобы узнать, какая функция активации вам нужна. ReLU имеют критическую характеристику в том смысле, что они не насыщают, как сигмоиды и загар. Нейрон с ReLU будет дольше иметь вероятностный выход, но вам все равно это не нужно для нейронов в слоях среднего уровня. Преимущество, которое вы получаете, - это уменьшение исчезновения или взрыва градиентов и ускорение конвергенции.
  • Регуляризация . Может применяться как трюки, но если вы используете любую из основных библиотек глубокого обучения, вы можете получить готовые реализации для регуляризации через выпадение.
  • Увеличение данных. Вы в основном расширяете свой набор данных синтетически без дополнительных затрат на ручное аннотирование. Ключ состоит в том, чтобы дополнить данные преобразованиями, которые действительно имеют смысл. Таким образом, сеть может видеть варианты данных, с которыми она может столкнуться на этапе тестирования или при развертывании в продукте. Для визуальных данных это горизонтальное переключение является тривиальным и добавляет много выгоды. Джиттер, вероятно, зависит от типа данных и их шумности.
  • Погружение в исследование гиперпараметров может быть неприятным. Начните с небольших сетей и простых процедур обучения. Меньшие сети быстрее обучаются. Добавьте больше слоев, когда вы видите признаки переоснащения.
  • Хорошая инициализация . Случайная инициализация подходит для измерения способности сети сходиться, но не обязательно приведет к оптимальной производительности. В то же время простое повторение может привести к переоснащению сети данными обучения. Если возможно, используйте предварительно обученную сеть, которая уже изучила представление, и настройте его на свой набор данных. Необслуживаемая предварительная тренировка - это еще один способ, позволяющий начать контролируемую тренировку с гораздо более многообещающей позиции в пространстве веса.
  • изучатьтрюки. Понять, что на самом деле делает трюк. В документе, описывающем небольшую деталь, которая была использована для повышения производительности сети, основное внимание будет уделено этому новому аспекту. Этот документ может быть частью последовательности проектов, над которыми работают авторы. Контекст уловки не всегда может быть понятен сразу, но для авторов это не уловка, а методика, которая решает проблему, с которой они столкнулись. Иногда техника выходит и рассматривается как уловка, и позже кто-то проанализирует ее влияние и опишет ее функцию. Например, этот трюк эквивалентен регуляризации L2, с которой знакомо больше людей. Мы можем решить, следует ли нам опробовать эту новую технику или придерживаться регуляризации L2, о которой мы уже знаем. Многие из этих трюков пытаются решить проблемы в глубоком обучении, такие как риск переоснащения, дорогостоящие вычисления, чрезмерная параметризация и избыточные веса. Стоит потратить время, чтобы понять, что на самом деле делают эти трюки. Понимая проблему, которую они пытаются решить, мы можем судить о применимости различных уловок и выбрать ту, которая хорошо работает с имеющимися у нас ограничениями (например, небольшая вычислительная мощность, небольшой набор данных).
уРх
источник
2

Вот интересная книга Neural Networks: Tricks of the Trade , обновленная версия книги 2012 года. Много статей от некоторых пионеров нейронных сетей.

ypx прекрасно затронул множество практических вопросов, связанных с обучением, поэтому затрону другие затронутые вами вопросы: многие элитные промышленные лаборатории все еще публикуют свои результаты. Например, команда Microsoft Research только что выиграла ImageNet 2015 и выпустила технический отчет, описывающий их новый модуль Deep Net: Deep Residual Learning для распознавания изображений , команда Google также опубликовала свою начальную архитектуру Going Deeper with Convolutions . В нетривиальной степени все еще существует культура в машинном обучении (пока) обмена большими инновациями. Возможно, потому что ключом является доступ к данным. Google и Facebook просто имеют доступ к данным, которых у нас нет. Трудно сказать, сколько кредитов идет на необработанные алгоритмические инновации и сколько идет на огромные объемы данных.

Что касается того, что будет в будущем? Тяжело сказать. Это вопрос, который многие люди поднимают, учитывая, насколько ценными стали эти компании, управляемые данными, и насколько конкурентоспособен рынок. Но на данный момент, я думаю, есть достаточно хороший баланс того, что разделяют и не разделяют промышленные исследовательские лаборатории. Я понимаю их, не разделяя их точную реализацию кода. Но они делятся некоторыми очень новыми инновациями.

Найдите исследователей, которые публикуют важные результаты и читают, читают, читают. Я верю в АМА Янна ЛеКуна на Reddit, он упомянул, что он ненасытный читатель. Я считаю, что это самое главное. И насколько это возможно, попытайтесь воссоздать их тесты или примените их метод к набору данных, который находится в пределах вашего бюджета.

Я думаю, что независимо от того, где вы находитесь и чем занимаетесь в жизни, это лучший способ оставаться в форме и продолжать развивать свои навыки. Будь ненасытным читателем, реализуй вещи и развивай интуицию. Лично у меня нет ресурсов для участия в конкурсах ImageNet, но мне очень помогло прочтение всех наиболее успешных статей группы ImageNet.

Инди AI
источник