Математическая интуиция для использования Ре-Лу в машинном обучении


10

Итак, в настоящее время наиболее часто используемые функции активации - это Re-Lu. Поэтому я ответил на этот вопрос. Какова цель функции активации в нейронных сетях? и когда я писал ответ, меня поразило, как именно может приблизительная нелинейная функция Ре-Лу?

Конечно, по чисто математическому определению это нелинейная функция из-за резкого изгиба, но если мы ограничимся только положительной или отрицательной частью только оси X, то она линейна в этих областях. Допустим, мы берем также всю ось X, а затем ее своего рода линейную (не в строгом математическом смысле) в том смысле, что она не может удовлетворительно аппроксимировать извилистые функции, такие как синусоида ( 0 --> 90) с одним скрытым слоем узла, как это возможно с помощью сигмоиды. функция активации.

Так какова интуиция, лежащая в основе того факта, что Re-Lu используются в NN, обеспечивая удовлетворительную производительность (я не спрашиваю цель Re-lu), даже если они являются линейными? Или иногда нелинейные функции, такие как сигмоид и тан, выбрасываются в середине сети?

РЕДАКТИРОВАТЬ: Согласно комментарию @ Eka Re-Lu получает свои возможности от разрыва, действующего в глубоких слоях нейронной сети. Означает ли это, что Re-Lu хороши, если мы используем их в Deep NN, а не в неглубоком NN?


2
Я не эксперт, но нашел эту ссылку quora.com/…
Eka

1
@ Ека хорошая ссылка .... но они излагают неопровержимые факты, не давая хорошей интуиции
DuttaA

3
Это предположение; Способность relu приближать нелинейные функции может быть результатом его свойства разрыва, т.е. max(0,x)действия в глубоких слоях нейронной сети. Существует исследование openai, в котором они вычислили нелинейные функции с использованием глубоких линейных сетей, вот ссылка на blog.openai.com/nonlinear-computation-in-linear-networks
Eka

Ответы:


2

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

Представьте, что вы обучили нейронную сеть, которая берет х 3 и выводит | х 3 | (который похож на параболу). Для функции ReLU это легко сделать идеально. В этом случае выход изогнут.

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

Поэтому, когда мы выводим выходные данные на график и они выглядят изогнутыми, обычно это связано с тем, что мы связываем различные значения x с входными данными, а затем наносим на график выходные данные в виде координаты y относительно этих значений x.

Итак, вы хотите знать, как бы вы плавно смоделировали sin (x), используя ReLU. Хитрость в том, что вы не хотите помещать x в качестве входных данных. Вместо этого поместите что-нибудь изогнутое по отношению к х в качестве входных данных, например, х 3 . Таким образом, вход х 3, а выход грех (х). Причина, по которой это сработает, заключается в том, что это не вычисление синуса ввода - это вычисление синуса кубического корня ввода. Он никогда не сможет плавно вычислить синус самого ввода. Чтобы отобразить выходной сигнал sin (x), поместите исходный x в качестве координаты x (не вводите входные данные), а выходной - в качестве координаты y.


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

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

Я не мог понять, как у нас будет много разных кривых, доступных простым Re-lu .. это будет просто комбинация из 2 прямых линий
DuttaA

@DuttaA Прямые линии - это просто функция отображения. Вы можете отобразить кривую на кривую, используя отображение Relu. Все, что вам нужно, это иметь кривую в качестве входных данных.
Картинка по умолчанию

@DuttaA Входная числовая строка - прямая, а выходная числовая - прямая, но это ничего не говорит о форме данных в числовой строке. Плоскость xy представляет собой прямоугольное евклидово пространство, но вы можете иметь кривые внутри прямоугольного пространства.
Изображение по умолчанию
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.