8.1 Kockázat, mintavétel és baseline

8.1.1 Cél, előismeret és induló kérdés

Ebben az alfejezetben két, gyakran összemosott mennyiséget választunk szét: azt a hibát, amelyet a modell a véges tanítómintán mutat, és azt, amelyet a teljes adateloszláson várunk. Az olvasó az 5.2. Várható érték, variancia és likelihood alfejezetből ismeri a várható értéket, az 5.4. Függő képek, seedek és resampling alfejezetből a független és azonos eloszlású mintavételt, a 7.1. Entrópia, cross-entropy és KL alfejezetből pedig a loss fogalmát; a 4.1. Függvény, határérték és derivált alfejezetben bevezetett függvénynyelvet most a modell mint hypothesis leírására használjuk. A 6.4. Momentum és adaptív optimizálók alfejezetben tárgyalt gradienslépés egy konkrét empirikus kockázat csökkentésére szolgál, ezért annak pontos definíciója előfeltétel.

Induló kérdés: egy osztályozó 0 hibát ér el a 240 képből álló tanítóhalmazon. Mennyit mondhatunk ebből arról a hibáról, amelyet a következő, még nem látott képen várunk? A rövid válasz: önmagában nagyon keveset; ezt formalizáljuk.

8.1.2 Hypothesis és modell

Legyen az inputtér 𝒳\mathcal X és a célhalmaz 𝒴\mathcal Y. Képosztályozásban 𝒳=ℝ1×24×24\mathcal X=\mathbb R^{1\times 24\times 24}, 𝒴={0,1,2}\mathcal Y=\{0,1,2\} a GlyphLab három orientációjára. Egy hypothesis (hipotézis) egy

h:𝒳→𝒴 h:\mathcal X\to\mathcal Y

függvény, a modell előrejelzési szabálya. A hipotézis lehet közvetlen osztálydöntés, de neurális háló esetén a háló először z=fθ(x)z=f_\theta(x) logitot számol, és a döntés

hθ(x)=argmaxk∈{0,…,K−1}zk. h_\theta(x)=\arg\max_{k\in\{0,\ldots,K-1\}} z_k.

Itt θ\theta a paraméterek összessége. A tanuló algoritmus egy ℋ\mathcal H hypothesis space-ból (hipotézisosztályból) választ; például egy rögzített architektúra összes lehetséges θ\theta paraméterezése egy paraméterezett ℋΘ={hθ:θ∈Θ}\mathcal H_\Theta=\{h_\theta:\theta\in\Theta\} halmazt ad.

A megfigyelési pár (x,y)∈𝒳×𝒴(x,y)\in\mathcal X\times\mathcal Y oszlopvektor-jellegű absztrakt objektum; batchelt feldolgozásban X∈ℝN×1×24×24X\in\mathbb R^{N\times 1\times 24\times 24}, y∈{0,1,2}Ny\in\{0,1,2\}^N a JELOLESEK-ben rögzített NCHW, illetve int64 konvenció szerint.

8.1.3 Populációs kockázat

Tegyük fel, hogy a megfigyelési párok egy valódi, ismeretlen PP együttes eloszlásból származnak. Legyen

ℓ:𝒴×𝒴→[0,B] \ell:\mathcal Y\times\mathcal Y\to[0,B]

egy korlátos loss, azaz ℓ(ŷ,y)\ell(\hat y,y) a hh által adott ŷ\hat y előrejelzés hibája, ha a valódi cél yy. A population risk (populációs kockázat, általánosítási hiba) a modell várható hibája a teljes eloszláson:

R(h)=𝔼(x,y)∼P[ℓ(h(x),y)]. R(h)=\mathbb E_{(x,y)\sim P}\left[\ell(h(x),y)\right].

A PP alsó index azt jelenti, hogy a várható értéket a (x,y)(x,y) együttes eloszlás szerint vesszük. A 0-1 loss ℓ(ŷ,y)=𝟏[ŷ≠y]\ell(\hat y,y)=\mathbf 1[\hat y\ne y] esetén R(h)=P(h(x)≠y)R(h)=P(h(x)\ne y) éppen a félreosztályozás valószínűsége, ezért R(h)∈[0,1]R(h)\in[0,1]. A BB korlát minden későbbi koncentrációs állításban explicit feltétel; a stabilan számított cross-entropy loss gyakorlatban véges, de elméletileg nem korlátos, ezért a tanuláselméleti állításokban általában a 0-1 loss-t használjuk célmetrikaként, míg a gradienses tanítás a surrogate, például cross-entropy célt minimalizálja.

