← Lesson
Loss Functions
Joeven
Run
Reset
Python loads on first run
import math def mse(preds, targets): n = len(preds) return sum((p - t) ** 2 for p, t in zip(preds, targets)) / n print("MSE all-right", mse([2.0, 4.0], [2.0, 4.0])) print("MSE a bit off", mse([2.2, 3.5], [2.0, 4.0])) print("MSE way off", mse([9.0, 0.0], [2.0, 4.0])) def softmax(logits): m = max(logits) exps = [math.exp(x - m) for x in logits] total = sum(exps) return [e / total for e in exps] def cross_entropy(logits, target_index): probs = softmax(logits) p = max(probs[target_index], 1e-12) return -math.log(p), probs for logits, name in [ ([4.0, 0.1, 0.1], "confident-correct"), ([0.2, 0.2, 0.2], "unsure"), ([0.1, 0.1, 4.0], "confident-wrong"), ]: loss, probs = cross_entropy(logits, target_index=0) print(name, "probs", [round(p, 3) for p in probs], "loss", round(loss, 3))
Run to execute this in your browser. Nothing is sent to a server.