www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Типы алгоритмов оптимизации, используемые в нейронных сетях, и способы оптимизации градиентного спуска

Дата публикации Jun 10, 2017

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

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

НОТА:

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

1) Это ссылка на курс от DataCamp наГлубокое обучение на питонес помощьюKerasпакетили, безусловно, вы можете начать сСборка CNN для обработки изображений с использованием керас,Если пониманиеглубокое обучение и искусственный интеллектосновы то, что вы хотите прямо сейчас, то2 вышеупомянутых курса являются лучшими курсами глубокого обучения, которые вы можете найти там, чтобы изучить основы глубокого обучения, а также внедрить его в python, Это были мои первые курсы глубокого обучения, которые очень помогли мне правильно понять основы.

2) Эти курсы поСборка чат-ботов в Pythonа такжеОсновы NLP в Python с использованием NLTKявляютсятакже рекомендуется для людей, заинтересованных в изучении искусственного интеллекта и глубоком обучении. Так что иди попробовать на основе вашего интереса.

3)Машинное обучение в Python с использованием Scikit-learn-Этот курс научит вас реализовывать контролируемые алгоритмы обучения в python с различными наборами данных.

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

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

6) Недавно Data Camp запустил новую программу, в которой они предоставляют различные реальные проекты и постановки задач, чтобы помочь энтузиастам данных создать прочную практическую базу данных по науке вместе со своими курсами. Так что попробуйте любой из этихпроектоввне. Это, безусловно, очень увлекательно и поможет вам учиться быстрее и лучше. Недавно я закончил проектИзучение эволюции Linuxи это был удивительный опыт,

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

8) Этот курс также является одним из лучших для понимания основ машинного обучения в R и называетсяИнструмент машинного обучения,

9) Все проекты, связанные с наукой о данных, начинаются с изучения данных, и для ученого, работающего с данными, одна из самых важных задач - вывести набор данных наизнанку, так что этот прекрасный курс поИсследовательский анализ данных с использованием Rявляетсячто нужно для начала любого проекта по анализу данных и науке о данных,Также этот курс наСтатистическое моделирование в Rбыло быбыть полезным для всех начинающих ученых, таких как я. Статистика - это основа науки о данных.

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

п S: Я действительно настаиваю на том, чтобы читатели попробовали любой из вышеперечисленных курсов в соответствии с их интересами, чтобы начать и создать хорошую основу для машинного обучения и науки о данных.Лучшее в этих курсах от DataCamp - это то, что они объясняют это очень элегантно и по-разному, со сбалансированным акцентом на практические и концептуальные знания, и в конце всегда есть тематическое исследование., Это то, что я люблю в них больше всего. Эти курсы действительно стоят вашего времени и денег. Эти курсы, несомненно, помогут вам лучше понять и внедрить глубокое обучение, машинное обучение, а также реализовать его на Python или R. Я чертовски уверен, что вам это понравится, и я утверждаю это, исходя из моего личного мнения и опыта.

Возвращаясь к теме-

ЧтоАлгоритмы оптимизации?

Алгоритмы оптимизации помогают намминимизировать (или максимизировать)Задачафункция (другое имя дляошибкафункция)Е (х)которая является просто математической функцией, зависящей от внутренней моделиизучаемымпараметрыкоторые используются при расчете целевых значений (Y) из наборапредсказатели(Икс) используется в модели. Например - мы называемВес (Вт)иУклон (б)ценности нейронной сети как ее внутренняя обучаемостьпараметрыкоторые используются при вычислении выходных значений и изучаются и обновляются в направлении оптимального решения, то есть минимизациипотеряучебным процессом сети, а также играют важную роль вподготовкапроцесс модели нейронной сети.

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

Типы алгоритмов оптимизации?

Алгоритм оптимизации относится к двум основным категориям -

  1. Алгоритмы оптимизации первого порядка- Эти алгоритмы минимизируют или максимизируют функцию потерьЕ (х)используя егоградиентзначения по отношению к параметрам. Наиболее широко используемый алгоритм оптимизации первого порядкаГрадиентный спуск.Производная первого порядка говорит нам, уменьшается или увеличивается функция в определенной точке. Производная первого порядка в основном дает намлиниякоторыйтангенциальныйк точке на его поверхности ошибок.

Что такое градиент функции?