A populációs kockázat nem ismert, mert PP-t nem ismerjük. Ennek ellenére ez az a mennyiség, amelyet a modell használatakor szeretnénk kicsinek; a tanítás során csak egy véges mintát látunk.

8.1.4 Empirikus kockázat

Legyen

S=((x1,y1),…,(xN,yN)) S=\left((x_1,y_1),\ldots,(x_N,y_N)\right)

egy NN elemű tanítóminta. Az empirical risk (empirikus kockázat, tanítóhiba) a mintaátlag:

RN(h;S)=1N∑i=1Nℓ(h(xi),yi). R_N(h;S)=\frac{1}{N}\sum_{i=1}^{N}\ell(h(x_i),y_i).

Ez a populációs kockázat mintából számított becslője; a 7.4. Numerikus stabilitás és jelentésmegőrző implementáció alfejezetben tárgyalt stabil loss-implementáció ezt az átlagot számolja. A PyTorch CrossEntropyLoss alapértelmezett reduction='mean' módja a batchre éppen a fenti átlagot adja; a reduction='sum' a ∑i=1N\sum_{i=1}^N tagot.

Ha SS elemei függetlenek és azonos eloszlásúak, akkor az empirikus kockázat torzítatlan becslője a populációs kockázatnak. Valóban, a várható érték linearitása és az azonos eloszlás miatt

𝔼S[RN(h;S)]=1N∑i=1N𝔼(xi,yi)∼P[ℓ(h(xi),yi)]=1N∑i=1NR(h)=R(h). \mathbb E_S\left[R_N(h;S)\right] =\frac{1}{N}\sum_{i=1}^N \mathbb E_{(x_i,y_i)\sim P}\left[\ell(h(x_i),y_i)\right] =\frac{1}{N}\sum_{i=1}^N R(h) =R(h).

A torzítatlanság azonban nem jelenti azt, hogy egy konkrét mintán a kettő közel van egymáshoz; ehhez koncentrációs állítás kell.

8.1.5 IID és a koncentrációs állítás

Azt mondjuk, hogy az SS minta iid (independent and identically distributed), ha az (xi,yi)(x_i,y_i) párok függetlenek, és mindegyikük eloszlása PP. A GlyphLab szerződésben a független mintavételi egység a scene_id: ha egy jelenet két nézete is bekerül a mintába, a képek nem függetlenek, ezért a jelenetek számát kell a minta effektív méretének tekinteni. A jeleneten belüli korreláció és a jelenetalapú bootstrap elemzése az 5.4. Függő képek, seedek és resampling alfejezetben szerepel.

A felhasznált koncentrációs állítás a Hoeffding-korlát. Kimondjuk az általános alakot, amely független, de nem feltétlenül azonos eloszlású változókra is érvényes.

Tétel (Hoeffding, [P27] alapján). Legyenek Z1,…,ZNZ_1,\ldots,Z_N független valószínűségi változók, ahol majdnem biztosan ai≤Zi≤bia_i\le Z_i\le b_i minden ii-re, és legyen Z‾=1N∑i=1NZi\bar Z=\frac1N\sum_{i=1}^N Z_i. Ekkor minden ϵ>0\epsilon>0 esetén

P(Z‾−𝔼[Z‾]≥ϵ)≤exp(−2N2ϵ2∑i=1N(bi−ai)2), P\left(\bar Z-\mathbb E[\bar Z]\ge \epsilon\right) \le \exp\left(-\frac{2N^2\epsilon^2}{\sum_{i=1}^{N}(b_i-a_i)^2}\right),

és ugyanez az ellenkező irányú eltérésre is teljesül. A két irányt uniókorláttal összevonva

P(|Z‾−𝔼[Z‾]|≥ϵ)≤2exp(−2N2ϵ2∑i=1N(bi−ai)2). P\left(\left|\bar Z-\mathbb E[\bar Z]\right|\ge \epsilon\right) \le 2\exp\left(-\frac{2N^2\epsilon^2}{\sum_{i=1}^{N}(b_i-a_i)^2}\right).

