23 votos

¿Cómo se actualizan los pesos en el método de aprendizaje por lotes en redes neuronales?

¿Puede alguien decirme cómo se supone que debo construir una red neuronal utilizando el método por lotes?

He leído que, en el modo por lotes, para todas las muestras del conjunto de entrenamiento, calculamos el error, el delta y, por tanto, los pesos delta para cada neurona de la red y, a continuación, en lugar de actualizar inmediatamente los pesos, los acumulamos y, después, antes de iniciar la siguiente época, actualizamos los pesos.

También leí en alguna parte que el método por lotes es como el método en línea, pero con la diferencia de que sólo hay que sumar los errores de todas las muestras del conjunto de entrenamiento y luego sacar la media y utilizarla para actualizar los pesos, igual que se hace en el método en línea (la diferencia es sólo la media), así:

for epoch=1 to numberOfEpochs

   for all i samples in training set

         calculate the errors in output layer
         SumOfErrors += (d[i] - y[i])
   end

   errorAvg = SumOfErrors / number of Samples in training set

   now update the output layer with this error
   update all other previous layers

   go to the next epoch

end
  • ¿Cuál de estos es realmente la forma correcta del método por lotes?
  • En el caso de la primera, ¿acumular todos los pesos delta no da como resultado un número enorme?

16voto

Steve Puntos 477

Utilizar la media o la suma son equivalentes, en el sentido de que existen pares de ritmos de aprendizaje para los que producen la misma actualización.

Para confirmarlo, recuerda primero la regla de actualización:

$$\Delta w_{ij} = -\alpha \frac{\partial E}{\partial w_{ij}}$$

Entonces $\mu_E$ sea el error medio para un conjunto de datos de tamaño $n$ a lo largo de una época. La suma del error es entonces $n\mu_E$ y porque $n$ no depende de $w$ Esto es así:

$$\Delta w_{ij} = -\alpha \frac{\partial (n\mu)}{\partial w_{ij}}= -\alpha n\frac{\partial \mu}{\partial w_{ij}}$$

En cuanto a su segunda pregunta, la frase "acumulando los pesos delta" implicaría que uno de estos métodos retiene las actualizaciones de los pesos. Esto no es así: El aprendizaje por lotes acumula error . Sólo hay una, única $\Delta w$ vector en una época determinada. (Su código pseudocódigo omite el paso de actualización de las ponderaciones tras lo cual se puede descartar $\Delta w$ .)

1voto

Kage Puntos 21

Las dos respuestas son equivalentes. Yo personalmente lo consideraría un error medio en lugar de la suma. Pero recuerda que el descenso por gradiente tiene un parámetro llamado tasa de aprendizaje, y que sólo se resta una parte del gradiente del error. Así que si el error se define como total o medio puede compensarse cambiando la tasa de aprendizaje.

1voto

Henryz Puntos 599

Alguien explicó como; El tamaño del lote es un hiperparámetro que define el número de muestras a trabajar antes de actualizar los parámetros del modelo interno.

Piense en un lote como un bucle for que itera sobre una o más muestras y realiza predicciones. Al final del lote, las predicciones se comparan con las variables de salida esperadas y se calcula un error. A partir de este error, el algoritmo de actualización se utiliza para mejorar el modelo, por ejemplo, para moverse hacia abajo a lo largo del gradiente de error.

Un conjunto de datos de entrenamiento puede dividirse en uno o varios lotes.

Cuando todas las muestras de entrenamiento se utilizan para crear un lote, el algoritmo de aprendizaje se denomina descenso de gradiente por lotes. Cuando el lote tiene el tamaño de una muestra, el algoritmo de aprendizaje se denomina descenso de gradiente estocástico. Cuando el tamaño del lote es superior a una muestra e inferior al tamaño del conjunto de datos de entrenamiento, el algoritmo de aprendizaje se denomina descenso por gradiente de minilotes.

Más información Diferencia entre un lote y una época en una red neuronal

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