36.1 Állításból kísérleti terv

36.1.1 1. Cél, előismeret és induló kérdés

Ez az egység a 23.4. Hibaszeletek és alkalmazási határ alfejezetben bevezetett hibaszeletek, a 24.4. VI. ellenőrző pont: megbízható CNN-training alfejezetben rögzített tanítási csomag és a 35.4. Korlátok, eredet és döntési felelősség alfejezetben tárgyalt felelős korlátok után azt a módszertani lépést vizsgálja, amely megelőzi a tanítást: hogyan alakítunk egy kutatási állítást olyan kísérleti tervvé, amelyből a mérés után lektorálható következtetést lehet levonni. A hangsúly a preregisztrált helyi terv, az abláció és a zavaró tényező fogalmán van, nem egy új hálózati művelet bevezetésén.

Előismeret: az 5.4. Függő képek, seedek és resampling alfejezetből a scene-szintű statisztikai egység és a páros összehasonlítás, a 8.4. II. ellenőrző pont: korrekt tanulási állítás alfejezetből a független teszt és a modellválasztási ciklus, a 24.1. Tanulási görbe és hibadiagnózis alfejezetből a tanulási görbe diagnosztikai szerepe, a 32.1. Szekvenciamodell és változó hossz alfejezetből a maszkok mint előre rögzített információs csatornák, a 35.1. Saliency és Grad-CAM alfejezetből pedig a Grad-CAM súlyozási képlete.

Induló kérdés. Egy fejlesztő azt állítja: „A BatchNorm hozzáadása javította a CNN pontosságát a GlyphLabon, mert a teszt-accuracy 78%-ról 82%-ra nőtt.” Hányféle módon lehet ez az állítás hibás? Becslés: legalább három módon: (a) a tesztkészleten választott modellt, (b) a BatchNorm mellett a tanulási rátát is megváltoztatta, (c) egyetlen kedvező seedet jelentett, nem ismételt mérést. A helyes protokoll ezeket a csatornákat előre lezárja.

36.1.2 2. Fogalmak: hipotézis, abláció, zavaró tényező, preregisztrált terv, compute budget

Definíció (hipotézis). Kísérleti hipotézisnek nevezünk egy olyan, a mérés előtt rögzített állítást, amely (i) megnevezi a két összehasonlítandó konfigurációt AA és BB; (ii) megadja a kimeneti metrikát MM és annak aggregálási szintjét; (iii) megfogalmazza a várt irányt, például ΔM:=𝔼[M(B)]−𝔼[M(A)]>0\Delta M := \mathbb{E}[M(B)] - \mathbb{E}[M(A)] > 0. A 𝔼[⋅]\mathbb{E}[\cdot] itt a protokoll által definiált ismétlési eloszlásra (adatminta, tanítási seed, esetleg hardver) vonatkozik; nem egy meg nem figyelhető „igazi” eloszlásra. A cáfolhatóság feltétele, hogy létezzen olyan előre rögzített döntési szabály, amely a mért ΔM̂\Delta \hat M érték alapján a hipotézist elfogadja vagy elveti.

Definíció (abláció). Legyen a vizsgált konfiguráció C=(c1,c2,…,ck)C = (c_1, c_2, \dots, c_k) komponensek rendezett listája. Az ii-edik komponensre vonatkozó abláció a C−i=(c1,…,ci−1,ci+1,…,ck)C_{-i} = (c_1, \dots, c_{i-1}, c_{i+1}, \dots, c_k) konfiguráció, amelyben kizárólag cic_i hiányzik vagy változik; minden más komponens értéke bitre azonos a CC-beli értékkel. Az abláció tehát nem egyszerűen „két modell összehasonlítása”, hanem egyetlen különbség izolálása. Két dolgot kell megkülönböztetni. (a) A független zavaró tényezők — például a learning rate, az epoch-szám, a batchméret vagy az adat — nem változhatnak a két ág között; ha változnak, az már nem tiszta abláció. (b) A beavatkozás szükségszerű következményei viszont a beavatkozáshoz tartoznak: egy réteg vagy tanulható komponens eltávolítása vagy hozzáadása természetes módon megváltoztatja a paraméterszámot, és ez nem teszi érvénytelenné a komponens teljes hatásának ablációját. Ha az a kérdés, hogy a javulást a szerkezet vagy az extra paraméterkeret magyarázza, azt egy külön, opcionális kapacitásillesztett kontroll vizsgálja (például a hiányzó komponens paraméterkeretét máshová, szélesebb rétegbe tesszük). A seedek kezelése párosítási recept: az azonos seed-készlet mindkét ágon csökkenti a varianciát és párosított összehasonlítást tesz lehetővé, de az eltérő seedekkel végzett, ismételt kísérlet sem logikailag érvénytelen, csak párosítatlan és zajosabb.