градиентэто просто вектор, который является многопараметрическим обобщениемпроизводное(д / дх) какоймгновенная скорость измененияу относительно х.Разница в том, что для вычисления производной функции, которая зависит от более чем одной переменной или нескольких переменных,Градиент занимает свое место. И градиент рассчитывается с использованием частичных производных.Также еще одно важное различие междуградиентипроизводноеэтоградиентфункции производитВекторное поле,

градиентпредставленякобианМатрица - это просто Матрица, состоящая изПроизводные первого порядка (градиенты),

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

2.Алгоритмы оптимизации второго порядка- Методы второго порядка используютпроизводная второго порядкакоторый также называетсягессенскийминимизировать или максимизироватьпотеряfunction.Theгессенскийэто матрицаЧастичные производные второго порядка,Поскольку вторая производная является дорогостоящей для вычисления, второй порядок не используется многоПроизводная второго порядка говорит нам, является липервая производнаяувеличивается или уменьшается, что намекает на кривизну функции. Второе производное порядка дает намквадратныйповерхность, которая касается кривизныПоверхность ошибки,

Некоторые преимущества оптимизации второго порядка по сравнению с первым заказом -

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

Вы можете искать больше на алгоритмах оптимизации второго порядка здесь-часTTPS: //web.stanford.edu/class/msande311/lecture13.pdf

Так какую стратегию оптимизации заказов использовать?

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

хотя иногдаОптимизация второго порядка НьютонаТехника иногда может превзойтиГрадиентный спуск первого порядкаТехники, потому что Техники Второго Порядка не будут застревать на пути медленной конвергенции вокругседловые точкив то время какГрадиентный спускиногда застревает и не сходится.

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

Какие же типы алгоритмов оптимизации используются в нейронных сетях?

Градиентный спуск

Градиентный спускявляется наиболее важной техникой и основой того, как мы обучаем и оптимизируемИнтеллектуальные Системы.Что делает это-

«О градиентном спуске - найдите минимумы, управляйте дисперсией, а затем обновите параметры модели и, наконец, приведите нас к конвергенции»

θ = θ-η⋅∇J (θ)- формула обновления параметров, где ‘η»скорость обучения,∇j (θ)»этоградиентизФункция потериJ (θ)w.r.tParameters-'θ»,

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

После этого мы размножаемсяназадв сети везетошибкаусловия и обновлениеВесазначения с использованиемГрадиентный спуск, в котором мы рассчитываем градиентФункция ошибки (E)с уважением кВеса(W) или параметры и обновите параметры (здесьВеса) в направлении, противоположном градиенту функции потерь относительно параметров модели.

Вес обновляется в противоположном направлении градиента

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

Варианты градиентного спуска

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

Вышеупомянутые проблемы стандартного градиентного спуска исправлены в Stochastic Gradient Descent.

1. Стохастический градиентный спуск

Stochastic Gradient Descent (SGD), с другой стороны, выполняет обновление параметров длякаждый пример обученияОбычно это гораздо более быстрый метод. Он выполняет одно обновление за раз.

θ = θ − η⋅∇J (θ; x (i); y (i)), где {x (i), y (i)} - обучающие примеры,

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

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

Хотя было показано, что по мере того, как мыηSGD показывает ту же модель сходимости, что и стандартный градиентный спуск

Обновления параметра High Variance для каждого примера обучения приводят к значительным колебаниям функции Loss, из-за чего мы можем не получить минимальное значение параметра, которое дает нам наименьшее значение Loss.

Проблемы обновления параметров с высокой дисперсией и нестабильной сходимости могут быть устранены в другом варианте, называемомМини-пакетный градиентный спуск,

2.Мини Пакетный градиентный спуск

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

Преимущества использования Mini Batch Gradient Descent -

  1. Это уменьшает дисперсию в обновлениях параметров, что в конечном итоге может привести к гораздо лучшей и стабильной конвергенции.
  2. Может использовать высокооптимизированные матричные оптимизации, общие для современных библиотек глубокого обучения, которые делают вычисление градиента w.r.t. мини-партия очень эффективная.
  3. Обычно размеры мини-пакетов варьируются от 50 до 256, но могут варьироваться в зависимости от приложения и решаемой проблемы.
  4. Мини-пакетный градиентный спуск обычно является алгоритмом выбора при обучении нейронной сети в наши дни

P.S — На самом деле термин SGD используется также при использовании мини-градиентного спуска.

