Integraler i sannolikhet: väntevärde
Kunna beräkna väntevärde och varians för kontinuerliga fördelningar.
Förkunskaper
Intuition
För en diskret fördelning är väntevärdet en summa: E[X] = Σ x·P(x). För en kontinuerlig fördelning blir summan en integral:
Samma idé: varje värde vägs med sin sannolikhetstäthet.
Variansen mäter spridningen:
Den andra formen är nästan alltid lättare att räkna med.
Formellt
Likformig på [a, b]: , , .
Exponentiell med parameter λ: för , , .
Normal: , .
Linjäritet — den mest använda egenskapen: gäller alltid, även när X och Y är beroende. Variansen är däremot inte linjär: Den sista termen försvinner bara om X och Y är okorrelerade.
Kopplingen till ML: varje loss-funktion är ett väntevärde över datafördelningen, . Vi kan inte beräkna integralen — vi skattar den med ett stickprov, vilket är exakt vad en minibatch är. Att av minibatch-gradienten är den sanna gradienten (obiased) är hela grunden för att SGD fungerar.
Kod
import numpy as np
from scipy import integrate
# Exponentiell med lambda = 2: E[X] = 0,5, Var = 0,25
p = lambda x: 2 * np.exp(-2 * x)
E = integrate.quad(lambda x: x * p(x), 0, np.inf)[0]
E2 = integrate.quad(lambda x: x**2 * p(x), 0, np.inf)[0]
print(round(E, 4), round(E2 - E**2, 4)) # 0.5 0.25
# Monte Carlo — samma svar utan att lösa integralen
rng = np.random.default_rng(0)
x = rng.exponential(scale=0.5, size=200_000)
print(round(x.mean(), 4), round(x.var(), 4)) # 0.4997 0.2494
# Minibatch-gradienten är en obiased skattning av den sanna
def sann_gradient(data, theta):
return np.mean([grad(d, theta) for d in data], axis=0)
def minibatch_gradient(data, theta, bs, rng):
return np.mean([grad(d, theta) for d in rng.choice(data, bs, replace=False)], axis=0)
# E[minibatch_gradient] == sann_gradient → därför konvergerar SGD
Behärskning innebär
- Beräknar väntevärde och varians för kontinuerliga fördelningar
- Kopplar integralen till Monte Carlo-skattning
- Använder linjäritet
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Wikipedia — Väntevärde (CC BY-SA 4.0) — CC BY-SA 4.0
- Dive into Deep Learning (CC BY-SA 4.0) — CC BY-SA 4.0