Bizonyítási háttér. A koncentrációs egyenlőtlenség átvett tétel [P27], amelynek teljes bizonyítását itt nem vezetjük le. A 8.2. Véges hipotézisosztály egyenletes korlátja alfejezet a tételt felhasználva, önálló uniókorlátos levezetéssel építi fel a véges hipotézisosztály egyenletes korlátját.

A kockázatbecslésre alkalmazva legyen Zi=ℓ(h(xi),yi)Z_i=\ell(h(x_i),y_i) egy rögzített h∈ℋh\in\mathcal H esetén. Ekkor Z‾=RN(h;S)\bar Z=R_N(h;S) és 𝔼[Z‾]=R(h)\mathbb E[\bar Z]=R(h). Ha a loss a [0,1][0,1] intervallumba esik, például 0-1 loss esetén, akkor bi−ai=1b_i-a_i=1 minden ii-re, tehát

P(|RN(h;S)−R(h)|≥ϵ)≤2e−2Nϵ2. P\left(\left|R_N(h;S)-R(h)\right|\ge \epsilon\right) \le 2e^{-2N\epsilon^2}.

Ez a következmény csak egyetlen, a mintavétel előtt rögzített hh-ra érvényes. Ha a hh-t ugyanabból a mintából választjuk, mint amelyen a hibát mérjük, az ZiZ_i változók már nem függetlenek a választástól, és a fenti korlát nem alkalmazható. Ez a megkülönböztetés motiválja a 8.2. Véges hipotézisosztály egyenletes korlátja uniókorlátját.

8.1.6 Baseline

A baseline olyan egyszerű referenciahipotézis, amelyhez a modell teljesítményét hasonlítjuk, és amely nem használ bonyolult tanulást. Gyakori változatok:

A baseline populációs kockázatánál a modellnek jobbnak kell lennie ahhoz, hogy azt állíthassuk, a modell megtanult valamit az adatról. A GlyphLab három kiegyensúlyozott osztályán a tanító gyakorisági baseline empirikus hibája körülbelül 2/32/3, ezért egy 0.5 hibájú modell sem feltétlenül jó. A baseline és a modell összehasonlításának statisztikai korrektségéhez ugyanazt a splitet és ugyanazt a megfigyelési egységet kell használni.

8.1.7 Distribution shift

Azt mondjuk, hogy distribution shift áll fenn, ha a tanító- és a felhasználási eloszlás különbözik: Ptr≠PteP_{tr}\ne P_{te}. A populációs kockázat mindig az adott használati eloszlásra vonatkozik; a tanító eloszláson kicsi R(h)R(h) nem garantál kicsi kockázatot a shiftelt eloszláson. Három gyakori eset:

A GlyphLab corrupted_test.npy tesztje a rögzített tiszta tesztképekhez képest hozzáadott zajt és fényességgradienst tartalmaz; ez egy ellenőrzött, címkézett covariate-shift-szerű próba. A két teszt ugyanazon scene/view párokat használja, ezért összevetésük páros. A shiftelt tesztet kizárólag a végleges modell kiválasztása után értékeljük, és abból nem választunk hiperparamétert.

8.1.8 Eredeti kézi kis példa

Legyen 𝒳={a,b,c}\mathcal X=\{a,b,c\}, 𝒴={0,1}\mathcal Y=\{0,1\}, a valódi együttes eloszlás pedig az alábbi táblázat szerinti.

(x,y)(x,y) P(x,y)P(x,y)
(a,0)(a,0) 0.2
(a,1)(a,1) 0.1
(b,0)(b,0) 0.3
(b,1)(b,1) 0.2
(c,0)(c,0) 0.1
(c,1)(c,1) 0.1

Az eloszlás összege 0.2+0.1+0.3+0.2+0.1+0.1=10.2+0.1+0.3+0.2+0.1+0.1=1. Tekintsük a

h(a)=0,h(b)=1,h(c)=0 h(a)=0,\qquad h(b)=1,\qquad h(c)=0

hipotézist és a 0-1 losst. A populációs kockázat a hibás cellák valószínűségeinek összege:

R(h)=P(a,1)+P(b,0)+P(c,1)=0.1+0.3+0.1=0.5. R(h)=P(a,1)+P(b,0)+P(c,1)=0.1+0.3+0.1=0.5.

Legyen most egy N=5N=5 elemű iid minta

S=((a,0),(b,1),(b,0),(c,1),(a,1)). S=((a,0),(b,1),(b,0),(c,1),(a,1)).

