Обавезе

Консултације

Литература

Машинско и статистичко учење

У општој перцепцији машинско учење представља дисциплину која се бави извођењем алгоритама из података, без експлицитног програмирања. Овај поглед наглашава његову практичну страну. Ипак, машинско учење има и своју фундаменталну димензију. Као што се логика бави проучавањем дедукције објашњавајући шта чини неки закључак потпуно оправданим и тиме формализује један важан вид људског закључивања, машинско учење се бави проучавањем индукције, односно генерализације и тиме формализује други вид људског закључивања - уопштавање од ограниченог броја узорака ка универзалним закључцима.

Неки од проблема на које је машинско учење успјешно примјењено су препознавање лица на сликама, препознавање различитих објеката на сликама или видеу, препознавање тумора на медицинским снимцима, аутономна вожња аутомобила, аутономно летење, играње игара на табли попут шаха и игре го, класификација текста, машинско превођење, аутоматско описивање садржаја слика, анализа осјећања изражених у тексту, предвиђање развоја болести код пацијената и препоручивање терапије, анализа друштвених мрежа, препознавање и синтеза говора и тако даље. У многим од ових примјена, машинско учење је већ превазишло ниво ефикасности људских експерата. Све набројане примјене представљају очигледне примјере важних практичних проблема, али иза свих стоји и озбиљна теорија.

Набројани проблеми су врло разнородни како по својој природи, тако и по методама машинског учења које се користе за њихово рјешавање. Те методе се могу разврстати на много начина, али основна подјела би била према природи проблема учења.

Подјела машинског учења

Обично се идентификују сљедећи проблеми машинског учења:

  • Надгледано учење (supervised learning)
  • Ненадгледано учење (unsupervised learning)
  • Учење поткрепљивањем (reinforcement learning)

Надгледано учење је вјероватно најзначајнији вид машинског учења. Основна карактеристика му је да се подаци састоје из парова описа онога на основу чега се учи и онога што је из тога потребно научити. Назив је мотивисан аналогијом са процесом учења при којем учитељ ученику задаје задатке, али му након његових одговора, ради поређења, даје и тачна рјешења.

Надгледано учење се такође дијели на два глобална проблема: регресију и класификацију. У наставку курса ћемо размотрити сваки од њих.

Ненадгледано учење се карактеришее управо недостатком информације о томе шта је потребно научити. На први поглед, овакве методе могу звучати или немогуће или неупоредиво моћније од метода надгледаног учења. Заправо, овај вид учења се обично бави проналажењем неке врсте структуре у подацима, а методе које на тај начин уче су обично направљене полазећи од конкретне врсте структуре која се тражи. Проблем кластеровања је један проблем налажења структуре у подацима – структуре група. Други вид проналажења структуре у подацима би било учење репрезентације података. На примјер, подаци који су високо димензионални, често заправо лежее у линеарном потпростору или на некој површи значајно мање димензије. Изражавањем полазних података у терминима координата у таквим просторима, смањује се њихова димензионалност, што често доводи до доста бољих перформанси алгоритама надгледаног учења који се примјењују на тим подацима

Учење поткрепљивањем је, неформално речено, између претходна два поменута приступа. Користи се у ситуацијама у којима је потребно ријешити неки проблем предузимајући низ акција, чијим се заједничким дејством долази до рјешења проблема.

Циљ области машинског учења се може формулисати на сљедећи начин: да науче рачунар да сам изводи закључке након што је извршен одређени тренинг или обучеавање истог. Тешко је одмах објаснити разлику између машинског и статистичког учења. Једна од разлика је свакако област којој припадају: статистичко учење је то што је занимљиво стаитстичарима, а машинско учење људима рачунарске и информатичке сфере. Мада сваким наредним даном је све теже наћи јасну границу.

Регресија

Са ријечју регресија математичари су се први пут сусрели у раду Ф. Галтона, Regression toward mediocrity in hereditary stature из 1855. године. Он је дошао до закључка да синови веома високих очева нису тако високи. Иако је Галтон разлог за то пронашао у генетици, његов примјер иницирао је проучавање ове теме од стране статистичара и тако почиње развој ове веома значајне статистичке области.

Често се дешава да желимо да видимо како ће се понашати неко конкретно обиљежје када знамо вриједности неких других обиљежја. На примјер, занима нас да видимо како зависи висина плате од година радног стажа, степена стручне спреме, занимања и слично. Обиљежје чију зависност у односу на друге промјенљиве моделирамо називамо зависном промјенљивом или промјенљивом одговора, док остале промјенљиве чији утицај испитујемо називамо независним промјенљивима, или предикторима, или често атрибутима.

