tipos redes recurrente practico neuronales neuronal learning funcion ejemplos ejemplo costo machine-learning neural-network

machine learning - recurrente - ¿Pueden las redes neuronales aproximarse a cualquier función con suficientes neuronas ocultas?



redes neuronales pdf (6)

Entiendo que las redes neuronales con cualquier cantidad de capas ocultas pueden aproximarse a las funciones no lineales, sin embargo, ¿pueden aproximarse?

f(x) = x^2

No puedo pensar en cómo podría ser. Parece una limitación muy obvia de las redes neuronales que potencialmente puede limitar lo que puede hacer. Por ejemplo, debido a esta limitación, las redes neuronales probablemente no pueden aproximar apropiadamente muchas funciones usadas en estadísticas como Promedio Móvil Exponencial, o incluso varianza.

Hablando de promedio móvil, ¿pueden las redes neuronales recurrentes aproximarse adecuadamente a eso? Entiendo cómo una red neuronal directa o incluso una única neurona lineal puede emitir un promedio móvil usando la técnica de ventana deslizante, pero ¿cómo lo harían las redes neuronales recurrentes sin X cantidad de capas ocultas (siendo X el tamaño promedio móvil)?

Además, supongamos que no conocemos la función original f , que pasa a obtener el promedio de las últimas 500 entradas, y luego arrojamos un 1 si es mayor que 3, y 0 si no lo es. Pero por un segundo, fingir que no lo sabemos, es una caja negra.

¿Cómo se aproximaría eso a una red neuronal recurrente? Primero necesitaríamos saber cuántos pasos de tiempo debería tener, cosa que no hacemos. Tal vez una red LSTM podría, pero incluso entonces, ¿qué pasa si no es una media móvil simple, es una media móvil exponencial? No creo que ni siquiera LSTM pueda hacerlo.

Aún peor, ¿y si f (x, x1) que intentamos aprender es simplemente

f(x,x1) = x * x1

Eso parece muy simple y directo. ¿Puede una red neuronal aprenderlo? No veo cómo.

¿Me estoy perdiendo algo importante aquí o los algoritmos de aprendizaje automático son extremadamente limitados? ¿Existen otras técnicas de aprendizaje además de las redes neuronales que puedan realmente hacer algo de esto?


Entiendo que las redes neuronales con cualquier cantidad de capas ocultas pueden aproximarse a las funciones no lineales, sin embargo, ¿pueden aproximarse?

f(x) = x^2

La única forma en que puedo darle sentido a esa pregunta es que estás hablando de extrapolación. Entonces, por ejemplo, muestras de entrenamiento dadas en el rango -1 < x < +1 puede una red neuronal conocer los valores correctos para x > 100 ? ¿Es eso lo que quieres decir?

Si tenía conocimiento previo de que las funciones que intenta aproximar son probablemente polinomios de bajo orden (o cualquier otro conjunto de funciones), entonces seguramente podría construir una red neuronal que pueda representar estas funciones y extrapolar x^2 todas partes.

Si no tiene conocimiento previo, las cosas son un poco más difíciles: hay infinitas funciones suaves que se ajustan x^2 en el rango -1..+1 perfectamente, y no hay una buena razón por la cual esperaríamos x^2 para dar mejores predicciones que cualquier otra función. En otras palabras: si no teníamos conocimiento previo sobre la función que estamos tratando de aprender, ¿por qué querríamos aprender x -> x^2 ? En el ámbito de los conjuntos de entrenamiento artificiales, x^2 podría ser una función probable, pero en el mundo real, probablemente no lo sea.

Para dar un ejemplo: digamos que la temperatura del lunes (t = 0) es 0 °, el martes es 1 °, el miércoles es 4 °. No tenemos motivos para creer que las temperaturas se comporten como polinomios de bajo orden, por lo que no querríamos inferir de esos datos que la temperatura del próximo lunes probablemente será de alrededor de 49 °.

Además, supongamos que no conocemos la función original f, que pasa a obtener el promedio de las últimas 500 entradas, y luego arrojamos un 1 si es mayor que 3, y 0 si no lo es. Pero por un segundo, fingir que no lo sabemos, es una caja negra.

¿Cómo se aproximaría eso a una red neuronal recurrente?

Creo que son dos preguntas: primero, ¿puede una red neuronal representar esa función? Es decir, ¿hay un conjunto de pesos que darían exactamente ese comportamiento? Obviamente, depende de la arquitectura de la red, pero creo que podemos idear arquitecturas que puedan representar (o al menos aproximarse) este tipo de funciones.

Pregunta dos: ¿Puede aprender esta función, con suficientes muestras de entrenamiento? Bueno, si su algoritmo de aprendizaje no se queda atascado en un mínimo local, claro: si tiene suficientes muestras de entrenamiento, cualquier conjunto de ponderaciones que no se aproxime a su función arroja un error de entrenamiento mayor a 0, mientras que un conjunto de ponderaciones ajustar la función que está tratando de aprender tiene un error de entrenamiento = 0. Entonces, si encuentra un óptimo global, la red debe ajustarse a la función.


El punto clave para entender es compacto :

