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


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.