Definíció (zavaró tényező). Zavaró tényezőnek (confound) nevezünk egy olyan uu változót, amely (i) együtt változik a vizsgált cic_i komponenssel, és (ii) önállóan is hat a MM kimenetre. Formálisan: ha M=g(ci,u)M = g(c_i, u) és Cov(ci,u)≠0\mathrm{Cov}(c_i, u) \ne 0 a kísérleti tervben, akkor a ΔM\Delta M megfigyelt különbség nem tulajdonítható egyértelműen cic_i-nek. A tanulási ráta, a modellkapacitás, a batch-méret és a seed mind tipikus confound.

Definíció (preregisztrált helyi terv). A helyi terv egy rövid, verziózott dokumentum, amelyet a futás előtt rögzítenek, és amely legalább az alábbi mezőket tartalmazza: kérdés; hipotézis; adat és split; kontroll/baseline; változó tényező; rögzített tényezők listája; metrika és statisztikai egység; döntési szabály; compute budget; ismert kockázatok és kiértékelési korlátok. A „helyi” jelző arra utal, hogy a terv a saját adatra, saját környezetre és saját erőforrás-korlátra vonatkozik; nem ígér általános benchmark-eredményt.

Definíció (compute budget). A compute budget a modellkereséshez előre rendelt számítási keret, például falidő, CPU-óra, batch-iterációk vagy epochok maximális száma. A budgetet azért kell előre rögzíteni, mert a korlátlan keresés a teszt- vagy akár a validációs halmaz túlhasználatához vezet: ha addig próbálgatunk, amíg a kívánt számot el nem érjük, a „győztes” eredmény a keresési folyamat, nem a modell tulajdonsága.

Mindegyik fogalom a GlyphLab szerződéséhez igazodik: a megfigyelési egység a scene_id, a train/val/test felosztás scene-szintű, a teszt csak a végleges modell kiválasztása után értékelhető egyszer. A corrupted_test.npy páros tesztjét különösen szigorúan védjük: annak kiértékelése utólagos célválasztás nélkül, kizárólag a befagyasztott modellen történhet.

36.1.3 3. Matematikai és empirikus állítás szétválasztása: a Grad-CAM példa

Ugyanabban a példában gyakran keveredik egy levezethető matematikai azonosság és egy mérést igénylő empirikus állítás. Válasszuk a 35.1. Saliency és Grad-CAM alfejezetből ismert Grad-CAM hőtérképet.

Matematikai állítás (lemma). Legyen A∈ℝK×H×WA\in\mathbb R^{K\times H\times W} egyetlen kép egy köztes rétegbeli aktivációs térképe, Ak,i,jA_{k,i,j} annak kk-adik csatornájának (i,j)(i,j)-edik pixele. Definiáljuk a csatornánkénti globális átlagot

Zk=1HW∑i=1H∑j=1WAk,i,j. Z_k = \frac{1}{HW}\sum_{i=1}^{H}\sum_{j=1}^{W} A_{k,i,j}.

Tegyük fel, hogy a cc osztály logitja ezen átlagok differenciálható függvénye: yc=gc(Z1,…,ZK)y^c = g_c(Z_1,\dots,Z_K). Ekkor a