A lossértékek rendre 0,0,1,1,10,0,1,1,1, tehát

R5(h;S)=0+0+1+1+15=0.6. R_5(h;S)=\frac{0+0+1+1+1}{5}=0.6.

A megfigyelt eltérés |0.6−0.5|=0.1|0.6-0.5|=0.1. A Hoeffding-következmény szerint ϵ=0.2\epsilon=0.2 mellett a felső korlát

2e−2⋅5⋅0.22=2e−0.4≈1.3406, 2e^{-2\cdot 5\cdot 0.2^2}=2e^{-0.4}\approx 1.3406,

amely triviális, hiszen valószínűség nem lehet 1-nél nagyobb. Az ϵ=0.5\epsilon=0.5 választással

2e−2⋅5⋅0.52=2e−2.5≈0.1641. 2e^{-2\cdot 5\cdot 0.5^2}=2e^{-2.5}\approx 0.1641.

Tehát 0.5-nél nagyobb eltérés valószínűsége legfeljebb 0.164; a megfigyelt 0.1 eltérés konzisztens ezzel. A példa azt is mutatja, hogy kis NN-nél a korlát nagyon gyenge, és csak nagy mintán válik informatívvá.

8.1.9 Labor: train/test hiba szimuláció

A labor egy kontrollált szintetikus feladaton rajzolja meg a tanító- és teszthibát több tanítóminta-méretre. A feladat egydimenziós: X∼Uniform[−2,2]X\sim\mathrm{Uniform}[-2,2] és

P(Y=1∣X=x)=σ(2x),σ(z)=11+e−z. P(Y=1\mid X=x)=\sigma(2x),\qquad \sigma(z)=\frac{1}{1+e^{-z}}.

A Bayes-osztályozó h*(x)=𝟏[x>0]h^*(x)=\mathbf 1[x>0], és a Bayes-kockázat 𝔼[min(P(Y=1∣X),1−P(Y=1∣X))]\mathbb E[\min(P(Y=1\mid X),1-P(Y=1\mid X))]. A modell egy küszöbösztályozó hθ(x)=𝟏[x>θ]h_\theta(x)=\mathbf 1[x>\theta], ahol θ\theta-t a tanítóminta 0-1 hibájának minimalizálásával választjuk. Ez egy tanuló algoritmus: az empirikus kockázat minimalizálása a küszöbök véges jelölthalmazán. A populációs kockázatot egy nagy, független Nte=20000N_{te}=20000 elemű mintán közelítjük.

Munkakönyvtár: lab/. Futtatási parancs: python n029_simulation.py. A kód CPU-n fut, NumPy float64 alapértelmezéssel; GPU nem szükséges.

# lab/n029_simulation.py
import numpy as np

rng = np.random.default_rng(20261020)

def p_y1(x: np.ndarray) -> np.ndarray:
    return 1.0 / (1.0 + np.exp(-2.0 * x))

def sample(n: int, rng: np.random.Generator):
    x = rng.uniform(-2.0, 2.0, size=n)
    y = (rng.random(size=n) < p_y1(x)).astype(np.int64)
    return x, y

def loss01(yhat: np.ndarray, y: np.ndarray) -> float:
    return float(np.mean(yhat != y))

def best_threshold(x: np.ndarray, y: np.ndarray):
    order = np.argsort(x)
    xs, ys = x[order], y[order]
    best_t = -np.inf
    best_loss = float(np.mean(ys == 0))  # mindent 1-nek mondunk
    loss_all0 = float(np.mean(ys == 1))  # mindent 0-nak mondunk
    if loss_all0 < best_loss:
        best_loss = loss_all0
        best_t = np.inf
    for i in range(len(xs) - 1):
        t = 0.5 * (xs[i] + xs[i + 1])
        yhat = (xs > t).astype(np.int64)
        l = float(np.mean(yhat != ys))
        if l < best_loss:
            best_loss = l
            best_t = t
    return best_t, best_loss