Дефиниција 1. Регресија је зависност једне случајне промјенљиве од друге (или више њих). Регресиони модел је математички модел који описује ту зависност.

Дефиниција 2. Случајна величина \(f(X) = E(Y|X)\) назива се регресиона функција, при чему \(X\) може бити вижедимензиона случајна величина.

Сљедећа теорема оправдава облик функције регресије.

Теорема 1. Нека су \(X\) и \(Y\) случајне величине дефинисане на истом простору вјероватноћа, при чему \(X\) може бити вишедимензиона случајна величина. Тада је \[E(Y-E(Y|X))^2 \leq E(Y-g(X))^2\] за сваку функцију \(g:\mathbb{R}^k\rightarrow \mathbb{R}\), уз претпоставку да постоји математичко очекивање на десној страни неједнакости.

Доказ.

\[\begin{aligned} E(Y-g(X))^2 &= E(Y-E(Y|X)+E(Y|X)-g(X))^2\\ &=E(Y-E(Y|X))^2+E(E(Y|X)-g(X))^2+2E((Y-E(Y|X))(E(Y|X)-g(X))) \end{aligned} \]

Довољно је да покажемо да је трећи сабирак једнак нули.

\[\begin{aligned} E((Y-E(Y|X))(E(Y|X)-g(X))) &= E(E((Y-E(Y|X))(E(Y|X)-g(X)))|X)\\ &=E(E(Y|X)-g(X))E(Y-E(Y|X)|X)=0. \end{aligned} \]

Овим је доказ завршен. Напомињемо да, ако посматрамо Хилбертов \(L^2\) простор случајних величина у коме је скаларни производ дефинисан са \(\langle\,X,Y\rangle = EXY^T\), тада је \(E(Y|X)\) заправо пројекција случајне величине \(Y\) на простор одређен случајном величином \(X\) па имамо и лијепу геометријску интерпретацију овог тврђења. \(\square\)

Адитивни регресиони модели се могу представити у облику \[Y = f(X) + \epsilon\]

гдје је \(\epsilon\) случајна промјенљива независна од \(X\), најчешће са нормалном \(\mathcal{N}(0,\sigma^2)\) расподјелом. Како нам је циљ да моделирамо ову зависност (условно очекивање) можемо \(X\) сматрати познатом детерминистичком величином као и да читава случајност \(Y\) долази од случајних грешака. Формално овако постављен проблем називамо контролисана регресија. Од сада па надаље претпоставићемо да се ради о овом типу регресије. Ако то није шлучај треба имати у виду да моделирамо условну зависност па приликом тумачења оцјену регресионе функције треба тако тумачити, односно не заборавити да се ради о моделу за \(EY\) када знамо \(X\). Дакле за сваку вриједност предиктора \(Y\) има неку расподјелу чије је очекивање регресиона функција.

За оцијењивање регресионе функције имамо двије могућности: да претпоставимо функционалну зависност која зависи од неких параметара и да те параметре оцијенимо (параметарски приступ), или да непараметарски оценимо ту функцију. У неколико наредних примјера представићемо најједноставније параметарске регресионе моделе а непараметарски модели остају изван оквира овог курса.

Подјела регресије

Има много различитих начина да се регресије подијеле у неке групе и врсте.

  • Параметарске и непараметарске
  • (Проста) линеарна, нелинеарна, генерализована линеарна
  • Једнострука, полиномијална и вишеструка

Проста линеарна регресија

Најприје наводимо поставку општег проблема. Нека су дати сљедећи подаци \(X=(x_1, x_2,...,x_n)\), \(Y=(y_1,y_2,...,y_n)\), гдје \((x_i,y_i)\) представља добијене податке за \(i\)-ти елемент. На примјер: \(x\) - висина, а \(y\) - тежина \(i\)-те особе. Док са \(X\) и \(Y\) записујемо цијели вектор за свих \(n\) елемената датих обиљежја. Циљ регресије је наћи функцију \(f(\cdot)\), такву да \[Y=f(X),\] што се такође може записати као \[y_i=f(x_i), \quad \forall i \in \overline{1,n}.\]

Како је у општем случају проблем регресију веома сложен, покужавамо то да сведемо на језик линеарне алгебре. Тада за просту линеарну регресију функцију \(f(\cdot)\) представљамо у облику \[\hat{f}(X) = \beta_0+\beta_1\cdot X.\] Као што се може брзо закључити то је једначина праве. Графички параметар \(\beta_0\) представља тачку у којој права сијече ординату, док \(\beta_1\) представља нагиб праве, односно допринос једног помјераја вриједности предиктора на циљану промјенљиву.

