Pregunta Papel del sesgo en las redes neuronales


Soy consciente del Descenso de gradiente y del Teorema de propagación de retroceso. Lo que no entiendo es: ¿Cuándo es importante usar un sesgo y cómo lo usa?

Por ejemplo, al mapear el AND función, cuando uso 2 entradas y 1 salida, no da los pesos correctos, sin embargo, cuando uso 3 entradas (1 de las cuales es un sesgo), da los pesos correctos.


553
2018-03-19 21:18


origen


Respuestas:


Creo que los sesgos son casi siempre útiles. En efecto, un valor de sesgo le permite cambiar la función de activación hacia la izquierda o hacia la derecha, lo cual puede ser crítico para el aprendizaje exitoso.

Puede ser útil mirar un ejemplo simple. Considere esta red de 1 entrada y 1 salida que no tiene ningún sesgo:

simple network

La salida de la red se calcula multiplicando la entrada (x) por el peso (w0) y pasar el resultado a través de algún tipo de función de activación (por ejemplo, una función sigmoidea).

Aquí está la función que esta red calcula, para varios valores de w0:

network output, given different w0 weights

Cambiando el peso w0 esencialmente cambia la "inclinación" del sigmoide. Eso es útil, pero ¿y si quisieras que la red emitiera 0 cuando x es 2? Simplemente cambiar la inclinación del sigmoide no funcionará realmente - quieres poder cambiar toda la curva hacia la derecha.

Eso es exactamente lo que el sesgo le permite hacer. Si agregamos un sesgo a esa red, así:

simple network with a bias

... entonces la salida de la red se vuelve sig (w0* x + w1* 1.0). Aquí se muestra el resultado de la red para varios valores de w1:

network output, given different w1 weights

Tener un peso de -5 por w1 desplaza la curva hacia la derecha, lo que nos permite tener una red que emite 0 cuando x es 2.


987
2018-03-23 12:50



Solo para agregar mis dos centavos.

Una forma más simple de entender cuál es el sesgo: de alguna manera es similar a la constante segundo de una función lineal

y = ax + b

Le permite mover la línea hacia arriba y hacia abajo para ajustar mejor la predicción con los datos. Sin segundo la línea siempre pasa por el origen (0, 0) y puede obtener un ajuste más pobre.


225
2017-11-04 00:32



Dos tipos diferentes de parámetros pueden   ajustarse durante el entrenamiento de un   ANN, los pesos y el valor en el   funciones de activación. Esto es   poco práctico y sería más fácil si   solo uno de los parámetros debe ser   equilibrado. Para hacer frente a este problema,   la neurona de sesgo se inventa. El sesgo   la neurona se encuentra en una capa, está conectada   a todas las neuronas en la siguiente capa,   pero ninguno en la capa anterior y   siempre emite 1. Desde la neurona de sesgo   emite 1 pesas, conectado a la   neuropatía diagonal, se agregan directamente a la   suma combinada de los otros pesos   (ecuación 2.1), al igual que el valor de t   en las funciones de activación.1

La razón por la que no es práctico es porque está ajustando simultáneamente el peso y el valor, por lo que cualquier cambio en el peso puede neutralizar el cambio al valor que fue útil para una instancia de datos anterior ... agregar una neurona de sesgo sin un valor cambiante permite usted para controlar el comportamiento de la capa.

Además, el sesgo le permite usar una sola red neuronal para representar casos similares. Considere la función AND boolean representada por la siguiente red neuronal:

ANN http://www.aihorizon.com/images/essays/perceptron.gif

  • w0 corresponde a segundo.
  • w1 corresponde a x1.
  • w2 corresponde a x2.

Se puede usar un solo perceptrón para   representan muchas funciones booleanas.

Por ejemplo, si asumimos valores booleanos   de 1 (verdadero) y -1 (falso), luego uno   forma de utilizar un perceptrón de dos entradas para   implementar la función Y es establecer   los pesos w0 = -3 y w1 = w2 = .5.   Este perceptron se puede hacer para   representar la función O en su lugar por   alterando el umbral a w0 = -.3. En   hecho, Y y O se pueden ver como   casos especiales de funciones m-of-n:   es decir, funciones donde al menos m de   las n entradas al perceptron deben ser   cierto. La función OR corresponde a   m = 1 y la función AND a m = n.   Cualquier función m-of-n es fácil   representado usando un perceptrón por   establecer todos los pesos de entrada al mismo   valor (por ejemplo, 0,5) y luego configurar el   umbral w0 en consecuencia.

Los perceptrones pueden representar todos los   funciones booleanas primitivas Y, O,   NAND (1 AND), y NOR (1 OR). Aprendizaje automático - Tom Mitchell)