sizes = [10, 20, 50, 100, 200, 500]
reps = 200
Xtest, ytest = sample(20_000, rng)
bayes_risk_est = float(np.mean(np.minimum(p_y1(Xtest), 1.0 - p_y1(Xtest))))
print(f"bayes_risk_est = {bayes_risk_est:.4f}")
for n in sizes:
    train_errs = []
    test_errs = []
    for _ in range(reps):
        Xtr, ytr = sample(n, rng)
        t, _ = best_threshold(Xtr, ytr)
        yhat_tr = (Xtr > t).astype(np.int64)
        yhat_te = (Xtest > t).astype(np.int64)
        train_errs.append(loss01(yhat_tr, ytr))
        test_errs.append(loss01(yhat_te, ytest))
    print(f"N={n:4d}  train_err={np.mean(train_errs):.4f} "
          f"test_err={np.mean(test_errs):.4f} "
          f"test_sd={np.std(test_errs):.4f}")

Szemléltető eredményértelmezés, nem mért futás. A számok a seed mellett várható szemléltető mintázatot jelölik; tényleges értéküket önálló futtatás igazolhatja. Azt várjuk, hogy a train_err általában kisebb, mint a test_err, és a rés NN növekedésével csökken; a test_err a bayes_risk_est környékére konvergál. A train_err azért optimista, mert a θ\theta küszöböt ugyanazon a mintán illesztettük, amelyen a hibát számoljuk. A Hoeffding-korlát ebben a laborban nem érvényes szigorúan a train-test résre, mert a hypothesis a tanítómintától függ; az adaptív választás kezelését a következő alfejezet adja.

8.1.10 Feladatok

F1 — fogalmi, nehézség 1. Előfeltétel: a fenti definíciók. Magyarázd el saját szavakkal, miért nem következik a RN(h;S)=0R_N(h;S)=0 megfigyelésből az, hogy R(h)=0R(h)=0. Adj egy konkrét kis ellenpéldát a kézi példa eloszlásán. Átadandó: legfeljebb fél oldalas magyarázat és a h′h' hipotézis, a hozzá tartozó R5R_5 és RR értékekkel.

F2 — levezetési, nehézség 2. Előfeltétel: a várható érték linearitása. Vezesd le lépésről lépésre a torzítatlansági egyenlőséget RN(h;S)R_N(h;S)-re, és nevezd meg pontosan, melyik lépés használja az azonos eloszlást, és melyik a függetlenséget. Átadandó: a három egyenlőségből álló levezetés, minden lépés indoklásával.

F3 — implementációs, nehézség 1. Előfeltétel: a labor kódja. Egészítsd ki a labor ciklusát úgy, hogy minden NN-re kiírja a Hoeffding-korlát 2e−2Nϵ22e^{-2N\epsilon^2} értékét ϵ=0.05\epsilon=0.05 mellett, és a 200 ismétlésből becsült annak a relatív gyakoriságát, hogy a ||train_err−-test_err|| eltérés legalább ϵ\epsilon. Átadandó: a módosított kód és a futtatási parancs, valamint annak indoklása, miért nem értelmezhető ez a gyakoriság a Hoeffding-korlát érvényességének ellenőrzéseként az adaptív küszöbválasztás miatt.

F4 — hibakeresési, nehézség 2. Előfeltétel: a labor kódja. Tekintsd az alábbi módosítást:

Xall = np.concatenate([Xtr, Xtest])
yall = np.concatenate([ytr, ytest])
t, _ = best_threshold(Xall, yall)
yhat_te = (Xtest > t).astype(np.int64)
test_errs.append(loss01(yhat_te, ytest))

Mi a hiba, mi a következménye a train/test összehasonlításra, és hogyan javítanád? Átadandó: a hiba oka, következménye, a javított kódrészlet és az ellenőrzés módja.

F5 — kísérlettervezési/transzfer, nehézség 2. Előfeltétel: a distribution shift definíciója. Tervezz szimulációs kísérletet arra a kérdésre, hogy a tanító eloszláson tanított küszöbosztályozó hibája nő-e, ha a teszt XX eloszlását Uniform[−2,4]\mathrm{Uniform}[-2,4]-re, a P(Y=1∣X=x)=σ(2x)P(Y=1\mid X=x)=\sigma(2x) feltételes eloszlást változatlanul hagyva toljuk el. Adj protokollt, baseline-t, metrikát és következtetési határt. Átadandó: egy lehetséges terv a fenti elemekkel, a szimuláció mint megfigyelési egységével, legalább 200 ismétléssel.

8.1.11 Megoldások és indoklás

