čte ji víc lidí než e-mail, takže je větší šance, že nám někdo odpoví
nedávat tam zdrojový kód (do veřejných otázek)
bodování
zápočet – alespoň 70 standardních bodů
standardní body nad 70 se přenáší ke zkoušce
bonusové body lze získat soutěžemi a dalšími aktivitami nad rámec, také se přenáší ke zkoušce
definice strojového učení
pomocí zkušenosti (dat) se zlepšuje metrika na nějaké úloze
možné úlohy: klasifikace (přiřazení vstupu do diskrétní kategorie), regrese (přiřazení reálného čísla nebo vektoru reálných čísel), předvídání struktury, odstraňování šumu
metriky: accuracy (jak dobře se při klasifikaci trefujeme), …
zkušenost
supervised (učení s učitelem) – máme olablovaná data
unsupervised (učení bez učitele) – nemáme žádné labely, učíme se vidět vzory v datech
reinforcement learning (zpětnovazebné učení) – např. aby byl šachový program lepší než nejlepší hráči
základní úlohy
mějme vstup x∈RD
regrese: pro x hledáme reálnou proměnnou t∈R
klasifikace: máme K labelů, pro dané x chceme najít ten správný
můžeme určit třídu
můžeme určit pravděpodobnostní distribuci tříd
obvykle máme trénovací sadu dvojic (x,t)
rozdělíme data na trénovací a testovací – aby bylo učení dost obecné
notace
tenzor je nadkrychle čísel
všechny vektory jsou sloupcové
do matic je skládáme jako řádky
vstupní data
trénovací množina X∈RN×D
N instancí, každé odpovídá D reálných čísel
dimenze vstupu = feature
při učení s učitelem máme target t pro každou instanci
v regresi … t∈RN
v klasifikaci … t∈{0,1,…,K−1}
Lineární regrese
lineární regrese
y(x;w,b)=xTw+b
w … váhy
b … bias (jindy se označuje jako intercept)
protože je otrava zacházet s biasem, někdy se k vektorům přidávají na konec jedničky, takže místo b máme 1⋅wd+1
chceme změřit, jak se nám regrese daří
použijeme mean squared error (MSE) nebo taky funguje součet druhých mocnin chyb (dělený dvěma)
co když matice XTX není regulární? můžeme přičíst náhodný šum (dost malý)
overfitting, underfitting
overfitting … model funguje dobře na trénovacích datech, ale nefunguje na testovacích datech
kapacita modelu – slouží k ovlivňování underfittingu a overfittingu
representational capacity
effective capacity
čím větší kapacita modelu, tím větší pravděpodobnost overfittingu
dvě křivky – chyba na trénovacích a testovacích datech
mezera mezi nimi = generalization gap
cílem je najít minimum křivky chyby na trénovacích datech
"sweet spot"
jak se zbavit overfittingu
použít více dat
regularizace – jakýkoliv krok k větší generalizaci modelu
příkladem regularizace je snižování kapacity modelu
L2-regularizace
upřednostňuje „jednodušší“ modely, tedy ty, které mají menší váhy
obvykle se aplikuje na opravdové váhy, ne na bias
důsledkem je omezení efektivní kapacity modelu
pro větší lambda nám kapacita přestane stačit – daty se v podstatě proloží přímka
lambda … regularization rate
matice, kterou nakonec použijeme, je nutně regulární, takže jsme vyřešili problém s inverzní maticí
volba hyperparametrů
učící algoritmus nenastavuje hyperparametry
validační/vývojová sada dat se používá k určení hyperparametrů
takže data dělíme mezi trénovací, vývojová a testovací (obvykle v poměru 60 %, 20 %, 20 %)
zatím jsme měli hyperparametry M (stupeň polynomu) a λ („úroveň regularizace“)
gradient descent
někdy se hodí hledat nejlepší váhy iterativně
hledáme argwminE(w)
můžeme použít gradient descent w←w−α∇wE(w)
α … learning rate
přístupy
standard/batch gradient descent – použijeme všechna trénovací data
stochastic/online gradient descent (SGD) – po jednom vybíráme náhodné příklady z trénovacích dat
unbiased, but noisy
minibatch stochastic gradient descent
dá se dokázat, že SGD za určitých podmínek téměř jistě konvrguje
feature types
polynomial features
categorical one-hot features
features je potřeba normalizovat, abychom mohli pro všechny používat stejný learning rate
odečtením minima a vydělením rozdílem maxima a minima data dostaneme mezi nulu a jedničku
velký problém jsou outliers
dá se to řešit standardizací
data budou mezi -1 a 1
nebo se můžeme zbavit outlierů
Binární klasifikace
klasifikujeme data do dvou tříd
nejjednodušší metrika je úspěšnost (accuracy)
poměr správně klasifikovaných dat
budeme hledat nadrovinu, která nám oddělí jednu třídu od druhé
nadrovina … xTw=0
jedna třída … xTw>0
druhá třída … xTw<0
budeme uvažovat množinu tříd {−1,+1}, tedy target t∈{−1,+1}
tixiTw>0
perceptron
poznámka: slajdy se s výstražnou sumou si nemusíme pamatovat
problémy perceptronu
když není vstup lineárně separovatelný, algoritmus nikdy neskončí
algoritmus vrátí jedinou predikci, neumí vrátit pravděpodobnosti více predikcí
ale hlavně, algoritmus perceptronu najde nějaké řešení, ne nutně dobré řešení, protože když už to řešení najde, nemůže ho dále měnit/zlepšovat
teorie informace
vlastnosti I(X)
P(x)=1⟹I(X)=0
P(x,y)=P(x)P(y)⟹I(x,y)=I(x)+I(y)
∀x:I(x)≥0
I(x)≡−logP(x)=logP(x)1
entropie H(P)
cross-entropy H(P,Q)≥H(P)
jak jsem překvapený, když si myslím Q, ale ve skutečnosti se děje P
Gibbsova nerovnost
H(P,Q)≥H(P)
H(P,Q)=H(P)⟺P=Q
KL divergence
normální rozdělení
centrální limitní věta
princip maximální entropie
odhad maximální věrohodnosti
L(w)=pmodel(X;w)=∏i=1Npmodel(xi;w)
binární logistická regrese
multiclass logistic regression
místo váhového vektoru budeme mít matici vah
místo funkce sigmoid použijeme funkci softmax
softmax(z)i=∑jexp(zj)exp(zi)
vyžadujeme, aby data tvořila nějaké konvexní útvary
multilayer perceptron
vstupní vrstva a výstupní vrstva „neuronů“
mezi nimi je skrytá vrstva
skrytá vrstva nám jakoby vyrábí features pro lineární model
tip: numpy.logsumexp
regularizace pomocí dropoutu
při trénování zahazujeme některé neurony
tím nutíme model, aby byl robustnější
věta o univerzální aproximaci
máme model, který může modelovat cokoliv
ale neznáme konkrétní H
a taky nevíme, jak se naučit cokoliv
Lagrangeovy multiplikátory
hledáme extrém na oblasti vymezené omezující podmínkou (rovností)
v bodě extrému bude gradient kolmý na oblast
F-skóre
harmonický průměr precision a recall
pokud nás víc zajímá recall, tak se používá parametr β
macro – průměr F skóre
micro – F skóre z globálního precision a recallu
Reprezentace textu
jak reprezentovat dokument
jako „bag of words“ – vektor slov, jedničky u slov, která v dokumentu jsou, jinak nuly
normalizovaný vektor frekvencí slov
můžeme slovům přiřadit váhu podle toho, jestli se v dokumentech obvykle vyskytují (např. určitý člen bude mít nízkou váhu)
v přirozených jazycích se slova řídí Zipfovým zákonem
zastoupení slov (obecně v textech) se přibližně řídí hyperbolou
proto se používá logaritmus, aby se to normalizovalo
mutual information
vstupní slovo můžeme reprezentovat jako one-hot vector
násobíme ho váhovou maticí – tomu říkáme word embedding
vektory pro příbuzná slova jsou blízko
CBOW
SkipGram
negative sampling
dimenzí u embeddingu je typicky pár set
když chceme klasifikovat větu, tak můžeme posčítat embeddingy jejich slov
někdy se hodí při embeddingu zohledňovat kontext slova – některá slova mají více významů
Metoda nejbližších sousedů
k-Nearest Neighbors
trénovací data uložíme do vhodné datové struktury
když nám přijdou data ke klasifikaci, tak se podíváme, co je jim z trénovacích dat nejpodobnější, a podle toho vrátíme výsledek
neučíme se žádné parametry, ukládáme přímo trénovací data (tzv. lazy learning, líné učení, zajímavé věci se dějí až při inferenci, nikoliv při trénování)
máme hyperparametry
k … počet sousedů, které používáme k predikci
metrika … jak poznáme, co je nejbližší soused?
typicky se používají Lp normy
kde ∣∣x∣∣p=p∑i∣xi∣p
váhy
uniformní … všech k nebližších sousedů má stejnou váhu
inverzní … váha je nepřímo úměrná vzdálenosti
softmax
nemusí být jednoduché sousedy najít
používají se stromové datové struktury
tak jako v domácím úkolu už se to spíš nepoužívá
typičtější aplikace
doporučování videí
anonymní rozpoznávání obličejů např. v Google Fotkách
Bayesovská pravděpodobnost
v bayesovské interpretaci je pravděpodobnost kvantifikace nejistoty
prior probability → posterior probability
na základě nových dat
pozor: pokud je apriorní pravděpodobnost hodně malá, i klasifikátor s vysokými precision a recall může mít vysoké množství false positives
MAP odhad
u normálního rozdělení vlastně minimalizujeme L2 regularizovaný NLL
konjugované distribuce (conjugate distribution)
prior a posterior mají stejný „typ distribuce“
credibility intervals máme „zadarmo“
jak zvolit priors?
uninformative priors
snažíme se volit prior distributions tak, aby tam bylo co nejmíň předpokladů (využíváme princip maximální entropie)
chceme využívat konjugované distribuce, aby to šlo upočítat
asi se vybírají empiricky tak, aby to hezky vyšlo :D
naivní bayesovský klasifikátor
Korelace
kovariance
střední hodnota je lineární vzhledem k součtu
čemu se rovná rozptyl součtu?
korelace
Pearsonův kolerační koeficient
„jsou data lineárně závislá?“
Spearmanův koeficient pořadové korelace
„je zachováno pořadí?“
Kendallův koeficient pořadové korelace τ
„poměr souhlasných párů“
„jak často se stane, že mezi 5 nejlepšími jsou ty, které chceme?“
precision pro fixních top 5
mean reciprocal rank
shoda anotátorů
Cohenovo κ
výkon ML klasifikátoru
měl by být lepší než pár ifů – kdyby ne, děláme něco špatně
jako baseline se typicky nastavuje četnost největší třídy
asi nebude lepší než shoda anotátorů – kdyby byl, asi overfitujeme
Ensembling
yi(x)=t+εi(x)
yi … prediction
t … target
εi(x) … chyba modelu
E[(yi(x)−t)2]=E[εi2(x)]
bagging – bootstrap aggregation
modely trénuju na různých datech
u některých modelů zakážu nějaké features
knowledge distillation / model compression
natrénujeme model „student“ pomocí učitelského modelu/modelů
snažíme se natrénovat model s co nejmenší cross-entropy vůči původnímu modelu
cíl – zmenšit model (abychom nemuseli používat celý ensemble nebo velký model)
Decision trees
…
SVD, PCA, K-Means
dekompozice matice
líbila by se nám taková, kde budou řádky a sloupečky ortogonální (statisticky nezávislé)
vlastní čísla, vlastní vektory
možné použití
ztrátová komprese obrázku
doporučovací systémy
PCA
power iteration
k-means
citlivý na inicializaci
můžeme inicializovat víckrát a vybrat si ten s nejnižší chybou
může se hodit clustery modelovat jako gaussiány
zvlášť pokud nemají stejnou velikost a jsou třeba elipsy
k-means i outliery přiřadí do nějakého clusteru
Testování statistických hypotéz
…
Zkouška
písemná
když se nám nějaká otázka nebude zdát, na Piazze bude formulář, kam to můžeme napsat
v lednu na přednášce/cvičení se podíváme na nejvíc problematické otázky
Etika
věda o tom, co je dobře/špatně
hlavní teoretické rámce
deontologická etika – máme nějaká pravidla/principy, těch se držíme
konsekvencialistická etika / utilitarismus – dobré chování maximalizuje dobré následky (ale může být problém měřit, co jsou dobré následky)
etika ctností (virtue) – člověk je dobrý, pokud dělá dobře věci, ke kterým je určený; rozhodnutí je dobré (akce je dobrá), pokud by se takhle rozhodnul ctnostný člověk
kontraktová etika – ze společenské smlouvy (implicitní nebo explicitní) vyplývá, co je dobré
etika péče – rodíme se jako bezbranní, proto má vůči nám společnost nějakou odpovědnost a naopak my máme odpovědnost vůči společnosti; etika péče stojí na vztazích a odpovědnosti, která z nich vyplývá
obvykle uvažujeme deontologickou a konsekvencialistickou etiku
deontologická etika
zaměřuje se na povahu akcí spíš než na jejich důsledky
řídíme se definovanými pravidly a principy (např. Všeobecná deklarace lidských práv, Desatero přikázání, Kantův kategorický imperativ)
zásady v AI
vlídnost
neškodolibost
soukromí
nediskriminace
autonomie
informovaný souhlas
výhody: jasná pravidla, stabilita, respekt práv
nevýhody: rigidita, možný konflikt dvou pravidel, zanedbání důsledků
kritika: když jsi zlý, vždycky můžeš tvrdit, že vycházíš z dobrých principů, nehledě na důsledky
utilitariánská etika
maximalizujeme celkové štěstí / well-being, minimalizujeme újmu
zaměřuje se na důsledky akcí
dobrá rozhodnutí = rozhodnutí, která maximalizují celkový dopad
výhody: flexibilita, kvantifikovatelnost
nevýhody: hrozí, že budeme ignorovat práva jednotlivců, je těžké definovat účelovou funkci
někdy se vyplatí mezi frameworky přepínat – např. při hromadném neštěstí přejdeme z deontologické etiky na utilitarismus
články o etice v ML se často zaměřují na negativní důsledky pro znevýhodněné lidi
utilitarismus je problematický, když uvažujeme události s malou pravděpodobností a extrémní hodnotou užitku („je malá šance, že nás AI vyhubí, ale užitek by byl −∞“)
příklady, jak dělat etické systémy
deontologická etika
nepoužívat etnickou příslušnost jako feature
budovat důvěru
trvat na soukromí, férovosti a spravedlnosti
utilitariánství
na koho to bude mít dopad
jaká újma může nastat?
jak předejít újmě?
problémy v různých fázích vývoje modelu strojového učení
definice problému
rozpoznávání Ujgurů od Číňanů – problém samotný není etický
automatické hodnocení esejí – studenti mají právo vědět, proč dostali špatné hodnocení
predikce recidivismu – porušuje právo na spravedlivý proces, je nedostatečně transparentní
shromažďování dat
reprezentační bias – data nejsou reprezentativní, chybí tam menšiny apod.
rozpoznávání obličejů
data z internetu nepopisují svět takový, jaký je
historický bias – nerovnosti z minulosti jsou v datasetech zachovány
problémy s autorským právem – u generativních modelů
problematické způsoby kolekce dat
crowdsourcing
lidé jsou najati, aby dělali práci, kterou má dělat model
špatně placená monotónní práce, může způsobovat psychologickou újmu (typicky v případě posuzování obrázků ze sociálních sítí)
gig economy – přivýdělek se stane hlavním úvazkem bez pracovněprávní ochrany
sběr uživatelských dat
trénovací data jsou sbírána od uživatelů, kteří nemají jinou možnost než data poskytovat, aby mohli službu používat
netransparentní transakce – uživatel získá službu, platí daty, není jasné, jakou hodnotu data mají
vývoj modelu
diskretizace výstupů zesiluje bias – pokud se rozhodujeme mezi dvěma možnostmi a jedna je pravděpodobnější, vždycky použijeme tu pravděpodobnější
větší modely snadno overfittujou, dají se z nich vytáhnout soukromé údaje, které byly obsaženy v trénovacích datech
destilace modelů také zesiluje biasy
modely se můžou naučit smazané features (etnická příslušnost, gender, …) z jiných features (jméno, škola, …)
vyhodnocení modelu
metriky neobsahují všechno, co bychom potřebovali (třeba gender bias)
v HR nás zajímá jenom accuracy – může se stát, že model systematicky znevýhodňuje nějaké uchazeče
používáme proxy metriky, abychom optimalizovali něco jiného
musíme metriky vhodně zvolit
čas sledování videa nemusí být dobrou metrikou pro jeho kvalitu – favorizuje videa s extrémními názory
použití modelu v praxi
nesoulad mezi trénovacími/testovacími daty a reálným prostředím
jazyk minorit je častěji klasifikován jako hate speech / NSFW
feedback loops (zpětnovazebné smyčky)
predikce ovlivňují chování uživatelů, to se pak používá jako zdroj trénovacích dat
způsobuje to echo chambers na sociálních sítích
Co jsme se naučili
základy statistiky
základy teorie informace
preferujeme modely s větší entropií – nechceme do nich vnášet dodatečné předpoklady
optimalizace – nulová derivace, Lagrangeovy multiplikátory, SGD, metody druhého řádu
práce s daty – anotace, features, normalizace
tréninik a evaluace – splitování dat, overfitting a regularizace, metriky