qkc:=∑i=1H∑j=1W∂yc∂Ak,i,j q_k^c := \sum_{i=1}^{H}\sum_{j=1}^{W} \frac{\partial y^c}{\partial A_{k,i,j}}

mennyiségre fennáll

qkc=∂yc∂Zk. q_k^c = \frac{\partial y^c}{\partial Z_k}.

Bizonyítás. A többváltozós láncszabályt alkalmazzuk a yc=gc(Z1,…,ZK)y^c = g_c(Z_1,\dots,Z_K) összetett függvényre. Egy rögzített (k,i,j)(k,i,j) indexhármasra:

∂yc∂Ak,i,j=∑l=1K∂yc∂Zl⋅∂Zl∂Ak,i,j. \frac{\partial y^c}{\partial A_{k,i,j}} = \sum_{l=1}^{K} \frac{\partial y^c}{\partial Z_l}\cdot \frac{\partial Z_l}{\partial A_{k,i,j}}.

Mivel ZlZ_l definíció szerint a ll-edik csatorna pixeleinek átlaga, a ∂Zl/∂Ak,i,j\partial Z_l/\partial A_{k,i,j} parciális derivált értéke 1HW\frac{1}{HW}, ha l=kl=k, és 00, ha l≠kl\ne k. Így az összeg egyetlen tagra redukálódik:

∂yc∂Ak,i,j=1HW⋅∂yc∂Zk. \frac{\partial y^c}{\partial A_{k,i,j}} = \frac{1}{HW}\cdot\frac{\partial y^c}{\partial Z_k}.

Most összegezzük ezt az egyenlőséget i=1,…,Hi=1,\dots,H és j=1,…,Wj=1,\dots,W szerint:

∑i,j∂yc∂Ak,i,j=∑i,j1HW∂yc∂Zk=HWHW∂yc∂Zk=∂yc∂Zk. \sum_{i,j}\frac{\partial y^c}{\partial A_{k,i,j}} = \sum_{i,j} \frac{1}{HW}\frac{\partial y^c}{\partial Z_k} = \frac{HW}{HW}\frac{\partial y^c}{\partial Z_k} = \frac{\partial y^c}{\partial Z_k}.

A bal oldali összeg éppen qkcq_k^c, tehát az állítás teljesül. A 35.1. Saliency és Grad-CAM alfejezetben használt szabványos Grad-CAM-súly viszont a térbeli átlag: wkc=1HW∑i,j∂yc/∂Ak,i,j=qkc/(HW)w_k^c=\frac{1}{HW}\sum_{i,j}\partial y^c/\partial A_{k,i,j}=q_k^c/(HW). A két jelölés összekeverése HWHW-szoros skálahibát okoz. ▫\square

A lemma feltételei: a fejfüggvény gcg_c differenciálható a ZZ pontban, és a ZkZ_k átlagolás a teljes H×WH\times W térbeli tartományra vonatkozik. Nincs szükség arra, hogy a hálózat többi része lineáris legyen; csak arra, hogy a logit a kiválasztott réteg aktivációinak a csatornaátlagokon keresztül függvénye legyen. A bizonyítás tisztán analitikus, numerikus mérést nem igényel.

Empirikus állítás. Ugyanebben a példában az alábbi mondat már nem levezethető: „A Grad-CAM hőtérkép a modell döntése szempontjából fontos képrészletet lokalizálja.” Ez az állítás egy mérhető kapcsolatra vonatkozik a hőtérkép és a GlyphLab masks.npy maszkja között, például a binarizált hőtérkép és az előtér-maszk IoU-jára. Ennek igazolásához empirikus protokoll kell: rögzített modell, független teszt, metaadat, valamint kontroll. Az [P25] absztraktjában bemutatott sanity check gondolatmenet ide illik: ha a magyarázat valóban a megtanult döntési mechanizmust tükrözi, akkor a modellsúlyok véletlenszerűsítése után a lokalizációs metrikának érdemben romlania kell; ha nem romlik, a mért egyezés nem a tanult reprezentációt igazolja. Ez mérés, nem bizonyítás, és a kontroll nélkül az IoU-érték nem értelmezhető.