F1. Az empirikus kockázat egyetlen véges mintán vett átlag, a populációs kockázat az egész eloszláson vett várható érték. A RN=0R_N=0 csak azt jelenti, hogy a modell a mintaelemeket helyesen osztályozza. Olyan eloszláson, ahol PP pozitív valószínűséget ad más celláknak, létezhet olyan h′h', amely a mintán tökéletes, de a populációs kockázata pozitív. A kézi példa eloszlásán legyen

h′(a)=0,h′(b)=1,h′(c)=1, h'(a)=0,\qquad h'(b)=1,\qquad h'(c)=1,

és a minta S′=((a,0),(b,1),(b,1),(c,1),(a,0))S'=((a,0),(b,1),(b,1),(c,1),(a,0)). Ekkor R5(h′;S′)=0R_5(h';S')=0, mert mind az öt elemet eltalálja, de

R(h′)=P(a,1)+P(b,0)+P(c,0)=0.1+0.3+0.1=0.5, R(h')=P(a,1)+P(b,0)+P(c,0)=0.1+0.3+0.1=0.5,

mert a cc bemenetű 0 címkéjű eseteket és az aa bemenetű 1 címkéjű eseteket hibázza. Az ellenőrzés: az öt mintaelem mindegyikére h′(xi)=yih'(x_i)=y_i, a populációs összeg a három hibás cella valószínűsége.

F2. Legyen Zi=ℓ(h(xi),yi)Z_i=\ell(h(x_i),y_i). A definícióból

𝔼S[RN(h;S)]=𝔼S[1N∑i=1NZi]=1N∑i=1N𝔼S[Zi]. \mathbb E_S\left[R_N(h;S)\right] =\mathbb E_S\left[\frac{1}{N}\sum_{i=1}^N Z_i\right] =\frac{1}{N}\sum_{i=1}^N \mathbb E_S[Z_i].

Az első egyenlőség a definíció, a második a várható érték linearitása; ez csak az NN összeg tagjainak véges voltát használja. Az azonos eloszlás miatt minden ii-re 𝔼S[Zi]=R(h)\mathbb E_S[Z_i]=R(h), mert minden (xi,yi)(x_i,y_i) pár eloszlása ugyanaz a PP. Tehát

1N∑i=1N𝔼S[Zi]=1N∑i=1NR(h)=R(h). \frac{1}{N}\sum_{i=1}^N \mathbb E_S[Z_i] =\frac{1}{N}\sum_{i=1}^N R(h) =R(h).

A függetlenséget ez a levezetés nem használja; a torzítatlansághoz elegendő az azonos eloszlás, a függetlenség a koncentrációs állításhoz kell. Alakellenőrzés: RNR_N skalár, a várható értéke skalár, a jobb oldal R(h)∈ℝR(h)\in\mathbb R; a [0,B][0,B] loss miatt a várható érték véges.

F3. A ciklus belsejébe illeszthető:

eps = 0.05
bound = 2.0 * np.exp(-2.0 * n * eps**2)
exceed = float(np.mean(np.abs(np.array(train_errs) - np.array(test_errs)) >= eps))
print(f"N={n:4d}  Hoeffding_bound={bound:.4f}  excess_freq={exceed:.4f}")

A futtatás parancsa változatlan: python n029_simulation.py. A korlát egy rögzített hh-ra vonatkozó állítás; itt a küszöböt a train mintából választjuk, ezért hh a minta függvénye. Az excess_freq így nem a Hoeffding-korlát ellenőrzése, hanem csak leíró statisztika az adaptív választású hipotézis train-test eltéréséről. A korrekt egyenletes állítás a 8.2. Véges hipotézisosztály egyenletes korlátja alfejezetben következik véges ℋ\mathcal H-ra.

F4. A hiba az, hogy a küszöböt a train és a test minta egyesített halmazán választjuk. Ennek következménye, hogy a test adat befolyásolja a modellt, ezért a test_err már nem egy előre nem látott mintán mért hiba: optimistán torzított, és nem méri az általánosítást. A javítás az, hogy a küszöböt kizárólag a train mintán kell választani, és a test mintát csak a választás után, egyszer kiértékelni. A javított kód eredeti formája a laborban szerepel; a Xall/yall összefűzést törölni kell. Az ellenőrzés: ugyanazon seed mellett a javított test_err várhatóan nagyobb, mint a hibás változaté, mert utóbbi a test mintából is tanul.

F5. Egy lehetséges terv. Kérdés: a tanító eloszláson tanított küszöb hibája nő-e a shiftelt teszteloszláson? Adat: a tanító minták a labor generátorából, X∼Uniform[−2,2]X\sim\mathrm{Uniform}[-2,2]; a shiftelt teszt X∼Uniform[−2,4]X\sim\mathrm{Uniform}[-2,4], ugyanazzal a σ(2x)\sigma(2x) feltételes eloszlással. Megfigyelési egység: egy független minta; a shiftelt teszt egy nagy, független Nte=20000N_{te}=20000 elemű minta. Split: a tanítóminta mérete N=200N=200, 200 ismétlés. Baseline: a shiftelt tesztmintán a gyakorisági osztályozó hibája; mivel a shift miatt az 1 osztály aránya nagyobb lesz, a baseline hibája változik, ezért mindkét eloszlásra külön számítjuk. Tényező: shiftelt versus eredeti teszteloszlás. Metrika: 0-1 hiba a nagy tesztmintán. Eljárás: minden ismétlésben tanítsuk a küszöböt a train mintán, értékeljük ki az eredeti és a shiftelt tesztmintán, és számoljuk ki a két hiba átlagát és szórását a 200 ismétlésből. Következtetési határ: mivel a shiftet mesterségesen ismerjük, a hibakülönbség ok-okozatilag a shiftnek tulajdonítható, de valós adatokon a shift detektálása külön feladat; az eredmény nem termelési robusztussági igazolás.

8.1.12 Tipikus tévedés és ellenpélda

Gyakori tévedés, hogy a tanítóhiba csökkenése önmagában az általánosítás javulása. Az F1 ellenpéldája ezt cáfolja: a h′h' hipotézis a mintán 0 hibát ér el, miközben populációs kockázata 0.5. A tanítóhiba csökkenése csak azt jelenti, hogy a modell egyre jobban illeszkedik a véges mintához; a populációs kockázat változásához a mintától független adaton vagy elméleti korláton keresztül kell bizonyítékot gyűjteni. A kettő összekeverése ahhoz a hibás következtetéshez vezet, hogy egy nagyobb kapacitású háló, amely a train hibát nullára csökkenti, automatikusan jobb modell.

8.1.13 Önellenőrzés és visszahívás

Ellenőrizd, hogy meg tudod-e válaszolni az alábbiakat. Mi a R(h)R(h) és RN(h;S)R_N(h;S) definíciója, és melyik ismert a gyakorlatban? Mi a Hoeffding-korlát három feltétele, és miért nem alkalmazható adaptív modellválasztásra? Mi a különbség covariate shift és label shift között? Ha a GlyphLab jeleneteiből képenként veszel iid mintát, milyen feltétel sérül az 5.4. Függő képek, seedek és resampling szerint?

Visszahívás: a loss fogalmát és a cross-entropy célfüggvényt a 7.1. Entrópia, cross-entropy és KL vezette be; itt a 0-1 loss mint célmetrika különül el a surrogate losstól. A 4.1. Függvény, határérték és derivált alfejezetben definiált függvény és paraméterezett függvénycsalád fogalma adja a hypothesis nyelvét; a gradienslépés a 6.4. Momentum és adaptív optimizálók alfejezetből egy empirikus kockázatot csökkentő eljárás.

8.1.14 Rövid összefoglaló

A populációs kockázat a modell várható hibája a teljes, ismeretlen adateloszláson, az empirikus kockázat pedig ugyanezen loss véges tanítómintán vett átlaga. IID minta esetén az empirikus kockázat torzítatlan becslő, de egy konkrét mintán jelentősen eltérhet; a Hoeffding-korlát rögzített hipotézisre számszerűsíti az eltérés valószínűségét, adaptív modellválasztásra azonban nem érvényes. A baseline olyan egyszerű referencia, amelyhez a modellt viszonyítjuk; distribution shift esetén a tanító eloszláson mért jó kockázat nem garantálja a használati eloszláson mért jót. A labor szimulációja a train-test rést és annak mintaméret-függését szemlélteti.

8.1.15 Következő alkalmazás

A 8.2. Véges hipotézisosztály egyenletes korlátja alfejezetben a Hoeffding-korlátból uniókorláttal egyenletes, minden h∈ℋh\in\mathcal H-ra egyszerre érvényes állítást vezetünk le véges hipotézisosztályra; ez adja az adaptív modellválasztás első korrekt hibakorlátját.

8.1.16 Források