El umbral es el sesgo y w0 es el peso asociado con la neurona de sesgo / umbral.


30
2018-03-19 21:38



Una capa en una red neuronal sin sesgo no es más que la multiplicación de un vector de entrada con una matriz. (El vector de salida se puede pasar a través de una función sigmoidea para la normalización y para su posterior uso en ANN multicapa, pero eso no es importante).

Esto significa que está utilizando una función lineal y, por lo tanto, una entrada de todos los ceros siempre se asignará a una salida de todos los ceros. Esta podría ser una solución razonable para algunos sistemas, pero en general es demasiado restrictiva.

Al usar un sesgo, efectivamente está agregando otra dimensión a su espacio de entrada, que siempre toma el valor uno, por lo que está evitando un vector de entrada de todos los ceros. No pierdes ninguna generalidad debido a que tu matriz de peso entrenada no tiene que ser surjective, por lo que todavía puede mapear a todos los valores previamente posibles.

2d ANN:

Para una asignación ANN de dos dimensiones a una dimensión, como en la reproducción de las funciones AND o OR (o XOR), puede pensar en una red neuronal como lo siguiente:

En el plano 2d, marque todas las posiciones de los vectores de entrada. Entonces, para los valores booleanos, querría marcar (-1, -1), (1,1), (-1,1), (1, -1). Lo que su ANN ahora hace es dibujar una línea recta en el plano 2d, separando la salida positiva de los valores de salida negativos.

Sin sesgo, esta línea recta tiene que pasar por cero, mientras que con sesgo, eres libre de ponerlo en cualquier lugar. Entonces, verás que sin sesgo estás enfrentando un problema con la función Y, ya que no puedes poner ambos (1, -1) y (-1,1) al lado negativo. (No se les permite estar en la línea.) El problema es igual para la función OR. Con un sesgo, sin embargo, es fácil trazar la línea.

Tenga en cuenta que la función XOR en esa situación no se puede resolver incluso con sesgo.


14
2018-03-19 22:24



Cuando utilizas ANN, raras veces conoces los aspectos internos de los sistemas que quieres aprender. Algunas cosas no se pueden aprender sin un sesgo. Por ejemplo, eche un vistazo a los siguientes datos: (0, 1), (1, 1), (2, 1), básicamente una función que mapea cualquier x a 1.

Si tiene una red de una capa (o una asignación lineal), no puede encontrar una solución. Sin embargo, si tiene un sesgo, ¡es trivial!

En un entorno ideal, un sesgo también podría asignar todos los puntos a la media de los puntos objetivo y dejar que las neuronas ocultas modelen las diferencias desde ese punto.


13
2018-03-21 21:40



El sesgo no es un NN plazo, es un término genérico de álgebra para considerar.

Y = M*X + C (ecuación en línea recta)

Ahora si C(Bias) = 0 entonces, la línea siempre pasará por el origen, es decir (0,0)y depende de un solo parámetro, es decir M, que es la pendiente, por lo que tenemos menos cosas para jugar.

C, que es el sesgo toma cualquier número y tiene la actividad para cambiar el gráfico y, por lo tanto, puede representar situaciones más complejas.

En una regresión logística, el valor esperado del objetivo se transforma mediante una función de enlace para restringir su valor al intervalo de la unidad. De esta forma, las predicciones del modelo se pueden ver como probabilidades de resultado primarias como se muestra: Función sigmoidea en Wikipedia

Esta es la capa de activación final en el mapa NN que enciende y apaga la neurona. Aquí también el sesgo tiene un papel que desempeñar y cambia la curva de manera flexible para ayudarnos a mapear el modelo.


8
2018-03-13 01:08



Solo para agregar a todo esto algo que falta mucho y que el resto, muy probablemente, no sabía.

Si trabajas con imágenes, es posible que prefieras no utilizar ningún sesgo. En teoría, de esa manera su red será más independiente de la magnitud de los datos, como si la imagen es oscura o brillante y vívida. Y la red aprenderá a hacer su trabajo mediante el estudio de la relatividad dentro de sus datos. Muchas redes neuronales modernas utilizan esto.

Para otros datos que tienen sesgos podría ser crítico. Depende del tipo de datos con los que estés tratando. Si su información es invariante de magnitud, si ingresar [1,0,0.1] debe llevar al mismo resultado que si se ingresa [100,0,10], podría estar mejor sin un sesgo.


7
2017-09-20 19:55



En un par de experimentos en mi tesis de maestría (por ejemplo, la página 59), encontré que el sesgo podría ser importante para la (s) primera (s) capa (s), pero especialmente en las capas completamente conectadas al final parece no desempeñar un papel importante.

Esto podría ser altamente dependiente de la arquitectura de red / conjunto de datos.


6
2017-08-01 17:09