A két állítástípus elkülönítése tehát: lemma = feltételek és analitikus levezetés; empirikus állítás = protokoll, minta, split, metrika, kontroll és bizonytalansági határ.

36.1.4 4. Kézi példa és minimális kód

Tekintsünk egyetlen 1×2×21\times 2\times 2 méretű feature mapot (egy csatorna, K=1K=1, H=W=2H=W=2), és a lineáris fejet yc=2Zy^c = 2Z, ahol Z=14∑i,jA1,i,jZ=\frac14\sum_{i,j}A_{1,i,j}. A lemma szerint q1c=∂yc∂Z=2q_1^c = \frac{\partial y^c}{\partial Z} = 2, míg a Grad-CAM átlagolt súlya w1c=q1c/4=0,5w_1^c=q_1^c/4=0{,}5. A következő kód ezt középső differenciás numerikus ellenőrzéssel hasonlítja össze float64 pontossággal. A kódban található ellenőrzések a megadott analitikus értékekre vonatkoznak; a futási eredmény helyben reprodukálható.

import numpy as np

# munkakönyvtár: lab/ (saját ellenőrző szkript)
A = np.array([[[[1.0, 2.0],
                [3.0, 4.0]]]], dtype=np.float64)  # (1,1,2,2)

def logit(A):
    # y = 2 * (csatornánkénti térbeli átlag)
    return 2.0 * A.mean(axis=(2, 3), keepdims=False)

def numerical_grad(A, eps=1e-4):
    g = np.zeros_like(A)
    it = np.nditer(A, flags=['multi_index'])
    while not it.finished:
        idx = it.multi_index
        old = A[idx]
        A[idx] = old + eps
        yp = logit(A)[0, 0]
        A[idx] = old - eps
        ym = logit(A)[0, 0]
        A[idx] = old
        g[idx] = (yp - ym) / (2.0 * eps)
        it.iternext()
    return g

g_num = numerical_grad(A)
q_num = g_num.sum()   # GAP-fej deriváltja: sum_ij dY/dA_ij
w_num = g_num.mean()  # Grad-CAM: (1/HW)*sum_ij dY/dA_ij
print("GAP-fej deriváltja:", q_num)
print("Grad-CAM átlagolt súlya:", w_num)
assert abs(q_num - 2.0) < 1e-6, abs(q_num - 2.0)
assert abs(w_num - 0.5) < 1e-6, abs(w_num - 0.5)

Ellenőrzés. A középső differencia hibája O(ε2)O(\varepsilon^2), ezért ε=10−4\varepsilon=10^{-4} mellett az abszolút hiba 10−810^{-8} nagyságrendű; az 1e-6 tolerancia float64-ben biztonságos. A logit függvény a keepdims=False beállítással expliciten (1,1)(1,1) alakú kimenetet ad, így az indexelés [0,0] nem hagy kétséget a redukció irányáról.

36.1.5 5. Labor: egyoldalas ablatív protokoll

A labor célja, hogy a hallgató a futás előtt elkészítsen egy ablation_protocol.md dokumentumot, amely a tesztkészlethez igazított utólagos célválasztás lehetőségét kizárja. Az alábbi sablon egy lehetséges, teljes megoldás; a hallgató saját kérdését is választhatja.

Kérdés. Javítja-e a BatchNorm-réteg hozzáadása a 24.4. VI. ellenőrző pont: megbízható CNN-training alfejezetben rögzített kis CNN validációs pontosságát a GlyphLab adathalmazon?

Hipotézis. H1H_1: a BatchNorm-os modell (B) val-accuracy átlaga nagyobb, mint a BatchNorm nélküli baseline-é (A) ugyanazon öt seed mellett; a döntési metrika a seedenkénti páros különbségek mediánja.

Adat és split. GlyphLab data/images.npy, data/labels.npy, data/metadata.csv. A hivatalos train/val/test felosztás scene-szintű; a tesztet a teljes kísérlet alatt nem érintjük. A baseline és a BN-es futás ugyanazt a train/val splitet kapja.

