Я пытаюсь понять «обратное распространение», поскольку он используется в нейронных сетях, которые оптимизированы с использованием Gradient Descent. Чтение литературы, похоже, делает несколько вещей.Backpropagation in Gradient Descent для нейронных сетей против линейной регрессии
- Используйте случайные веса, чтобы начать и получить значение ошибок
- Выполните градиентный спуск на функции потерь с помощью этих весов, чтобы прийти к новым весам.
- Обновите весы этими новыми весами до тех пор, пока функция потерь не будет сведена к минимуму.
Эти шаги, по-видимому, являются ТОЧНЫМ процессом для решения линейных моделей (например, регрессии)? Отличный курс Andrew Ng на Coursera для машинного обучения делает именно это для линейной регрессии.
Итак, я пытаюсь понять, делает ли BackPropagation нечто большее, чем спуск градиента на функцию потерь .. а если нет, то почему это относится только к нейронным сетям и почему не для GLM (обобщенные линейные модели). Кажется, все они делают то же самое - что я могу пропустить?
Спасибо большое! Это помогает разъяснить это ЛОТ! Если я это правильно понимаю, то в «сложных» NN мы могли бы иметь функции, которые, возможно, не были бы недифференцируемыми (я полагаю, у вас может быть ReLU с перерывом в нем) - поэтому GD не будет использоваться, если мы построим функция потерь от начала до конца и, следовательно, должна разбить ее по частям и применить ее по слоям. ... – Shanbhag
Часть, которую я не получал, касается линейности. Я понимаю, что GD можно использовать для нелинейных функций. Так что больше внимания уделяется вычислительной эффективности? – Shanbhag
Справа. Многослойный градиент быстро усложняется при каждой нелинейности. Фактически, в слое отсеивания CNN он не является детерминированным во всех итерациях. Когда мы попадаем на большой NN - такой как CNN с 10^6 параметрами и весом 10^7 - поэтапное обратное распространение намного быстрее. – Prune