6 votos

En una red neuronal, ¿es necesario actualizar los sesgos cuando se entrena?

Al construir una red neuronal con una capa oculta, se planteó la cuestión de actualizar o no los sesgos durante la retropropagación. Básicamente estoy tratando de ahorrar memoria, así que mi pregunta era y es cuán grande sería la diferencia si actualizara sólo los pesos en comparación con los pesos y los sesgos. Con lo primero, no tendría que guardar ningún otro valor de bias que el valor de $1$ que he establecido como estándar. ¿Tendrá entonces problemas de aprendizaje? Si es así, ¿por qué las actualizaciones de los pesos son insuficientes para entrenarlo?

EDITAR para mayor claridad: Estoy hablando de la fórmula de retropropagación

$\Delta W= -_l O_{(l-1)}$

$\Delta \theta=-_l$

Donde $\Delta W$ es la diferencia (vector) de pesos, $\Delta \theta$ es la diferencia (vector) de los sesgos, $$ is the learning rate, $ O $ is the output (vector) of the layer (here $ l-1 $), and $ \N - delta_l $ is the calculated error increment (vector) of layer $ l $. What if you just don't use $ \N - Delta \N - Theta $ in backpropagation and leave the biases at $ 1$?

5voto

Deepanshu Bedi Puntos 99

La idea es aprender los pesos de sesgo pero tener la activación fija en 1. Cualquier otra cosa lo convertiría en una unidad ordinaria adicional.

0 votos

En la mayoría de las configuraciones de RNA, no hay pesos de sesgo (lo que las convertiría en neuronas adicionales). Los sesgos suelen añadirse después de calcular la activación a de una neurona a = wx+b y antes de aplicar la función de umbral.

0 votos

Mi experiencia pasada fue diferente en el sentido de que la gente codifica los prejuicios como unidades (precisamente por la razón de que pueden entrenarse como las demás unidades). Si dejaras el sesgo en 1 para siempre, desplazarías la activación una vez causada por el peso inicial del sesgo. Por ejemplo, si el peso inicial es 0,5 y nunca actualizas el sesgo, el umbral siempre será 0,5 (piensa en el perceptrón de una sola capa).

0 votos

Bueno ahora que tenemos dos respuestas diferentes, -- y también leí mucho sobre configuraciones ANN como la que mencionaste, pero supuse que la que tiene sesgos para cada nodo era la más reciente una ¿cuál es la correcta? O es que eso merece una nueva pregunta :)

3voto

andynormancx Puntos 234

Si se trata de dejar los sesgos fijos en cualquier entonces cada neurona intentará utilizar su "activación global de entrada" como una especie de sesgo (teniendo un peso pequeño para todas sus entradas). Esto hace que su aprendizaje sea menos estable que si sólo tuviera un sesgo. Si intenta combatir este deseo con la regularización, puede que la red no consiga codificar una buena solución a su problema.

¿Cuánta memoria estás ahorrando realmente?

0 votos

Bueno, estamos hablando de aproximadamente 10^6 nodos, en esa dimensión. Tu punto parece legítimo. Entonces, tomando tu respuesta y la respuesta de @runDOSrun juntas, uno podría decir que para una función de aprendizaje estable, necesitarías una neurona de sesgo con un valor fijo y pesos que se puedan actualizar, o sesgos para cada neurona que se puedan actualizar también, ¿correcto?

1 votos

@cirko: sí, es lo mismo. Además, un millón de sesgos son sólo unos pocos megabytes de memoria.

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