Kontroll/baseline. A 24.4. VI. ellenőrző pont: megbízható CNN-training VI. ellenőrző pontban rögzített kis CNN (például 2979 paraméter) BatchNorm nélkül. A súlyinicializálás mindkét ágban ugyanazzal a seed-sorozattal indul.

Változó tényező. Kizárólag a BatchNorm-réteg jelenléte az első konvolúció után.

Rögzített tényezők (confound-ellenőrzés). Optimizáló (AdamW), learning rate, weight decay, batch méret, epochszám, augmentáció, adatbetöltési sorrend (seed), hardver (CPU), float32 dtype. A két modell paraméterszám-különbségét feljegyezzük a jelentésben; ha a paraméterszám-különbség meghaladja az 1%-ot, egy kapacitás-illesztett kontrollt is futtatunk.

Metrika és statisztikai egység. Val-accuracy per seed; a páros különbség statisztikai egysége a seed, amely a tanítási algoritmus bizonytalanságát méri. Az adatminta bizonytalanságát az 5.4. Függő képek, seedek és resampling alfejezetben rögzített scene-rétegzett bootstrap adja a végső teszt értékeléséhez; ezt a kiválasztási döntéshez nem használjuk.

Döntési szabály. Öt seed után: ha a seedenkénti páros val-accuracy különbségek mediánja >0,01>0{,}01, és legalább négy seedben a különbség pozitív, akkor H1H_1-et elfogadjuk, és a BN-es modellt választjuk. Minden más esetben a baseline-t tartjuk meg. A döntési szabály kizárólag a val halmazt használja.

Compute budget. CPU-n, legfeljebb két óra falidő, összesen tíz futás (öt seed × két konfiguráció). Ha bármely futás NaN-t ad, a 24.1. Tanulási görbe és hibadiagnózis alfejezetben leírt diagnózist követjük, a futást egyetlen alkalommal, azonos seeddel megismételjük, és az eseményt a naplóban rögzítjük; további automatikus ismétlés nincs.

Kiértékelés. A döntési szabály alapján választott, befagyasztott modellt a test halmazon egyszer értékeljük, majd a corrupted_test.npy páros halmazon is. A protokoll utolsó sora: „A fenti döntési szabályban a test szó nem szerepelhet; a protokoll érvényességének feltétele ennek automatikus ellenőrzése.”

36.1.6 6. Feladatok

F1 (fogalmi, nehézség: 1). Magyarázza el, miért nem tiszta abláció az a kísérlet, amelyben a BatchNorm hozzáadásával egyidejűleg a tanulási rátát 10−310^{-3}-ról 10−410^{-4}-re csökkentik. Adjon meg egy olyan kimeneti forgatókönyvet, amelyben a mért javulást tévesen a BatchNormnak tulajdonítanák. Elvárt eredmény: saját magyarázat, explicit confound-azonosítás, egy ellenpélda.

F2 (levezetési, nehézség: 2). Igazolja a 3. szakasz lemmájának egy speciális esetét: K=1K=1, H=W=2H=W=2, yc=3Zy^c = 3Z, azaz a lineáris fej együtthatója v1=3v_1=3. Írja fel a ∂yc/∂A1,i,j\partial y^c/\partial A_{1,i,j} négy parciális deriváltat, összegezze őket, és mutassa meg, hogy q1c=3q_1^c = 3, míg az átlagolt Grad-CAM-súly w1c=3/4w_1^c=3/4. Elvárt eredmény: minden lépés, indexhatár és shape-kontroll.

F3 (implementációs, nehézség: 1). Írjon Python-függvényt validate_protocol(text: str) -> tuple[bool, list[str]], amely egy protokoll-szövegben ellenőrzi, hogy (a) a ## Dontesi szabaly szakaszban nem szerepel a test szó (kis- és nagybetű érzéketlenül); (b) a ## Compute budget szakasz jelen van. Elvárt eredmény: teljes kód, egy érvényes és egy érvénytelen teszteset, a visszatérési érték pontos leírása.

