Я понимаю, что нейронные сети с любым количеством скрытых слоев могут аппроксимировать нелинейные функции, однако могут ли они приближаться:
f(x) = x^2
Я не могу придумать, как это возможно. Это похоже на очень очевидное ограничение нейронных сетей, которое потенциально может ограничить то, что он может сделать. Например, из-за этого ограничения нейронные сети, вероятно, не могут правильно аппроксимировать многие функции, используемые в статистике, например, экспоненциальное скользящее среднее или даже дисперсию.
Говоря о скользящей средней, могут ли текущие нейронные сети правильно аппроксимировать это? Я понимаю, как прямая нейронная сеть или даже один линейный нейрон могут выводить скользящее среднее с использованием метода скользящего окна, но как бы рекуррентные нейронные сети делают это без X количества скрытых слоев (X - средний скользящий размер)?
Также предположим, что мы не знаем исходную функцию f, которая, как оказалось, получает среднее значение из последних 500 входов, а затем выводит 1, если оно выше 3, и 0 если нет. Но на секунду притворимся, что мы этого не знаем, это черный ящик.
Как бы повторяющаяся нейронная сеть приблизилась к этому? Сначала нам нужно знать, сколько временных меток оно должно иметь, чего у нас нет. Возможно, сеть LSTM могла, но даже тогда, что, если это не простая скользящая средняя, это экспоненциальная скользящая средняя? Я не думаю, что даже LSTM может это сделать.
Еще хуже, что если f (x, x1), который мы пытаемся изучить, просто
f(x,x1) = x * x1
Это кажется очень простым и понятным. Может ли нейронная сеть научиться этому? Я не вижу, как.
Я пропустил что-то огромное здесь или алгоритмы машинного обучения чрезвычайно ограничены? Существуют ли другие методы обучения, помимо нейронных сетей, которые действительно могут сделать это?