36 votos

¿Cuál es la diferencia entre reguladores de núcleo, de sesgo y de actividad, y cuándo utilizar cada uno?

He leído esto Correo electrónico: pero quería más aclaraciones para una pregunta más amplia.

En Keras, ahora hay tres tipos de regularizadores para una capa: kernel_regularizer , bias_regularizer , activity_regularizer .

He leído posts que explican la diferencia entre norma L1 y norma L2, pero en un sentido intuitivo, me gustaría saber cómo afectará cada regularizador a los tres tipos de regularizadores mencionados y cuándo usar qué.

El motivo de mi pregunta es que, según tengo entendido, los regularizadores suelen aplicarse a la función de pérdida. Sin embargo, se están añadiendo incluso al término de sesgo. No soy capaz de envolver mi cabeza en torno a por qué uno podría pensar en hacer esto, y mucho menos ser capaz de discernir cuándo utilizar L1 y L2 para el regularizador de sesgo. Por lo tanto, quería obtener una comprensión global de las tres entidades que los regularizadores se aplican en y, en general, saber cómo los 2 tipos de regularizadores pueden afectar a cada una de esas entidades en un nivel alto.

50voto

William Grunow Puntos 31

¿Cuál es la diferencia entre ellos?

Se tiene la ecuación de regresión $y = Wx+b$ donde $x$ es la entrada, $W$ la matriz de pesos y $b$ el sesgo.

  • Regularizador de núcleo: Intenta reducir los pesos $W$ (excluido el sesgo).
  • Regularizador de sesgos: Intenta reducir el sesgo $b$ .
  • Regularizador de actividades: Intenta reducir la producción de la capa $y$ por lo que se reducirán las ponderaciones y se ajustará el sesgo de forma que $Wx+b$ es el más pequeño.

¿Cuándo utilizar qué?

Por lo general, si no se tiene ninguna prioridad sobre la distribución que se desea modelizar, sólo se utilizará la función regularizador de núcleo ya que una red lo suficientemente grande puede seguir modelando su función aunque la regularización de los pesos sea grande.

Si desea que la función de salida pase por (o tenga una intercepción más cercana a) el origen, puede utilizar la función regularizador de sesgo .

Si desea que la salida sea menor (o más cercana a 0), puede utilizar la función regularizador de actividad .

$L_1$ frente a $L_2$ regularización

Ahora, para el $L_1$ frente a $L_2$ pérdida por disminución de peso (no confundir con la función de pérdida de resultados).

  • $L_2$ se define como $w^2$
  • $L_1$ se define como $|w|$ .

donde $w$ es un componente de la matriz $W$ .

  • El gradiente de $L_2$ será: $2w$
  • El gradiente de $L_1$ será: $sign(w)$

Así, para cada actualización de gradiente con una tasa de aprendizaje $a$ , en $L_2$ pérdida, los pesos se restarán por $aW$ mientras que en $L_1$ pérdida se restarán por $a \cdot sign(W)$ .

El efecto de $L_2$ pérdida en los pesos es una reducción de componentes grandes en la matriz $W$ mientras que $L_1$ hará que la matriz de pesos sea dispersa, con muchos valores cero. Lo mismo ocurre con el sesgo y la salida, respectivamente, utilizando el regularizador de sesgo y actividad.

8voto

SEJPM Puntos 118

kernel_regularizer actúa sobre los pesos, mientras que bias_initializer actúa sobre el sesgo y activity_regularizer actúa sobre la y(salida de la capa).

Aplicamos kernel_regularizer para penalizar los pesos muy grandes que provocan un sobreajuste de la red, después de aplicar kernel_regularizer los pesos se harán más pequeños.

Mientras bias_regularizer para añadir un sesgo de modo que nuestro sesgo se aproxime a cero.

activity_regularizer intenta reducir la salida para eliminar el sobreajuste.

4voto

Craig Hicks Puntos 95

Voy a ampliar @Bloc97 's responder sobre la diferencia entre $L1$ y $L2$ para demostrar por qué $L1$ puede llevar algunos pesos a cero.

En el caso de $L2$ regularización, el gradiente de un solo peso viene dado por $$ \delta w = u - 2pw$$ donde $u$ es la entrada de la capa anterior multiplicada por el peso $w$ y $p$ es el parámetro que pondera el $L2$ pena.

Sin pérdida de generalización, supongamos que $u>0$ y $w>0$ .

Entonces el signo de $\delta w$ viene dado por $$ sign(\delta w) = sign(\frac{u}{2p} -w)$$ demostrando que $L2$ regularización impulsará $w$ crecer más si $w$ cae por debajo de $\frac{u}{2p}$ .

Por otra parte, en el caso de $L1$ regularización, el gradiente de un solo peso viene dado por $$ \delta w = u - p$$ por lo que el signo de $\delta w$ viene dada por $$ sign(\delta w) = sign(u-p)$$ demostrando que $L1$ regularización impulsará $w$ se reduzca cuando la entrada $u$ es menor que el $L1$ parámetro de regularización $p$ .

Efectivamente, $p$ funciona como un umbral tal que, siempre que $u$ es inferior a $p$ , $L1$ regularización empujará el peso a crecer más pequeño, y siempre que $u$ es mayor que $p$ , $L1$ la regularización hará que el peso aumente.

Lo anterior es una aproximación lineal local de un sistema no lineal: $u$ es en realidad una media de, por ejemplo, todas las muestras de un lote, y $u$ también cambia con cada actualización. No obstante, ofrece una comprensión intuitiva de cómo $L1$ La regularización intenta reducir a cero algunas ponderaciones (si el tamaño es suficiente). $p$ ).

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