F4 (hibakeresési, nehézség: 2). Egy jegyzőkönyv szerint a kutató 12 különböző konvolúciós kernelméretet próbált ki, mindegyiket a teszt halmazon értékelte, és a legjobbat (87%) jelentette mint „a modell általános pontosságát”. Lokalizálja a hibát, írja le a következményt a becslés torzítására, és adjon javítást a preregisztrált terv keretében. Elvárt eredmény: ok, következmény, javítás, valamint annak ellenőrzése, hogy a javított protokoll döntési szabálya nem hivatkozik a tesztre.

F5 (kísérlettervezési/transzfer, nehézség: 3). Készítsen egyoldalas preregisztrált tervet erre a kérdésre: „Javítja-e a képek véletlen fényerő-augmentációja a GlyphLab korrupt tesztjének pontosságát?” Adja meg a baseline-t, a változó tényezőt, a splitet, a statisztikai egységet, a metrikát, a döntési szabályt és a compute budgetet. A tervnek tartalmaznia kell, hogy a korrupt készlet kizárólag a választott modell befagyasztása után értékelhető. Elvárt eredmény: egyoldalas terv; negatív, de korrekt eredmény is elfogadható.

36.1.7 7. Megoldások és indoklás

F1 megoldás. A két változtatás (BatchNorm és tanulási ráta) együtt mozog, ezért a ΔM\Delta M különbségben a BatchNorm hatása és a tanulási ráta hatása nem szeparálható. Ellenpélda: ha a baseline tanulási rátája eleve túl nagy volt, a 10−410^{-4}-re csökkentés önmagában, BatchNorm nélkül is javíthatja a val-accuracyt; a mért nyereséget mégis a BatchNorm kapná. A tiszta ablációhoz a tanulási rátát mindkét ágban rögzíteni kell, vagy egy harmadik ágat kell futtatni, amelyben csak a tanulási ráta változik.

F2 megoldás. Legyen A1,i,j=aijA_{1,i,j}=a_{ij}, Z=14(a11+a12+a21+a22)Z=\frac14(a_{11}+a_{12}+a_{21}+a_{22}), y=3Zy=3Z. Ekkor minden (i,j)(i,j)-re

∂y∂aij=3⋅∂Z∂aij=3⋅14. \frac{\partial y}{\partial a_{ij}} = 3\cdot\frac{\partial Z}{\partial a_{ij}} = 3\cdot\frac14.

A négy parciális derivált mindegyike 34\frac34. Összegük:

q1c=∑i=12∑j=12∂y∂aij=4⋅34=3. q_1^c = \sum_{i=1}^2\sum_{j=1}^2 \frac{\partial y}{\partial a_{ij}} = 4\cdot\frac34 = 3.

Alakellenőrzés: a bemenet A∈ℝ1×2×2A\in\mathbb R^{1\times 2\times 2}, a kimenet q1cq_1^c és w1cw_1^c is skalár; a gradiens ugyanolyan alakú, mint AA. A lemma szerint q1c=∂y/∂Z=3q_1^c = \partial y/\partial Z = 3, a Grad-CAM-átlagsúly pedig w1c=q1c/(HW)=3/4w_1^c=q_1^c/(HW)=3/4.

F3 megoldás.

import re

def validate_protocol(text: str) -> tuple[bool, list[str]]:
    missing = []
    if "## Compute budget" not in text:
        missing.append("compute_budget")
    m = re.search(r"## Dontesi szabaly(.*?)(?=\n## |\Z)", text, re.S)
    if m is None:
        missing.append("dontesi_szabaly")
    else:
        if re.search(r"test", m.group(1), re.I):
            missing.append("test_hivatkozas")
    return (len(missing) == 0, missing)

# érvényes
ok1 = """## Dontesi szabaly
A val halmaz median kulonbsege alapjan dontunk.

## Compute budget
Legfeljebb ket ora CPU."""
assert validate_protocol(ok1) == (True, [])

# érvénytelen: a döntési szabály a tesztre hivatkozik
ok2 = """## Dontesi szabaly
A legjobb test accuracyt valasztjuk.

## Compute budget
Legfeljebb ket ora CPU."""
state, missing = validate_protocol(ok2)
assert state is False and "test_hivatkozas" in missing