Las redes neuronales (como cualquier otra estructura de aproximación como, polinomios, splines o Funciones de base radial) pueden aproximar cualquier función continua solo dentro de un conjunto compacto .

En otras palabras, la teoría establece que, dado:

  1. Una función continua f (x) ,
  2. Un rango finito para la entrada x , [a, b] y
  3. Una precisión de aproximación deseada ε> 0 ,

entonces existe una red neuronal que se aproxima a f (x) con un error de aproximación menor que ε , en todas partes dentro de [a, b] .

Con respecto a su ejemplo de f (x) = x 2 , sí puede aproximarlo con una red neuronal dentro de cualquier rango finito: [-1,1] , [0, 1000] , etc. Para visualizar esto, imagine que se aproxima a f (x) dentro de [-1,1] con una función de paso . ¿Puedes hacerlo en papel? Tenga en cuenta que si hace los pasos lo suficientemente estrechos, puede lograr la precisión deseada. La forma en que las redes neuronales se aproximan a f (x) no es muy diferente a esto.

Pero, de nuevo, no existe una red neuronal (o cualquier otra estructura de aproximación) con un número finito de parámetros que pueden aproximarse a f (x) = x 2 para todo x en [-∞, + ∞] .


Existen limitaciones teóricas de las redes neuronales. Ninguna red neuronal puede aprender la función f (x) = x * x ni puede aprender un número infinito de otras funciones, a menos que suponga lo poco práctico:

1- un número infinito de ejemplos de entrenamiento 2- un número infinito de unidades 3- una cantidad infinita de tiempo para converger

Los NN son buenos para aprender problemas de reconocimiento de patrones de bajo nivel (señales que al final tienen algún patrón estadístico que puede ser representado por alguna función "continua"), ¡pero eso es todo! ¡No más!

Aquí hay una pista:
Intenta construir un NN que tome n + 1 entradas de datos (x0, x1, x2, ... xn) y devolverá verdadero (o 1) si (2 * x0) está en el resto de la secuencia. Y buena suerte. Las funciones infinitas, especialmente aquellas que son recursivas, no se pueden aprender. Ellos solo son!


La pregunta es muy legítima y, lamentablemente, muchas de las respuestas muestran cuán poco los médicos parecen saber sobre la teoría de las redes neuronales. El único teorema riguroso que existe acerca de la capacidad de las redes neuronales para aproximar diferentes tipos de funciones es el Teorema de Aproximación Universal.

El UAT establece que cualquier función continua en un dominio compacto se puede aproximar mediante una red neuronal con una sola capa oculta, siempre que las funciones de activación utilizadas sean LIMITADAS, continuas y monótonamente en aumento. Ahora, una suma finita de funciones limitadas está limitada por definición.

Un polinomio no está delimitado, así que lo mejor que podemos hacer es proporcionar una aproximación de red neuronal de ese polinomio sobre un subconjunto compacto de R ^ n. Fuera de este subconjunto compacto, la aproximación fallará miserablemente ya que el polinomio crecerá sin límite. En otras palabras, la red neuronal funcionará bien en el conjunto de entrenamiento pero no se generalizará.

La pregunta no está fuera del tema ni representa la opinión del OP.


No estoy seguro de por qué hay una reacción tan visceral, creo que es una pregunta legítima que es difícil de encontrar al buscar en Google, aunque creo que es ampliamente apreciada y repetida en voz alta. Creo que en este caso estás buscando las citas que muestran que una red neuronal puede aproximar cualquier función. Este documento reciente lo explica muy bien, en mi opinión. También citan el documento original de Barron de 1993 que resultó ser un resultado menos general. La conclusión: una red neuronal de dos capas puede representar cualquier polinomio de grado limitado, bajo ciertas condiciones (aparentemente no restrictivas).

En caso de que el enlace no funcione, se llama "Learning Polynomials with Neural Networks" por Andoni et al., 2014.


Una red puede aprender x|->x * x si tiene una neurona que calcula x * x . O más generalmente, un nodo que calcula x**p y aprende p. Estos no se usan comúnmente, pero la afirmación de que "ninguna red neuronal puede aprender ..." es demasiado fuerte.

Una red con ReLU y una capa de salida lineal puede aprender x|->2*x , incluso en un rango ilimitado de valores x. El error será ilimitado, pero el error proporcional estará limitado. Cualquier función aprendida por una red de este tipo es lineal por tramos y, en particular, asintóticamente lineal.

Sin embargo, existe un riesgo con las ReLU: una vez que la ReLU está desactivada para todos los ejemplos de capacitación, deja de aprender. Con un dominio grande, se activará para algunos ejemplos de prueba posibles y dará un resultado erróneo. Entonces, las ReLU son solo una buena opción si es probable que los casos de prueba se encuentren dentro del casco convexo del conjunto de entrenamiento. Esto es más fácil de garantizar si la dimensionalidad es baja. Un trabajo alternativo es preferir LeakyReLU.

Otro problema: ¿cuántas neuronas necesita para lograr la aproximación que desea? Cada ReLU o LeakyReLU implementa un único cambio de gradiente. Entonces el número necesario depende del valor absoluto máximo del segundo diferencial de la función objetivo, dividido por el error máximo que se tolerará.