← Tous les exercices
Un pas de descente : nouveau = ancien − η × pente
Partie 3 · ★
La descente de gradient fait un pas dans le sens contraire de la pente, proportionnel à elle : nouveau paramètre = paramètre − η × pente. Le pas η (« éta ») vaut ici 3. Au départ (w = 0, b = 0), le gradient vaut (−0,333 ; 0), fourni par la fonction gradient.
Fais le premier pas pour w et pour b : tu dois arriver à w = 1 et b = 0, et la perte doit passer de 0,69 à 0,50.
def sigmoide(u): return 1 / (1 + math.exp(-u)) t = [1.5, 1.0, -0.5, -1.5, -1.0, 0.5] # température - 38 °C y = [1, 1, 1, 0, 0, 0] # pneumonie : 1 = oui, 0 = non def perte(w, b): a = [sigmoide(w * ti + b) for ti in t] p = [ai if yi == 1 else 1 - ai for ai, yi in zip(a, y)] return -sum(math.log(pi) for pi in p) / len(p) def gradient(w, b, e=1e-4): pw = (perte(w + e, b) - perte(w - e, b)) / (2 * e) pb = (perte(w, b + e) - perte(w, b - e)) / (2 * e) return pw, pb w, b, eta = 0.0, 0.0, 3 pw, pb = gradient(w, b) nouveau_w = w - ___ * pw nouveau_b = b - eta * ___ perte_avant = perte(w, b) perte_apres = perte(nouveau_w, nouveau_b)
Ctrl/⌘+Entrée