tento dokument je zveřejněn pod licencí CC BY-SA, vychází z materiálů, jejichž autory jsou Jindřich Libovický a Milan Straka
1. Introduction to Machine Learning
Easy: Explain how reinforcement learning differs from supervised and unsupervised learning in terms of the type of input the learning algorithms use to improve model performance.
supervised, unsupervised
máme vstupní data (v případě supervised také cílové hodnoty)
reinforcement
nemáme vstupní data, ale spíše prostředí
např. necháme program, aby donekonečna hrál šachy proti jiným programům
výkon (performance) vždy měříme pomocí vhodné metriky
Medium: Explain why we need separate training and test data. What is generalization, and how does the concept relate to underfitting and overfitting?
testovací data slouží k ověření toho, jak dobře náš model generalizuje – snažíme se zjistit, jak dobré výsledky model vrací pro data, která dosud neviděl
underfitting – model je příliš slabý (příliš jednoduchý), plně jsme nevyužili jeho potenciál
overfitting – model špatně generalizuje, příliš se přizpůsobil trénovacím datům
Medium: Define the prediction function of a linear regression model and write down L2-regularized mean squared error loss.
predikce … y(x;w,b)=xTw+b
někdy je vhodné přidat na konec x jedničku, pak je bias uložen v poslední hodnotě váhového vektoru, tedy y(x;w)=xTw
MSE
původní vzorec: MSE(w)=N1∑i=1N(y(xi;w)−ti)2
místo N1 se používá 21 (při minimalizaci MSE se počet dat nemění) → není to MSE, ale „sum of squares error“
používaný vzorec s L2 regularizací
21∑i=1N(y(xi;w)−ti)2+2λ∥w∥2
to odpovídá 21∥Xw−t∥2+2λ∥w∥2
poznámka: obvykle se L2 regularizace nepoužívá na bias, jelikož ten nezpůsobuje overfitting
Medium: Starting from the unregularized sum of squares error of a linear regression model, show how the explicit solution can be obtained, assuming XTX is invertible.
sum of squares error: 21∑i(xiTw−ti)2
lze ho zapsat jako 21∥Xw−t∥2
snažíme se ho minimalizovat → hledáme hodnoty, kde je derivace chybové funkce podle každé z vah nulová
∂wj∂21∑i(xiTw−ti)2=∑ixij(xiTw−ti)
chceme, aby ∀j:∑ixij(xiTw−ti)=0
XT(Xw−t)=0
XTXw=XTt
je-li XTX invertibilní, pak lze určit explicitní řešení jako w=(XTX)−1XTt
2. Linear Regression, SGD
Medium: Describe standard gradient descent and compare it to stochastic (i.e., online) gradient descent and minibatch stochastic gradient descent. Explain what it is used for in machine learning.
snažíme se minimalizovat hodnotu chybové funkce E(w) pro dané váhy w volbou lepších vah
spočítáme ∇wE(w) → tak zjistíme, jak váhy upravit
nastavíme w←w−α∇wE(w)
α … learning rate (hyperparametr), „délka kroku“
tomu se říká gradient descent
standard gradient descent – používáme všechna trénovací data k výpočtu ∇wE(w)
stochastic (online) gradient descent – používáme jeden náhodný řádek
minibatch stochastic gradient descent – používáme B náhodných nezávislých řádků
Easy: Explain possible intuitions behind L2 regularization.
penalizujeme modely s většími váhami
preferujeme menší změny modelu
omezujeme efektivní kapacitu modelu
čím je model složitější, tím větší má váhy
Easy: Explain the difference between hyperparameters and parameters.
parametry
jsou předmětem učení
na základě trénovacích dat se model naučí nějaké parametry, podle nichž pak predikuje
příklady: váhový vektor w u lineární regrese, váhová matice W a vektor biases b u MLP, středy clusterů u clusteringu
hyperparametry
ovlivňují učení
učicí algoritmus je nijak neupravuje
k posuzování kvality zvolených hyperparametrů slouží validační/vývojová data
příklady: síla regularizace λ, maximální stupeň polynomu M (u polynomiálních features), rychlost učení α (u SGD)
Medium: Write an L2-regularized minibatch SGD algorithm for training a linear regression model, including the explicit formulas (i.e., formulas you would need to code it with numpy) of the loss function and its gradient.
náhodně inicializujeme w (nebo nastavíme na nulu)
opakujeme, dokud to nezkonverguje nebo nám nedojde trpělivost
samplujeme minibatch řádků s indexy B
buď uniformně náhodně, nebo budeme chtít postupně zpracovat všechna trénovací data (to se obvykle dělá, jednomu takovému průchodu se říká epocha), tedy je nasekáme na náhodné minibatche a procházíme postupně
w←w−α∣B∣1∑i∈B((xiTw−ti)xi)−αλw
jako E se používá polovina MSE (s L2 regularizací) – stačí to zderivovat
Medium: Does the SGD algorithm for linear regression always find the best solution on the training data? If yes, explain under what conditions it happens; if not, explain why it is not guaranteed to converge. What properties of the error function does this depend on?
loss function je (y(x;w)−t)2 (nebo polovina), což je spojitá konvexní funkce, tedy SGD téměř jistě konverguje k optimu, pokud posloupnost (αn) splňuje podmínky
∀n:αn>0
∑nαn=∞
∑nαn2<∞
z třetí podmínky vyplývá, že αn jde k nule
Medium: After training a model with SGD, you ended up with a low training error and a high test error. Using the learning curves, explain what might have happened and what steps you might take to prevent this from happening.
pokud se testovací křivka přibližovala a v určitý moment se začala vzdalovat, došlo k přetrénování (overfitting) modelu
je potřeba zesílit regularizaci nebo včas zastavit trénování
pokud se testovací křivka ani nezačala přibližovat, je potřeba trénovat déle
Medium: You were given a fixed training set and a fixed test set, and you are supposed to report model performance on that test set. You need to decide what hyperparameters to use. How will you proceed and why?
v procesu trénování modelu a ladění hyperparametrů nesmím použít testovací data
z trénovacích dat vyčlením vývojová data, která se nebudou účastnit trénování, ale budou sloužit k porovnávání výkonu modelu při různých hodnotách hyperparametrů
alternativou by bylo použití cross-validation
trénovací data rozdělím na n dílů
model natrénuju na datech z n−1 dílů
na zbylých datech model vyhodnotím
proces opakuju pro n možných voleb
jako výsledné skóre modelu použiju průměr průběžných hodnocení
Easy: What methods can be used to normalize feature values? Explain why it is useful.
obvyklé metody
normalizace
přeškálování na rozsah [0,1]
xnorm=max−minx−min
standardizace
vystředění na nulu a přeškálování, aby měla data jednotkový rozptyl
xstandard=σ^x−μ^
logaritmizace
pokud bychom měli features s různými rozsahy, potřebovali bychom různé learning rates
3. Perceptron, Logistic Regression
Medium: Define binary classification, write down the perceptron algorithm, and show how a prediction is made for a given data instance x.
binární klasifikace je klasifikace do dvou tříd
ti∈{−1,+1}
algoritmus
začneme s nulovými váhami w
dokud nejsou všechna trénovací data klasifikována správně, postupně bereme řádky po jednom
pro i-tý řádek spočítáme predikci y=xiTw
pokud tiy≤0, je řádek klasifikován špatně
provedeme korekci w←w+tixi
predikce pro xi … sign(xiTw)
Hard: For discrete random variables, define entropy, cross-entropy, and Kullback-Leibler divergence, and prove the Gibbs inequality (i.e., that KL divergence is non-negative).
self information … I(x)=−logP(X)
entropie pravděpodobnostního rozdělení P
H(P)=−E[logP(x)]=−∑xP(x)logP(x)
cross entropie rozdělení P,Q
H(P,Q)=−Ex∼P[logQ(x)]=−∑xP(x)logQ(x)
Gibbsova nerovnost
H(P,Q)≥H(P)
H(P)=H(P,Q)⟺P=Q
důkaz
chceme H(P)−H(P,Q)≤0 (s rovností právě když P=Q)
H(P)−H(P,Q)=∑xP(x)logP(x)Q(x)
použijeme faktu, že logx≤x−1 s rovností pouze pro x=1
aby platila rovnost, musí být P(x)Q(x) pro všechny x rovno 1, tedy P=Q
Kullback-Leibler divergence
DKL(P∥Q)=H(P,Q)−H(P)=Ex∼P[logP(x)−logQ(x)]
Easy: Explain the notion of likelihood in maximum likelihood estimation. What likelihood are we estimating in machine learning, and why do we do it?
máme-li fixní trénovací data, pak likelihood L(w) (kde w jsou váhy modelu) se rovná součinu pravděpodobností targetů trénovacích dat
odhadujeme váhy modelu tak, aby byl likelihood (věrohodnost) trénovacích dat co největší
přesněji
pro model s fixními vahami w máme pravděpodobnostní distribuci pmodel(x;w), že model vygeneruje x
pro model s fixními vahami w a konkrétní řádek x máme pravděpodobnostní distribuci pmodel(t∣x;w), jak model klasifikuje x
místo toho zafixujeme trénovací data a budeme měnit váhy → dostaneme L(w)=pmodel(X;w)=∏ipmodel(xi;w)
wMLE=arg maxwpmodel(X;w)
Hard: Describe maximum likelihood estimation as minimizing NLL, cross-entropy, and KL divergence and explain whether they differ or are the same and why.
z distribuce pdata samplujeme trénovací data X
tak získáme empirickou distribuci dat p^data(x)
pro model s fixními vahami w máme pravděpodobnostní distribuci pmodel(x;w), že model vygeneruje x
místo x můžeme všude uvažovat t∣x (protože negenerujeme x, ale snažíme se predikovat t pro dané x), dopadne to stejně
místo pmodel píšu p, místo p^data píšu p^
wMLE=arg maxwp(X;w)=arg maxw∏ip(xi;w)
=arg minw∑i−logp(xi;w)
negative log-likelihood
=arg minwEx∼p^[−logp(x;w)]
=arg minwH(p^(x),p(x;w))
=arg minw(DKL(p^(x)∥p(x;w))+H(p^))
=arg minwDKL(p^(x)∥p(x;w))
protože H(p^) není parametrizováno w → neovlivňuje polohu minima
Easy: Provide an intuitive justification for why cross-entropy is a good optimization objective in machine learning. What distributions do we compare in cross-entropy? Why is it good when the cross-entropy is low?
pomocí cross-entropy porovnáváme distribuci opravdových targetů a distribuci predikcí modelu
čím víc se distribuce liší (cross-entropy je větší), tím hůř model predikuje
cross-entropy odpovídá našemu překvapení – pokud jsou dvě distribuce hodně odlišné, jsme hodně překvapení
cross-entropy taky podporuje confidence – nestačí, aby model dal správnému výsledku největší pravděpodobnost (třeba 51 %), měla by co nejvíc odpovídat rozdělení, které je v datech
ale naopak pokud si na základě features nemůže být jistý klasifikací (šance je třeba 2 : 3), chceme, aby si klasifikací opravdu nebyl jistý a vrátil 60 %
Medium: Considering the binary logistic regression model, write down its parameters (including their size) and explain how we decide what classes the input data belong to (including the explicit formula for the sigmoid function).
y(x;w)=σ(yˉ(x;w))=σ(xTw)
správnou třídu získáme zaokrouhlením
přesná hodnota se rovná pravděpodobnosti, že je x klasifikováno jako 1 (uvažujeme třídy 0 a 1)
yˉ … „lineární složka“ logistické regrese
velikost vektoru vah w odpovídá počtu features
nesmíme zapomenout také na bias, ten opět může být reprezentován jako další váha
σ(x)=1+e−x1
Hard: Write down an L2-regularized minibatch SGD algorithm for training a binary logistic regression model, including the explicit formulas (i.e., formulas you would need to code it in numpy) of the loss function and its gradient (saying just ∇ is not enough).
klasifikujeme do tříd {0,1}, na vstupu máme dataset X a learning rate α∈R+
náhodně inicializujeme w (nebo nastavíme na nulu)
opakujeme, dokud to nezkonverguje nebo nám nedojde trpělivost
Medium: Define mean squared error and show how it can be derived using MLE. What assumptions do we make during such derivation?
MSE(w)=N1∑i=1N(y(xi;w)−ti)2
předpokládáme, že náš model generuje distribuci p(t∣x;w)=N(t;y(x;w),σ2)
tedy že jde o normální distribuci se střední hodnotou v predikované hodnotě y(x;w) a s fixním rozptylem σ2
poznámka ke značení: pokud X∼N(μ,σ2), pak fX(x)=N(x;μ,σ2)
použijeme maximum likelihood estimation (odhad maximální věrohodnosti)
arg maxwp(t∣X;w)=arg minw∑i−logp(ti∣xi;w)
=arg minw−i=1∑Nlog2πσ21e−2σ2(ti−y(xi;w))2
=arg minw−∑i=1N(log2πσ21−2σ2(ti−y(xi;w))2)
=arg minw−Nlog2πσ21+∑i=1N2σ2(ti−y(xi;w))2
první člen neobsahuje w, tak se ho zbavíme
=arg minw∑i=1N2σ2(ti−y(xi;w))2
na konkrétní hodnotě σ nezáleží, můžeme tam doplnit N1 (na tom taky nezáleží)
=arg minwN1∑i=1N(y(xi;w)−ti)2
Medium: Considering K-class logistic regression model, write down its parameters (including their size) and explain how we decide what classes the input data belong to (including the formula for the softmax function).
parametry: váhová matice W (sloupce odpovídají třídám, řádky featurám), vektor biasů (jeden bias za každou třídu)
Hard: Write down an L2-regularized minibatch SGD algorithm for training a K-class logistic regression model, including the explicit formulas (i.e., formulas you would use to code it in numpy) of the loss function and its gradient.
klasifikujeme do tříd {0,…,K−1}, na vstupu máme dataset X a learning rate α∈R+
náhodně inicializujeme w (nebo nastavíme na nulu)
opakujeme, dokud to nezkonverguje nebo nám nedojde trpělivost
samplujeme minibatch řádků s indexy B
w←w−α∣B∣1∑i∈B((softmax(xTW)−1t)xT)T−αλw
jako E se používá NLL (s L2 regularizací)
srovnání gradientu logistické regrese
binary: (y(x)−t)x
multiclass: ((y(x)−1t)xT)T
přičemž 1t je one-hot reprezentace targetu t (tedy vektor s jedničkou na t-té pozici a nulami všude jinde)
Medium: Prove that decision regions of a multiclass logistic regression are convex.
uvažujme dvojici dat xA a xB, které jsou klasifikovány jako k (jsou ve stejném regionu)
libovolný bod x ležící na jejich spojnici je jejich konvexní kombinace x=λxa+(1−λ)xB a z linearity yˉ(x)=xTW vyplývá
yˉ(x)=λyˉ(xA)+(1−λ)yˉ(xB)
jelikož ve vektoru yˉ(xA) byla největší k-tá složka a ve vektoru yˉ(xB) rovněž, bude i ve vektoru yˉ(x) největší k-tá složka
Medium: Considering a single-layer MLP with D input neurons, H hidden neurons, K output neurons, hidden activation f, and output activation a, list its parameters (including their size) and write down how the output is computed.
vstupní data mají D features
parametry
první váhová matice W(h) bude mít tvar D×H
první vektor biasů bude mít H složek
druhá váhová matice W(y) bude mít tvar H×K
druhý vektor biasů bude mít K složek
výsledný vektor bude mít K složek
pro řádek vstupních dat x spočítáme
aktivaci skryté vrstvy h=f(xTW(h)+b(h))
výsledný vektor y=a(hTW(y)+b(y))
Medium: List the definitions of frequently used MLP output layer activations (the ones producing parameters of a Bernoulli distribution and a categorical distribution). Then, write down three commonly used hidden layer activations (sigmoid, tanh, ReLU). Explain why identity is not a suitable activation for hidden layers.
vyjde to, jako by tam ta skrytá vrstva vůbec nebyla – místo W(h),W(y),b(h),b(y) by nám stačilo W,b a mělo by to stejný efekt
5. MLP, Softmax as MaxEnt classifier, F1 score
Hard: Considering a single-layer MLP with D input neurons, a ReLU hidden layer with H units, and a softmax output layer with K units, write down the explicit formulas (i.e., formulas you would use to code it in numpy) of the gradient of all the MLP parameters (two weight matrices and two bias vectors), assuming input x, target t, and negative log likelihood loss.
algoritmus trénování
náhodně inicializujeme váhy a biasy
opakujeme, dokud to nezkonverguje nebo nám nedojde trpělivost
samplujeme minibatch řádků s indexy B
gradienty vah a biasů nastavíme na nulu
tedy ony to nejsou přímo gradienty, ale akumulační proměnné, nakonec obsahují ∣B∣-násobek gradientu
∀i∈B:
nejprve dopředný běh
h←max(0,xiW(h)+b(h))
y←softmax(hW(y)+b(y))
pak zpětná propagace
výstupní vrstva
∇y←y−1ti
∇W(y)+=h∇yT
∇b(y)+=∇y
skrytá vrstva
∇h←(W(y)∇y)⋅1h>0
∇W(h)+=xi∇hT
∇b(h)+=∇h
od vah a biasů odečteme ∣B∣α-násobek odpovídajícího gradientu
gradienty
∇W(y)=N1∑ih∇yiT
∇b(y)=N1∑i∇yi
∇W(h)=N1∑ixi∇hiT
∇b(h)=N1∑i∇hi
přičemž
hi=max(0,xiW(h)+b(h))
yi=softmax(hW(y)+b(y))
∇yi=yi−1ti
∇hi=(W(y)∇yi)⋅1hi>0
Medium: Formulate the computation of MLP as a computation graph. Explain how such a graph can be used to compute the gradients of the parameters in the back-propagation algorithm.
trénování MLP můžeme popsat jako graf operací a datových zdrojů
gradienty
∇W(y)=N1∑ih∇yiT
∇b(y)=N1∑i∇yi
∇W(h)=N1∑ixi∇hiT
∇b(h)=N1∑i∇hi
přičemž
hi=max(0,xiW(h)+b(h))
yi=softmax(hW(y)+b(y))
∇yi=yi−1ti
∇hi=(W(y)∇yi)⋅1hi>0
tedy při výpočtu gradientů můžeme postupovat grafem proti směru hran
Medium: Formulate the Universal approximation theorem and explain in words what it says about multi-layer perceptron.
mějme φ(x):R→R nekonstantní omezenou neklesající spojitou funkci (ale lze to ukázat i pro ReLU)
pak ∀ε>0 a pro libovolnou spojitou f:[0,1]D→R existují H∈N, v∈RH, b∈RH a W∈RD×H takové, že…
označíme-li F(x)=vTφ(xTW+b)
přičemž φ se aplikuje po prvcích
pak ∀x∈[0,1]D:∣F(x)−f(x)∣<ε
v … vektor vah výstupní vrstvy
co to znamená?
MLP s jednou skrytou vrstvou dokáže modelovat libovolnou spojitou funkci f
ale možná k tomu budeme potřebovat hodně neuronů ve skryté vrstvě
Medium: How do we search for a minimum of a function f(x):RD→R subject to equality constraints g1(x)=0,…,gm(x)=0?
použijeme metodu Lagrangeových multiplikátorů
předpokládáme, že f,g1,…,gm mají spojité parciální derivace a že gradienty ∇g1,…,∇gm jsou lineárně nezávislé
pak existují λ1∈R,…,λm∈R takové, že Lagrangeova funkce L(x,λ)=f(x)−∑i=1mλigi(x) má nulový gradient podle x a λ
jinými slovy ∇f(x)=∑λi∇gi(x) a ∀i:gi(x)=0
vyřešíme soustavu rovnic a dostaneme hledané x
poznámka
proč by mělo „minimum pod podmínkou“ být zrovna v bodě, kde ∇f(x)=λ∇g(x)?
funkce, jejíž minimum hledáme je f(x)
uvažujme její vrstevnice, tedy množiny bodů, kde f(x)=α pro nějakou konstantu α
gradient ∇f(x) je vždy kolmý na vrstevnici, „ukazuje“ směrem, kam funkce roste
chceme najít takový bod, kde bude gradient ∇f(x) kolmý na podmínku – jinak bychom se po křivce podmínky mohli vydat směrem, kterým gradient ukazuje a funkce by rostla (respektive na opačnou stranu, když hledáme minimum)
podmínka je popsána jako g(x)=0
gradient ∇g(x) je kolmý na každou vrstevnici g(x)=α
podmínka g(x)=0 je jednou z vrstevnic, tedy je na ni gradient kolmý
takže hledáme bod, kde je gradient ∇f(x) kolmý na g(x)=0 a kde je gradient ∇g(x) kolmý na g(x)=0, což znamená, že gradienty mají být kolineární
∇f(x)=λ∇g(x)
Medium: Prove which categorical distribution with N classes has maximum entropy.
hledáme kategorickou distribuci p=(p1,…,pn) s maximální entropií
tedy minimalizujeme −H(p) s podmínkami ∀i:pi≥0 a ∑ipi=1
první z nich zatím ignorujeme
L(x,λ)=(∑ipilogpi)−λ(∑ipi−1)
0=∂pi∂L=1⋅logpi+pi⋅pi1−λ=logpi+1−λ
logpi=λ−1
pi=eλ−1
tedy všechny pravděpodobnosti musejí být stejné
z podmínky ∑pi=1 vyplývá, že pi=n1
Hard: Consider derivation of softmax using maximum entropy principle, assuming we have a dataset of N examples (xi,ti),xi∈RD,ti∈{1,2,…,K}. Formulate the three conditions we impose on the searched π:RD→RK, and write down the Lagrangian to be minimized. Explain in words what is the interpretation of the conditions.
podmínky
∀k∈[K]:π(x)k≥0
∑k=1Kπ(x)k=1
∀k∈[K]:∑i=1Nπ(xi)kxi=∑i=1N[ti=k]xi
první dvě podmínky: chceme generovat pravděpodobnost
třetí podmínka
chceme, aby součty hodnot jednotlivých features v každé z tříd byly správné
např. klasifikujeme lidi, psy a kočky, chceme, aby se pro feature „počet nohou“ součet ve třídě lidí rovnal dvojnásobku počtu lidí v trénovacích datech (podobně pro třídu psů čtyřnásobku počtu psů)
poznámka: mohli bychom nastavit podmínku π(xi)=1ti, ale ta by byla moc přísná, proto jsme se rozhodli pro tuto alternativu
první podmínku ignorujme
Lagrangián bude vypadat takto: L=i=1∑Nk=1∑Kπ(xi)klog(π(xi)k)−j=1∑Dk=1∑Kλj,k(i=1∑Nπ(xi)kxi,j−[ti=k]xi,j)−i=1∑Nβi(k=1∑Kπ(xi)k−1)
Medium: Define precision (including true positives and others), recall, F1 score, and Fβ score (we stated several formulations for F1 and Fβ scores; any one of them will do).
základní dělení výsledků klasifikace
predikce je pozitivní, realita (target) rovněž → true positive (TP)
predikce je pozitivní, realita je negativní → false positive (FP)
predikce je negativní, realita je pozitivní → false negative (FN)
predikce je negativní, realita také → true negative (TN)
precision=TP+FPTP
recall=TP+FNTP
F1=TP+FP+TP+FNTP+TP
Fβ=TP+FP+β2(TP+FN)TP+β2⋅TP
Medium: Explain the difference between micro-averaged and macro-averaged F1 scores. List a few examples of when you would use them.
děláme multiclass clasifikaci
obvykle nějakou třídu považujeme za negativní, tu budeme ignorovat
postupně se díváme na každou z pozitivních tříd jako na binární klasifikaci
např. pokud konkrétní řádek dat patří do dané třídy, ale predikovali jsme, že tam nepatří, je to false negative
takhle pro každou třídu můžeme získat TP,FP,FN
micro-averaged F1
nejdřív všechny TP, FP a FN sečteme dohromady
pak spočítáme F1
takže velikost (frekvence) tříd hraje roli
macro-averaged F1
spočítáme F1 skóre jednotlivých binárních klasifikací
pak je zprůměrujeme
tím zajistíme, že na velikosti tříd moc nezáleží
příklady
rozpoznávání vlastních jmen v textu (jména osob, organizací a míst)
přesnost (accuracy) by byla vysoká, protože je tam hodně true negatives (většina slov nejsou vlastní jména)
micro-averaged F1 nám řekne, jak dobří jsme obecně v určování vlastních jmen (ve všech kategoriích dohromady)
jsme celkově úspěšní?
macro-averaged F1 nám řekne, jak dobře určujeme konkrétní typy vlastních jmen
daří se nám ve všech typech? (i v těch s menší frekvencí?)
podobně kdybychom klasifikovali slovní druhy
kdybychom špatně klasifikovali citoslovce, na micro-averaged bychom to nepoznali, ale na macro-averaged už ano
Easy: Explain (using examples) why accuracy is not a suitable metric for unbalanced target classes, e.g., for a diagnostic test for a contagious disease.
accuracy=TP+TN+FP+FNTP+TN
uvažujme nemoc, kterou má 1 % obyvatel
test, který je vždy negativní nebo pozná jen velmi málo nemocných, bude mít vysokou přesnost/accuracy (cca 99 %)
6. Representing Text (TF-IDF, Word2Vec)
Easy: Explain how the TF-IDF weight of a given document-term pair is computed.
term frequency … TF(t;d) = počet výskytů slova t v dokumentu d / počet slov v dokumentu d
inverse document frequency IDF(t) = log(počet dokumentů / počet dokumentů obsahujících slovo t)
někdy se k počtu dokumentů obsahujících t přičítá jednička, aby se to nerozbilo pro slova, která v dokumentech nejsou vůbec
empiricky, součin TF⋅IDF docela dobře odráží, jak je slovo důležité pro daný dokument z korpusu
Easy: What is Zipf's law? Explain how it can be used to provide intuitive justification for using the logarithm when computing IDF.
Zipfův zákon: frekvence slov je přibližně nepřímo úměrná jejich ranku (pořadí podle četnosti)
proto by byl podíl „počet dokumentů / počet dokumentů obsahujících slovo t“ extrémně malý pro častá slova a extrémně malý pro málo častá slova
logaritmus to normalizuje, proto IDF(t) = log(počet dokumentů / počet dokumentů obsahujících slovo t)
Medium: Define conditional entropy and mutual information, write down the relation between them, and finally prove that mutual information is zero if and only if the two random variables are independent (you do not need to prove statements about DKL).
Easy: Explain the concept of word embedding in the context of MLP and how it relates to representation learning.
MLP lze interpretovat jako automatickou extrakci features pro zobecněný lineární model
reprezentační učení: model se ze vstupních dat naučí, jak je reprezentovat, aby se tato reprezentace dala použít k dalším specifickým úkolům (klasifikaci apod.)
vstupní slovo budeme reprezentovat jako one-hot vektor
po vynásobení s maticí vah ze skryté vrstvy dostaneme konkrétní řádek ze skryté vrstvy, tomu se říká word embedding
Medium: Describe the skip-gram model trained using negative sampling. What is it used for? What are the input and output of the algorithm?
pro každé slovo ze slovníku se chceme naučit embedding
natrénujeme model, který bude predikovat pravděpodobnost jiných slov, že se objeví v kontextu daného slova
model bude mít dvě vrstvy
matici embeddingů
výstupní matici (se softmaxem)
po trénování můžeme první vrstvu použít jako embeddingy (druhá vrstva se obvykle zahazuje)
pro každé slovo samplujeme slova, která se v textu objevují v jeho okolí (obvykle 2 slova doleva a 2 slova doprava)
ale musíme samplovat i slova, která se v jeho kontextu nikdy neobjevují (obvykle 5 slov)
to zohledníme v loss funkci
Easy: How would you train a part-of-speech tagger (i.e., you want to assign each word to its part of speech) if you could only use pre-trained word embeddings and MLP classifier?
chceme zohlednit kontext, v jakém se slovo v textu objevuje
použijeme „posuvné okýnko“ nad embeddingy, budeme klasifikovat prostřední slovo
7. K Nearest Neighbors, Naive Bayes
Medium: Describe the prediction of k for the nearest neighbors, both for regression and classification. Define Lp norm and describe uniform, inverse, and softmax weighting.
regrese: t=∑i∑jwjwi⋅ti
klasifikace
pro uniformní váhy můžeme hlasovat (nejčastější třída vyhrává, remízy rozhodujeme náhodně)
jinak uvažujeme one-hot kódování ti opět můžeme použít predikci t=∑i∑jwjwi⋅ti (zvolíme třídu s největší predikovanou pravděpodobností)
Lp norma: ∥x∥p=p∑i∣xi∣p
obvykle se používá p∈{1,2,3,∞}
vzdálenost x a y lze určit jako ∥x−y∥p
weighting
uniform: všech k nejbližších sousedů má stejné váhy
inverse: váhy jsou nepřímo úměrné vzdálenosti
softmax: váhy jsou přímo úměrné softmaxu záporných vzdáleností
Medium: Show that L2-regularization can be obtained from a suitable prior by Bayesian inference (from the MAP estimate).
budeme předpokládat, že váhy mají distribuci N(0,σ2)
prostřední člen nás nezajímá, protože neobsahuje w
=arg minw∑i(−logp(xi∣w)+2σ2∥w∥2)
tak jsme dostali NLL s L2 regularizací
Medium: Write down how p(Ck∣x) is approximated in a Naive Bayes classifier, explicitly state the Naive Bayes assumption, and show how the prediction is performed.
p(Ck) lze vyčíst snadno z dat, ale jak určíme p(x∣Ck)?
jednotlivé features x1,…,xn nemusí být nezávislé, tedy p(x1,x2∣Ck) by se měl počítat jako p(x1∣Ck)p(x2∣Ck,x1)
použijeme naivní bayesovský předpoklad, že všechny xd jsou nezávislé pro dané Ck
tedy p(x∣Ck)=∏dp(xd∣Ck)
predikce: arg maxkp(Ck)∏dp(xd∣Ck)
přičemž pravděpodobnostní funkce se model naučil z trénovacích dat
Medium: Considering a Gaussian Naive Bayes, describe how probabilities p(xd∣Ck) are modeled (what distribution and which parameters it has) and how we estimate it during fitting.
podmíněnou distribuci každé featury budeme modelovat jako N(μd,k,σd,k2)
výpočet μ a σ2 odpovídá očekávání
μd,k=Nk1∑i=1Nkxi,d
σd,k2=Nk1∑i=1Nk(xi,d−μd,k)2
k rozptylu se obvykle přičítá konstanta α, aby distribuce nebyla moc ostrá
Medium: Considering a Bernoulli Naive Bayes, describe how probabilities p(xd∣Ck) are modeled (what distribution and which parameters it has) and how we estimate it during fitting.
podmíněnou distribuci každé featury budeme modelovat jako Ber(p)
pokud jsou features binární, pak pd,k=Nk1∑i=1Nkxi,d
tedy pd,k = (počet řádků ve třídě k s nenulovou featurou d) / (počet řádků ve třídě k)
akorát obvykle nechceme nulovou pravděpodobnost pro features, které jsou pro danou třídu v trénovacích datech vždy nulové
proto budeme uvažovat pd,k = (počet řádků ve třídě k s nenulovou featurou d + α) / (počet řádků ve třídě k + 2α)
tedy k čitateli zlomku přičteme konstantu α a ke jmenovateli 2α
přičemž α>0
tomu se říká Laplace/additive smoothing
Medium: What measures can we take to prevent numeric instabilities in the Naive Bayes classifier, particularly if the probability density is too high in Gaussian Naive Bayes and there are zero probabilities in Bernoulli Naive Bayes?
gaussovský NB: k rozptylu přičteme α
v Scikit-learn se používá 10−9-násobek největšího rozptylu ze všech features
bayesovský NB: k čitateli přičteme α>0, ke jmenovateli přičteme 2α
- tedy pd,k = (počet řádků ve třídě k s nenulovou featurou d + α) / (počet řádků ve třídě k + 2α)
Easy: What is the difference between discriminative and (classical) generative models?
diskriminativní modely modelují podmíněnou pravděpodobnost nějakého targetu, pokud máme data
Medium: Write down the definition of covariance and Pearson correlation coefficient ρ, including its range.
cov(X,Y)=E[(X−EX)(Y−EY)]
ρ(X,Y)=var(X)var(Y)cov(X,Y)=σX⋅σYcov(X,Y)
∀X,Y:ρ(X,Y)∈[−1,1]
Medium: Explain how Spearman's rank correlation coefficient and Kendall's rank correlation coefficient are computed (there is no need to describe the Pearson correlation coefficient).
ρ nefunguje dobře, pokud chceme počítat nelineární korelaci
Spearmanův koeficient pořadové korelace
počítá se jako ρ na pořadí dat
pořadí (rank) určíme tak, že hodnoty (dvojice (x,y)) seřadíme vzestupně (podle dané souřadnice) a vezmeme jejich indexy
značí se také ρ
Kendallův koeficient pořadové korelace
data jsou tvořena dvojicemi (x,y)
libovolné dvě dvojice vybrané z dat můžou být buď konkordantní (ve správném pořadí, např. pokud je x1>x2, pak i y1>y2) nebo diskordantní (ve špatném pořadí, např. x1>x2, ale y1<y2)
Kendallův koeficient τ získáme jako rozdíl mezi pravděpodobností, že jsou vybrané dvojice konkordantní, a pravděpodobností, že jsou vybrané dvojice diskordantní
tedy platí τ=(2n)∣{pairsi=j:xj>xi,yj>yi}∣−∣{pairsi=j:xj>xi,yj<yi}∣=(2n)∑i<jsign(xj−xi)⋅sign(yj−yi)
Easy: Describe setups where a correlation coefficient might be a good evaluation metric.
chceme model používat k seřazení (rankování) dokumentů
uživatel zadá dotaz, my mu vrátíme výsledky v nějakém pořadí
pro daný dotaz víme, jaké by pořadí mělo být
chceme vyhodnotit kvalitu embeddingů
z psycholingvistických experimentů máme nějaká skóre pro dvojice slov/vět
model se naučil embeddingy, pro dvojice embeddingů můžeme spočítat jejich vzdálenost
Easy: Describe under what circumstance correlation can be used to assess the validity of evaluation metrics.
někdy není jasné, jak vyhodnocovat výkon modelu
typicky u úloh, kde hraje roli subjektivní hodnocení daného člověka, např. u strojového překladu nebo korekce gramatických chyb
snažíme se, aby uměle nastavená metrika korelovala s lidským hodnocením
Medium: Define Cohen's κ and explain what it is used for when preparing data for machine learning.
mezianotátorská shoda u klasifikačních úloh
κ=1−pEpO−pE
pO … pozorovaná shoda
pE … shoda, kdyby byla anotace náhodná
Easy: Assuming you have collected data for classification by letting people annotate data instances. How do you estimate a reasonable range for classifier performance?
chtěli bychom, aby byl natrénovaný model lepší než triviální klasifikátor, který přiřadí všem datům největší třídu nebo bude používat nějaká jednoduchá pravidla
očekáváme, že výkon modelu nebude lepší než mezianotátorská shoda
pokud se něco takového stane, asi overfitujeme
Hard: Considering an averaging ensemble of M models, prove the relation between the average mean squared error of the ensemble and the average error of the individual models, assuming the model errors have zero means and are uncorrelated. Use a formula to explain what uncorrelated errors mean in this context.
chybu i-tého modelu v ansámblu pro konkrétní řádek x označíme εi(x)
tedy model pro dvojici (x,t) predikuje yi(x)=t+εi(x)
pak MSE i-tého modelu bude E[εi2(x)]
když používáme „averaging ensemble“, tak celková chyba pro x bude M1∑iεi(x)
první rovnost je přímočará, druhou mocninu součtu přepíšeme na roznásobení jednotlivých členů „každý s každým“
druhá rovnost podle linearity střední hodnoty
pro i=j platí E[εi(x)εj(x)]=0
předpokládáme totiž, že jsou chyby nekorelované, tak se střední hodnota jejich součinu rovná součinu středních hodnot
také předpokládáme, že střední hodnota chyb je nulová
proto M21∑i,jE[εi(x)εj(x)]=M21∑iE[εi2(x)]
tedy se MSE ansámblu rovná M1-násobku průměru MSE jednotlivých modelů
Medium: Explain knowledge distillation: what it is used for, describe how it is done. What is the loss function? How does it differ from standard training?
ansámbl modelů může být příliš pomalý nebo velký
proto na základě tohoto ansámblu (učitelského modelu) natrénujeme menší/rychlejší studentský model, který ho bude napodobovat
studentský model budeme trénovat tak, že mu místo dvojic (x,t) budeme předhazovat dvojice (x,p), kde p je pravděpodobnostní rozdělení tříd, které pro hodnotu x vrací učitelský model
dokonce můžeme použít data, k nimž nejsou dostupné anotace (targety)
jako loss funkci používáme H(pstudent(y∣x;w),pteacher(y∣x;w))
9. Decision Trees, Random Forests
Medium: In a regression decision tree, state what values are kept in internal nodes, define the squared error criterion, and describe how a leaf is split during training (without discussing splitting constraints).
v každém vnitřním vrcholu je uložena feature, podle které dělíme, a konkrétní hodnota, která určuje rozhraní
každému vrcholu náleží podmnožina trénovacích dat
pro dělení dat ve vrcholu T při regresi používáme squared error criterion (při klasifikaci se obvykle používá Gini index nebo entropy criterion)
squared error criterion říká, jak homogenní je podmnožina trénovacích dat, která náleží vrcholu T
cSE(T)=∑i∈IT(ti−t^T)2
IT jsou indexy řádků trénovacích dat, které náleží danému vrcholu
t^T je průměr targetů v daném vrcholu
při dělení vrcholu (listu) chceme najít takovou dvojici (feature, dělicí hodnota), která nejvíc sníží celkovou hodnotu „kritéria“, tedy takovou, aby rozdíl cTL+cTR−cT byl co nejmenší
cT … criterion současného vrcholu
cTL … criterion nového levého syna
cTR … criterion nového pravého syna
Medium: Explain the CART algorithm for constructing a decision tree. Explain the relationship between the loss function that is optimized during the decision tree construction and the splitting criterion that is during the node splitting.
algoritmus CART (Classification and Regression Trees)
trénovací data jsou uložena v listech (predikce listu odpovídá tomu, jaká data v něm jsou)
začneme s jedním listem
list můžeme rozdělit (stane se z něj vnitřní vrchol a pod něj připojíme dva nové listy)
list dělíme tak, aby rozdíl cTL+cTR−cT byl co nejmenší
někdy stanovujeme omezení: maximální hloubku stromu, minimální počet dat v děleném listu (abychom nedělili zbytečně listy, co mají málo dat), maximální počet listů
obvykle se listy dělí prohledáváním do hloubky
pokud je stanoven maximální počet listů, je vhodnější je dělit ty s nejmenším rozdílem cTL+cTR−cT
ztrátová funkce (loss :.|:;)
dosud nás vždycky zajímaly parametry, které minimalizují ztrátovou funkci
tím, že minimalizujeme dělicí kritérium, minimalizujeme minimální dosažitelnou hodnotu ztrátové funkce pro daný strom
Medium: In a K-class classification decision tree, state what values are kept in internal nodes, define the Gini index, and describe how a node is split during training (without discussing splitting constraints).
ve vnitřním vrcholu je uložena dvojice (feature, hodnota), která určuje dělicí rozhraní
Gini index / Gini impurity
cGini(T)=∣IT∣∑kpT(k)(1−pT(k))
jak často by byl náhodně vybraný prvek špatně klasifikován, kdyby byl klasifikován náhodně podle rozdělení pT
pT(k) … pravděpodobnost, že vybereme prvek ze třídy k
(1−pT(k)) … pravděpodobnost, že mu přiřadíme jinou třídu než k
při dělení vrcholu chceme najít takovou dvojici (feature, dělicí hodnota), aby rozdíl cTL+cTR−cT byl co nejmenší
Medium: In a K-class classification decision tree, state what values are kept in internal nodes, define the entropy criterion, and describe how a node is split during training (without discussing splitting constraints).
ve vnitřním vrcholu je uložena dvojice (feature, hodnota), která určuje dělicí rozhraní
Hard: For K-class classification using decision trees, derive the entropy criterion from a non-averaged NLL loss.
označme n(k) počet dat s targetem k v daném listu
označme K množinu tříd přítomných v datech daného listu (pomůže nám nerozbít logaritmy nulovou pravděpodobností)
pT(k)=∣IT∣n(k)
uvažujme non-averaged NLL loss
L(p)=∑i∈IT−logpti
pomocí metody Lagrangeových multiplikátorů zjistíme, že p minimalizující loss splňuje pk=pT(k)
proto L(pT)=∑i∈IT−logpti=−∑k∈Kn(k)logpT(k)=−∑k∈K∣IT∣∣IT∣n(k)logpT(k)=
=−∣IT∣∑kpT(k)logpT(k)=∣IT∣⋅H(pT)
Medium: Describe how a random forest is trained (including bagging and a random subset of features) and how prediction is performed for regression and classification.
trénování
pro každý strom náhodně (s opakováním) vybereme sample trénovacích dat, tomu se říká bagging
pro každý vrchol náhodně vybereme podmnožinu features, které při dělení bereme v úvahu
predikce
u regrese průměrujeme hodnoty jednotlivých stromů
u klasifikace hlasujeme
10. Gradient Boosted Decision Trees
Easy: Explain the main differences between random forests and gradient-boosted decision trees.
random forest trénuje stromy nezávisle
v GBDT se stromy trénují sekvenčně, snažíme se postupně opravovat chyby předchozích stromů
Medium: Explain the intuition for second-order optimization using Newton's root-finding method or Taylor expansions.
v algoritmech typu SGD se postupně posouváme směrem k místu, kde bude derivace chybové funkce nulová
počítáme první derivaci (respektive vektor/matici prvních derivací, pro každou váhu jednu), proto se tomu říká metoda prvního řádu
vlastně hledáme kořen derivace chybové funkce
Newtonova metoda spočívá v tom, že hledáme-li kořen funkce f, můžeme ji pro konkrétní bod aproximovat její tečnou (pomocí f′) a najít, kde leží kořen tečny
jsme-li v bodě x, pak bod x′, který bude blíže hledanému kořenu spočítáme jako x′=x−f′(x)f(x)
protože ale ve strojovém učení hledáme kořen derivace, budeme používat druhou derivaci
x′←x−f′′(x)f′(x)
alternativně můžeme použít Taylorův rozvoj
chybovou funkci aproximujeme pomocí Taylorova rozvoje
f(x+ε)≈f(x)+εf′(x)+21ε2f′′(x)+O(ε3)
budeme hledat minimum této aproximace
0=∂ε∂f(x+ε)≈f′(x)+εf′′(x)
z toho nám vyjde ε=f′′(x)f′(x)
tedy x+ε=x−f′′(x)f′(x)
tyhle postupy používají druhou derivaci, proto se jim říká metody druhého řádu
s druhou derivací bychom ale měli problém třeba u MLP, jelikož bychom museli počítat druhou derivaci pro každou dvojici vah
Hard: Write down the loss function that we optimize in gradient-boosted decision trees while constructing t tree. Then, define gi and hi and show the value wT of optimal prediction in node T and the criterion used during node splitting.
loss pro strom t: E(t)(wt;w1..t−1)=∑i[ℓ(ti,y(t−1)(xi;w1..t−1)+yt(xi;wt))]+21λ∥wt∥2
kde ℓ je loss pro jeden řádek dat, tedy ℓ(ti,y(xi;w))=(ti−y(xi;w))2 pro regresi
w=(w1,…,wT), kde wt jsou parametry stromu t
λ je síla L2 regularizace
zjednodušeně zapíšeme loss jako E(t)(wt;w1..t−1)=∑i[ℓ(ti,y(t−1)(xi)+yt(xi))]+21λ∥wt∥2
definujme
gi=∂y(t−1)(xi)∂ℓ(ti,y(t−1)(xi))
hi=∂y(t−1)(xi)2∂2ℓ(ti,y(t−1)(xi))
pak můžeme loss aproximovat jako E(t)(wt;w1..t−1)≈∑i[ℓ(ti,y(t−1)(xi))+giyt(xi)+21hiyt2(xi)]+21λ∥wt∥2
optimální váha pro vrchol T bude wT∗=−λ+∑i∈IThi∑i∈ITgi
dosazením w∗ do E dostaneme E(t)(w∗)≈−21∑Tλ+∑i∈IThi(∑i∈ITgi)2+const
to lze použít jako kritérium
Medium: For a K-class classification, describe how to perform prediction with a gradient boosted decision tree trained for T time steps (how the individual trees perform prediction and how are the K⋅T trees combined to produce the predicted categorical distribution).
v každém kroku t trénujeme K stromů wt,k, každý predikuje jednu hodnotu lineární části zobecněného lineárního modelu
každý strom predikuje logit pro konkrétní třídu (binární predikci)
Easy: What type of data are gradient boosted decision trees suitable for as opposed to multilayer perceptron? Explain the intuition why it is the case.
MLP
s jednou/dvěma skrytými vrstvami
hodí se pro data s mnoha dimenzemi (obrázky, řeč, text)
jedna dimenze (feature) v takových datech nenese moc významu
pokud je to možné, je vhodné použít předtrénovanou reprezentaci (např. embedding)
gradient boosted decision trees
fungují nejlépe pro data s méně dimenzemi
tam, kde každá feature má svoji interpretaci
11. SVD, PCA, k-means
Medium: Formulate SVD decomposition of matrix X, describe properties of individual parts of the decomposition. Explain what the reduced version of SVD is.
mějme matici X∈Rm×n s hodností r
X=UΣVT
U∈Rm×m ortonormální
Σ∈Rm×n diagonální matice s nezápornými hodnotami (tzv. singulárními hodnotami) zvolenými tak, aby byly uspořádány sestupně
V∈Rn×n ortonormální
možný pohled na dekompozici
X=σ1u1v1T+σ2u2v2T+⋯+σrurvrT
σi … i-té singulární číslo
ui … i-tý sloupec matice U
viT … i-tý řádek matice VT
redukovaná verze SVD
σ označme vektor singulárních hodnot
pro matici X s hodností r bude v tom vektoru nejvýše r nenulových hodnot
tedy matici Σ můžeme redukovat na rozměry r×r, podobně U můžeme redukovat na m×r a VT na r×n, touto kompresí nepřijdeme o žádné informace
dokonce můžeme Σ zmenšit ještě víc
zvolíme k<r
necháme jenom k největších singulárních hodnot, všechny ostatní zahodíme
tím už se nějaké informace ztratí
budeme mít aproximaci původní matice X, ta aproximace bude mít rank k
Medium: Formulate the Eckart-Young theorem. Provide an interpretation of what the theorem says and why it is useful.
věta
mějme matici X a její SVD aproximaci Xk (pomocí k největších singulárních čísel)
pak Xk je nejlepší aproximace s hodností k vzhledem k Frobeniově normě (neexistuje žádná jiná matice s hodností k, která by byla „blíže“ X)
formálně
mějme X∈Rm×n a její SVD aproximaci Xk∈Rm×n s rankem k
pro každou B∈Rm×n s rankem k platí: ∥X−Xk∥F≤∥X−B∥F
přičemž ∥X∥F=∑i∑jxij2
v podstatě L2 norma, když z matice uděláme jeden dlouhý vektor hodnot
proč to funguje?
násobením ortonormální maticí se norma nemění, tedy Frobeniova norma X je prostě L2 norma diagonály Σ
když odebíráme nejmenší hodnoty, norma se moc nemění
k čemu se to hodí?
aproximaci pomocí SVD můžeme použít k tomu, abychom data s velkým množstvím dimenzí reprezentovali pomocí méně dimenzí
právě jsme ukázali, že tahle aproximace bude dost blízko realitě
typický use-case je u doporučovacího systému
pokud budeme mít matici, která bude zachycovat, kteří uživatelé viděli který obsah, bude hodně velká a hodně řídká
pomocí SVD ji můžeme vhodně aproximovat jako součin menších matic
jednak se sníží šum (tím, že zahodíme malé singulární hodnoty)
jednak získáme uživatelské vlastní vektory a obsahové vlastní vektory, což lze použít k hledání podobností
Medium: Explain how to compute the PCA of dimension M using the SVD decomposition of a data matrix X, and why it works.
jak na to?
spočteme SVD matice (X−xˉ)
kde xˉ je průměr řádků matice (vektor průměrných hodnot jednotlivých features)
necháme prvních M řádků VT, ostatní zahodíme (takže V bude mít M sloupců)
pokud chceme získat hodnoty nových M komponent, tak stačí vynásobit XV, tak dostaneme matici N×M
proč to funguje?
mějme kovarianční matici cov(X)=N1(X−xˉ)T(X−xˉ)
poznámka: v obvyklé definici kovarianční matice se transponuje druhý činitel, protože tam každé náhodné proměnné náleží jeden řádek (my máme features ve sloupcích)
∥X∥F=∑i∑jxij2=trace(XTX) (stopa je součet diagonály)
∥X−xˉ∥F2=trace(N⋅cov(X)(X−xˉ)T(X−xˉ)), což se rovná N-násobku součtu rozptylů jednotlivých features, jelikož na diagonále kovarianční matice jsou rozptyly
tedy SVD aproximace (X−xˉ) zachovává většinu rozptylu v datech
hlavní komponenty (principal components) matice X odpovídají vlastním vektorům kovarianční matice, ty lze získat pomocí SVD matice (X−xˉ), konkrétně jde o matici V
poznámka: kovarianční matice má navíc koeficient N1, ten sice škáluje vlastní hodnoty, ale vlastní vektory nemění
Hard: Given a data matrix X, write down the algorithm for computing the PCA of dimension M using the power iteration algorithm.
na vstupu máme matici X a požadovaný počet dimenzí (komponent) M
budeme hledat vlastní vektory kovarianční matice
spočítáme xˉ
spočítáme kovarianční matici S←N1(X−xˉ)T(X−xˉ)
pro každou komponentu i∈[M] opakujeme:
náhodně inicializujeme vi
několikrát opakujeme (dokud to nezkonverguje nebo pro fixní počet iterací):
vi←Svi
λi←∥vi∥
vi←vi/λi
S←S−λiviviT
vrátíme XV, kde sloupce V odpovídají v1,…,vM
Easy: List at least two applications of SVD or PCA.
aproximace matic
snížení šumu v datech
redukce dimenzí dat, extrakce features
vizualizace dat
praktické použití: doporučovací systémy
Hard: Describe the K-means algorithm, including the kmeans++ initialization. What is it used for? What is the loss function that the algorithm optimizes? What can you say about the algorithm convergence?
algoritmus
na vstupu máme body x1,…,xN, počet clusterů K
inicializujeme středy clusterů μ1,…,μK
buď náhodně (ze vstupních bodů)
nebo pomocí kmeans++
první střed se vybere náhodně (ze vstupních bodů)
každý další střed vybereme z nepoužitých bodů tak, že pravděpodobnost výběru každého bodu úměrně roste s druhou mocninou vzdálenosti jeho nejbližšího středu (clusteru)
opakujeme, dokud to nezkonverguje nebo nám nedojde trpělivost
body přiřadíme clusterům (každý bod přiřadíme tomu clusteru, k jehož středu má nejblíž)
aktualizujeme středy clusterů (vždy zprůměrujeme body, které jsme danému clusteru přiřadili)
použití
K-means se používá ke clusteringu, tedy k dělení dat do skupin, clusterů
je to technika učení bez učitele (unsupervised), neznáme targety
konkrétní příklady: seskupení pixelů podobné barvy, určení skupin zákazníků
ztrátová funkce (loss :.|:;)
J=∑i=1N∑k=1Kzi,k∥xi−μk∥2
kde zi,k je indikátor přiřazení bodu xi do clusteru k
konvergence
aktualizace přiřazení bodů ke clusterům nezvyšuje loss
aktualizace středů clusterů nezvyšuje loss
takže K-means konverguje k lokálnímu optimu
Medium: Name at least two clustering algorithms. What is their main principle? How do they differ?
K-means
hledání nejbližších bodů pomocí L2 normy
průměrování
Gaussian mixture
clustery modelujeme jako Gaussova rozdělení
hledáme parametry rozdělení, které vygenerovaly clustery
hierarchický clustering
na začátku je každý cluster singleton (patří tam jeden bod)
slučujeme nejpodobnější clustery, dokud nezískáme cílový počet clusterů
dají se používat různé metriky podobnosti clusterů
hustotní clustering
najdeme oblasti, kde je hodně bodů u sebe (je tam vysoká hustota bodů)
tyhle body sloučíme do jednoho clusteru
12. Statistical Hypothesis Testing, Model Comparison
Medium: Considering statistical hypothesis testing, define type I errors and type II errors (in terms of the null hypothesis). Finally, define what a significance level is.
nulová hypotéza H0 … defaultní, konzervativní model
spočítáme pozorovanou hodnotu testové statistiky (pro naměřená data)
spočítáme p-hodnotu, což je pravděpodobnost, že hodnota statistiky bude aspoň tak extrémní jako pozorovaná hodnota, pokud platí H0
zamítneme H0 (ve prospěch H1), pokud je p-hodnota menší než zvolená hladina významnosti α (obvykle se používá α=5%)
Medium: Explain the differences between a one-sample test, a two-sample test, and a paired test.
jednovýběrový test – samplujeme z jedné distribuce
klasický intervalový odhad, např. H0 … μ=5
nebo můžeme zkoumat, zda data pocházejí z určité distribuce
dvouvýběrový test – samplujeme nezávisle ze dvou distribucí
máme dvě sady dat, porovnáváme parametry
např. H0 … μX=μY
párový test – samplujeme ze dvou distribucí, ale samply jsou spárované
data jsou ve dvojicích, dvojice dat spolu nějak souvisí
např. H0 … μX=μY
uvažuju Ri=Yi−Xi (rozdíl dvojice), použiju jednovýběrový test
Medium: When considering the multiple comparison problem, define the family-wise error rate and prove the Bonferroni correction, which allows limiting the family-wise error rate by a given α.
family-wise error rate je pravděpodobnost alespoň jedné chyby 1. druhu při několikanásobném testování
FWER=P(⋃i(pi≤α))
Bonferroniho korekce zamítá nulovou hypotézu testu v rodině velikosti m, pokud pi≤mα
předpokládejme použití korekce
pak FWER=P(⋃i(pi≤mα))≤∑iP(pi≤mα)=m⋅mα=α
využili jsme Booleovu nerovnost P(⋃iAi)≤∑iP(Ai)
Medium: For a trained model and a given test set with N examples and metric E, write how to estimate 95% confidence intervals using bootstrap resampling.
na vstupu máme metriku E, počet resamplingů R, testovací data, targety a predikce modelu
R-krát opakujeme
náhodně nasamplujeme N řádků z testovacích dat – s opakováním
určíme výkon modelu pro tento sample (pomocí metriky E)
tak jsme získali R hodnot metriky
pomocí těchto hodnot najdeme 2,5-tý precentil a 97,5-tý percentil (takže Q0.025 a Q0.975)
tak můžeme určit 95% konfidenční interval – metrika bude s 95% pravděpodobností v intervalu [Q0.025,Q0.975]
Medium: For two trained models and a given test set with N examples and metric E, explain how to perform a paired bootstrap test that the first model is better than the other.
na vstupu máme metriku E, počet resamplingů R, testovací data, targety a predikce obou modelů
R-krát opakujeme
náhodně nasamplujeme N řádků z testovacích dat – s opakováním
pomocí metriky E určíme výkon obou modelů, uložíme si jejich rozdíl
tak jsme získali R rozdílů výkonů modelů
vrátíme poměr, kolik rozdílů je menších nebo rovno nule
pozor, tohle není p-hodnota, protože jsme neuvažovali distribuci statistiky za předpokladu platnosti H0
Medium: For two trained models and a given test set with N examples and metric E, explain how to perform a random permutation test that the first model is better than the other with a significance level α.
na vstupu máme metriku E, počet resamplingů R, testovací data, targety a predikce obou modelů
pomocí metriky E spočteme výkon prvního modelu
R-krát opakujeme
pro každý řádek uniformně náhodně vybereme model, jehož predikci použijeme
pomocí metriky E určíme výkon pro tyto predikce
tak jsme získali R hodnot metriky (výkonů)
p-hodnota odpovídá poměru hodnot, které jsou větší nebo stejné jako výkon prvního modelu
pokud je p≤α, tak zamítáme H0 (první model je nejvýše tak dobrý jako ten druhý) ve prospěch H1 (první model je lepší než ten druhý)
poznámka: nenašli jsme přesně p, to bychom museli uvažovat všechny způsoby volby modelu (je jich 2N, my jsme ale výkon počítali jenom pro R, tedy se jedná o aproximaci)
13. Machine Learning Ethics, Final Summary
Medium: Explain the difference between deontological and utilitarian ethics. List examples of how these theoretical frameworks can be applied in machine learning ethics.
deontologická etika
máme nějaká pravidla/principy, těch se držíme
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)
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
Easy: List at least one example of an ethical problem that can originate in model design or model development.
diskretizace výstupů zesiluje bias (stereotypy) – 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 (stereotypy)
modely se můžou naučit smazané features (etnická příslušnost, gender, …) z jiných features (jméno, škola, …)
Easy: Under what circumstances could train-test mismatch be an ethical problem?
nesoulad mezi trénovacími/testovacími daty a reálným světem je typicky problematický ze dvou důvodů
pokud jsou menšiny v datech nedostatečně reprezentovány, hrozí jejich diskriminace při reálném použití
pokud predikcím modelu dáváme velkou váhu, používáme je v kritických situacích apod. (jinak by nám tolik nevadilo, že model nefunguje dobře)
příklad: jazyk minorit je častěji klasifikován jako hate speech / NSFW