En SGD, je veux comprendre est le coût calculé pour toutes les lignes avant de mettre à jour le paramètre en allant à la ligne suivante ou le coût est calculé uniquement pour la ligne suivante avant la mise à jour des paramètres? Dans la descente de gradient stochastique, vous mettez à jour les paramètres à l'aide de lots.Est-ce que la fonction de coût pour le gradient de pente Stochasitc est calculée pour toutes les lignes ou seulement pour la rangée d'itération?
Répondre
Si votre ensemble d'apprentissage a N
exemples (= lignes), vous n'en utilisez que B
pour chaque mise à jour des paramètres, où B<=N
. Ces B
doivent être choisis au hasard parmi les exemples N
à chaque itération de la mise à jour des paramètres. (Choisir aléatoirement soit en choisissant avec substitution, en choisissant sans substitution, soit en mélangeant simplement l'ensemble d'entraînement à l'avance). Ainsi, vous calculez le gradient du coût en utilisant B
exemples à chaque fois. (remarquez que vous n'avez pas réellement besoin de calculer le coût - seulement son gradient). B
peut en particulier être égal à N
, et il peut également être égal à 1
(appelé apprentissage en ligne).
En outre, vous souhaitez parfois voir certaines métriques de l'apprentissage au cours du processus d'optimisation. Par exemple, vous voudrez peut-être voir de temps en temps la valeur du coût sur l'ensemble de la formation (cela peut aider à la condition de terminaison) ou voir la valeur du coût sur l'ensemble de la validation (par exemple surveillance pour s'assurer que vous ne sur-ajustement). Dans ces cas, vous pouvez vouloir calculer le coût (et non le gradient) sur l'ensemble des ensembles.