Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 382; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.11 (0.008 с.) |