Мои заметки по глубокому обучению

Хм, в последнее время я готовил свои лекции для EPITA Paris и начал думать о влиянии больших партий. Многие современные модели НЛП используют большие пакеты и обучаются на большем количестве данных.

Моя предыдущая статья о больших партиях: https://medium.com/@mastafa.foufa/influence-of-large-batches-5f1d8a00891c

Например, RoBERTa обучается на более чем 160 ГБ данных против 16 ГБ данных для BERT. Авторы отмечают, что RoBERTa обучается на большем количестве данных, больших партиях и дольше.

Откуда все это?

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

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

Я постараюсь понять это лучше и поделюсь своими заметками в следующих нескольких строках.

Ресурс следующий: О БОЛЬШОПАРТНОМ ОБУЧЕНИИ ДЛЯ ГЛУБОКОГО ОБУЧЕНИЯ: ПРОБЕЛ ОБОБЩЕНИЯ И ОСТРЫЕ МИНИМАТЫ

Один из комментариев к последней статье предложил мне также подойти к вещам с вычислительной стороны, то есть исследователи хотят быстрее обучать свои массивные модели. Этот момент (спасибо, что подняли это!), подчеркивается авторами:

Одним из естественных путей улучшения параллелизма является увеличение размера пакета |Bk|. Это увеличивает количество вычислений на итерацию, которые могут быть эффективно распределены. Однако практики заметили, что это приводит к снижению эффективности обобщения; см. напр. (Лекун и др., 2012). Другими словами, производительность модели при тестировании наборов данных часто хуже при обучении с использованием методов больших пакетов по сравнению с методами малых пакетов. В наших экспериментах мы обнаружили, что падение генерализации (также называемое разрывом генерализации) достигает 5% даже для небольших сетей.

В документе выдвигаются несколько причин падения производительности из-за больших пакетных методов:

(i) методы LB переопределяют модель;

(ii) методы LB притягиваются к седловым точкам;

(iii) LB-методам не хватает исследовательских свойств методов SB, и они имеют тенденцию приближать минимизатор, ближайший к начальной точке;

(iv) методы SB и LB сходятся к качественно разным минимизаторам с разными свойствами обобщения.

Данные, представленные в этой статье, подтверждают две последние гипотезы.

Я прерву чтение и отвечу здесь. Если подумать о (iii), это может иметь для нас смысл. В прошлый раз я интуитивно понял, что большие партии, как правило, имеют более низкие обновления параметров на каждой итерации. Я показал это, посмотрев на асимптотическое поведение при наличии действительно больших партий. Это означает, что, учитывая положение в многомерном пространстве «параметров X в n-мерном пространстве, скалярное значение функции потерь», мы будем меньше двигаться к локальным минимумам с большими пакетами, чем с мини-пакетами. Это устраняет это «исследовательское» поведение, которое нам нравится в мини-пакетах, благодаря чему они также могут избегать плохих локальных минимумов, «прыгая» через них.

Хорошо, давайте продолжим читать, они снова говорят:

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

Это в основном то, что я только что интуитивно понял, верно?

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

Мощность обобщения показана путем рисования функции потерь для обучения (черным цветом) и тестирования (красным цветом). Заметим, что для плоских минимумов, если я возьму последнюю точку X, которая привела к рассматриваемым минимумам, потери при тестировании будут очень похожими, потому что область довольно плоская.

С другой стороны, если я возьму параметр X, который привел к резким минимумам в правой части, и нарисую красной линией функцию тестирования, я получу огромный убыток. Хм, это проблематично, когда видишь это таким образом, верно?

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

Опять же, время вышло, давайте обсудим это в другой день! ;)

Некоторые ресурсы, которые я рассмотрю в следующий раз:





О БОЛЬШОПАРТНОМ ОБУЧЕНИИ ДЛЯ ГЛУБОКОГО ОБУЧЕНИЯ: ПРОБЕЛ ОБОБЩЕНИЯ И РЕЗКИЙ МИНИМУМ