J'ai la formule suivante:En utilisant python et numpy pour calculer gradient de la fonction de perte régularisé
que je suis en train d'utiliser une fonction pour calculer le gradient de la fonction de perte régularisée. J'ai le dataSet
, qui est un tableau de [(x(1), t(1)), ..., (x(n), t(n))]
, et avec les données d'entraînement n = 15
.
Voici ce que j'ai à ce jour, sachant que la fonction de perte est le vector here.
def gradDescent(alpha, t, w, Z):
returned = 2 * alpha * w
y = []
i = 0
while i < len(dataSet):
y.append(dataSet[i][0] * w[i])
i+= 1
return(returned - (2 * np.sum(np.subtract(t, y)) * Z))
La question est, w
est toujours égal à (M + 1
) - alors que dans le dataSet
, t
est égal à 15
. Cela entraîne une multiplication hors limite. Est-ce que je calcule mal la formule? De l'aide?
Le problème avec ce que 'W' devient alors hors des limites , puisque 'w' est compris entre 1 et 15, alors que dataTrain est toujours 15. –
Pour être clair, W est un vecteur de dimension (15,1) et dataSet est un vecteur de dimension (15,2)? –
Et je ne suis pas sûr de ce que vous faites référence par dataTrain, ce n'est pas une variable définie dans le code que vous avez fourni. –