Како ипак радимо са оцјеном (апроксимацијом), у овом случају линеарном, то наша оцијењена вриједност \(\hat{Y}=\beta_0+\beta_1\cdot X\) неће бити увијек једнака правој (измјереној) вриједности циљане промјенљиве \(Y\).

Мјере квалитета

Дакле, у општем случају правимо неку грешку. Циљ је некако измјерити и минимизовати исту. Грешку \(Y-\hat{Y}\) ћемо означавати ознаком \(\epsilon = Y-\hat{Y} = Y-\beta_0-\beta_1\cdot X\). Та грешка се назива резидуалом. Намеће се неколико природних начина за мјерење грешке помоћу \(L^1\) (mean absolute error value) \[MAE(Y,\hat{Y}) = E(|\epsilon|)\] и \(L^2\) норми (mean squared error value) \[MSE(Y,\hat{Y})=E(\epsilon^2);\] са одговарајућим оцјенама за \(L^1\) \[\hat{MAE}(Y,\hat{Y})=\frac{1}{n}\sum_{i=1}^n|\epsilon_i|\] и за \(L^2\) \[\hat{MSE}(Y,\hat{Y})=\frac{1}{n}\sum_{i=1}^n \epsilon_i^2.\]

Оцјене непознатих параметара

Коефицијенти \(\beta_0\) и \(\beta_1\) одређују се тако да се минимизује \(E(Y-(\beta_0+\beta_1 x))^2\), односно оцјена овог средњеквадратног одступања. Добија се да је \[\beta_1 = \frac{EXY-EXEY}{DX}\] \[\beta_0=EY-\beta_1EX,\] па се коефицијенти \(\beta_0\), \(\beta_1\) могу оцијенити методом замјене, односно \[\hat{\beta_1} = \frac{\sum_{i=1}^n X_iY_i-n\overline{X}_n\overline{Y}_n}{\overline{S}^2_X} = \hat{\rho}_n\frac{\overline{S}_X}{\overline{S}_Y}\] \[\hat{\beta_0} = \overline{Y}_n-\hat{\beta}_1\overline{X}_n,\] гдје је \(\hat{\rho}_n\) узорачки коефицијент корелације. До истог резултата долазимо када минимизујемо оцјену средњеквадратног одступања \(MSE\), односно \(\frac{1}{n}\sum_{i=1}^n (Y_i-\beta_0-\beta_1X_i)^2\). Испоставља се да су оцјене \(\hat{\beta_0}\) и \(\hat{\beta_1}\) непристрасне и постојане. Након што смо добили оцјену, поставља се питање њеног квалитета. У ту сврху користимо Валдов статистички тест.

Вишедимензиони случај линеарне регресије

Претпоставимо да имамо \(p\) предиктора \(X_1\), \(X_2\),…, \(X_p\) чије су вриједности у узорку вектори \(x_1\), \(x_2\),…, \(x_p\). Тада се линеарни модел може записати у облику \[Y_i = \beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip}+\epsilon_i, \quad i=1,2,...,n;\] или у облику \[Y_i = \beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip}+\epsilon_i, \quad i=1,2,...,n.\] при чему је \(n\) обим узорка који имамо на располагању.

Значај регресије

Значај регресије се огледа у двије кључне ствари:

  • разумијевање природне везе датих промјенљивих;
  • предикција.

На овом курсу нећемо се превише задржавати на регресионим проблемима, јер ћете све то детаљно (како теоријски тако и практично у \(R\)) да пређете на курсу Линеарни статистички модели код професорке Бојане Милошевић. У наставку наводимо само неке основне примјере који ће демонстрирати употребу регресију на реалним подацима.

Примјер 1

Нека су дата два вектора \(X\) и \(Y\) који представљају редом проток саобраћаја у хиљадама аутомобила у току дана и присуство олова у кори дрвета.

x 8.3 9.3 12.1 12.3 17.0 17.3 24.3 24.5 33.6
y 227 312 362 521 539 728 945 1000 1263

Желимо да оцијенимо коефицијенте модела \(y=\beta_1\cdot x+\beta_0\), гдје су \(x\), \(y\) дати вектори, док су \(\beta_0\), \(\beta_1\) неки реални бројеви. Примјеном линеарне регресије са средњеквадратном грешком добијамо:

x = c(8.3, 9.3, 12.1, 12.3, 17.0, 17.3, 24.3, 24.5, 33.6)
y = c(227, 312, 362, 521, 539, 728, 945, 1000, 1263)