Проблемы, возникающие при использовании Gradient Descent и его вариантов -

  1. Выбор правильной скорости обучения может быть трудным. Слишком малая скорость обучения приводит к мучительныммедленная сходимость, т.е.приведет кмаленькийребенок делает шаги к поиску оптимальных значений параметров, которые сводят к минимуму потери, и к поиску той долины, которая напрямую влияет на общее время тренировки, которое становится слишком большим Хотя скорость обучения это слишкомбольшойможет препятствовать сходимости и вызывать колебания функции потерь около минимума или даже отклонение.
  2. Кроме того, одинаковая скорость обучения применяется ко всем обновлениям параметров. Если наши данные редки и наши функции имеют очень разные частоты, мы можем не захотеть обновлять все из них в одинаковой степени, но выполнить более масштабное обновление для редко встречающихся функций.
  3. Другой ключевой проблемой минимизации очень невыпуклых функций ошибок, общих для нейронных сетей, является избежание попадания в их многочисленныенеоптимальные локальные минимумы, На самом деле, трудности возникают на самом деле не из локальных минимумов, а изседловые точкит.е.точки, где одно измерение наклонено вверх, а другое наклонено вниз, Эти седловые точки обычно окружены плато с той же ошибкой, что делает общеизвестно трудным выход SGD, поскольку во всех измерениях градиент близок к нулю.

Оптимизация градиентного спуска

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

инерция

Высокие колебания дисперсии в SGD затрудняют достижение сходимоститак называется техникаинерциякоторый был изобретенускоряетSGDперемещаясь по соответствующему направлению и смягчая колебания в нерелевантных направлениях. Другими словами, все, что он делает, добавляет дробь ‘γ’Вектора обновления предыдущего шага к текущему вектору обновления.

V (T) = γV (т-1) + η∇J (θ),

и, наконец, мы обновляем параметры поθ = θ − V (t).

Срок импульсаγобычно устанавливается на 0,9 или аналогичное значение.

Здесьимпульстакой же, как импульс в классической физике, когда мы бросаем шар вниз по склону, он набирает обороты, и его скорость продолжает расти.

То же самое происходит с нашими обновлениями параметров -

  1. Это приводит к более быстрой и стабильной конвергенции.
  2. Уменьшенные колебания

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

Нестеров ускорил градиент

Исследователь по имени Юрий Нестеров увидел проблему с Momentum -

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

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

Он опубликовал исследовательскую работу в 1983 году, которая решила эту проблему импульса, и теперь мы называем эту стратегиюНестров Ускоренный градиент

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

Нестеров ускоренный градиент (NAG)это способ дать нашему импульсу термин этот вид предвидения. Мы знаем, что мы будем использовать наш термин импульсγV (т-1)переместить параметрыθ, Вычислительныйθ-γV (т-1)таким образом, дает намаппроксимация следующей позиции параметровчто дает намгрубая идея, где наши параметры будут,Теперь мы можем эффективно смотреть в будущее, рассчитав градиент, а не w.r.t. к нашим текущим параметрам θ, но w.r.t. примерная будущая позиция наших параметров:

V (t) = γV (t − 1) + η∇J (θ − γV (t − 1))а затем обновить параметры с помощьюθ = θ − V (t).

Можно сослаться больше наNAGSВотhttp://cs231n.github.io/neural-networks-3/,

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

Adagrad

Это просто позволяет учиться скорость -ηвадаптироватьсяна основании параметров. Так что он делает большие обновления для нечастых параметров и небольшие обновления для частых параметров. По этой причине он хорошо подходит для работы с разреженными данными.

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

Ранее мы выполнили обновление для всех параметровθсразу как каждый параметрθ (я)использовал ту же скорость обученияη, КакAdagradиспользует разные скорости обучения для каждого параметраθ (я)на каждом шаге по времениTСначала мы показываем обновление для каждого параметра Адаграда, которое затем векторизуем. Для краткости мы устанавливаемг (т, я)бытьградиент функции потерьw.r.t. к параметруθ (я)на шаге по временит.

Формула для обновления параметров

Adagradизменяет общую скорость обучения η на каждом временном шаге t для каждого параметра θ (i) на основе прошлых градиентов, которые были вычислены для θ (i).

Основное преимуществоAdagradв том, что нам не нужно вручную настраивать курс обучения.Большинство реализаций используют значение по умолчанию 0,01 и оставляют это на этом.

Недостаток -

  1. Его главная слабость в том, чтоηвсегда уменьшается и разлагается.

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

Это проблемаЗатухающая скорость обученияВыпрямляется в другом алгоритме под названиемAdaDelta.

AdaDelta

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

