2011-01-12 26 views
73

Es una pregunta principal, con respecto a la teoría de redes neuronales:¿Por qué tenemos que normalizar la entrada de una red neuronal artificial?

¿Por qué tenemos que normalizar la entrada para una red neuronal?

Entiendo que a veces, cuando, por ejemplo, los valores de entrada son no numéricos, debe realizarse una determinada transformación, pero cuando tenemos una entrada numérica? ¿Por qué los números deben estar en un cierto intervalo?

¿Qué pasará si los datos no están normalizados?

Respuesta

64

Explica bien here.

Si las variables de entrada se combinan linealmente, como en un MLP, entonces es raramente estrictamente necesario estandarizar las entradas, al menos en teoría. El motivo es que cualquier reescalado de un vector de entrada se puede deshacer de manera efectiva por cambiando los pesos y los sesgos correspondientes, dejándole con las mismas salidas exactas que tenía antes. Sin embargo, hay una variedad de razones prácticas por las que la estandarización de las entradas puede hacer que el entrenamiento sea más rápido y reducir las posibilidades de de quedar atrapado en el óptimo local. Además, la reducción de peso y la estimación Bayesian se pueden realizar de forma más conveniente con entradas estandarizadas.

+0

Hola, ¿en MLPs, no puedo estandarizar las características mientras uso una tasa de aprendizaje constante, causa una compensación excesiva/insuficiente en correcciones de retropropagación para diferentes dimensiones? Me pregunto por la siguiente publicación si esto es exclusivo de CNN, o si las MLP pueden compartir este problema: https://stats.stackexchange.com/questions/185853/why-do-we-need-to-normalize-the -images-before-we-put-them-into-cnn – Austin

7

Al observar la red neuronal desde el exterior, es solo una función que toma algunos argumentos y produce un resultado. Como con todas las funciones, tiene un dominio (es decir, un conjunto de argumentos legales). Debes normalizar los valores que quieres pasar a la red neuronal para asegurarte de que estén en el dominio. Como con todas las funciones, si los argumentos no están en el dominio, no se garantiza que el resultado sea apropiado.

El comportamiento exacto de la red neuronal en argumentos fuera del dominio depende de la implementación de la red neuronal. Pero en general, el resultado es inútil si los argumentos no están dentro del dominio.

+1

La mejor explicación ... –

+0

Esta es una buena explicación – disklosr

15

Algunas entradas a NN pueden no tener un rango de valores "naturalmente definidos". Por ejemplo, el valor promedio puede ser lento, pero aumentar continuamente a lo largo del tiempo (por ejemplo, un número de registros en la base de datos).

En tal caso, alimentar este valor bruto en su red no funcionará muy bien. Enseñará a su red los valores de la parte inferior del rango, mientras que las entradas reales serán de la parte superior de este rango (y muy posiblemente por encima del rango con el que la red ha aprendido a trabajar).

Debe normalizar este valor. Por ejemplo, podría decirle a la red cuánto ha cambiado el valor desde la entrada anterior. Este incremento generalmente se puede definir con alta probabilidad en un rango específico, lo que lo convierte en una buena entrada para la red.

+0

Buena pista sobre la normalización sobre el conjunto anterior de entradas. Esto alivia al usuario de definir un factor de normalización arbitrario. Sin embargo, sospecho que la red entrenará con mayor precisión si el factor de normalización es una constante global aplicada a cada vector de entrada. – davide

-5

Las capas ocultas se utilizan de acuerdo con la complejidad de nuestros datos. Si tenemos datos de entrada que son separables linealmente, entonces no necesitamos usar una capa oculta, p. O puerta, pero si tenemos datos no linealmente separables, entonces necesitamos usar una capa oculta, por ejemplo, puerta lógica ExOR. El número de nodos tomados en cualquier capa depende del grado de validación cruzada de nuestra salida.

1

La razón por la que es necesaria la normalización es porque si observa cómo un paso adaptativo procede en un lugar en el dominio de la función, simplemente transfiere el problema al equivalente del mismo paso traducido por un valor grande en alguna dirección en el dominio, entonces obtienes resultados diferentes. Todo se reduce a la cuestión de adaptar una pieza lineal a un punto de datos. ¿Cuánto debería moverse la pieza sin girar y cuánto debería girar en respuesta a ese punto de entrenamiento? ¡No tiene sentido tener un procedimiento de adaptación modificado en diferentes partes del dominio! Por lo tanto, se requiere normalización para reducir la diferencia en el resultado del entrenamiento. No he escrito esto, pero puedes ver las matemáticas de una función lineal simple y cómo se entrena en un punto de entrenamiento en dos lugares diferentes. Este problema puede haberse corregido en algunos lugares, pero no estoy familiarizado con ellos. En ALNs, el problema ha sido corregido y puedo enviarle un documento si escribe a wwarmstrong AT shaw.ca

33

En las redes neuronales, es buena idea no solo normalizar los datos, sino también escalarlos. Esto está destinado a acercarse más rápido a los mínimos globales en la superficie del error. Consulte los siguientes cuadros: error surface before and after normalization

error surface before and after scaling

imágenes se toman de coursera course acerca de las redes neuronales. Autor de course es Geoffrey Hinton.

+3

Hubiera sido amable de su parte acreditar al autor del gráfico que publicó. El gráfico fue tomado claramente del [curso de coursera de Geoffrey Hinton] (https://www.coursera.org/learn/neural-networks/). –

+3

Buena nota Ricardo !!! –

0

Creo que la respuesta depende del escenario.

Considere NN (red neuronal) como operador F, de modo que F (entrada) = salida. En el caso donde esta relación es lineal para que F (A * entrada) = A * salida, entonces puede optar por dejar la entrada/salida sin normalizar en sus formas crudas, o normalizar ambas para eliminar A. Obviamente esta linealidad suposición se viola en tareas de clasificación, o casi cualquier tarea que da salida a una probabilidad, donde F (a entrada *) = 1 * salida

en la práctica, la normalización permite a las redes no fittable para ser encajable, que es crucial para experimentadores/programadores. Sin embargo, el impacto preciso de la normalización dependerá no solo de la arquitectura/algoritmo de la red, sino también de las estadísticas previas para la entrada y la salida.

Además, NN se implementa a menudo para resolver problemas muy difíciles en forma de caja negra, lo que significa que el problema subyacente puede tener una formulación estadística muy pobre, dificultando la evaluación del impacto de la normalización, causando la ventaja técnica (llegando a ser apto) para dominar sobre su impacto en las estadísticas.

En sentido estadístico, la normalización elimina la variación que se cree que es no causal en la predicción de la salida, a fin de evitar NN de aprendizaje de esta variación como un predictor (NN no ve esta variación, por lo tanto no se puede utilizar)

Cuestiones relacionadas