model = lm(y ~ x)
summary(model)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -90.054 -51.937   1.097  61.059  86.551 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -73.356     58.131  -1.262    0.247    
## x             41.318      3.008  13.736 2.56e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 71.35 on 7 degrees of freedom
## Multiple R-squared:  0.9642, Adjusted R-squared:  0.9591 
## F-statistic: 188.7 on 1 and 7 DF,  p-value: 2.556e-06
par(mfrow=c(2,2))
plot(model)

Оцјене коефицијената посматраног модела добијамо из:

beta_0=model$coefficients[1]
beta_1=model$coefficients[2]

Додајемо регресиону праву на график на један од сљедећа два начина:

plot(x, y)
abline(beta_0, beta_1, col="red") #први начин
abline(model, col="red") #други начин

За крај желимо да одредимо предвиђање на основу посматраног модела за вриједности \(x\)=5, 13.3, 28, 30 и 100.

predict(model, newdata=data.frame(x=c(5, 13.3, 28, 30, 100)))
##         1         2         3         4         5 
##  133.2348  476.1764 1083.5549 1166.1914 4058.4697

Примјер 2

Као што је већ речено истраживања Сер Франсиса Галтона имала су значајан утицај на развој статистике. Амерички статистичар Карл Пирсон је био упознат са тврдњама Галтона о вези висине очева и синова и узео је случајан узорак од 10 синова и њихових очева и добио сљедеће резултате (у центиметрима):

x 152.40 157.48 162.56 165.10 167.64 170.18 172.72 177.80 182.88 187.96
y 161.54 165.61 167.64 166.37 169.93 170.43 171.20 173.48 178.05 177.80
x = c(152.40, 157.48, 162.56, 165.10, 167.64, 170.18, 172.72, 177.80, 182.88, 187.96)
y = c(161.54, 165.61, 167.64, 166.37, 169.93,  170.43, 171.20, 173.48, 178.05, 177.80)

model = lm(y ~ x)
summary(model)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7111 -0.6062 -0.2160  0.7214  1.7092 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 91.38411    5.60722   16.30 2.02e-07 ***
## x            0.46455    0.03298   14.08 6.27e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.097 on 8 degrees of freedom
## Multiple R-squared:  0.9612, Adjusted R-squared:  0.9564 
## F-statistic: 198.4 on 1 and 8 DF,  p-value: 6.274e-07
par(mfrow=c(2,2))
plot(model)

Слично као у претходном примјеру, добијамо да је ”најбоља права” која описује зависност \(Y = 91.38 + 0.46X\). Та права је приказана на графику испод. Видимо да прилично добро описује зависност. На примјер, уколико нас занима очекивана висина сина оца који је висок \(160 cm\) на основу добијеног модела добијамо оцјењену вриједност \(91.38 + 0.46 · 160 \approx 165 cm\).

plot(x, y)
abline(model, col="red") 

Примјер 3

Нека су дати \(q\) и \(w\) на сљедећи начин:

q = seq(-1, 1, 0.05)
w = q^2 + rnorm(length(q), 0, 0.05)

Циљ нам је да нађемо регресиону праву за \(w\) у односу на \(q\). Стандардно добијамо да је:

model = lm(w ~ q)
summary(model)
## 
## Call:
## lm(formula = w ~ q)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.4082 -0.2702 -0.1191  0.2554  0.7060 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.34661    0.05217   6.644 6.63e-08 ***
## q           -0.01223    0.08818  -0.139     0.89    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.334 on 39 degrees of freedom
## Multiple R-squared:  0.000493,   Adjusted R-squared:  -0.02514 
## F-statistic: 0.01924 on 1 and 39 DF,  p-value: 0.8904

Видимо да коефицијент уз \(q\) није значајан (немамо “звјездицу”) и \(p\)-вриједност је близу 1. Такође, вриједност за R-squared треба да буде блиска јединици, док у овом случају је приближно 0, што указује на тотални промашај линеарне регресије. Погледајмо како то изгледа на графику.

plot(q, w)
beta_0 = model$coefficients[1]
beta_1 = model$coefficients[2]
abline(beta_0, beta_1, col="red", pch=20)

Овакве ствари се дешавају јер веза очигледно није линеарне. Пробајмо квадратни модел.

model2 = lm(w ~ I(q) + I(q^2))
summary(model2)
## 
## Call:
## lm(formula = w ~ I(q) + I(q^2))
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.112952 -0.024203 -0.002253  0.023379  0.145178 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.01416    0.01145  -1.237    0.224    
## I(q)        -0.01223    0.01289  -0.949    0.349    
## I(q^2)       1.03076    0.02439  42.267   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.04884 on 38 degrees of freedom
## Multiple R-squared:  0.9792, Adjusted R-squared:  0.9781 
## F-statistic: 893.7 on 2 and 38 DF,  p-value: < 2.2e-16
plot(w ~ q)
points(q, fitted(model2), col="red", pch=20)

