Если каждый нейрон в нейронной сети в основном является функцией логистической регрессии, почему многослойность лучше?

13

Я прохожу курс DeepAI в Cousera (Неделя 3, видео 1 «Обзор нейронных сетей»), и Эндрю Нг объясняет, как каждый слой в нейронной сети - просто очередная логистическая регрессия, но он не объясняет, как это делает вещь более точной.

Итак, в двухслойной сети, как многократный расчет логистики делает его более точным?

mskw
источник
7
Зачастую для того, чтобы соответствовать хорошей модели одиночной логистической регрессии, вам необходимо выполнить значительный набор функций. Два слоя nn пытаются выполнить часть этой работы за вас.
Мэтью Друри
@msk, вы когда-нибудь создавали новые функции на основе ваших оригинальных функций для улучшения логистической регрессии? Это то, что делает скрытый слой (и).
Рикардо Крус,

Ответы:

10

При использовании функций логистической активации верно, что функция, связывающая входы каждого устройства с его выходом, такая же, как и для логистической регрессии. Но на самом деле это не то же самое, что каждая единица, выполняющая логистическую регрессию. Разница заключается в том, что в логистической регрессии веса и смещения выбираются так, чтобы выходные данные наилучшим образом соответствовали заданным целевым значениям (с использованием log / кросс-энтропийной потери). Напротив, скрытые юниты в нейронной сети отправляют свои выводы нижестоящим юнитам. Нет целевого выхода для соответствия отдельным скрытым единицам. Скорее, веса и смещения выбираются так, чтобы минимизировать некоторую целевую функцию, которая зависит от конечного результата сети.

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

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

Обучение сети сводится к изучению функции отображения пространственных объектов и функции классификации / регрессии (в функциональном пространстве), которые вместе обеспечивают наилучшую производительность. Предполагая нелинейные скрытые единицы, увеличение ширины скрытого слоя или наложение нескольких скрытых слоев позволяет более сложные сопоставления пространств объектов, что позволяет подгонять более сложные функции.

user20160
источник
7

Один из способов увидеть силу нелинейности - отметить теорему об универсальном приближении .

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

Якуб Барчук
источник
3
Это был единственный человек, который на самом деле правильно ответил на вопрос, хотя и слишком лаконично. Скрытого слоя достаточно, чтобы создать новые мощные функции, сочетающие в себе оригинальные функции. Проблема в том, что вам может понадобиться скрытый слой со слишком большим количеством узлов, и процесс конвергенции лучше всего работает с более глубокой сетью со скрытыми слоями> 1.
Рикардо Крус,
5

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

что делает нейронные сети нелинейной классификационной моделью?

В частности, вложенная сигмовидная функция будет более «мощной», чем линейное преобразование исходных признаков и одна сигмовидная функция (логистическая регрессия).


Вот числовой пример для рассмотрения комментариев OP.

X10×37W3×7X×W10×77

Хайтау Ду
источник
Мне просто интересно, тогда как какой-либо из узлов первого слоя отличается на выходе, то есть узел 1 получает X1, X2, X3, узел 2 также получает X1, X2, X3, если все они являются логистической регрессией, как их выход будет другим?
mskw
Предположим, у вас есть 3 объекта и 10 скрытых юнитов, тогда на выходе скрытого слоя будет 10 «инженерных объектов».
Haitao Du
Почему вы называете это «инженерными функциями», а также функциями, которые вы упоминаете для X1, X2, X3?
mskw
Я отредактирую свой ответ в соответствии с вашими комментариями.
Haitao Du
Спасибо за пересмотр, из вашего объяснения, я не уверен, что вы не отвечаете на мой вопрос, или у меня есть пробел в знаниях, где мне нужно сначала соединиться. В частности, из вашего ответа Вес относится к каждой функции вывода узла? Если так, как они отличаются от каждого из других узлов на том же уровне?
mskw
3

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

Nyj=f(i=1Nwjixi+bj)fwjixibjэто какой-то уклон. Веса выбираются алгоритмом оптимизации, чтобы оптимизировать нашу цель, например, минимизировать ошибку классификации. Инициализация очень важна для алгоритмов градиентного спуска, которые обычно используются для оптимизации весов. См. Https://intoli.com/blog/neural-network-initialization/, где, если все веса начинаются с 0, сеть не может учиться.

Сриджан Пармешвар
источник