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

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

Почитайте две мои предыдущие статьи на эту тему:

https://medium.com/@mastafa.foufa/influence-of-large-batches-5f1d8a00891c

https://medium.com/@mastafa.foufa/influence-of-large-batches-ba0ad9894f11

Мой основной ресурс здесь:

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

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

Ниже мои последние слова в прошлый раз, давайте возьмем оттуда сейчас:

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

У нас есть двадцать минут, чтобы пройти через это и попытаться получить хоть какое-то интуитивное представление о скрытом явлении.

Хм, во-первых, давайте все вспомним, что мы имеем дело с невыпуклыми функциями потерь. Следовательно, локальные минимумы не обязательно являются глобальными минимумами. Поэтому мы вполне можем оказаться в плохом локальном минимуме. Другими словами, мы можем не гоняться за поиском ЛУЧШИХ локальных минимумов, которые являются глобальными минимумами. Мы гонимся за достаточно хорошими локальными минимумами.

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

Вероятность Gradient Descent застрять в седле на самом деле равна 0 (см. здесь).

Однако наличие седловых точек может сильно замедлить продвижение GD вниз, потому что направления малой кривизны эксплуатируются слишком медленно (см. здесь)

Ресурс: https://stats.stackexchange.com/questions/172900/can-gradient-descent-be-applied-to-non-convex-functions

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

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

Ключ находится в следующем примечании от авторов:

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

Я выделил жирным шрифтом предложение, которое мне нужно понять лучше.

Хорошо, прежде чем я перейду к статье, давайте попробуем подумать над вышесказанным.

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

В этом шуме хорошо то, что вы не будете двигаться к истинному ожидаемому «наклону» вашей функции потерь, и, следовательно, вы можете перепрыгнуть через ближайший локальный минимум. Если бы не было шума, вы бы двигаться естественным образом к точке, которая локально минимизирует вашу функцию потерь. Если вы приближаетесь к резким минимумам (посмотрите еще раз, как они выглядят на рисунке выше), вы застрянете в них, если у вас нет этих шумных входов. Итак, не так интуитивно понятно, эй !!, эти зашумленные точки данных на самом деле полезны для нас в этих невыпуклых задачах. По крайней мере, для меня это не так интуитивно понятно ;). Тем не менее, я помню все свои лекции по машинному обучению в KTH и методы регуляризации, использующие шум во входных данных. Вероятно, мне придется рассказать об этом в другой статье, чтобы вспомнить кое-что.

Еще одно интересное замечание от авторов:

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

Недавно ряд исследователей описали интересные теоретические свойства поверхности потерь глубоких нейронных сетей; см. напр. (Choromanska et al., 2015; Soudry & Carmon, 2016; Lee et al., 2016). Их работа показывает, что при определенных предположениях о регулярности функция потерь моделей глубокого обучения чревата множеством локальных минимизаторов, и что многие из этих минимизаторов соответствуют аналогичному значению функции потерь. Наши результаты согласуются с этими наблюдениями, поскольку в наших экспериментах как четкие, так и плоские минимизаторы имеют очень похожие значения функции потерь. Однако мы не знаем, дают ли упомянутые выше теоретические модели информацию о существовании и плотности точных минимизаторов поверхности потерь.

Они поднимают один интересный вопрос в разделе заключения:

(c.) можно ли разработать архитектуры нейронных сетей для различных задач, которые соответствуют свойствам методов LB?;

Мы видели, что большие модели глубокого обучения, используемые в НЛП, например. BERT-подобные модели используют все больше и больше больших пакетов во время обучения. Это может работать также потому, что модели огромны с миллионами параметров, а форма их функции потерь соответствует поведению, присущему большим пакетам. Кроме того, мы знаем, что, по сути, наборы входных данных НЛП довольно зашумлены, поскольку имеют большую дисперсию. Для одного значения возможно несколько предложений. Эта шумная сущность может помочь «перепрыгнуть» эти резкие минимумы до большого порога размера пакетов.

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

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

Я предлагаю следующие ресурсы:

https://www.khanacademy.org/math/multivariable-calculus/applications-of-multivariable-derivatives/optimizing-multivariable-functions/a/maximums-minimums-and-saddle-points

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