Ebben az egységben a valószínűségszámítás azon alapfogalmait építjük fel, amelyek a későbbi neurálisháló-veszteségek, likelihood-ok és kiértékelési intervallumok nyelvét adják. Feltételezzük a 3.4. Sajátérték, SVD és spektrális határ lineáris algebrai és a 4.1. Függvény, határérték és derivált határérték-fogalmait; mértékelméleti előismeret nem szükséges. A cél kettős: véges mintatéren pontosan tudjunk feltételes valószínűséggel és Bayes-tétellel számolni, folytonos esetben pedig a sűrűségfüggvényt területként értelmezni.
Induló kérdés: egy osztályozó a tesztképek 90%-ában helyesen ismeri fel a vertical osztályt, és csak 5%-ban téveszti verticalnak a horizontal képet. Ha a teszthalmazon 20% a vertical képek aránya, és az osztályozó egy képre verticalt mond, mekkora a valószínűsége, hogy tényleg az? Első becslésként sokan 90%-ot válaszolnak; a helyes érték a Bayes-tételből körülbelül , ahogyan az alábbiakban levezetjük.
Definíció (véges valószínűségi modell). Legyen egy véges, nem üres halmaz, a mintatér. Egy függvényt valószínűségnek nevezünk, ha
Egy tetszőleges részhalmazt eseménynek hívunk, és valószínűségét
definiálja. Az üres eseményre , a biztos eseményre . A komplementer eseményre
mert diszjunkt unió. Két tetszőleges eseményre az addíciós szabály
A metszet az az esemény, hogy mindkettő bekövetkezik; a kivonás azért szükséges, mert a metszetet kétszer számoltuk.
Példa (kockadobás). , minden kimenetelre . Az és eseményekre , .
A gépi tanulásban az gyakran egy megfigyelés összes lehetséges értékének halmaza: például a GlyphLab egy képénél az orientációs címke, és a valószínűségek adják az osztályok eloszlását.
A feltételes valószínűség azt méri, hogyan változik egy esemény esélye, ha egy másik esemény bekövetkezését már ismerjük.
Definíció (feltételes valószínűség). Legyen és . Az esemény -re vonatkozó feltételes valószínűsége
A feltétel lényege, hogy az eredeti helyett a által meghatározott részhalmazra szűkítünk, majd azon belül nézzük részarányát. A feltétel elengedhetetlen: nullvalószínűségű eseményre nem oszthatunk.
Példa. A kockánál : ha tudjuk, hogy párosat dobtunk, a hatos esélye .
Definíció (függetlenség). Az és események függetlenek, ha
Ha , ez ekvivalens azzal, hogy : a ismerete nem változtat valószínűségén. A függetlenség nem keverendő össze a diszjunktsággal; két diszjunkt, pozitív valószínűségű esemény soha nem független, mert .
Tétel (Bayes-tétel és teljes valószínűség tétele, véges mintatéren). Legyen esemény valószínűséggel, és legyen az egy partíciója, azaz a -k páronként diszjunktak és , valamint minden -re. Ekkor
Bizonyítás. Először a feltételes valószínűség definícióját alkalmazzuk kétszer. Egyrészt
másrészt ugyanez a metszet felírható
alakban is. A két kifejezést egyenlővé téve és -val osztva kapjuk a Bayes-formula magját:
Most a nevezőt fejezzük ki az ismert mennyiségekkel. Mivel a -k partíciót alkotnak, az esemény felbomlik diszjunkt metszetekre:
Az additivitás miatt
A (2) kifejezést az (1) nevezőjébe helyettesítve adódik a tétel állítása.
A (2) összefüggés önmagában is fontos, és teljes valószínűség tételének nevezzük: a teljes valószínűséget a partíció elemein keresztül súlyozott feltételes valószínűségek összegeként kapjuk meg. A bizonyítás lépései: (i) a metszet kétféle feltételes felírása, (ii) diszjunkt felbontás, (iii) additivitás. A tétel feltételei között szerepel és ; ha valamelyik nulla, a megfelelő feltételes valószínűség nem definiált, és a formula nem alkalmazható.
Definíció (diszkrét véletlen változó). Egy függvényt véletlen változónak hívunk; diszkrét, ha értékkészlete véges vagy megszámlálhatóan végtelen. Ekkor az eloszlását a valószínűségi tömegfüggvény adja, amelyre és .
A neurális hálózatokban két diszkrét eloszlás alapvető.
Definíció (Bernoulli-eloszlás). Az véletlen változó Bernoulli-eloszlású paraméterrel, ha és
Ez a bináris osztályozás célváltozója: például „vertical vagy nem vertical”. A paraméter a pozitív osztály valószínűsége.
Definíció (kategorikus eloszlás). Az véletlen változó kategorikus eloszlású osztállyal és paraméterrel, ha és
A vektor tehát valószínűségi vektor: elemei nemnegatívak és összegük 1. A többosztályos kép-osztályozásban , a GlyphLab címkéi (vertical), (horizontal), (diagonal). Egy elemű minibatch címkevektora , ahogyan a jelölési szerződés rögzíti. A modell egy valószínűségi vektort becsül minden képre; ezt a softmax réteg állítja elő a későbbi 7.2. Softmax és többosztályos cross-entropy egységben.
Ha a véletlen változó értékkészlete egy folytonos intervallum, az egyes pontok valószínűsége nullává válik, ezért intervallumok valószínűségével dolgozunk. Ehhez a határozott integrált mint területet használjuk, amelyet a 4.1. Függvény, határérték és derivált alfejezetben megismert határérték-fogalommal Riemann-összegek határaként értelmezünk.
Definíció (Riemann-összeg). Legyen korlátos függvény. Az intervallumot egyenlő részre osztjuk, lépésközzel. Az
összeget Riemann-összegnek nevezzük, ahol (jobb végpontos választás) vagy (bal végpontos választás). Ha a határérték létezik és független a közbülső pontok választásától, akkor Riemann-integrálható, és a határértéket
jelöli. Ez a határozott integrál mint előjeles terület: a görbe alatti területet pozitív, a tengely alatti területet negatív előjellel számoljuk. Sűrűségfüggvényekre , ezért ott a valószínűség közönséges terület.
Definíció (sűrűségfüggvény). Egy függvény valószínűségi sűrűségfüggvény, ha
ahol az improper integrált a szokásos határátmenettel értjük. Ekkor egy véletlen változó eloszlását ez a sűrűség adja, ha tetszőleges esetén
A normalizálási feltétel garantálja, hogy a teljes valószínűség 1. A sűrűség értéke egyetlen pontban nem valószínűség; csak intervallumra integrálva kapunk valószínűséget.
Tétel (egyenletes eloszlás normalizálása és intervallum-valószínűsége). Legyen valós szám, és definiáljuk
Ekkor sűrűségfüggvény, és bármely intervallumra
Bizonyítás. A normalizáláshoz elegendő az -n integrálni, mert a függvény azon kívül nulla:
Az első egyenlőségnél kihasználtuk, hogy a sűrűség tartóján kívüli integrál nulla, a harmadiknál pedig az konstans függvény primitív függvénye . Az intervallum valószínűsége hasonlóan:
A jelöli a bizonyítás végét. A levezetés csak az alapintegrálokat és a határozott integrál linearitását használja, ezért a feltételek között szerepel az rendezés; a formula a intervallum hosszának és a teljes hosszának arányát adja.
Példa. esetén a -en. Ekkor , miközben . Látjuk a lényegi különbséget: a sűrűség magas értéke nem jelenti azt, hogy az adott pont valószínűsége magas; a pont valószínűsége nulla, mert .
Vegyünk egy 100 elemű tesztmintát a fenti arányokkal: 20 vertical és 80 horizontal kép. Az osztályozó a következőket teszi:
Az abszolút gyakoriságokat kontingenciatáblába rendezzük:
| Valós Predikált | vertical | horizontal | Összesen |
|---|---|---|---|
| vertical | 18 | 2 | 20 |
| horizontal | 4 | 76 | 80 |
| Összesen | 22 | 78 | 100 |
A kérdés: . A táblázatból közvetlenül: 22 predikált vertical esetből 18 valóban az, tehát . Ugyanez a Bayes-tétellel, , , partícióval:
A két út — esetszámokból és feltételes valószínűségekből — ugyanarra az eredményre vezet, mert a nevező éppen a predikált vertical esetek aránya.
Legyen a intervallumon. Ez normalizált, mert
Számítsuk ki a intervallum valószínűségét analitikusan:
Ezt ellenőrizzük Riemann-összeggel. A kód determinisztikus, float64 pontosságú, CPU-n fut.
import numpy as np
def riemann_probability(f, a, b, n, endpoint="right"):
"""Jobb vagy bal végpontos Riemann-összeg."""
dx = (b - a) / n
if endpoint == "right":
x = a + np.arange(1, n + 1) * dx
elif endpoint == "left":
x = a + np.arange(0, n) * dx
else:
raise ValueError("endpoint legyen 'left' vagy 'right'")
return np.sum(f(x)) * dx
def f(x):
# float64, CPU, determinisztikus
return 2.0 * x
# Normalizálás ellenőrzése
print("Normalizálás, pontos érték: 1.0")
for n in [10, 100, 1000, 10000]:
approx = riemann_probability(f, 0.0, 1.0, n)
print(f" n={n:5d} jobb={approx:.6f} hiba={abs(approx-1.0):.2e}")
# Intervallum valószínűsége, pontos érték: 0.1875
print("\nP(0.25<=X<=0.5), pontos érték: 0.1875")
for n in [100, 1000, 10000]:
approx = riemann_probability(f, 0.25, 0.5, n)
print(f" n={n:5d} jobb={approx:.6f} hiba={abs(approx-0.1875):.2e}")A kimenet várhatóan azt mutatja, hogy a jobb végpontos közelítés hibája esetén nagyságrendű, mert a lépésköz ; a hiba lineárisan csökken. A függvény monoton növekvő, ezért a jobb összeg felülről, a bal összeg alulról közelít. Ez a labor a determinisztikus összegzés miatt pontosan reprodukálható; nincs szükség seedre vagy GPU-ra.
Az alábbi feladatok mindegyike a fenti fogalmakra épül. A nehézség 1 = közvetlen alkalmazás, 2 = több fogalom összekapcsolása, 3 = nyitott tervezési döntés.
F1 (fogalmi, nehézség 1). Adjon egy konkrét, négyelemű egyenletes mintateret és két eseményt úgy, hogy , de . Magyarázza el szavakkal, miért lehetséges, hogy a két feltételes valószínűség különbözik, pedig ugyanaz a metszet szerepel bennük.
F2 (levezetési, nehézség 2). Vezesse le lépésről lépésre a teljes valószínűség tételét két elemű partícióra, majd alkalmazza a fenti osztályozó példára. Számolja ki értékét a , , adatokból, és ellenőrizze, hogy a nevező valóban .
F3 (implementációs, nehézség 2). Egészítse ki a fenti kódot a bal végpontos közelítéssel is. Futtassa értékekre az sűrűség -re vett normalizálási integráljára, és mindkét módszerre írja ki a hibát. Magyarázza meg, miért ad a bal összeg monoton növekvő függvénynél alsó, a jobb összeg felső becslést.
F4 (hibakeresési, nehézség 2). Egy hallgató a Bayes-tételt így kódolta:
P_hat_v_given_y_v = 0.9
P_y_v = 0.2
P_y_h = 0.8
P_hat_v = 0.9 * 0.2 # hiba itt
P_y_v_given_hat_v = P_hat_v_given_y_v * P_y_v / P_hat_v
print(P_y_v_given_hat_v)Lokalizálja a hibát, magyarázza el, miért helytelen a számítás, és adja meg a javított kódot, amely -ot ad. Ellenőrizze a javítást abszolút esetszámokból kiindulva is (18 és 4, majd 22).
F5 (kísérleti/transzfer, nehézség 3). Tervezzen egy reprodukálható kísérletet annak mérésére, hogy egy rögzített CNN-osztályozó predikciós konfidenciája mennyire megbízható különböző osztályarányú teszthalmazokon. Használja a GlyphLab adatszerződést: a teszteléshez mesterségesen állítson be három arányt (például 80/10/10, 33/33/34, 10/80/10) úgy, hogy a scene_id függetlenségi egységet megtartja. Adja meg a használt modellt, a metrikát (például expected calibration error), a kiértékelési protokollt és legalább két érvényességi korlátot. Konkrét eredményt nem várunk; a terv legyen végrehajtható.
F1 megoldás. Legyen egyenletes eloszlással, . Válasszuk és . Ekkor , , . A feltételes valószínűségek:
A két érték azért különbözik, mert az -ra szűkített mintatérben a biztos esemény, míg a -re szűkített mintatérben az csak a felét fedi le. Ugyanaz a metszet, de más nevezővel osztunk.
F2 megoldás. A levezetés a főszövegben szereplő bizonyítás két elemű speciális esete. Mivel partíció, diszjunkt unió. Az additivitásból:
Itt , , . Behelyettesítve:
A Bayes-formulával:
A nevező ellenőrzése megtörtént, és megegyezik az esetszámokból kapott 22-vel (100 képből).
F3 megoldás. A kiegészített kód:
import numpy as np
def riemann_probability(f, a, b, n, endpoint="right"):
dx = (b - a) / n
if endpoint == "right":
x = a + np.arange(1, n + 1) * dx
else:
x = a + np.arange(0, n) * dx
return np.sum(f(x)) * dx
def f(x):
return 2.0 * x
for n in [10, 100, 1000]:
left = riemann_probability(f, 0.0, 1.0, n, "left")
right = riemann_probability(f, 0.0, 1.0, n, "right")
print(f"n={n:4d} bal hiba={left-1.0:+.6f} jobb hiba={right-1.0:+.6f}")A bal összeg hibája negatív, a jobbé pozitív, mert monoton növekvő: minden részintervallumon a bal végponti érték kisebb vagy egyenlő a függvényértékeknél, így a bal összeg alulbecsli az integrált; a jobb végponti érték nagyobb, így felülbecsli. Ahogy nő, mindkettő az 1 pontos értékhez tart.
F4 megoldás. A hiba a számításában van: a hallgató csak a tagot vette figyelembe, és elhagyta a tagot, tehát a nevező nem a teljes valószínűséget adja. A javított kód:
P_hat_v_given_y_v = 0.9
P_hat_v_given_y_h = 0.05
P_y_v = 0.2
P_y_h = 0.8
P_hat_v = P_hat_v_given_y_v * P_y_v + P_hat_v_given_y_h * P_y_h
P_y_v_given_hat_v = P_hat_v_given_y_v * P_y_v / P_hat_v
print(P_y_v_given_hat_v) # 0.8181818181818181Esetszámokból: 20 vertical képből 18 kap vertical predikciót; 80 horizontal képből 4 kap tévesen verticalt. Összes vertical predikció , ebből helyes , arány . A numerikus tolerancia itt nem szükséges, mert a számok racionálisak, de lebegőpontos kimenetnél relatív hiba alatt elfogadható.
F5 megoldás. Egy lehetséges terv: rögzítsünk egy betanított CNN-t a GlyphLab train részén, a val részen válasszuk ki a legjobb checkpointot. A teszteléshez a meglévő test splitet ne változtassuk, hanem hozzunk létre három mesterségesen módosított tesztváltozatot: mindegyikben tartsuk meg a scene_id szerinti csoportosítást, de változtassuk az osztályok súlyát úgy, hogy az adott arányokat kapjuk (a képek és címkék párosítása változatlan maradjon). Mindegyik változatra számoljuk ki a modell softmax-konfidenciáját, és mérjük az expected calibration error-t: a konfidencia-intervallumokba sorolt predikciók átlagos konfidenciája és a tényleges pontosság közötti súlyozott eltérést. Hipotézis: a kalibráció romlik, ha a teszthalmaz osztályaránya eltér a tanítási aránytól. Érvényességi korlát: a GlyphLab kis, procedurális adat, ezért az eredmény nem általánosítható természetes képekre; továbbá a mesterséges arányok megváltoztatják a prior eloszlást, ami önmagában is befolyásolja a konfidencia értelmezését, ezért a mérést rögzített modell súlyokkal kell végezni.
Két gyakori hiba kapcsolódik ehhez az anyaghoz.
1. és felcserélése. A fenti osztályozó példában , míg . Ugyanannak a feltételes kapcsolatnak a két iránya különböző, mert a nevezőben más esemény valószínűsége áll. A felcserélés a klasszikus „orvosi teszt” paradoxon forrása is: egy ritka betegség nagy szenzitivitású tesztje esetén a pozitív teszteredmény ellenére is alacsony lehet a betegség utólagos valószínűsége, mert a hamis pozitívak száma nagy a ritka betegség populációjában.
2. A sűrűség pontbeli értékét valószínűségként értelmezni. Tekintsük az egyenletes eloszlást. Itt , tehát a sűrűség értéke meghaladhatja az 1-et is (például esetén ), miközben . A hiba következménye: ha valaki egy modell predikciójának sűrűségét egyetlen pontban nézi, tévesen magas vagy alacsony valószínűséget tulajdonít egy konkrét érték bekövetkezésének. Helyesen mindig intervallumra kell integrálni.
Ellenőrző kérdések a tanuláshoz: (1) Az általam használt partíció elemei lefedik-e a teljes -t és páronként diszjunktak-e? (2) A feltételes valószínűség nevezője pozitív-e? (3) A sűrűségfüggvényem integrálja 1-et ad-e a teljes tartón? (4) A Bayes-tétel alkalmazásakor a nevező a teljes valószínűség tételéből származik-e?
A 4.1. Függvény, határérték és derivált egységben a deriváltat a differenciahányados határértékeként definiáltuk. Most ugyanezt a határérték-szemléletet alkalmaztuk a Riemann-összegre: a numerikus közelítés finomítása a pontos integrálhoz konvergál, és a hiba a lépésközzel arányosan csökken. Az 1.1. Modell, tanulás és felhasználási szerződés modellfogalmából pedig a kategorikus eloszlás az, amely a többosztályos cél változóját írja le: a modell nem egyetlen determinisztikus címkét, hanem egy valószínűségi vektort becsül.
A véges mintatéren az esemény valószínűsége a kimenetelek valószínűségeinek összege. A feltételes valószínűség az metszetet a esemény valószínűségéhez viszonyítja, és a Bayes-tétel ebből a definícióból, valamint egy partíció diszjunkt felbontásából vezethető le. A Bernoulli- és kategorikus eloszlás a bináris, illetve többosztályos címkék alapmodellje. Folytonos esetben a sűrűségfüggvény normalizált, integrálja 1, és egy intervallum valószínűségét a görbe alatti terület adja; a Riemann-összeg ezt a területet közelíti numerikusan. A sűrűség pontbeli értéke nem valószínűség, és a feltételes valószínűség két iránya általában nem cserélhető fel.
A következő egység, 5.2. Várható érték, variancia és likelihood, a várható értéket, varianciát és likelihood-ot vezeti be; ott a sűrűség és eloszlás fogalmát használjuk a veszteségfüggvények valószínűségi értelmezéséhez.