Может ли глубокая нейронная сеть приблизить функцию умножения без нормализации?


27

Допустим, мы хотим сделать регрессию для простого f = x * yиспользования стандартной глубокой нейронной сети.

Я помню, что есть исследования, которые говорят о том, что NN с одним скрытым слоем может апоксировать любую функцию, но я пытался и без нормализации NN не смог приблизиться даже к этому простому умножению. Помогла только нормализация журнала данных m = x*y => ln(m) = ln(x) + ln(y). Но это похоже на чит. Может ли NN сделать это без нормализации журнала? Ответ очевиден (как для меня) - да, поэтому вопрос больше в том, какой должен быть тип / конфигурация / расположение такого NN?

Ответы:


13

Большой градиент функции умножения переводит сеть, вероятно, почти сразу в ужасающее состояние, где все ее скрытые узлы имеют нулевой градиент (из-за деталей и ограничений реализации нейронной сети). Мы можем использовать два подхода:

  1. Разделите на константу. Мы просто делим все до обучения и размножаемся после.
  2. Используйте логарифмическую нормализацию. Это делает умножение в дополнение:

    мзнак равноИксYпер(м)знак равнопер(Икс)+пер(Y)


5

Подобный вопрос ударил меня ранее сегодня, и я был удивлен, что не смог найти быстрый ответ. Мой вопрос был таков: у NN есть только функции суммирования, как они могут моделировать мультипликативные функции.

Этот вид ответил на это, хотя это было длинное объяснение. Мое резюме было бы, что NN моделирует поверхность функции, а не саму функцию. Что очевидно, в ретроспективе ...


5

NN с функцией активации Relu может приблизить умножение, когда диапазон входов ограничен. Вспомните это relu(x) = max(x, 0).

Достаточно, если NN приближает квадратную функцию g(z) = z^2, потому что x*y = ((x-y)^2 - x^2 - y^2)/(-2). Правая сторона имеет только линейные комбинации и квадраты.

NN может приближаться z^2кусочно-линейной функцией. Например, по дальности [0, 2]комбинации xи relu(2(x-1))не так уж и плохо. Ниже фигура визуализирует это. Понятия не имею, если это полезно вне теории :-) введите описание изображения здесь


0

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


0

Я не могу комментировать из-за того, что я недавно стал активным пользователем StackExchange. Но я думаю, что это важный вопрос, потому что его так просто понять, но сложно объяснить. С уважением, я не думаю, что принятый ответ является достаточным. Если вы подумаете о базовых операциях стандартной NN с прямой связью, с активациями формы s(W*x+b)для некоторой нелинейной функции активации s, на самом деле не очевидно, как «получить» умножение от этого даже в составной (многослойной) сети. Масштабирование (первая буква в принятом ответе), кажется, не решает вопрос вообще ... масштабирование чем? Входы xи yпредположительно разные для каждого образца. И брать журнал хорошо, если вы знаете,это то, что вам нужно сделать, и позаботиться о проблеме знака при предварительной обработке (поскольку очевидно, что log не определен для отрицательных входных данных). Но это принципиально не сочетается с представлением о том, что нейронные сети могут просто «учиться» (как сказал ОП, это похоже на чит). Я не думаю, что вопрос должен считаться ответом, пока он не станет кем-то умнее меня!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.