Зачем использовать градиентный спуск с нейронными сетями?


22
  1. При обучении нейронной сети с использованием алгоритма обратного распространения метод градиентного спуска используется для определения обновлений веса. Мой вопрос: вместо того, чтобы использовать метод градиентного спуска, чтобы медленно найти минимальную точку относительно определенного веса, почему бы нам просто не установить производную , и найти значение веса которое минимизирует ошибку?d(Error)dw=0w

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


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

@ Ник Кокс мои извинения
Минаж

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

Ответы:


30
  1. Потому что мы не можем. Поверхность оптимизации как функция весов w является нелинейной, и для d S ( w ) не существует решения в замкнутой формеS(вес)вес.dS(вес)dвесзнак равно0

  2. Градиентный спуск по определению спускается. Если вы достигнете стационарной точки после спуска, это должен быть (локальный) минимум или седловая точка, но не локальный максимум.


Если бы функция была вогнутой, градиент приличный снизился бы навсегда, так как единственный путь - вниз. Вы говорите, что поверхность ошибки гарантированно не будет вогнутой? Кроме того, мне не ясно, почему производная функции ошибки не будет иметь решения в замкнутой форме. Не является ли ошибка формы где К является константой? Эта функция выглядит достаточно дифференцируемой, а полученное выражение аналитически разрешимым. Пожалуйста, помогите мне уточнить, потому что я что-то явно не вижу. K11+eΣwx
Минаж

8
Этого не может быть, потому что все часто используемые функции ошибок имеют строгий теоретический минимум 0. Ошибки никогда не могут стать отрицательными.
Марк Класен

2
Еще одна возможная интерпретация 1. «Это именно то, что мы делаем, уравнение решается с использованием градиентного спуска».
Мэтью Друри

1
там явно есть закрытая форма для градиента (именно так мы эффективно делаем градиентный спуск). Проблема не в закрытой форме корня градиента = 0
seanv507

@ seanv507 вот что я хотел сказать, извините за путаницу. Отредактировал мой пост.
Марк Класен

10

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


1
Я отредактировал ваш комментарий к преамбуле, так как кажется, что вы уже привлекаете некоторые возражения! Добро пожаловать на сайт!
Мэтью Друри

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

6

В методах типа Ньютона на каждом шаге решается d(ошибка)dвесзнак равно0

  • Нужно иметь дело со вторыми производными (гессианы, в частности, гессиано-векторные произведения).
  • «Шаг решения» очень затратен в вычислительном отношении: за время, необходимое для выполнения решения, можно было бы сделать много итераций градиентного спуска.

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

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


Я думаю, что вы ошибаетесь. Люди используют nnets с 90-х годов, и они хорошо знают методы второго порядка. проблема именно в том, что nnets успешны при большом количестве данных, которые затем поддерживают множество параметров, и в этом случае ограничения по времени и памяти методов второго порядка оказываются неэффективными. см., например, leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507

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

Хотя я не являюсь фанатом этой газеты, я не думаю, что это правда. Ранее он обсуждал / реализовывал диагональные и уменьшенные ранговые приближения гессиана. А как насчет статьи о быстром точном умножении Перлмуттера в 1994 году на гессиан?
seanv507

Правильно. Если у вас есть быстрые гессианские приложения (будь то через Перлмуттера или что-то еще), вы можете выполнять неточные гессианские решения с помощью методов Крылова, таких как сопряженный градиент. Делая это, можно эффективно перенести трудности плохого кондиционирования от нелинейного итеративного оптимизатора на итерационный решатель линейной алгебры, где есть много механизмов и методов предварительного кондиционирования, доступных для решения проблемы. Хорошим справочным материалом является раздел о доверительной области CG-Steihaug в классической «Числовой оптимизации» Носедала и Райта.
Ник Алджер

Я хочу сказать, что это умножение на градиенты Гессена и сопряженных градиентов было известно в сообществе nnets с 1994 г. )
seanv507
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.