Tolerancia: a függvény tiszta szöveges ellenőrzés, numerikus tolerancia nincs. A re.S flag a többsoros döntési szabály szakasz kezeléséhez szükséges.

F4 megoldás. Hiba: a tesztkészletet modellválasztásra használták. Következmény: a jelentett 87% a 12 kísérlet maximuma, nem a modell várható pontossága; a becslés felfelé torzított, és a torzítás a kipróbált konfigurációk számával nő. Javítás: a kernelméretet a validációs halmazon választjuk meg a befagyasztott, előre rögzített döntési szabály szerint; a tesztet csak a győztes modellen, egyszer értékeljük. Ellenőrzés: a javított protokoll döntési szakaszában a test szó nem szerepel (lásd F3 validátor); a 12 val-accuracy érték nyers táblázatban marad, és a közölt eredmény a győztes modell teszt-értéke.

F5 megoldásminta.

36.1.8 8. Tipikus tévedés ellenpéldával, önellenőrzés és visszahívás

Tipikus tévedés. A módszerek sok részletben eltérő összevetése nem izolál egyetlen újítás hatását. Konkrét ellenpélda: AA a baseline, BB pedig AA + BatchNorm + kisebb learning rate + kétszeres epochszám. A val-accuracy AA: 0,78, BB: 0,81. A „BatchNorm javított” következtetés hibás, mert a három különbség bármelyike, illetve ezek kölcsönhatása is okozhatja a nyereséget. A helyes eljárás három párhuzamos abláció: (i) csak BatchNorm, (ii) csak learning rate, (iii) csak epochszám, mindegyik a rögzített AA-hoz képest. Csak az (i) ág pozitív eredménye támogathatja a BatchNorm-állítást.

Önellenőrzés. (1) A választott protokoll döntési szabályában valóban nem szerepel a tesztkészlet; ha igen, a terv érvénytelen. (2) A lemma levezetésében az indexhatár: i=1,…,Hi=1,\dots,H, j=1,…,Wj=1,\dots,W, az összegzés pontosan HWHW darab 1HW\frac{1}{HW} tagot ad. (3) A numerikus kódban a mean(axis=(2, 3)) NCHW redukció, nem keverendő a batch szerinti átlaggal.

Visszahívás. Az 5.4. Függő képek, seedek és resampling alfejezetben bevezetett scene-szintű statisztikai egység itt a bootstrap és a páros értékelés alapja: képenkénti CI függő nézetekkel nem ugyanazt a bizonytalanságot méri, mint a scene-alapú. A 8.4. II. ellenőrző pont: korrekt tanulási állítás alfejezetben rögzített független teszt elve most mint a preregisztráció kötelező eleme tér vissza: a keresés lezárása után egyszer mérünk, és a becslés torzítatlansága a döntési szabály és a teszt szétválasztásán múlik.

36.1.9 Rövid összefoglaló

A kísérleti terv nem a futás utáni magyarázat, hanem a futás előtt rögzített szerződés. A hipotézis két konfigurációt, metrikát és irányt nevez meg; az abláció egyetlen komponenst izolál, a confound pedig olyan együtt mozgó változó, amely a hatást elmossa. A preregisztrált helyi terv rögzíti a kontrollt, a változót, a döntési szabályt és a compute budgetet, és kizárja a tesztkészlethez igazított utólagos célválasztást. A Grad-CAM példában a GAP-fejre vonatkozó összegazonosság és az ebből számított átlagolt súly analitikus, a lokalizációs állítás ezzel szemben kontrollt igénylő empirikus mérés. A következő egység az ismétlések és az eredménybizonytalanság kezelését vizsgálja.

36.1.10 Következő alkalmazás

A 36.2. Ismétlések és eredménybizonytalanság alfejezetben az ismétlések, seed-szórás és konfidenciaintervallumok kerülnek elő: a most rögzített terv ott kapja meg a nyers mérési eredményekből számított bizonytalansági határokat.

36.1.11 Felhasznált források