2017-05-12 4 views
0

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

0

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.