Вместо неэффективного хранениявеспредыдущие квадратные градиенты, сумма градиентов рекурсивно определяется какразлагающийсяозначатьвсех прошлых квадратов градиентов. Скользящее среднееЕ [g²] (т)на шаге по времениTтогда зависит (как дробьγаналогично термину Моментум)только на предыдущем среднем и текущем градиенте.

E [g²] (t) = γ.E [g²] (t − 1) + (1 − γ) .g² (t),Мы устанавливаемγдо значения, аналогичного значению импульса, около 0,9.

Δθ (т) = - η⋅g (т, я).

θ (T + 1) = θ (т) + Δθ (т).

Окончательная формула для обновления параметров

Еще одна особенность AdaDelta заключается в том, что нам даже не нужно устанавливать скорость обучения по умолчанию.

Какие улучшения мы сделали до сих пор -

  1. Мы рассчитываемразные курсы обучениядля каждого параметра.
  2. Мы также рассчитываемимпульс,
  3. предотвращениеИсчезающие (разлагающиеся) курсы обучения,

Какие еще улучшения мы можем сделать?

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

Адам

Адам выступает заАдаптивная оценка момента.Адаптивная оценка моментов (Адам) является еще одним методом, который вычисляет адаптивные скорости обучения для каждого параметра В дополнение к хранению экспоненциально убывающего среднего значения прошлых квадратов градиентов, таких какAdaDelta,Адамтакже сохраняет экспоненциально убывающее среднее значение прошлых градиентов M(Т), аналогично импульсу:

М (т) и V (т)значения первого момента, который являетсяОзначатьи второй момент, который являетсянецентрированная дисперсияизградиентысоответственно.

Формулы для первого момента (среднего) и второго момента (дисперсии) градиентов

Тогда окончательная формула для обновления параметра -

Значения для β1 составляют 0,9, 0,999 для β2 и (10 x exp (-8)) дляε,

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

Визуализация алгоритмов оптимизации

Оптимизация SGD по контурам потери поверхности
Оптимизация SGD в седловой точке

Из приведенных изображений видно, чтоАдаптивные алгоритмысходятсяочень быстро и быстро найти правильное направление, в котором должны происходить обновления параметров. Тогда как стандартSGD, NAG и импульсметоды очень медленные и не могли найти правильное направление.

Вывод

Какой оптимизатор мы должны использовать?

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

Адамхорошо работает на практике и превосходит другие адаптивные методы.

Если ваши входные данные редки, то такие методы, какSGD, NAG и импульсуступают и плохо работают.Для разреженных наборов данных следует использовать один изадаптивная скорость обученияметоды, Дополнительным преимуществом является то, что нам не нужно корректировать скорость обучения, но, скорее всего, мы добьемся лучших результатов со значением по умолчанию.

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

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

Ссылки -

  1. Оптимизация градиентного спускаhttp://sebastianruder.com/optimizing-gradient-descent/
  2. Дин Дж., Коррадо Г.С., Монга Р., Чен К., Девин М., Ле, В.В.,… Нг, А.Ю. (2012). Крупномасштабные распределенные сети. NIPS 2012: Нейронные системы обработки информации.http://doi.org/10.1109/ICDAR.2011.95
  3. Ioffe, S. & Szegedy, C. (2015). Пакетная нормализация: ускорение глубокого сетевого обучения за счет уменьшения внутреннего ковариатного сдвига. Препринт arXiv arXiv: 1502.03167v3.
  4. Цянь, Н. (1999). Об импульсном члене в алгоритмах градиентного спуска. Нейронные сети: Официальный журнал Международного общества нейронных сетей, 12 (1), 145–151.http://doi.org/10.1016/S0893-6080(98)00116-6
  5. Кингма Д. П. & Ба, Дж. Л. (2015). Адам: метод стохастической оптимизации. Международная конференция по обучению представительств
  6. Заремба В. и Суцкевер И. (2014). Учимся исполнять, 1–25. Полученное изhttp://arxiv.org/abs/1410.4615
  7. Zhang S., Choromanska A. & LeCun Y. (2015). Глубокое обучение с упругим усреднением SGD. Конференция по системам обработки нейронной информации (NIPS 2015). Получено сhttp://arxiv.org/abs/1412.6651
  8. Darken, C., Chang, J. & Moody, J. (1992). Графики скорости обучения для быстрого поиска стохастического градиента. Нейронные сети для обработки сигналов II Материалы семинара IEEE 1992 года (сентябрь).http://doi.org/10.1109/NNSP.1992.253713

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map