Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Стохастический градиентный спуск
Стохастический градиентный спуск (SGD), напротив, выполняет обновление параметров для каждого обучающего примера х ( i ) и метки у ( i ): θ = θ − η ⋅∇ θ J (θ; х ( i ); у ( i )) Пакетный градиентный спуск выполняет избыточные вычисления для больших наборов данных, поскольку он пересчитывает градиенты для похожих примеров перед каждым обновлением параметров. SGD устраняет эту избыточность, выполняя по 1 обновлению за раз. Поэтому обычно он гораздо быстрее и может быть использован для обучения в реальном времени. SGD выполняет частые обновления с высокой дисперсией (variance), которая приводит к значительным колебаниям целевой функции, как на рисунке 1. Рис.1: Колебания SGD (источник: wikipedia)
В то время как пакетный градиентный спуск сходится к минимуму поверхности, заданной параметрами, с одной стороны, колебания SGD позволяют ему переходить к новым потенциально лучшим локальным минимумам, с другой стороны, они в конечном итоге ухудшают сходимость к истинному минимуму, т.к. SGD будет продолжать и перейдёт все границы (overshooting). Однако было показано, что, когда скорость обучения медленно уменьшается, SGD демонстрирует поведение сходимости, аналогичное пакетному градиентному спуску, который почти наверняка сходится к локальному или глобальному минимуму для невыпуклой и выпуклой оптимизации соответственно. В его код просто добавляется цикл по обучающим примерам и оценивается градиент по отношению к каждому примеру. Отметьте, что данные тренировки перетасовываются на каждой эпохе, как описано в этом разделе. Мини-пакетный градиентный спуск Мини-пакетный градиентный спуск вбирает лучшее обоих и выполняет обновление для каждой мини-пачки из обучающих примеров нейросети: θ=θ − η ⋅∇ θ J(θ; x(i:i+n); y(i:i+n)) Таким образом, а) уменьшает дисперсию обновления параметров, обеспечивая более стабильную сходимость; b) может использовать высоко-оптимизированные матричные операции, общие для современных библиотек глубокого обучения, которые вычисляют градиент мини-пакета очень эффективно. Типичный размер мини-пакета варьируется от 50 до 256 примеров. Мини-пакетный градиентный спуск, как правило, является алгоритмом выбора (algorithm of choice) при обучении нейронной сети.
Термин SGD обычно применяется именно при использовании мини-пачек примеров. Примечание: в модификациях SGD в оставшейся части этого поста пропускаем параметры x(i:i+n); y(i:i+n) x(i:i+n); y(i:i+ n ) для простоты. В коде вместо перечисления примеров итерируем по мини-пакетам размером 50 штук:
Вызовы для преодоления Старый добрый мини-пакетный градиентный спуск не гарантирует хорошей сходимости, но предлагает несколько задач, которые необходимо решить: • Сложный выбор правильной скорости обучения: слишком малая скорость обучения приводит к очень медленной сходимости, а чересчур высокая скорость обучения может препятствовать сходимости и вызывать колебания функции потерь около минимума, даже отклонение от него. • Расписания (schedules) [1] скорости обучения пытаются скорректировать скорость обучения во время обучения, например, отжиг (annealing), т.е. уменьшение скорости обучения в соответствии с заранее определённым расписанием, или падение её ниже порогового значения при изменении цели между эпохами. Эти расписания и пороги, однако, должны быть определены заранее и поэтому не могут адаптироваться к характеристикам массива данных [2]. • Кроме того, одинаковая скорость обучения применяется ко всем обновлениям параметров. Если данные редки (разряжены) и признаки имеют различные частоты появления, может быть нежелательно обновлять все из них за одинаковые промежутки, а выполнять более масштабное обновление для редко встречающихся признаков. • При минимизации распространённых для нейросетей сильно-невыпуклых функций ошибок важно избежать попадания в их многочисленные субоптимальные локальные минимумы. Dauphin et al.[3] утверждают, что сложность возникает не из-за локальных минимумов, а из-за седловых точек (saddle points), т.е. где 1 изменение имеет наклон (slope) вверх, а другое – вниз. Эти седловые точки обычно окружены плато одинаковой ошибки, что, известно, делает выход из него трудным для SGD, т.к. градиент близок к 0 во всех измерениях.
|
|||||
Последнее изменение этой страницы: 2019-11-02; просмотров: 254; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.67.251 (0.006 с.) |