36 votos

¿Por qué se utilizan nodos de polarización en las redes neuronales?

  1. ¿Por qué se utilizan nodos de polarización en las redes neuronales?
  2. ¿Cuántos debe utilizar?
  3. ¿En qué capas debe utilizarlos: en todas las capas ocultas y en la capa de salida?

2 votos

28voto

Sean Hanley Puntos 2428

El nodo de polarización de una red neuronal es un nodo que siempre está "encendido". Es decir, su valor se establece en $1$ sin tener en cuenta los datos de un patrón determinado. Es análogo al intercepto en un modelo de regresión, y cumple la misma función. Si una red neuronal no tiene un nodo de sesgo en una capa determinada, no podrá producir una salida en la capa siguiente que difiera de $0$ (en la escala lineal, o el valor que corresponde a la transformación de $0$ cuando se pasa a través de la función de activación) cuando los valores de las características son $0$ .

enter image description here

Veamos un ejemplo sencillo: Usted tiene un feed forward perceptrón con 2 nodos de entrada $x_1$ et $x_2$ y 1 nodo de salida $y$ . $x_1$ et $x_2$ son características binarias y se fijan en su nivel de referencia, $x_1=x_2=0$ . Multiplica esos 2 $0$ por los pesos que quieras, $w_1$ et $w_2$ suma los productos y pásalo por la función de activación que prefieras. Sin un nodo de sesgo, sólo un es posible, lo que puede dar lugar a un ajuste muy deficiente. Por ejemplo, utilizando una función de activación logística, $y$ debe ser $.5$ que sería horrible para clasificar sucesos raros.

Un nodo de sesgo proporciona una flexibilidad considerable a un modelo de red neuronal. En el ejemplo anterior, la única proporción predicha posible sin un nodo de sesgo era $50\%$ pero con un nodo de polarización, cualquier proporción en $(0, 1)$ puede ajustarse a los patrones en los que $x_1=x_2=0$ . Para cada capa, $j$ en el que se añade un nodo de polarización, el nodo de polarización añadirá $N_{j+1}$ parámetros / ponderaciones adicionales que deben estimarse (donde $N_{j+1}$ es el número de nodos de la capa $j+1$ ). Si hay que ajustar más parámetros, la red neuronal tardará proporcionalmente más tiempo en entrenarse. También aumenta la probabilidad de sobreajuste, si no se dispone de muchos más datos que pesos por aprender.

Teniendo esto en cuenta, podemos responder a sus preguntas explícitas:

  1. Los nodos de sesgo se añaden para aumentar la flexibilidad del modelo para ajustarse a los datos. En concreto, permite que la red se ajuste a los datos cuando todas las características de entrada son iguales a $0$ y es muy probable que disminuya el sesgo de los valores ajustados en otras partes del espacio de datos.
  2. Normalmente, un solo Se añade un nodo de sesgo a la capa de entrada y a cada capa oculta de una red feedforward. Nunca se añadirían dos o más a una capa determinada, pero se podría añadir cero. Por lo tanto, el número total viene determinado en gran medida por la estructura de la red, aunque podrían aplicarse otras consideraciones. (No tengo tan claro cómo se añaden nodos de polarización a las estructuras de redes neuronales que no sean feedforward).
  3. La mayoría de esto ya se ha cubierto, pero para ser explícito: nunca se añadiría un nodo de sesgo a la capa de salida; no tendría ningún sentido.

4voto

Josh Pearce Puntos 2288

En el contexto de las redes neuronales, Normalización por lotes es actualmente el estándar de oro para fabricar "nodos de polarización" inteligentes. En lugar de fijar el valor de sesgo de una neurona, se ajusta a la covarianza de la entrada de la neurona. Así, en una CNN, se aplicaría una normalización por lotes justo entre la capa convolucional y la siguiente capa totalmente conectada (por ejemplo, ReLus). En teoría, todas las capas totalmente conectadas podrían beneficiarse de la normalización por lotes, pero en la práctica resulta muy costosa de aplicar, ya que cada normalización por lotes conlleva sus propios parámetros.

En cuanto al porqué, la mayoría de las respuestas ya han explicado que, en particular, las neuronas son susceptibles a gradientes saturados cuando la entrada empuja la activación a un extremo. En el caso de ReLu's esto se empujaría hacia la izquierda, dando un gradiente de 0. En general, cuando se entrena un modelo, primero se normalizan las entradas a la red neuronal. La normalización por lotes es una forma de normalizar las entradas en la red neuronal, entre capas.

3voto

Chris Boesing Puntos 2477

Respuestas sencillas y breves:

  1. Desplazar la función de entrada / ser más flexible sobre la función aprendida.
  2. Un único nodo de polarización por capa.
  3. Añádelas a todas las capas ocultas y a la capa de entrada - con algunas notas a pie de página

En un par de experimentos en mi tesis de máster (p. ej., página 59), descubrí que el sesgo puede ser importante para la(s) primera(s) capa(s), pero especialmente en las capas totalmente conectadas del final parece no desempeñar un papel importante. De ahí que se puedan tener en las primeras capas y no en las últimas. Basta con entrenar una red, trazar la distribución de pesos de los nodos de sesgo y podarlos si los pesos parecen estar demasiado cerca de cero.

Esto puede depender en gran medida de la arquitectura de la red y del conjunto de datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X