Овдје је од значаја само параметар уз \(q^2\), што и има смисла јер смо тако и формирали вектор \(w\). И видимо да је регресија испала довољно добра.

Примјер 4

Учитати базу Carseats из пакета ISLR. Направити линеарни модел гдје је Sales зависна промјенљива, а остале предиктори.

library(ISLR)
data("Carseats")
?Carseats

Направимо најприје модел зависности промјенљиве Sales од свих осталих предиктора.

model<-lm(Sales~.,data=Carseats)
summary(model)
## 
## Call:
## lm(formula = Sales ~ ., data = Carseats)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8692 -0.6908  0.0211  0.6636  3.4115 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      5.6606231  0.6034487   9.380  < 2e-16 ***
## CompPrice        0.0928153  0.0041477  22.378  < 2e-16 ***
## Income           0.0158028  0.0018451   8.565 2.58e-16 ***
## Advertising      0.1230951  0.0111237  11.066  < 2e-16 ***
## Population       0.0002079  0.0003705   0.561    0.575    
## Price           -0.0953579  0.0026711 -35.700  < 2e-16 ***
## ShelveLocGood    4.8501827  0.1531100  31.678  < 2e-16 ***
## ShelveLocMedium  1.9567148  0.1261056  15.516  < 2e-16 ***
## Age             -0.0460452  0.0031817 -14.472  < 2e-16 ***
## Education       -0.0211018  0.0197205  -1.070    0.285    
## UrbanYes         0.1228864  0.1129761   1.088    0.277    
## USYes           -0.1840928  0.1498423  -1.229    0.220    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.019 on 388 degrees of freedom
## Multiple R-squared:  0.8734, Adjusted R-squared:  0.8698 
## F-statistic: 243.4 on 11 and 388 DF,  p-value: < 2.2e-16

Одавде закључујемо да коефицијенти уз предикторе Population, Education, Urban и US нису значајни, те их избацујемо из модела.

model<-update(model,~.-Population-Education-Urban-US)
summary(model)
## 
## Call:
## lm(formula = Sales ~ CompPrice + Income + Advertising + Price + 
##     ShelveLoc + Age, data = Carseats)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7728 -0.6954  0.0282  0.6732  3.3292 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      5.475226   0.505005   10.84   <2e-16 ***
## CompPrice        0.092571   0.004123   22.45   <2e-16 ***
## Income           0.015785   0.001838    8.59   <2e-16 ***
## Advertising      0.115903   0.007724   15.01   <2e-16 ***
## Price           -0.095319   0.002670  -35.70   <2e-16 ***
## ShelveLocGood    4.835675   0.152499   31.71   <2e-16 ***
## ShelveLocMedium  1.951993   0.125375   15.57   <2e-16 ***
## Age             -0.046128   0.003177  -14.52   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.019 on 392 degrees of freedom
## Multiple R-squared:  0.872,  Adjusted R-squared:  0.8697 
## F-statistic: 381.4 on 7 and 392 DF,  p-value: < 2.2e-16

Нови модел показује да су сви коефицијенти значајни, као и да добијамо велику вриједност за \(R^2\) (=0.868), па ћемо се задржати на том моделу. Читаоцу се препоручује да манипулише предикторима (трансформације зависне и независних промјенљивих) у циљу добијања што бољег модела.

Задаци за самосталан рад

Задатак 1. У бази Kinder (пакет PASWR) налазе се подаци о тежини дјеце и њиховој висини. Направити одговарајући линеарни модел на основу кога можете оцијенити тежину на основу висине дјетета. Обратити пажњу на потенцијалне аутлајере.

Задатак 2. У бази tree (пакет datasets) се налазе подаци о пречнику, висини и запремини оборених стабала трешње. У бази су ови подаци редом означени са Girth, Hight и Volume. На основу доступних података направите модел који би био погодан за прогнозирање очекиване вриједности запремине стабала на основу висине и пречника.

Задатак 3. У бази airquality се налазе подаци о мјерењима квалитета ваздуха у Њујорку од 1. маја до 30. септембра 1973. године.

а) Направите линеарни модел који описује зависност количине озона (Ozone) од количине цунчевог зрачења (Solar.R). Да ли је модел задовољавајући?

б) Да ли се модел из дијела а) побољшава уколико се укључи и утицај вјетра (Wind)?

в) Направите модел у коме се посматра само утицај вјетра и упоредите га са претходна два. Уколико је потребно извршите неку трансформацију предиктора или зависне промјенљиве.