¿Cuál es el papel del sesgo en las redes neuronales? [cerrado]

Resuelto Karan asked hace 14 años • 18 respuestas

Soy consciente del descenso del gradiente y del algoritmo de retropropagación. Lo que no entiendo es: ¿cuándo es importante utilizar un sesgo y cómo se utiliza?

Por ejemplo, al mapear la ANDfunción, cuando uso dos entradas y una salida, no da los pesos correctos. Sin embargo, cuando uso tres entradas (una de las cuales es un sesgo), obtengo los pesos correctos.

Karan avatar Mar 20 '10 04:03 Karan
Aceptado

Creo que los prejuicios casi siempre son útiles. De hecho, un valor de sesgo le permite desplazar la función de activación hacia la izquierda o hacia la derecha , lo que puede ser fundamental para un aprendizaje exitoso.

Podría ser útil mirar un ejemplo sencillo. Considere esta red de 1 entrada y 1 salida que no tiene sesgo:

red sencilla

La salida de la red se calcula multiplicando la entrada (x) por el peso (w 0 ) y pasando 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 calcula esta red, para varios valores de w 0 :

salida de red, dados diferentes pesos w0

Cambiar el peso w 0 esencialmente cambia la "inclinación" del sigmoide. Eso es útil, pero ¿qué pasaría si quisiera que la red generara 0 cuando x es 2? Simplemente cambiar la inclinación del sigmoide no funcionará realmente; lo que deseas es poder desplazar toda la curva hacia la derecha .

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

red simple con un sesgo

... entonces la salida de la red se convierte en sig(w 0 *x + w 1 *1.0). Así es como se ve la salida de la red para varios valores de w 1 :

salida de red, dados diferentes pesos w1

Tener un peso de -5 para w 1 desplaza la curva hacia la derecha, lo que nos permite tener una red que genera 0 cuando x es 2.

Nate Kohl avatar Mar 23 '2010 12:03 Nate Kohl

Una forma más sencilla de entender qué es el sesgo: de alguna manera es similar a la constante b 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 a los datos.

Sin b , la línea siempre pasa por el origen (0, 0) y es posible que el ajuste sea peor.

zfy avatar Nov 04 '2014 00:11 zfy

A continuación se muestran algunas ilustraciones adicionales que muestran el resultado de una red neuronal de alimentación directa de dos capas con y sin unidades de sesgo en un problema de regresión de dos variables. Los pesos se inicializan aleatoriamente y se utiliza la activación ReLU estándar. Como concluyeron las respuestas que tenía ante mí, sin el sesgo, la red ReLU no puede desviarse de cero en (0,0).

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

JP K. avatar Nov 05 '2018 09:11 JP K.

Se pueden ajustar dos tipos diferentes de parámetros durante el entrenamiento de una ANN, los pesos y el valor en las funciones de activación. Esto no es práctico y sería más fácil si sólo se ajustara uno de los parámetros. Para hacer frente a este problema se inventa una neurona de polarización. La neurona de polarización se encuentra en una capa, está conectada a todas las neuronas de la capa siguiente, pero a ninguna de la capa anterior y siempre emite 1. Dado que la neurona de polarización emite 1, los pesos, conectados a la neurona de polarización, se agregan directamente a la suma combinada de los otros pesos (ecuación 2.1), al igual que el valor t en las funciones de activación. 1

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

Además, el sesgo le permite utilizar una única red neuronal para representar casos similares. Considere la función booleana AND representada por la siguiente red neuronal:

ANA
(fuente: aihorizon.com )

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

Se puede utilizar un solo perceptrón para representar muchas funciones booleanas.

Por ejemplo, si asumimos valores booleanos de 1 (verdadero) y -1 (falso), entonces una forma de utilizar un perceptrón de dos entradas para implementar la función AND es establecer los pesos w0 = -3 y w1 = w2 = .5. Se puede hacer que este perceptrón represente la función OR alterando el umbral a w0 = -0,3. De hecho, AND y OR pueden verse como casos especiales de m de n funciones: es decir, funciones en las que al menos m de las n entradas al perceptrón deben ser verdaderas. La función O corresponde a m = 1 y la función Y a m = n. Cualquier función m-de-n se representa fácilmente usando un perceptrón estableciendo todos los pesos de entrada al mismo valor (por ejemplo, 0,5) y luego estableciendo el umbral w0 en consecuencia.

Los perceptrones pueden representar todas las funciones booleanas primitivas AND, OR, 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.

Kiril avatar Mar 19 '2010 21:03 Kiril