\documentclass[draft,a4paper]{article}
\usepackage{lt}
\usepackage{amsmath}
\usepackage{latexsym}
\title{Dirbtiniai neuroniniai tinklai \\
       {\large �. Raud�io paskait� konspektas}}
\author{Marius Gedminas}
\date{2003 m. pavasaris \\
      (VU MIF informatikos magistrant�ros studij� 2 semestras)}

\newcommand{\Def}{\emph}

\begin{document}
\maketitle

% ----------------------------------------------------------------------------

\begin{quote}\footnotesize
�is konspektas rinktas \LaTeX{}u �. Raud�io paskait� metu.  Poroje paskait�
paskait� a� nedalyvavau ir jas paskui nusira�iau nuo koleg� (3, 4, 5, 15, 16,
17 skyriai).  Deja, laiko tvarkingai visk� patikrinti ir suredaguoti dar
neradau, tad patariu per daug �iuo konspektu nepasitik�ti.  Jei rasite klaid�
ar tur�site koki� pastab�, galite jas atsi�sti man elektroninio pa�to adresu
\texttt{marius@gedmin.as}.
\end{quote}

% --- 1 paskaita

\section{Neuroniniai tinklai}   % 1

% Smegenyse yra 1e10 ... 1e14 l�steli� (niekas ne�ino, kaip reikt� jas
% suskai�iuoti).

% neuronai, aksonai, dendritai.

% Neuronas: yra n input� (n ~ 5000) ir vienas outputas

1943 m. neurono modelis:
\[
   s = w_0 + \sum_{i=1}^p w_i x_i
\]
�ia $x_1, \dots, x_p$ -- ��jimai.  Paskui pritaikomas slenkstis ir reik�m�
kei�iama � $0$ arba $1$.  Tai -- neurono i��jimas.

V�liau buvo sugalvota rezultat� perleisti pro \Def{sigmoidin�} funkcij� (angl.
\emph{logistic sigmoid})
\[ f(s) = \frac{1}{1+e^{-s}}
\]
�ios funkcijos ypatyb�s:
\begin{itemize}
\item $f(s)$ beveik tiesin�, kai $|s|$ yra ma�as;
\item $f(s)$ art�ja prie $0$, kai $s \to -\infty$;
\item $f(s)$ art�ja prie $1$, kai $s \to \infty$.
\end{itemize}

% �ia b�t� gerai grafik� �d�ti.

Kartais vietoje sigmoidin�s funkcijos naudojamas hiperbolinis tangentas,
duodantis atsakym� i� intervalo $(-1; 1)$.


\paragraph{Atpa�inimo u�davinys}

Reikia suskirstyti duomenis � klases.  Tarkime, kad turime du po�ymius: $x_1$
-- svoris, $x_2$ -- �gis.  Norime atskirti berniukus nuo mergai�i�.  Tai gali
padaryti vienas neuronas, tinkamai parinkus svorius $w_i$:
\[ s = x_1 w_1 + x_2 w_2 + w_0 \]

$s = 0$ yra skeliamasis pavir�ius.  $s > 0$ -- berniukai, $s < 0$ --
mergait�s.  Jei �trauksime sigmoidin� funkcij�, tuomet $f(s) > 0.5$ --
berniukai, $f(s) < 0.5$ -- mergait�s.

Sud�tingesniais atvejais vieno neurono nepakanka -- reikia tinklo, sudaryto i�
keli� sluoksni�.  Pvz., keturi neuronai pirmajame sluoksnyje duoda rezultatus
$y_1$, \dots, $y_4$, o penktasis neuronas antrajame sluoksnyje juos ima kaip
�vestis.

Dirbtinis neuroninis tinklas -- rinkinys tarpusavyje sujungt� neuron�.
Labiausiai paplitusios yra dvi dirbtini� neuronini� tinkl� r��ys:
\begin{itemize}
\item \Def{vienasluoksnis perceptronas} arba tiesiog perceptronas (angl.
      \emph{single layer perceptron}; \Def{SLP}) -- tiesiog vienas neuronas.
\item \Def{daugiasluoksnis perceptronas} (angl. \emph{multilayer perceptron};
      \Def{MLP}) -- daug neu\-ro\-n�, i�d�styt� sluoksniais.  Kiekvieno
      sluoksnio neuron� i��jimai sujungti su kito i� eil�s sluoksnio neuron�
      ��jimais.  ��jimo sluoksnis -- pradiniai duomenys; i��jimo sluoksnis --
      paskutiniame sluoksnyje esantys neuronai ir j� i��jimai; visi kiti
      sluoksniai vadinami pasl�ptais.
\end{itemize}

Did�ioji dauguma dirbtini� neuronini� tinkl� yra SLP arba MLP.

MLP su vienu pasl�tu sluoksniu gali modeliuoti bet kokio sud�tingumo
atpa�inimo pavir�i�.

\paragraph{Prognozavimo u�davinys}

Perceptronus galima naudoti ir prognozavimui.

MLP su vienu pasl�tu sluoksniu gali aproksimuoti bet koki� funkcij� (jei tame
sluoksnyje yra pakankamai neuron�).

% Periodini� reisini� modeliavimas.  S�kuriai.  Refraktorinis periodas.
% Emocij� modeliavimas.


\section{Vienasluoksniai ir daugiasluoksniai perceptronai ir j� mokymo
         principas} % 2

Kas yra vienasluoksniai ir daugiasluoksniai perceptronai para�yta praeitame
skyriuje.

Problema: kaip reik�t� rasti perceptrono koeficientus $w_i$?  Sprendimas:
perceptron� reikia apmokyti.

% Repetitio est mater studiorum

Turime rinkin� mokymo vektori� $(x_{11}, \dots, x_{1p}, t_1)$, \dots,
$(x_{n1}, \dots, x_{np}, t_n)$.  �ia $x_{ji}$ -- ��jimo reik�m�s, $t_j$ --
tikslas (\emph{desired target}).  Apibr��kime kainos funkcij�
\[ c = \sum_{j=1}^n \big(t_j - f(w_1x_{j1} + \dots + w_px_{jp} + w_0)\big)^2
\]

Norime j� minimizuoti.  Tai b�t� trivialu, jei neb�t� netiesin�s f-jos f.

Minimizavimui (apmokymui) yra daug �vairi� metod� -- \emph{error back
propagation}, \emph{conjugate gradient} ir t.t.

% --- 2 paskait� praleidau, nusira�iau nuo Ram�no

\section{Klasifikavimo u�davinys. Statistinis klasifikavimas.  Mokymas
         vienasluoksniu perceptronu.} % 3

Kas yra klasifikavimo u�davinys -- �r. pirm�j� skyri�.

\paragraph{Statistinis klasifikavimas}

�vertiname kiekvienos klas�s pasiskirstymo tank� $f_i(x)$.  Tarkime, kad
klasi� yra dvi.  Jei ka�kuriame ta�ke $f_1(x) > 0$, o $f_2(x) = 0$, ai�ku, jog
�is ta�kas priklauso pirmajai klasei ir atvirk��iai, jei $f_1(x) = 0$, o
$f_2(x) > 0$, ta�kas priklauso antrajai klasei.  K� daryti, jei $f_1(x) > 0$
ir $f_2(x) > 0$?  Galime tiesiog imti klas�, kurios tankis tame ta�ke
didesnis:
\[ g(x) = \ln\Big(\frac{f_1(x)}{f_2(x)}\Big) \]

Jei $g(x) > 0$, rei�kia, $f_1(x) > f_2(x)$ ir $x$ priskiriame pirmajai klasei;
jei $g(x) < 0$, rei�kia, $f_1(x) < f_2(x)$ ir $x$ priskiriame antrajai.

Kai kurios klas�s pasitaiko da�niau nei kitos.  Jei klasi� pasirodymo
tikimyb�s yra $q_1$ ir $q_2$ ($q_1 + q_2 = 1$), galime lyginti ne $f_1(x)$ ir
$f_2(x)$, o $q_1 f_1(x)$ ir $q_2 f_2(x)$.

Galima taip pat atsi�velgti � klaidos kain� (geriau suklysti � saugesn� pus�).

\paragraph{Sprendimas vienasluoksniu perceptronu}

�r. pavyzd� pirmame skyriuje.

% Konkre�iai �i� paskait� buvo kiek kitas pavyzdys:
%
%   grafik�lis: x1 -- �gis, x2 -- klub� apimtis.  Du debes�liai -- vyrai ir
%   moterys.
%
%   skiriamoji linija x2 = a + x1 * tg alpha
%
%   neuronas g(x) = x1 w1 + x2 w2 + w0
%   g(x) > 0 -- berniukai
%   g(x) < 0 -- mergait�s
%
% bet esm� ta pati.

Turime perceptron�:
\[ g(x) = x_1 w_1 + x_2 w_2 + w_0
\]

Kaip rasti koeficientus?

Nuostoli� funkcija:
\[ c = \sum_{j=1}^n \big(t_j - f(w_1x_{j1} + \dots + w_px_{jp} + w_0)\big)^2
\]

$n$ -- mokymo duomen� kiekis, $p$ -- po�ymi� skai�ius, $x_j$ -- mokymo
vektorius, $t_j$ -- trok�tamas i��jimas tam vektoriui.

Kas toliau?
\begin{enumerate}
\item \Def{atsitiktin� paie�ka} -- prigeneruojame $10^{20}$ variant� svori� ir
      ie�kome geriausio rezultato
\item \Def{genetiniai algoritmai} -- ie�kome rajono, kuriame yra teisingas
      variantas ir toliau dirbame tame rajone
\item \Def{ma�iausi�j� kvadrat� metodas} -- sprend�iame lyg�i� sistem�
      \[ \left\{\begin{array}{l}
            \frac{\partial c}{\partial w_1} = 0 \\
            \frac{\partial c}{\partial w_2} = 0 \\
            \vdots
          \end{array}\right.
      \]
      Jei f-ja turi daug minimum�, gali b�ti sunku surasti teising� atsakym�.

      Niutono metodu
      \[ w_{t+1} = w_t - \eta \frac{\partial c}{\partial w}
      \]
      $\eta$ -- mokymo �ingsnis.  Jei jis per didelis, diverguosime.

      % $t \to \infty$, $\eta \to 0$ tada art�jame prie tikslo.

      % grafik�lis kreiv� art�janti prie 0, statesn� kreiv�, kuri prie 0
      % priart�ja anks�iau, ir visai stati kreiv�, kuri staiga u�silenka
      % ir �oka � vir�u, o paskui pradeda �okin�ti auk�tyn �emyn.

      % nam� darbams: pakaitalioti mokymo �ingsn� 1 u�duotyje

      Mokymo �ingsn� galima reguliuoti pagal s�km�: jei sekasi -- didiname,
      jei nesiseka -- ma�iname.

      Beje, galima ir atsisakyti nuo atsakymo pateikimo, t.y. atsakyti
      �ne�inau, modelis per silpnas �iam atvejui�.

      Pradedant mokyti reikia paduoti pradinius svorius.  Vienasluoksniam
      perceptronui j� reik�m�s nesvarbios, tad galime imti nuliukus.
\end{enumerate}

\section{Tiesin� ir kvadratin� diskriminantin�s funkcijos} % 4

% (statistika)

Prielaida: duomenys yra normaliai pasiskirst�.   $\mu x = Ex$ -- vidurkis (aka
matematin� viltis), $\sigma^2 = E(x-\mu)^2$ -- variacija, $\sigma$ --
dispersija.

Normalinis tankis yra
\[ f(x) = \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{1}{2}(x-\mu)\sigma^{-2}(x-\mu)}
\]
% \int_{-\infty}^y f(x)dx -- tikimyb�, kad atsitiktinis dydis < y?

Bendru atveju $p$-mat�je erdv�je (daugiamatis) normalinis tankis yra
\[ f(x) = \frac{1}{(2\pi)^{p/2} |\Sigma|^{1/2}}
          e^{-\frac{1}{2}(x-\mu)^T \Sigma^{-1} (x-\mu)}
\]

�ia $\Sigma$ -- kovariacin�s matrica. $x$ bei $\mu$ �iuo atveju yra vektoriai.

% Matlabe kovariacin� matric� gauname �itaip:
%   D1 = (x11, ..., x1p; x21, ..., x2p; ...);
%   S1 = cov(D1);

Taigi, jei turime dvi klases su vidurkiais $\mu_1$, $\mu_2$ ir kovariacin�mis
matricomis $\Sigma_1$, $\Sigma_2$, gauname �tai toki� diskriminantin� funkcij�:
\[ g(x) = -\frac{1}{2} (x-\mu_1)^T \Sigma_1^{-1} (x-\mu_1) - \frac{1}{2}ln(|\Sigma_1|)
          +\frac{1}{2} (x-\mu_2)^T \Sigma_2^{-1} (x-\mu_2) + \frac{1}{2}ln(|\Sigma_2|)
\]

Ji vadinama \Def{kvadratine diskriminantine funkcija}.

Jei $g(x) > 0$, tai $x$ priklauso pirmajai klasei, jei $g(x) < 0$, antrajai.

Dar galime prid�ti kitus daugiklius (tikimybes, klaidos kainos �ver�ius, etc.
-- �r. auk��iau).

\medskip

Problema: kaip turint ma�ai duomen� gauti kovariacin� matric�?  Tada galime
nutarti, kad $\Sigma_2 = \Sigma_1 = \Sigma$, nors tai netiesa.  Gauname
tiesin� funkcij�
\[ g(x) = w^T x + w_0 = \sum_i w_i x_i + w_0
\]
kur $w = \Sigma(\mu_1 - \mu_2)$, $w_0 = \frac{1}{2} w^T(\mu_1 + \mu_2)$

Tai -- \Def{Fi�erio tiesin� diskriminantin� funkcija}.

\section{Perceptrono evoliucija mokymo metu (klasifikavimo u�davinys)} % 5

% Pakartojam, kas yra perceptronas:
% \[ f(w^T x + w_0)
% \]

% XXX �� skyri� reikt� pertvarkyti

Klaidos funkcija
\[ w_{sf} = \frac{1}{N} \sum_{\alpha=1}^N \big(t_\alpha - f(w^Tx_\alpha + w_0) \big)^2
\]
% ten sf ar st ar kas?

�i� funkcij� minimizuojam.
% �ia kitas puslapis, tik ka�ko neskilijuoja...?

Tarkime, kad koordinates perkeliam � duo\-me\-n� vidurk�, t.y. vidurkis visada
yra 0.

% �ito totaliai nesupratau:
$\Sigma \Sigma_\alpha = 0$ -- vidurkis, $N_1 = N_2$ -- objekt� n�ra(?), $w_{t=0}
= 0$ -- pradiniai svoriai.

$t_\alpha \in \{ -1, +1 \}$.

Funkcija pas mus tiesin� $f(x) = x$
% �ia kiek suprantu imam 'purelin' neuron�

$w_1 = w_0 - \frac{\partial cost}{\partial w^t} = const (\overline{x}^{(1)} -
\overline{x}^{(2)}$.  Geometrin� prasm� tokia: sujungiame sri�i� vidurkius
atkarpa ir per jos vidur� i�vedame statmen� ties�.

Tai -- \Def{Euklidinio atstumo klasifikatorius}.

$D(X, \overline{X}^{(2)}) - D(X, \overline{X}^{(1)})$ -- atstumai nuo vidurkio
iki ties�s lyg�s.

Fi�erio atveju gautume $W_F = S^{-1} (\overline{X}^{(1)} - \overline{X}^{(2)})$.

Per vidur� gauname
\[ W_t = \big(S + \underbrace{\frac{2}{\eta(t-1)}}_\text{Haley narys}
                  \begin{pmatrix} 1 & 0 & \ldots\\
                                  0 & 1 & \ldots\\
                                  \vdots & \vdots & \ddots
                  \end{pmatrix} \big)^{-1}
         (\overline{X}^{(1)} - \overline{X}^{(2)})
\]

T.y. perceptronas duoda t� pat� Fi�erio klasifikatori�, tik prie diagonalini�
element� prid�tas �ioks toks triuk�mas, kuris art�ja prie nulio, kai $t \to
\infty$.

\bigskip
\paragraph{Atramini� vektori� klasifikavimas}

Id�ja: tarp artimiausi� kaimyn� atstumas -- ma\-�iau\-sias.  Imame tris
artimiausius kaimynus (du i� vienos klas�s, tre�i� i� kitos) ir br��iam tarp
j� ties�, kad ji b�t� labiausiai nuo j� vis� nutolusi.

% Ar ka�kas pana�aus.

% �ito nesupratau:
% "Perceptronas dar gali apversti matric�, kai �i neapsiver�ia."

% --- 3 paskaita: 2003-03-06

% Pakalb�sim apie regresij�, paskui v�l apie apmokym�.

% Klausimas nr 6.  Statistinis prognozavimas.

\section{Statistinis prognozavimas} % 6

% aka tiesinis prognozavimas?

Po klasifikavimo da�niausiai sutinkamas u�davinukas yra prognozavimas.
Galima prognozuoti taip:
\[
   y = \sum w_i x_i + w_0
\]

% Pora paveiksliuk� i� statistikos.  Normalinis bei �atvirk��ias U� (x -- kiek
% studentas laiko mok�si, y -- kok� bal� gauna.  Kreiv� atrodo /~\)
% Paveiksliukai Palme.

Formul� tinka, jei turime normalin� pasiskirstym�.

% Prognozavimas: pvz., metalurgija.  Vaist� pramon� (superkompiuteriai) --
% vienas i� pagrindini� taikym�.  Valiut� kursai (5 metams � priek�!  Ford
% Research Labs, Raudys ten dirbo.  Kaip sek�s, tiesa, neai�ku.).  Prognozuoja
% politik�, akcij� kursus, ...

Svarbiausias dalykas -- atrinkti visus rodiklius $x_i$.  Na ir �inoti, k� nori
prognozuoti (y).

% Formul�, programa -- easy.  Sunku suformuluoti u�davin�.

Vienas i� prognozavimo b�d� -- imti vidurk�.  Kitas -- imti artimiausi�
variant� i� turimos imties.  Tre�ias -- ma�iausi�j� kvadrat� metodas:
minimizuojam paklaid� kvadrat� sum�
\[
  c = \frac{1}{n}\sum_{\alpha=1}^n \left(y_\alpha - \sum_{i=1}^p w_i x_i^\alpha + w_0\right)^2
\]
Taip daro statistikai.  Su neuroniniais tinklais turime
\[
  c = \frac{1}{n}\sum_{\alpha=1}^n \left(y_\alpha - 
            f\big(\sum_{i=1}^p w_i x_i^\alpha + w_0\big)\right)^2
\]
Reikia normuoti prognoziojam� dyd�, kad b�t� kitimas tarp 0 ir 1:
\[
  c = \frac{1}{n}\sum_{\alpha=1}^n \left(y_\alpha -
             \left(f\big(\sum_{i=1}^p w_i x_i^\alpha + w_0\big) - 0.5\right) \cdot \beta \right)^2
\]
�itas daiktas vadinamas standartine regresija

Yra ir kitas sprendimo b�das.  Kas, jei yra dideli� nukrypim�?  % pav

% Olandai turi atomin� elektrin� ant sienos su Belgija, miestuke Borel.  I� ten
% ateina 64 rodikliai.  Pagal 63 i� j� prognozuoja 64-t�j�.  I� prad�i�
% mokymas.  Paskui jei kas ne taip, i�kart turi prognoz� sustreikuoti ir turi
% u�sidekti raudona lemput�.  (Ten ka�ko neuroninis tinklas nelabai tiko, o va
% standartin� regresija pats tas.)

% Medicina: daaaug indikatori�, jokia sesel� nesusigaudys.  Reikia ka�kaip
% prisiderinti prie paciento ir pasteb�ti nukrypimus.

% Tai va, avarini� situacij� detektavimas irgi vienas pritaikymas.

% Per egz� gali b�ti klausimas: i�vardinti 20 sri�i�, kur regresija gali b�ti
% pritaikyta.  Ar ka�kas tokio.  Klausimas �ant galvojimo�.

% Ok. Klasikin� regresija: naudojamas matematinis vidurkis.  Dideli,
% netipiniai nukrypimai negerai.  Statistikai turi spec. priemoni� su tuo
% kovoti.  Neuroniniai tinklai tai daro automati�kai.

Vidurkis skai�iuojamas
\[
   \overline{x} = \frac{1}{n} \sum_{i=1}^n x_i
\]
netipinius nukrypimus reikt� i�mesti:
\[
   \overline{x} = \overline{x}_n
   \qquad
   \overline{x}_k = \frac{1}{\sum_{i=1}^k f(x_i - \overline{x}_{k-1})}
                    \sum_{i=1}^k x_i f(x_i^\alpha - \overline{x}_{k-1})
\]
kur $f$ stengiasi numesti nukrypimus (�r paveiksliukus palme.  Pvz., $f(x) =
|1-x|$ kai |x| didelis arba $1$, kai $x$ ma�as).  Tai yra
robastin� regresija.  (Robust -- atsparus nukrypimams.)

Nuostoli� funkcija (kuri� reikia minimizuoti) viensluoksniam perceptronui
norint robastin�s regresijos: 
\[
  c = \frac{1}{n}\sum_{\alpha=1}^n \Psi\Big(
   y_\alpha - \big(\sum_{i=1}^p w_i x_i^\alpha + w_0\big) \Big)
\]

Kur $\Psi(x) = x^2$ kai $|x| <= z$ ir $\Psi(x) = \Psi(z)$ kai $|x| > z$.  Arba
galima dar u�apvalinti kampus ties $|x| \approx z$.

Problema: kokio platumo $z$ imti?  Jei bus platu, bus ta pati klasikin�
regresija.  Jei bus siaura, ims tik labai siaurius duomenis.  Menas yra
nusakyti, kas yra �dideli nukrypimai�.

% Tiek apie regresij�.

% Ok, kiek apie atsiskaitym�.  Pagrindindinis rodiklis -- savaranki�kas
% darbas.  Jis po vien� darbel� mailina kad palengvint� mums �siva�iavim�.
% Bus paskui robastin� regresija -- prognozuosim Londono bir��.  23 rodikliai
% per 3.5 met�, 5 kartus � savait�.  Dvide�imt ketvirtas (tiksliau, pirmas)
% -- bir�os indeksas.  Galima prognozuoti tai pa�iai, galima vienai dienai �
% priek� (labai gerai gaunasi).  Dviems jau nieko nei�eis.  Mes bandysim
% prognozuoti vienai dienai � priek�.  Hint, hint: geriausiai veikia alpha =
% 17 (alpha = z? regresijos plotis) Yra program�l� order.  Reik�s ka�k�
% pakaitalioti.  Raud�iui pakako dviej� rodikli� 1 ir 11, tik i� dviej� dien�.
%
% Bir�a -- ne ekonominis procesas, o (labai primityvus) lo��j� elgesys.
% Smulkios �uvys naudoja strategij� ��iandien kilo, rei�kia ir rytoj kils� ir
% pralaimi.  Didieji rykliai turi gerus kompus, turi specialist�, surenka daug
% duomen�, prognozuoja ir laimi.

% Reikia �mones matyti kuo da�niau, tada jie geriau vertins.

% Savaranki�kas darbas: svarbiausiai reikia mok�ti savaranki�kai formuluoti
% u�davinius.

% Neigiamas rezultatas irgi rezultatas.  Reikia pateikti savo samprotavimus,
% kod�l nesigavo.

% Tokia formulyt�: \sigma^2_{poen?} = \sigma^2_0 (1 + \frac{p}{n-p})
% ateityje bus

% Darbo pateikimo forma:
%   prad�ioje turi b�ti u�davinio formulavimas.  K� noriu pademonstruoti,
%   gauti, etc.  Po to: kokius naudosiu metodus, i� kur duomenis gausiu (pvz
%   internete).  Po to pats darbas: k� dariau, k� band�iau, k� gavau.  Na ir
%   i�vados, pvz., teorinis ir experimentinis grafikas, va kiek nesutapo,
%   imho tod�l ir tod�l, lia lia lia.
% Kukliai galima sutalpinti � 3 psl.  Normaliai 4--5 psl.  Nereikia gr�sti 30
% psl piln� visoki� neai�ki� lenteli�.

% Visad reikia �vado ir i�vad�.  �vado pagrindin� dalis: k� a� darysiu.  Jei
% sud�tingesnis projektas, reikia dar ir paai�kinti, kod�l t� darysiu.

\section{Robastiniai algoritmai klasifikacijoje} % 7

% pav 19:10: du rinkiniai, yra dideli� nukrypim�, kurie numeta vidurk� toli.
% robasti�kumas atmeta tuos nukrypimus ir vidurkis art�ja �alia reikiamos
% vietos.

% Didel� dalis Lietuvos karvi� yra su leukoze.  Soviet� laikais � tai d�mesio
% niekas nekreipdavo (na, CK nariai gaudavo pien� i� atskiros bandos).  Dabar
% turb�t dar ma�iau d�mesio...

% Ok, trok�tami i��jimai tarp 0 ir 1.  Viena klas� 0, kita 1.  Pradedam
% mokyti.  PS �ia kartojimas

Paklaida
\[
   c = \sum_\alpha \big( t_\alpha - f\big(\sum w_i x_i^\alpha - w_0\big) \Big)
\]
($t_\alpha$ -- norima reik�m� (target))

Apmokymo metu svoriai laiko momentu $t+1$ skai�iuojami
\[
   W(t+1) = W(t) - \eta \frac{\partial c}{\partial W}
\]
($W$ -- vektorius i� $w_i$.  $\eta$ -- mokymo �ingsnis (ka�kaip pasirinktas))

Kadangi f-ja $f$ u�sirie�ia, tai per dideli nukrypimai nuo diskriminantin�s
plok�tumos duoda daugma� toki� pat paklaidos vert�, kaip ir ma�i.  Tad
perceptronas automati�kai nereaguoja � tolimus nukrypimus.

Perceptronas yra automati�kai robasti�kas dideliems nukrypimams.  O
matematikai/ statistikai tik neseniai tai sugalvojo (robastinei statistikai
apie 30 met�).

% diskriminantin� plok�tuma

% BTW f-jos f ir \Psi yra tokios, nes jos primena j� grafikus.  Asociative
% memories.

Beje, apie gradientin� mokymo algoritm�.  Yra du re�imai: stochastinis ir
totalinis. Stochastinis metodas: skai�iuojam gradient� kiekvienam mokymo
vektoriui atskirai ir darom pataisym�.  Jei skai�iuojam gradient� visiems
kartu (imam vidurk�) prie� darydami pataisym�, turime totalin� gradient� (dar
kartais vadinama batch mode).

Stochastinsi lengviau i�lenda i� lokalini� minimum�.  Totalinis geriau
konverguoja jei yra vienas gra�us minimumas.

Vienasluoksniams perceptronams geriau totalinis, daugiasluoksniams geriau
sto\-chas\-ti\-nis.

\section{Minimalios klasifikavimo klaidos
         ir atramini� vek\-to\-ri� klasifikatoriai} % 8

% �ia su vienasluoksniu perceptronu

% Pav 19:31

Prielaida: pasiskirstymas normalinis.  Tada gaunam optimal� klasifikatori�.
Bet jei prielaida nepatenkinta, negausim ma�iausio klaid� kiekio.

Kaip padaryti tiesin� diskriminantin� funkcij�, kad minimizuotume mokymo metu
gaut� klaid� kiek�?  Literat�roje yra kokie 14-15 b�d�.  O perceptronai tai
daro automati�kai.

Mokant perceptron� svoriai auga ir dideli nukrypimai nebeturi �takos (suveikia
funkcijos $f$ u�sirietimai).  Kuo svoriai didesni, tuo tai labiau pasirei�kia.

Pvz., atimam $\lambda W'W$
\[
   c' = \sum_\alpha \big( t _\alpha - f\big(\sum w_i x_i^\alpha - w_0\big) \Big)^2 - \lambda W'W
\]
Tai skatina svori� augim�.  ($W'$ yra transponuotas vektorius $W$)

Po truput� auginant svorius po truput� ma��ja klaid� skai�ius.  Ten fakti�kai
gaunasi $f$ outputai 0 ir 1, t.y. $c$ (variantas be $\lambda W'W$) sumuoja
klaid� skai�i�. Jei padalintume i� $n$, gautume klaid� da�n�.

% Per egz� galima naudotis viena lapo dyd�io �pera.  �per� paims ir ten ie�kos
% klaid� :)

Jei klaid� n�ra, svoriai auga patys.  Jei jie neauga, pridedam t� $-\lambda W'
W$ ir pri\-ver\-�iam juos augti.

O dabar apie atramini� vektori� klasifikatorius.

Jei klas�s yra nutolusios viena nuo kitos, tinka daug diskriminantini�
plok�tum�, kurios daro po 0 klaid�.  Kuri� reikia pasirinkti?  Reikia
papildomo kriterijaus.  Kokio?  Skonio reikalas.  Vienas sprendimas: per
vidur� -- maksimizuoti atstum� iki artimiausi� klasi� atstov�.  Tuos tris
artimiausius vektoriukus (dvimat�j erdv�j; trimat�j bus keturi ir t.t.), nuo
kuri� imam ties�, vadinam atraminiais (support vector).  Kad gra�iau
skamb�t�, turime ne klasifikatori�, o support vector machine.  Beje, atramini�
vektori� skai�i� galima paimti pagal skon�.  Galima spresti matemati�kai,
taikant kvadratin� programavim�.  �mon�s ilgai galvojo, pirmas straipsnis apie
tai buvo 1992 m.  O perceptronas tai daro automati�kai, da�nai ir geriau.

% Ateityje dar bus atramini� vektori� regresija.

Mes nagrin�sime atvej�, kai klaid� n�ra (klas�s nesikerta)

Manykim, kad perceptronas jau apmokytas.  Kiekvienas ta�kas ($\equiv$
vektorius) turi ind�l� � nuostoli� funkcij�.  $f(...)$ kiekvienam ta�kui yra
labai arti 0 arba 1.  Did�iausi� ind�l� duoda ar�iausiai plok�tumos esantys
vektoriai.  Mokai, mokai, gauni maksimalios klaidos klasifikatori� ir jei
mokai toliau, svoriai vis dar auga, plok�tuma stengiasi patekti � viduriuk�.
Ir gauni atramini� vektori� klasifikatori� (support vector classifier arba
support vector machine).

% �� metod� sugalvojo vienas Raud�io draugas senai senai.  Maskvoj j� vadino
% obobschionnyj portret, 1974 m.  Paskui i�va�iavo � Amerik�.  Ten sugalvojo
% kit� pavadinim� -- support vector machine.  Kr��iau skamba ;)

Vietoj dvimat�s ervd�s galima padaryti penkiamat�: $x_1, x_2$ turim, dar
pridedam $x_1^2, x_2^2, x_1x_2$.  Penkiamat�j erdv�j jau lengviau sudalinti
ta�kus, kad likt� 0 klaid� (jei nei�eina gauti 0 klaid�).  Ir t.t.  $x_1^3,
x_2^3, x_1^2 x_2, x_1 x_2^2, ...$.  Mokom iki nulin�s klaidos ir tada laukiam,
kol svoriai i�augs (vienas i� b�d� -- palaipsniui didinti �ingsn� $\eta$ kai
pasiekiam nulin� klaid�, kitas i� b�d� -- �vesti t� nar� $\lambda W'W$).

% Jei turim 100 ta�k�, galime 99-mat�j erdv�j sudalinti � dvi klases be problem�.
% Ma�esn�se erdv�se sunku.

Apibendrinimas: yra du kriterijai.  Vienas -- minimizuoti mokymo klaid� kiek�.
Antras -- kai j� nelieka, maksimizuoti tarp�.

% Praeit� paskait� buvo:
%   mokai perceptron� -- gauni Euklidinio atstumo klasifikatori�.
%   jei duomenys yra gra�iuose apskritimuose, gausime i�kart ideal� atsakym�
%   po pirmos iteracijos

Perceptronas palaipsniui realizuoja visus algoritmus:
\begin{enumerate}
\item euklidinio atstumo
\item reguliarizuota
\item fi�erio algoritmas arba
\item pseudo-inversija
\item robastin�
\item minimalios klaidos
\item atramini� vektori� klasifikatorius
\end{enumerate}

% apie por� i� j� mums nekalb�jo.

% --- 4 paskaita: 2003-03-20

% Kiekvienoj iteracijoj perskai�iuojam svorius:
%   W_naujas = W_senas - \eta \frac{\partial c}{\partial W}
%
% kai atsiranda nulin� klaida, i�vestin� pasidaro labai ma�a, tad W pokytis
% irgi labai suma��ja.  Tod�l apsimoka didinti mokymo �ingsn� \eta:
%
%   \eta_naujas = \eta_senas * 1.001
%
% tai va taip ir veikia atramini� vektori� klasifikatorius -- �r. jo atsi�st�
% KeliKlasifikatoriai.m
%

\section{Klasifikavimo ir prognozavimo klaid� r��ys} % 9

Prognozuoti galima visk� -- bet reikia �inoti, kokiu tikslumu.

% Oro prognoz�s prie� daugel� met�:
%   mesi monet� -- pataikysi 50%
%   sakysi, kad bus kaip �iandien -- pataikysi 75%
%   pritaikysi visas meteorologijos �inias -- bus 85%
% dabar gal geriau

Kaip vertinti tikslum�?  Paskai�iuoti paklaidos vidurk�.
\[
  \sigma_{pr} = \sqrt{\frac{1}{N}\sum_{j=1}^N (y_{tikra,j} - y_{prognozuota,j})^2}
\]

Bet jei N labai didelis (pvz., prognozuojam ka�k� visiems �em�s �mon�ms)?

Jei turim tik dal� duomen�, tai apsimoka juos sudalinti � dvi dalis:
mokymui ir testavimui.  Jei visk� panaudosim mokymui, gausim labai ger�
prisitaikym� bet tik tiems duomenims...  �Kaip meluoti su statistika.�

Did�jant duomen� kiekiui (kai $N \to \infty$), $\sigma_t \to \sigma_0$, kur
$\sigma_0 = \sigma_{pr}$, o $\sigma_t$ -- testin� klaida,

Galima apytiksliai �vertinti
\[
  E \sigma_t^2 = \sigma_0^2 (1 + \frac{p}{N-p})
\]
kur $p$ -- po�ymi� skai�ius (duomen� dimensija).

% Generalizavimo klaida = minimali arba asimptotin� klaida kart ka�kas

Generalizavimo klaida -- testin�s klaidos matematin� viltis.  Kitaip tariant,
laukiama testin� klaida.

% O kas po perk�nais yra \sigma_t???  Perceptrono darom� klaid� skai�ius?

Klasifikavimo klaidos yra dviej� r��i�:
\begin{enumerate}
\item objekt� i� klas�s A neteisingai priskyr�m klasei B
\item objekt� i� klas�s B neteisingai priskyr�m klasei A
\end{enumerate}
Vienos r��ies klaidos gali kainuoti daugiau, nei kitos.

Bendra klaida \[P = q_1 P_1 + (1-q_1) P_2\] kur $q_1$ -- tikimyb�, kad objektas
priklauso klasei A, $P_1$ -- pirmos r��ies klasifikavimo klaida, $P_2$ --
antros r��ies klasifikavimo klaida.

Jei turim du duomen� gabalus su normaliniu pasiskirstymu $N(\mu_1, I)$ ir
$N(\mu_2, I)$ ($\mu_1, \mu_2$ -- centrai, $I$ -- vienetin� kovariacijos
matrica) su atstumu $\delta$ tarp klasi� (Euklidinis atstumas, t.y. $\delta =
|\mu_1 - \mu_2|$), tuomet asimptotin� klasifikavimo klaida $P_\infty =
\Phi(-\frac{\delta}{2})$ (kur $\Phi$ yra pasiskirstimo funkcija ar ka�kas
pana�aus i� statistikos -- $\Phi(x) = \int_0^x \phi(x)$, kur $\phi$ yra
ta monontoni�kai did�janti nuo 0 iki 1 tankio f-ja, atrodo, $\phi(x) = $
tikimyb�, kad atsitiktinis dydis yra $< x$).

% Beje, $\delta = |\mu_1 - \mu_2|$, kur $\mu_1, \mu_2$ -- klasi� vidurkiai
% (vektoriai) ir imame j� Euklidin� atstum�.

Jei pasiskirstymas n�ra toks gra�us apvalus, paprastas atstumas nelabai
veikia.  Yra gudresn� Machaonobi formul�.  Apibendrintas atstumas tarp klasi�
\[ \delta_M^2 = (\mu_1 - \mu_2)' \Sigma^{-1} (\mu_1 - \mu_2) \] kur $\mu_1,
\mu_2$ -- klasi� vidurkiai (vektoriai), $v'$ -- vektoriaus transponavimas,
$\Sigma$ -- tokia baisi kovariacin� matrica (�stri�ain�je dispersijos, kitur
kovariacija padauginta i� kvadratini� nuokrypi� sandaugos ar k�k. pana�aus).
Pa�m� $\delta_M$ vietoje $\delta$ anoje formul�je gauname kit� klasifikavimo
klaidos �vert�.

Taigi, skirtingi metodai (�iuo atveju buvo Euklido ir Fi�erio) duoda
skirtingas klasifikavimo klaidas.

Svarbu.  Kartoju: klasifikavimo klaida priklauso nuo metodo.

Pati primityviausia prognoz� (turi ka�kok� paprast� pavadinim�) -- kitas
duomuo bus toks pats, koks �itas.  Apsimoka savo prognoz� palyginti su �ita --
jei pagerini, gerai, jei pablogini, prad�k nuo prad�i�.

% Kiek suprantu, imi $\sigma_pr$ formul�je $y_{prognoze,j} = y_{tikras,j-1}$.

Dar yra koreliacijos koeficientas, kuris ka�k� pasako.  Vidutin� kvadratin�
paklaida 5 -- o kas tie 5?  k� tai sako?  Priklauso nuo u�davinio.  Fordui
51\% tikslumo akcij� kurso prognoz� yra prie�astis padvigubinti laboratorijos
finansavim�, kitur gal reikia 99\% tikslumo.

NB sakoma 'klasifikavimo klaida', bet 'prognozavimo paklaida'.

\section{Klasifikavimo ir prognozavimo klaid� �vertinimo \\ b�dai} % 10

% Teoriniu paklaid� skai�iavimu Raudys nepasitiki -- tariam, kad normalinis
% pasiskirstymas, imam Machaonobi atstum�, statom � formul� gaunam �vert�.  O
% jei prielaida apie normalin� daugiamat� pasiskirstym� yra klaidinga?  Geriau
% tikrinti su tikrais eksperimentiniais duomenimis.  Tik duomenys turi b�ti
% homogeni�ki!

Primityviausias metodas -- savos imties metodas (\emph{resubstitution}): ant
t� pa�i� padarau, ant t� pa�i� testuoju.  Bet jei duomen� nedaug, yra pavojus,
kad prisiderinsim prie t� duomen�.  Jei $N$ ir $p$ artimi, galim gauti labai
artim� nuliui paklaid�, bet pa�mus kitus duomenis gali b�ti nei � tvor�, nei �
miet�.

\[ E\sigma^2_R \approx \frac{\sigma^2_0}{1 - \frac{p}{N-p}} \] $\sigma_0$ --
tikra paklaida, $E\sigma_R$ -- $\sigma_R$ matematin� viltis, $R$ rei�kia
\emph{resubstitution}.

Kitas b�das -- testiniai duomenys (\emph{hold-out} arba
\emph{cross-validation} metodas): ap\-mo\-kom su vienais duomenimis, su kitais
testuojam.  (Galima dar ir pakartoti kelis kartus tuos pa�ius duomenis
skirtingai sudalinus � mokymo ir testinius.)

% Matlabe randperm(100) duos i�mai�yt� masyv� su skai�iais nuo 1 iki 100

Kartais duomen� yra ma�ai ir gaila dal� aukoti tikrinimui.  Tada mokom ant
vis� i�skyrus vien� ir tikrinam ant to vieno.  Paskui j� gr��inam ir i�metam
kit�, mokom, ant to kito tikrinam.  Ir taip su visais i� eil�s.  Slenkantis
egzaminas (\emph{leaving out}).

Standartin� cross-validation -- dalinam � dvi dalis, ant vienos mokinam, su
kita tikrinam, ir taip 2 kartus -- 2-fold cross-validation.  N-fold
cross-validation yra tas pats, kas leaving one out.  Tas tinka ir
klasifikavimui, ir prognozavimui.  �is metodas tinka ir normaliniams ir
nenormaliniams duomenims, bet yra jautrus duomen� homogeni�kumui (mokom su
Lietuvos miest� duomenim, testuojam su Mozambiko, gaunam �nip�t�).

Gr��tam prie rodikli�: prognozavime tai -- vidutinis kvadratinis nukrypimas
bei koreliacijos koeficienta; klasifikavime -- klasifikavimo klaidos �vertis
$\hat{P} = \frac{n_\text{klaid�}}{N}$.  Beje, $\hat P$ yra atsitiktinis dydis,
pasiskirst�s pagal binomin� d�sn� $B(P, N)$.  Jo dispersija \[\sigma(\hat P) =
\sqrt{\frac{P(1-P)}{N}} \approx \sqrt{\frac{\hat P(1-\hat P)}{N}}\] (kadangi
binominio skirstymo parametro $P$ ne�inome, imame $\hat P$ ir d�l to gauname
apytiksliai).  Taigi, jei �inome, kad i� 100 steb�jim� paklaida yra 10\%, tai
galime tik�tis realiai, kad ji bus 7\%--13\% (pagal vienos sigmos taisykl�),
arba 3\% -- 16\% (pagal dviej� sigm� taisykl�).  Jei turime 1000 steb�jim�,
tai patiklumo intervalas bus tarp 9.4\% ir 10.6\% (dviej� sigm� taisykl� duoda
$\sim$96\%).

Svarbiausia suprasti, kad �vertinimas yra atsitiktinis dydis.  Kuo tiksliau
norime �vertinti paklaid�, tuo didesnio $N$ reikia (didesnis $N$ ma�ina
dispersij� ir galime tiksliau �vertinti paklaid�).

% Digression � statistik�: 95% patiklumo intervalas -- i� 100-o vidutini�kai
% 95 steb�jimai paklius � t� interval�.  Jis daugma� atitinka 1.96\sigma
% taisykl�.  1 sigmos taisykl� -- gal 50% ar ka�kas pana�aus.  Lia lia.
% Da�niausiai pateikia vien� sigm�, o toliau galima pasiskai�iuoti.

% Londono birzos pvz: alpha yra regresija, su maza alpha gaunam standartine
% kvadratine regresija, su didelia alpha gaunam robastiskuma; alpha labai
% priklauso nuo duomenu ir niekas nezino, kaip ja parinkineti -- cia galima
% pasidaryti PhD is to; londono birzoje alpha=17 buvo geriausias ir dave
% 2x maziau paklaidu nei standartine regresija; alpha tame pvz yra paskutinis
% parametras.

Viena gudryb� apmokant neuroninius tinklus: verta normalizuoti duomenis
(pa\-da\-ry\-ti kad sigma = 1 o vidurkis = 0).  Kitas "fintas" yra juos dar ir
dekoreliuoti.

\section{Algoritmo sud�tingumo, mokymo duomen� kiekio ir kokyb�s ry�ys} % 11

\[
  E \sigma_t^2 = \sigma_0^2 (1 + \frac{p}{N-p})
\]
kur $p$ atspindi algoritm� sud�tingum�, $N$ -- duomen� kiek�, na o $\sigma_t$
-- kokyb�.

% Generalizavimo klaida = minimali arba asimptotin� klaida kart ka�kas

% Ten toks grafik�lis...  sigma_t art�ja prie sigma_0 i� vir�aus, o sigma_R i�
% apa�ios (vir�us -- klaid� sk. testiniuose duomenyse, apa�ioje -- mokymo
% duomenyse; pagal t� formul� gauname, kad sigma_R <=0 kai N <= p, t.y. kai
% algoritmo sud�tingumas vir�yja duomen� kiek�, gauname ideal� model�,
% nedarant� klaid�.

Klasifikavimo klaidos pagal Euklido metod� (Euklidas BTW tai perceptronas po
pirmos iteracijos):
\[ EP_N \approx \Phi\left(-\frac{\delta}{2} \cdot
                           \frac{1}{\sqrt{1+\frac{2p}{N\delta^2}}}\right)
\]

Jei mokom percpeptron� iki Fi�erio lygio, gaunam
\[ EP_N \approx \Phi\left(-\frac{\delta}{2} \cdot
                           \frac{1}{\sqrt{1+\frac{2p}{N\delta^2}}} \cdot
                           \frac{1}{\sqrt{1+\frac{p}{2N+1-p}}} \right)
\]
($N$ -- steb�jim� sk., $N_1$ -- steb�jim� skai�ius vienoje klas�je)
Klaida i� prad�i� didesn�, linksta smarkiau.

Kitaip tariant, kuo ilgiau mokom percpetron� (daugiau iteracij�), tuo daugiau
mo\-ky\-mo duomen� reikia.  Kuo didesnis sud�tingumas (tik �ia sud�tingumas
jau yra algoritmo sud�tingumas, o ne $p$ �vertis), tuo daugiau duomen� reikia
mokymui.  Viena i� problem� -- �permokymo�.

Kuo sud�tingesnis organizmas, tuo ilgiau mokosi.  Palyginimas: kat� ir
studentas.

% Pritaikymai realiam gyvenimui: laikas nustoti mokytis i� t�v�/d�stytoj� etc.
% Pasaulis kei�iasi.

U� sud�tingesn� algoritm� moki didesniu duomen� kiekiu.
% TANSTAAFL

Vienas i� b�d�, kaip patikrinti, ar duomen� algoritmui pakanka -- naudoti
slenkant� egzamin�.  Su vienu paskirstymu gaunam 5\% klaid�, su kitu
paskirstymu gaunam 15\% -- blogai, didelis skirtumas, duomen� nepakanka.
Reikia imti paprastesn� algoritm�.

Arba galima vertinti paklaidas teori�kai (jei duomenys normaliniai) ir paskui
�i�\-r�\-ti, ar prakti�kai klaid� tikimyb� pana�i.  Jei ne, blogai, nepakanka
duomen� arba per sud�tingas algoritmas.

Beje, i� anks�iau: viena id�ja -- reikia triuk�mo duomenyse.  Algoritmas turi
prisitaikyti prie triuk�mo!  Duosim idealiai �varius mokymo duomenis ir bus
neatsparus tikram gyvenimui.

% Higiena: per daug higienos kenkia, organizmas pasidaro neatsparus.

% Back to now: viena i� sekan�i� tem� -- kaip ma�inti po�ymi� kiek�, ir
% apskritai algoritmo sud�tingum�.

% --- 5 paskaita: 2003-04-03

% Nam� darbai v�l: iniciatyva, k�ribingumas!
% Pakanka pastang�, o ne rezultato.  Jei stengsim�s, m�s� neskriaus.

% Paskaita bus ne gegu��s 1, o gegu��s 8
% Paskutin� paskaita gegu��s 15
% Taigi, liko paskaitos: 04-03, 04-17, 05-08, 05-15.

% Egzas: leid�iama �pera -- 1 didelis lapas
% Per perlaikym� bus sunkiau, joki� �per�

\section{Daugiasluoksnis percpetronas ir jo mokymas} % 12

% Perceptrono su 1 pasl�ptu sluoksniu diagrama:
%   kriterijai x_1 ... x_p
%   pasl�ptas sluoksnis: h neuron�
%     s_i = \sum_{j=1}^p W_{ij} x_j + W_{i0}   kur i = 1..h
%     y_i = f(s_i) = (1+e^{-s}_i)^{-1}
%   i�orinis sluoksnis: k neuron�
%     \sigma_i = f(\sum_{j=1}^h v_{ij} y_j + v_{i0})   kur i = 1..k

% flashback f(x) := (1+e^{-x})^{-1} -- sigmoidin� funkcija; angl logistic
% sigmoid

Galima taikyti atpa�inimui.  Pvz, angli�ko teksto atpa�inimas: $k=26$,
po vien� klas� kiekvienai raidei.  Kurioj klas�j $\sigma_i$ reik�m� did�iasia,
pagal tai ir atpa��stam.  Trok�tamas i��jimas: $\sigma_i = 1$, $\sigma_j = 0$
jei $i \ne j$.

Jei naudojam prognozavimui, da�niausiai apsieinam be sigmoidin�s f-jos:
\[
   \sigma_i' = \sum_{j=1}^h v_{ij} y_j + v_{i0}   kur i = 1..k
\]

Arba galima normuoti � interval� $[0, 1]$, bet praktikoje to niekas nedaro.
Prakti�kai visi naudoja neuronin� tinklas be netiesini� element� i��jimo
sluoksnyje.

Va tokia daugiasluoksnio perceptrono architekt�ra.  Jo mokymas
sud�tingesnis, nei vienasluoksnio perceptrono.

Daugiasluoksnis perceptronas gali daryti netiesinius atskyrimo pavir�ius.

Daugiasluoksnis perceptronas su vienu pasl�ptu sluoksniu yra universalus
aproksimatorius: galima gauti bet kokio sud�tingumo atskyrimo pavir�i�.

Funkcijos neteisi�kos, turi lokali� maksimum�, optimizavimas sud�tingas.

Kaip j� mokyti?  Kaip visad, reikia �sivesti nuostoli� funkcij� ir j�
minimizuoti.

Did�iul� nuostoli� funkcijos formul�:
\[
  cost = \sum_{l=1}^k \sum_{s=1}^k \sum_{t=1}^{N_s}(t^l_{st} - \sigma^l_{st})^2
\]
$t^l_{st}$ -- trok�tamas i��jimas ($1 \le l \le k$ -- i��jimo neurono numeris,
$st$ -- mokymo vektoriaus numeris),
$\sigma^l_{st}$ -- gautas $l$-tasis i��jimas testavimo vektoriui $x_{st}$,
$k$ -- klasi� skai�ius
$N_s$ -- mokymo vektori� skai�ius $s$-tajai klasei.

I��jimas skai�iuojamas
\[ \sigma^l_{st} = f(\sum_{j=1}^h v_{lj} y_j^{st} + v_{l0})
\]
kur
\[ y_j^{st} = f(\sum_{i=1}^p w_{ji} x_i^{st} + w_{j0})
\]
pasl�pt� vektori� i��jimai.

�ia ��jimo vektoriai yra $\mathbf{x^{st}} = (x_i^{st})$ ($s$-tosios klas�s
$t$-asis vektorius, $1 \le s \le k$, $1 \le t \le N_s$, $1 \le i \le p$).

Mokymo algoritmo bendras principas:
\[ \mathbf{W}_{z+1} = \mathbf{W}_{z}
                      - \eta \frac{\partial cost}{\partial \mathbf{W}}\Bigg|_z
\]
kur $z$ -- mokymo �ingsnis (iteracijos numeris), $\mathbf{W}$ -- bendras
vis� perceptron� svori� vektorius.
\[ \mathbf{W} = (w_{10}, w_{11}, \dots, w_{1p}, \dots,
w_{h0}, \dots, w_{hp}, v_{10}, v_{11}, \dots, v_{1h}, \dots, v_{k0}, \dots,
v_{kh})
\]

I�vestin�
\[
\frac{\partial cost}{\partial \mathbf{W}}
  = 2 (t^l_{st} - \sigma^l_{st})
    \cdot f'(\sum_{j=1}^h v_{lj}y_j^{st} + v_{l0}) \dots
\]

Algoritmas vadinamas error back-propagation.

% error back-propagation -- klaidos sklidimas atgal.

% s/i�vestin�/gradientas/ ?

Kai svoriai ma�i, i�vestin� didel�.  Kai svoriai i�auga, i�vestin� priart�ja
prie $0$, mokymas labai labai smarkiai sul�t�ja.

% Atskiras klausimas, 
% Matlabe yra Nguen widrow[sic?] initialization

% D�oukas: kod�l Paksas gali b�ti geru prezidentu?  Nes turi po�i�r� i�
% vir�aus.

% Prie� 13 m. neuroniniai tinklai tur�davo po 100000 svori�.  Mok� juos po 7
% m�nesius.  OCRui.  Source'as: 20x30 -- 600 pixeli�.  Bet � kiekvien� neuron�
% paduodavo 5x5 kvadrat�lius, paslinktus po truput�.  Pirmame sluoksnyje daug
% neuron� buvo vienod�, in fact, buvo tik 4 r��ys neuron�: atpa�indavo
% vertikali� tiesi� linij�, horizontali�, dvi diagonalias.  Taip suma�ino
% svori� kiek�.  Tinklas tur�jo 7 sluoksnius.  Mok� j� su back-propagation
% algoritmu.

% Tai - viena i� "weight sharing technique".

% Prie� por� met� kvap� atpa�inimo tinklus mok� 3 paras,

\section{Daugiasluoksnio perceptrono mokymo ypatyb�s} % 13

Pirma ypatyb� -- jis labai l�tai mokosi.  Svoriams padid�jus i�vestin� labai
smarkiai suma��ja.  Svori� labai daug.  Pakli�na � lokalinius minimumus, i� j�
ne visada i��oka.

% Laibai vaizdinga demonstracija ant lentos: papie�ti poros svori� kitim�
% laikui einant: pasisukioja, pradeda eiti tiesiai, l�t�ja, l�t�ja, l�teja...
% beveik sustoja.  Padidinus \eta v�l paeina ta pa�ia kryptim ir v�l sul�t�ja
% iki sustojimo.

Kaip su tuo kovoti?  Vienas i� b�d� -- antros eil�s metodai (skai�iuoja antros
eil�s i�vestines, bet jie jautresni lokaliniams minimumams).

Levenberg-Market ar tai conjugate gradients metodas ima antros eil�s
i�vestines, o kadangi j� daug ($|W|^2/2$), ima tik diagonalines.  Konverguoja
grei�iau, bet labau greitai patenka � lokalin� minimum�.

Su lokaliniais minimumais kovoja multistart metodas.  Mokai 10 kart� nuo 0
su skirtingais pradiniais svoriais.
I� j� 3 kartus gaunas gerai (3-5\% klaid�), 7 labai prastai (15\% klaid�)...

% Raudys jau back-propagation nebenaudoja, naudoja �it�, gradientin�.

% O �iaip daug kas j� tebenaudoja.  B�tent d�l lokalini� minimum�.

% Dar ateity pasakos apie genetinius alg.  Jie geriau susidoroja su
% lokaliniais min, bet konverguoja l��iau u� gradientin�.

Kitas b�das -- didinam mokymo �ingsn�.  Pvz, kas $50$ iteracij� pa�i�rim, ar
su\-ma\-��\-jo nuostoli� funkcija.  Jei suma��jo, padidinam $\eta$ (padauginam
i� $1.07$).  Jei padid�jo, suma�inam $\eta$ (padauginam i� $0.7$).

% �it� galima ir su vienasluoksniu perceptronu daryti.  Tas jau buvo:
% atraminiai vektoriai.  Kiek konkre�iai didinti \eta priklauso ir nuo
% duomen�.

1986 m. Rumelharto ir dar ka�kieno straipsnis prad�jo nauj� er�
neuroniniuose tinkluose: sigmoidin� funkcija.  Jie pasi�l� trok�tam� i��jim�
reik�mes imti 0.1 ir 0.9 vietoje 0 ir 1, kad svoriai nei�augt� per daug
dideli.  Tada ir i�vestin� bus toli gra�u ne 0.

Suma��ja plok��ios vietos i��jimo sluoksnyje (pasl�ptame sluoksnyje
nesuma��ja)

% TANSTAAFL.

Lygiai taip pat n�ra ir to blogo, kas nei�eit� � ger�.  I�lo�iam
didesn� i�vestin� -- greitesnis mokymas.  Pralo�iam va k�: jei t = 0/1, tai
funkcija cost yra lygi klaid� kiekui -- taigi oficialiai mes minimizuojam
klaid� kiek�, which gives us a warm and fuzzy feeling.  Su 0.1/0.9 jau
matuojam ne�inia k�.  U� tai mokam dar didesniu skirtumu nuo klasifikavimo
klaidos.

% K� daryti?  Apie tai kalb�s v�liau.

Baisiausiais svarbus dalykas yra pradin�s s�lygos. $\mathbf{W_0}$

Vienasluoksniu atveju apsimoka nustumti centr� tarp klasi� � koordina�i�
prad�i�, ir prad�ti mokyti nuo nulini� svori�.

�ia nei�eis: jei visus pasl�ptus neuronus mokysim su tai pa�iais pradiniais
svoriais, jie visi bus vienodi... nebebus jokio daugiasluoksnio perceptrono.

Pradin� s�lyga: $\mathbf{W}_0$ svoriai skirtingi.  Paprastai juos parenka intervale
$[-a, a]$.  $a$ parenkam tok�, kad pradin�s ��jimo sluoksnio perceptron� reik�m�s
\[ \sum_{i=1}^p w_{ji} x_i^{st} + w_{j0}
\]
reik�m�s b�t� pakankamai ma�os.

Da�nai dar ��jimo reik�m�s normalizuojamos, kad pakli�t� � interval� $[0, 1]$
(taip daro Matlabas), arba kad j� dispersija b�t� arti $1$, o vidurkis $0$
(taip daro Raudys).

Tai labai svarbu!

% Perka paket� u� $10,000 ir nieko jiems neveikia.  Meta � �iuk�li� d���.
% I�traukia, normalizuoja duomenis ir viskas veikia!

% Nguen-Widrow inicializavimas.  Pasl�ptas sluoksnis bei i��jimo sluoksnis
% inicializuojami vienodai.

Dar apie pradines s�lygas: jei pradedi nuo ger� pradini� s�lyg� ir laiku
sustoji, rezultatas b�na geresnis.

% Vaizdingas grafik�lis.  Kuo geriau inicializuoji, tuo geriau -- vidutini�kai
% ar�iau tikro minimumo.  Ir svarbu laiku sustoti!

% Kuo geriau pradedam, tuo anks�iau reikia sustoti.

% Yra kr�va b�d� gerai prad�ti.  Ateityje: gabalais tiesinis klasifikatorius.
% Dar vienas i� b�d�: pirma pamokyk su paprastesniu algoritmu, o jau paskui su
% tikrais duomenimis.

% Data mining: d�sningum� paie�ka dideliuose duomenyse.  Duomenys netelpa.
% Tarkim, turim 10 Gb.  Skaldom � 10 gabal� po 1 GB.  Apmokom su 1, laiku
% sustojam.  Pradedam nuo tos galutin�s pad�ties, apmokom su 2 gabalu.  Ir
% t.t.

Kartojam:
\begin{enumerate}
\item kai $|W|$ auga, $f' \to 0$,
\item lokaliniai minimumai,
\item didinam arba ma�inam mokymo �ingsn� priklausomai nuo pasisekimo.
\item trok�tami i��jimai -- imam ne 0 ir 1, o 0.1 ir 0.9.
\item pralo�iam lygyb� cost = klaid� kiekis
\item pradin�s s�lygos: svoriai skirtingi ir pakankamai ma�i
\item pradiniai duomenys normalizuoti -- arba $0 <= x_i <= 1$,
      arba $Ex = 0$ (vidurkis) ir $\sigma = 1$ (dispersija)
\item gerai prad�ti ir laiku sustoti!
\end{enumerate}

% Tre�ias nam� darbas: daugiasluoksnis perceptronas.  Reikia pademonstruoti
% kai kuriuos i� �i� efekt�.

% Nam� darbo reikia ant popieriaus

% VU vien� kart� 5 studai pateik� t� pat� darb� -- 100% identi�ka i�skyrus
% pavard�.  Bet tik 1 kart�, auk�tas nusira�in�jimo lygis!

% Dar apie nam� darb�:
%   �kas yra ant a�i��?  Paveiksliukai be caption�, a�ys be labeli�, n�r
%   paai�kinim�, kas yra kas, etc -- atkreipti d�mes�.

\section{Duomen� nuosavos reik�m�s ir mokymo �ingsnis.
         Duomen� transformavimas prie� mokant} % 14

% Paveiksliukas: labai sunku atskirti klases, jei jos yra tokios siauros greta
% viena kitos ir labai siauras tarpas tarp j�.  Atsiskiria 100%, bet
% perceptronas mokosi nepaprastai sunkiai, labai l�tai konverguoja, ypa�
% daugiamat�se erdv�se.

% Vadov�liuose labai retai � tai kas kreipia d�mes�.  Pagal Raud� �is dalykas
% yra labai svarbus.

Nuostoli� funkcija
\[ cost = \frac{1}{N_1+N_2} \sum_{i=1}^2 \sum_{j=1}^{N_i} (t_{ij} - W'x_{ij} - W_0)^2
\]

Jei $Ex = 0$, galima imti $W_0 = 0$ ir supaprast�ja funkcija:
\[ cost = \frac{1}{N_1+N_2} \sum_{i=1}^2 \sum_{j=1}^{N_i} (t_{ij} - W'x_{ij})^2
\]

Tarkime $\widehat{W}$ yra minimumas:
\[ cost_{min} = \frac{1}{N_1+N_2} \sum_{i=1}^2 \sum_{j=1}^{N_i} (t_{ij} -
                                                         \widehat{W}'x_{ij})^2
\]
tuomet
\begin{align*}
 cost & = \frac{1}{N_1+N_2} \sum_{i=1}^2 \sum_{j=1}^{N_i}
                 (t_{ij} - (W + (\widehat{W}-W)'x_{ij})^2
    \\& = cost_{min} + (W - \widehat{W})' K (W - \widehat{W})
    \\& = cost_{min} + (W - \widehat{W})' \Phi \lambda \Phi' (W - \widehat{W})
    \\& = cost_{min} + U' \lambda U
\end{align*}
kur
\[ K = \frac{1}{N_1 + N_2} \sum \sum x_{ij} x_{ij}' \quad\text{(kovariacin� matrica)}
\]
ir
\[ U = \Phi'(W - \widehat{W})
\]

Kovariacin� matrica
\[ K = \Phi \lambda \Phi'
\]
kur $\Phi$ -- ortogonali matrica ($\Phi \Phi' = \Phi' \Phi = I$ -- vienetin�
matrica).  Matricos $\Phi$ eilut�s bus matricos $K$ tikriniai vektoriai.
$\lambda$ yra �stri�ainin� matrica, kurios �stri�ain�je juos atitinkan�ios
tikrin�s reik�m�s $\lambda_1, \dots \lambda_p$ -- dispersijos.  Vektoriai yra
kryptys, liambdos -- dispersijos tomis kryptimis.

% [U, D, V] = svd(K) -- signular value decomposition -- skaido matric� �
% tikrines reik�mes, U = \Phi, D = diagonalin� matrica, V = U jei matrica
% simetrin�, o jei ne, bala �ino kas

I�vestin� nepriklauso nuo $cost_{min}$ nario, tik nuo to
$U'\lambda U$.  
Kitaip tariant, pasukam erdv� ir vietoje W gauname U.  �ia lengviau
konverguos.  Mokymas yra
\[ U_{z+1} = U_z - \eta \frac{\partial cost}{\partial U}
\]
I�vestin�
\[ \frac{\partial cost}{\partial U} = 2 \lambda U_z
\]
tad
\[ U_{z+1} = (I - 2\eta \lambda) U_z
\]
Kad seka konverguot�, turi b�ti
\[ \forall i: |1 - 2\eta \lambda_i| < 1
\]
(Pakanka paimti tik maksimali� $\lambda$ reik�m�).  Tad reikia parinkti
pakankamai ma�� $\eta$:
\[ \eta < \frac{1}{\lambda_{max}}
\]
Bet kuo ma�esn� $\eta$, tuo l�tesnis mokymas.

Taigi, jei duomenys tokie bjaur�s ir nesimoko, vienas i� b�d� yra pasukti
erdv� ir sunormuoti duomenis:
\[
  Z = \lambda^{-\frac{1}{2}} \Phi X
\]
Tuomet visomis kryptimis $\lambda$ yra vienodi ir turime vien� bendr� $\eta$
visoms kryptims.  Tas labai pagreitina.  Jei duomenys normaliniai, tai jau po
pirmos iteracijos gauname teising� Euklidin� klasifikatori�.

% �ita formul� yra i�vesta regresija.  N�ra netiesin�s f-jos etc, bet tai
% regresija.

K� daryti su daugiasluoksniu perceptronu, vienas Dievas te�ino -- daug
per\-cep\-tro\-n�, neai�ku, kuria kryptimi sukti....

Prie t� punkt� prira�om
\begin{enumerate}
\item[9.] reikia pasukti duomenis, transformacija yra $\lambda^{-1/2} \Phi$
\end{enumerate}

% --- 6 paskaita: 2003-04-24; pra�iopsojau...

% Kartojimas

Daugiasluoksnio perceptrono atveju duomen� nepasukiosi/nepanormalizuosi, kad
lengviau b�t� mokytis.

Jei skiriamasis pavir�ius labai jau sud�tingas ir perceptronas l�tai mokosi,
tai galime prid�ti triuk�mo -- aplink rutuliukus pribarstyti atsitiktinai
daugiau rutuliuk�, t.y. padidinam mokymo duomen� kiek�.  Tada skiriamasis
pavir�ius �i�sitiesins� -- supaprast�s (nors atsiras daugiau klaid�).

Kad svoriai nei�augt� pridedamas reguliarizavimo narys (weight decay) prie
cost funkcijos:
\[  ... + \lambda W' W\]
prie�ingas efektas gaunamas (kad svoriai augt�), kai atimamas narys
\[  ... - \lambda V' V\]
(t.y. yra aspekt�, kai �ito reikia)

% Raud�io atsi�sta program�l� mokosi Levenbergo-Market ar tai back-propagation
% metodu.  �itas metodas lengvai �krenta � lokal� minimum�.

\section{Duomen� transformacija} % 15

% Kaip suma�inti po�ymi� kiek�?  Bus 2 metodai

Prognozavimo paklaida lygi $\sigma_{pr}^2 = \sigma_0^2 \left(1 +
\frac{p}{n-p}\right)$, t.y., kuo daugiau po�ymi� imame, tuo didesn� paklaid�
gauname.

Fi�erio klasifikatoriaus paklaida:
\[ EP_{kl} = \Phi \left(\frac{\delta}{2}
\frac{1}{\sqrt{(1+\frac{2p}{N\delta^2})(1+\frac{p}{N_1+N_2})}}\right)
\]
elgiasi taip pat.

Taigi, po�ymi� skai�ius $p$ turi b�ti nedidelis.  Kaip �inoti, kuriuos
po�ymius imti?

Vienas i� b�d� -- \Def{po�ymi� i�rinkimas}.

Pvz., turime po�ymius
\[ X = \left[ \begin{array}{l} x_1\\x_2\\\vdots\\x_p \end{array}\right]
\]
ir atrenkame
\[ X' = \left[ \begin{array}{l} x_7\\x_{1012}\\x_{38779} \end{array}\right]
\]

Kitas b�das -- \Def{transformacija (i�skyrimas)}

Pvz., turime po�ymius
\[ X = \left[ \begin{array}{l} x_1\\x_2\\\vdots\\x_p \end{array}\right]
\]
ir i�vedame
\[ Y' = \left[ \begin{array}{l} y_1\\\vdots\\y_r \end{array}\right] = T \cdot X
\]
kur $r << p$, o $T$ -- transformacijos matrica.
\[ y_i = \sum_{j=1}^p t_{ij} x_j
\]

\paragraph{Pagrindini� komponen�i� metodas} % populiariausias

Reikia taip suprojektuoti duomenis, kad viena (pirma) kryptimi j�
i�sibarstymas b�t� did�iausias, antra -- ma�esnis, tre�ia -- dar ma\-�es\-nis
ir t.t.  Kaip t� kryp�i� ie�koma: suskai�iuojam duomenims kovariacin� matric�
\[
   K = \frac{1}{n-1} \sum_{j=1}^n (X_j - \overline{X})
                                  (X_j - \overline{X})^T
\]
% Matlabe K = cov(Dx);
% kur Dx -- matrica i� p stulpeli� ir n eilu�i�

Matric� $K$ galima u�ra�yti tokiu pavidalu: $K = G \cdot D \cdot G'$, kur
$D$ yra diagonalin� matrica, o $G$ -- ortogonali matrica ($GG' = I$).

% Matlabe G ir D radimui yra komanda
%  (G, D, Ga) = svd(K);     -- singular value decomposition

$G$ -- pos�kio matrica (gaunama su minimalia paklaida).
% jei duomenys neu�sivert�; jei u�sivert�, gali nei�eiti.
% XXX: o k� tai rei�kia???

Tai va, vietoje matricos $T$ galima naudoti matric� $G$: $Y = X' G$
($X'$ turi vien� eilut� ir $p$ stulpeli�, i� $G$ imame $p$ eilu�i� ir tik
pirmuosius $r$ stulpeli�; likusius stul\-pe\-lius i�metame).

$Y$ kovariacin� matrica yra $D$ (tiksliau, pirmos $r$ eilut�s/stulpeliai).

Beje, �is metodas leid�ia i� ma�esnio skai�iaus komponen�i� atstatyti likusias
-- t.y. turint $Y$ galima gan tiksliai atgaminti $X$.

\bigskip

Da�nai i� prad�i� po�ymiai i�renkami, o paskui transformuojami, t.y. naudojami
abu b�dai.

% �r. Fooley-Sammon optimal discriminant plane (optimali diskriminantin�
% plok�tuma).
% �r. dar straipsn� apie po�ymi� i�skyrimus

% Jei turime $t_{1j}$, tai $t_{2j}$ ie�komas toks, kad \sum_j t_{2j}t_{1j} = 0
% t.y. daromas 2 perceptronas su tokia s�lyga ir 
%    min_{t_2} Cost(t_2) = Cost_{SLP}(t_2) + \lambda (\sum_j t_{2j}t_{1j})^2
% t.y. ie�kom tokios krypties, statmenos pirmai, kad geriausiai skirt� klases.

\section{Po�ymi� atrinkimo algoritmai} % 16

\begin{enumerate}
\item �Daryk, kaip dar� kiti� % -- apie k� �ia???
\item Imti po�ymius po vien�, su jais klasifikuoti/prognozuoti ir i�rinkti
      tuos po\-�y\-mius, su kuriais geriausiai gaunasi.

      Bet �itai ne visada gerai pasiteisina: b�na, kad po vien� nelabai gerai
      parodo, o poroj i�prognozuoja klasifikatori� be klaid�,
\item Nagrin�ti po�ymius po 2 ar daugiau.  Jei po�ymi� nedaug, tai viskas
      gerai, bet jei daug, tai toki� tupl� susidarys labai daug.  Tada galima
      i� prad�i� i�rinkti tarkime 100 geriausi� ir jau tada nagrin�ti po 2
      (bendru atveju po n).

      Arba galima atsitiktinai parinkti pvz. 5000 derini� po 2 ir i� j�
      i�sirinkti geriausi�.

\item Po�ymi� atrinkimas su paskatinimu -- remiantis tuo, kad geriausi
      po�ymiai da�niau pasitaiko, nei blogesni.  Tai ka�kaip (kaip??) atskirti
      $m$ da�niausiai pa\-si\-tai\-kan\-�i� po�ymi� ir i� j� rinkti pilnu
      perrinkimu $n|$ reikaling� po�ymi�.

      Apriorin�m tikimyb�m i�renkam ka�kok� po�ymi� rinkin�.  �vertinam --
      pvz., paskai�iuojam klaid�.  Ir taip daaaug rinkini�.  I�renkam tada
      de�imt geriausi� rinkini�.  Ir pa�i�rime tuose de�imtyje, kokie
      po�ymiai geriausiai pasirodo.

\item \emph{forward selection} -- atrenkam 1 geriausi�.  Tada bandom jo
      kombinacijas su likusiais.  Atrenkame antr� po�ym� -- jau turime por�.
      Tada bandome t� dviej� kombinacijas su likusiais ir t.t.  �is b�das
      vadinamas \Def{nuosekliu prid�jimu}.  Yra dar \Def{nuoseklus atmetimas}
      -- analogi�kai, tik atvirk��iai: atmetame blogiausius po�ymius.  Yra dar
      ir �i� dviej� metod� kombinacijos.

\item Genetiniai algoritmai.
\end{enumerate}

Po�ymi� rinkiniai skirtingais metodais gaunami skirtingai, bet da�niausiai j�
paklaida yra pana�i.  Moralas: nereikia siekti tobulumo.

\section{Po�ymi� i�skyrimas su neuroniniu tinklu} % 17

Klasikinis b�das i�skirti po�ymius yra toks: turime perceptron� su $x_1,
\dots, x_p$ ��jimais, ka�kiek pasl�pt� neuron� ir $p$ i��jim�.  Pasl�pt�
neuron� tur�t� b�ti $r$ -- tiek, kiek mums reikia po�ymi�.

Id�ja tokia: i��jim� reik�m�s turi b�ti tokios pa�ios, kaip ir ��jim�.  O
vidinis pasl�ptas sluoksnis juos suspaud�ia.

I�skirti po�ymiai yra vidini� pasl�pt� neuron� duodamos reik�m�s prie�
paduodant jas sigmoidinei funkcijai.

% paveiksliukas i� dviej� sluoksni�

% modifikuojame su daugiau neuron�

% kitas paveiksliukas i� trij� sluoksni�
% viduriniame -- tiek neuron�, kiek po�ymi� norime palikti

�r. AANN -- auto asociatyviniai neuroniniai tinklai

% Antras b�das: ka�koks paveiksliukas, ka�koks skiriamojo pavir�iaus grafikas
% Tokio tinklo tikslas: pavaizduoti ekrane, t.y. atskirti dvimat�j plok�tumoj

% Taigi daugiasluoksnis perceptronas gali b�ti panaudomas po�ymi� i�skyrimui

Galima pritaikyti duomen� vizualizacijai (pavaizdavimui dvimat�je ar trimat�je
erdv�je).

% --- 7 paskaita: 2003-05-08

% 10 minu�i� v�lavau.  �ia mano science fiction:

\section{Duomen� klasterizavimas (grupavimas)} % 18

Problema: nehomogeniniai duomenys, modeliavimas nesiseka.  Reikia
sus\-kai\-dy\-ti duo\-me\-nis � klasterius ir juos modeliuoti atskirai.

% va �ia ��jau.  lenta dar buvo tu��ia

% Grafik�lis: x -- income per capita, y -- gyvenimo trukm�.  Toks �domus
% i�sid�stymas.  Pasirodo, yra 2 gyvenimo b�dai: Olandija etc -- kuo daugiau
% u�dirbi, tuo geriau gyveni; Mozambikas etc -- kuo daugiau u�dirbi, tuo
% daugiau kenksming� �pro�i� gali sau leisti, tuo trumpiau gyveni.

% Picas kameroj

% �ios paskaitos tema: kaip nagrin�ti duomenis, jei jie nehomogeni�ki.

% Ka�k� bendro su regresija.

% Paveiksliukas.  Dviej� neuron� suma -- gaunam toki� \Phi formos kreiv�

Nehomogeniniai duomenys.  Pasiskirstymo tankis
\[ f(x) = \sum_{i=1}^{k} q_i f_i(x)
\]
yra $k$ komponen�i� suma.
% Paveiksliukas: dviej� komponen�i� suma -- pasiskirstymas va toks.

Reikia nehomogeninius duomenis suskirstyti � tokias klases prie� nagrin�jant.

% Anecdote: anglijoj gyventoj� sura�ymas, ka�koks bankas band� pagal tai
% nustatyti, kam reikia duoti paskolas.  I�siai�kino, kad pagal pa�to indeks�.
% :)  Pasirodo, ten pas juos gyvenimo rajonas labai priklauso nuo visuomenin�s
% pad�ties.

Da�niausiai $f_i(x)$ yra normalinio pasiskirstymo -- $f(x, \mu_i, \Sigma_i)$.
Bet labai daug parametr�.  Galime supaprastinti tardami, kad visos $\Sigma_i$
yra diagonalin�s matricos -- netiesa, bet papras�iau.

Daug greitesni algoritmai yra euristiniai.

Euristika -- paimta i� lub� sveiko proto taisykl� pagal princip� �man taip
atrodo�.

Pavyzdys: n ta�ku.  "Man atrodo", kad yra tiek grupi� -- taip ir suskirstom,
paimam kiekvienos grup�s centr�, tada tiesiog ie�kom, prie kurio centro
ta�kas artimiausias, tai grupei ir priskiriam.

�is algoritmas vadinamas $k$ vidurki� algoritmu ($K$-means algorithm).

Jis labai da�nai naudojamas.  Pirmasis.

O paskui sugalvojo dar 200 ar 400.  Prie� 20 met� buvo disertacij� bumas --
sugalvojam nauj�, parodom, kad veikia, ginam disertacij�.  Paskui pamat�,
kad naudos 0 ir gr��o prie papras�iausi� algoritm�.

% Jei kas nori, Raudys gali duoti ka�koki� jo draugo program�.  Google for
% Duin (pavard�) Delf ar tai Delft (miestas Olandijoje, ka�kada buvo sostin�).

% Duin Pattern Recognition Group or somefing.

% U�sienie�iai -- programas reikia pirkt, o mokes�i� nereikia sl�pt.  O mes va
% dabar u�sira�ysim � j� Europos s�jung�.  Ir pamokysim juos :-)

Papras�iau paai�kinti, jei yra tik du centrai.

Imam du ta�kus ir vedam per vidur� statmen�.  Tada vienai grupei suskai�iuojam
vien� vidurk�, kitai grupei antr�.  U�mir�tam pirm� skiriam�j� linij� ir vedam
statmen� per t� dviej� vidurki� vidur�.  Kartojam.  Po keli� iteracij� jis
nusistovi ir nustoja slankioti.

Paskui pradedi nuo prad�i� su kitais pradiniais ta�kais -- ir taip kokius 8
kartus.  Paimi t� variant�, su kuriuo vidutinis atstumas iki centro yra
ma�iausias.

% XXX: o �ia tas pats, ar jau kitas algoritmas?

% �mogaus akis -- geras daiktas, daugel� algoritm� prane�a.  Dvimat�j erdv�j.
% Trimat�j jau sunkiau, o keturmat�j i�vis kapas.

% Pora pic� su 3 ta�kais.

% labels = Kmeans(D, k, m)
%   D -- duomenys, k -- kiek grupi�, m -- kiek bandym�

\medskip

Kitas algoritmas: suskai�iuojam atstumus tarp vis� mokymo vektori� por�.
Artimiausias poras sujungiam poromis.  Tada jungiam poras, kuri� vidurkiai
pana�iausi.  Jei kas labai toli, nejungiam.  Ir t.t.  Gaunam tok� med�.  Tada
pasirenkam ka�kur� lyg� ir kiek �ak� yra �emiau jo, tiek ir bus klasi�.

Tai vadinama \Def{dendrograma}.

% Paveiksliukas.

% Ka�kas sudar� pasaulio kalb� dendrogram�.  Dvi: pagal �od�i� pana�um� ir pagal
% gramatikos pana�um�.

Viena nei�pr�sta problema -- o koki� $k$ reik�m� pasirinkti?  Niekas ne�ino.
Reikia ka�kaip pasirinkti, kad i�eit� paskui geriausiai.

% Klausimas baig�si.

% Egzas: �emai�io auditorija, 3 vienodi klausimai visiems, mes para�om
% Nam� darbai: dabar visi gaus po max. jei ne tragi�ki ND, visi kas v�liau,
% tur�s apsiginti "kod�l tu prid�jai ka�k� naujo".

% Egzas 4 d. 9:30 atrodo

% Perlaikymas 20 d.

% Apie ka�kuri� u�duot� �neka -- atrodo 3-iosos 1 dal�.  Pvz. galima paimti
% 50% duomen� mokymui, 50% testavimui.  I� pirmos pus�s apmokom su ma�u
% gabaliuku, testuojam, gaunam 5% klaid�.  Apmokom su visais, test, gaunam 4%
% klaid�.  Darom i�vad�: kuo daugiau duomen� apmokymui, tuo geriau.  �ito
% pakanka.

% O dabar antr�.
% Kas geriausiai gaus, gaus 1 bal� per egz�.  Kiti du/trys irgi.

% 3 darbas -- juokas: paleidi ir apra�ai.  Jei ne paskutiniu momentu atne�i,

% 4 u�duotis: t� pat�, k� dar�m su 1,2,3, tik reikia suformuluoti savo s�lyg�.
% Paimti savo duomenis.  Etc.

% Vertinimas: u� pratyb� 1, 2, 3 -- 2 balai, u� pratyb� 4 -- 2 balai, u� egz�
% -- 6 balai.  Galima susitarti, kad u� egz� 5 ir u� pratybas 5 (4-toji u�d.
% 50%).
% Duoda extra 11-t� bal� u� nam� darbus -- originalumas, id�jos, etc.

% 4t� darb� galima atne�ti ir � konsultacij�.
% Konsultacija: pirmadien� (bir�elio 2 d) vakare 18 val. po darbo �ia fakultete.

% Recap: perlaikymas 20 d. 15 val. pas j� MII.

\section{Radialini� bazini� funkcij� neuroninis tinklas} % 19

Jie -- antri pagal populiarum� po perceptron�.  Tinka ir klasifikavimui, ir
prognozavimui.

Id�ja: prielaida, kad duomenys nehomogeni�ki.  Pavyzdys: turim $x$, bandom
prognozuoti $y$.  Sugrupuojam � grupes su centrais $c_1$, \dots.  Kiekvien�
centr� $c_i$ atitinka ka�koks $y_i$.  Id�ja daryti prognoz� taip:
\[ y(x) = \sum_{i=1}^k y_i \cdot \frac{1}{D(x, c_i)}
\]
$D(x, c_i)$ -- atstumas nuo $x$ iki centro.  T.y. tie, kas ar�iau turi didesn�
�tak�.
% �ia daug neteisyb�s -- �ia tik supraprastina id�ja.
% �ia v�l buvo statistinis metodas -- su neuroniniu tinklu t� D surasim patys

I� tikr�j� funkcija yra kitokia:
\[ y(x) = \sum_{i=1}^k y_i \cdot K(\frac{D(x, c_i)}{\lambda_i})
\]
$K$ yra varpo formos kreiv�.  $\lambda$ �takoja varpo platum�.

Toks b�t� statistinis algoritmas.  Neuroninis tinklas mokymo metu suras ir
$c_i$ ir $\lambda_i$.

% Vakar� univeruose u� doktorant� univeras gauna 40000 gulden� per metus.

Pana�iai kaip ir su perceptronu: imam pradines $c_i$ ir $\lambda_i$ reik�mes
(su klasterizavimu), tada imam kainos funkcij� $c$ ir gradientiniu metodu
ie�kom minimumo pagal visus $\lambda_i$ ir $c_i$.
\[ c = \sum (y_z - y(x_i))^2
\]

Minusas: reikia daug skai�iavimo.

Galima papras�iau: tiesiog kvantuoti pagal mokymo vektorius.  T.y. jei yra arti
centro, imam to centro vidurk� o nebandom skai�iuoti atstum�.

% Dabar mada: kvantiniai neuroniniai tinklai.  Niekuo nesiskiria nuo paprast�

% Schematinis vaizdavimas

% "D�stymas -- id�j� lygyje."
% "Mok�jimas -- tas, kas lieka, kai visk� visk� u�mir�ti"

Klasifikavimas: kiekvienam klasteriui trys parametrai $q_i$, $c_i$ bei
$\lambda_i$:
\[ y(x) = \sum_{i=1}^k q_i \cdot K(\frac{D(x, c_i)}{\lambda_i})
\]
Pradin� $q_i$ ($i$-tojo klasterio apriorin� tikimyb�) reik�m� -- vektori�
skai�ius $i$-tajame klaseryje padalintas i� vis� vektori� skai�iaus.

Funkcija $K(s)$ paprastai yra $e^{-s}$.

Radialini� bazini� funkcij� neuroniniame tinkle gaunama reik�m� yra daugma�
tankio �vertinimas.

Kiek suprantu, paskui taikom skirtingiems klasteriams skirtingus j� modelius
ir kombinuojam atsakym� pagal t� tank�.  Bet kadangi skai�iavim� daug galima
tiesiog kvantuoti ir taikyti tik vien� model�.

I� principo klaseri� skai�iais skirtingose klas�se gali b�ti skirtingi.
Pvz., klasifikuojam � sveikus ir sergan�ius.  Sveiki beveik visi vienodi --
vienas ar du klasteriai.  Sergantys yra skirtingi -- daug klasteri�.

Klasteriai gali persidengti.

Kvantavime ne -- grie�tai nubr��ime ribas.

% 10x ma�iau tyrim� naudoja �itas radialines f-jas, nei perceptronus.
% �ia daugiau skai�iavimo, bet mokymas labai ma�as.

% Po mokymo klasteri� nebelieka -- galima tuos blobus vadinti kvantais?

% Per egz� paklaus, kur� (?) ar du i�mesti -- mes turim iki to laiko
% susitarti.  Reikia bent 3 palikti :)


% Okay, back to klusterizavimas:
%   radial etc. -- skai�iuojam atstumus iki vis� klasterii�, dauginam t�
%   klasteri� vidurkius i� to atstumo perleisto pro K ir sumuojam -- gaunam
%   atsakym�
%   klasterizavimas -- skai�iuojam atstumus i� vis� klasteri�, parenkam
%   ma�iausi� atstum� ir tiesiog imam to klasterio vidurk�.

% Dabar bus genetiniai algoritmai ARBA sprendimo med�iai.


\section{Sprendimo med�iai} % 20

Pagrindin� id�ja: reikia suklasifikuoti/suprognozuoti daugiamat� vektori�.
Dalinam srit� � dvi dalis, etc.  Gaunam tok� med�, kurio �akose yra ka�kurio
po�ymio palyginimas (daugiau/ma�iau), o med�io lapai yra klas�s.  Paskui
leid�iam�s tuo med�iu ir �i�rim, kurioj kas pus�je.  Tai ir yra sprendimo
medis.

% Anekdotas.

Sprendimo medis neb�tinai binarinis.  Ir sprendimus galima daryti pagal
daugiau nei vien� po�ym�.

% Google for Quinlan[d]?  ten yra 4.5, 5 versija etc -- populiariausi
% algoritmai pasaulyje.

Padarius sprendim� med� galime i� jo padaryti neuronin� tinkl�.

Kaip su klasterizavimu galima prad�ti inicializuoti radialini� bazini�
funkcij� neu\-ro\-ni\-n� tinkl�, taip su sprendim� med�iu galima prad�ti
inicializuoti perceptron�.

Kaip t� med� parinkin�ti?  Pereinam visus po�ymius, randam slenkst�, kad kiek
galima ma�iau klaid� b�t�.

Beje, �ia irgi svarbu laiku sustoti.  Per ilgai mokant bus blogai.  Galima
imti maksimal� klaid� skai�i� lape (jei ma�iau, nebeskaidom).  Arba riboti
med�io gyl�.

Sprendim� medis naudojamas klasifikavimui vadinamas klasifikavimo med�iu.

Spren\-di\-m� medis naudojamas prognozavimui vadinamas regresijos med�iu.

Egzistuoja ir sprendim� mi�kai.

�akojimo kriterijus gali b�ti bet koks -- kai kas stato ten neuroninius
tinklus...

Kaip i� sprendim� med�io gauti neuron�:   I� naujo: kiekviena s�lyga yra
neuronas ��jimo sluoksnyje.  Gauna reikiamus $x_i$ ir gr��ina 0 arba 1 vietoje
true/false.  Ten slenks�iai stat�s, t.y. visi atsakymai yra 0 arba 1

Antras sluoksnis: po vien� kiekvienam lapui (atsakymui).  Duoda 1 jei
kiekviena �aka kelyje buvo atitinkamai 0 arba 1.

% --- 8 paskaita: 2003-05-15

\section{Genetiniai algoritmai} % 21

% Problema: lokaliniai minimumai

Vienas i� b�d�, kaip optimizuoti daugiamat�je erdv�je, kur yra daug lokalini�
mi\-ni\-mu\-m�, yra Monte-Karlo metodas (arba atsitiktin� paie�ka) -- prim�tai
randomu daug ta�k� ir i�renki minimum�.

Modifikacija: prim�tom daug ta�k�, randam erdv�s srit�, kur geriau, tada m�tom
ta�kus toje srityje ir t.t.

Kita modifikacija -- genetiniai algoritmai.  Bandoma kopijuoti gamt�.  Turime
(i� prad�i� susigeneruojame atsitiktinai, o galima ir neatsitiktinai) sek�
vienetuk� ir nu\-liu\-k�, kurie nusako ka�kok� svori� vektori�.  Tiksliau,
turime daug toki� rinkini� (tarkim, 1000).  Apskai�iuojam kainos funkcijos
reik�m� visiems.  I�rikiuojam (geriausius � priek�) ir sudalinam � dvi dalis
-- pirmi 100 dauginsis, kiti ne.  �Dauginimasis�: imam dvi sekas, sudalinam
gabaliukais, imam dal� gabaliuk� i� vieno, dal� i� kito.  Ir t.t.

�is algoritmas irgi gali �l�sti � lokalin� minimum�.  Su tuo galima kovoti
�vedam mutacijas -- su tam tikra tikimybe kei�iam kai kuriuos vienetukus
nuliukais ir atvirk��iai.

Algoritmas labai l�tas, bet stabilus, ma�iau jautrus lokaliniams minimumams.

Toks yra bazinis algoritmas, paskui galima fantazuoti.

% Inercija, paveld�jimas i� seneli�

Variantai: pirma apmokom kiekvien� kart� truput� gradientiniu metodu, o jau
tada vertinam kainas ir skai�iuojam nauj� kart�.

Id�ja: visada pasilaikyti 10 geriausi� gen� i� praeitos kartos.

% Antr� id�j� pramiegojau

Id�ja: sudalinti � kelias grupes, jas mokyti atskirai, ir karts nuo karto
suleisti tarpusavyje.

Galima dirbti ne su svoriais, o svori� skirtumu.

% Kauk� nusako kry�minim�: turim du genus, sukei�iam kauk�je nurodytus bitus
% tarp j� ir gaunam du naujus.  Kaip kauk� pasirinkti -- fantazijos reikalas.

Galima i� prad�i� padidinti mutacij� tikimyb� ir suma�inti kry�minimo skai�i�,
o paskui, kai truput� pasimoko, ma�inti mutacij� ir didinti kry�minim�.  Taip
galima i�lo�ti laiko (algoritmas grei�iau mokosi).

Galima lygiagre�iai vertinti skirtingas kainos funkcijas (skirtingus
kriterijus).  Dalis blogiausi� pagal kiekvien� kriterij� ��sta.

% Reminiscence: svoriai dideli -- SLP l�tai mokosi.  Triuk�mas suma�ina
% svorius.

% Katastrofa: radikaliai pasikei�ia duomen� pob�dis.

% Genetika: l�tai besimokantys neuronai mir�ta.  Jei yra daug katastrof�,
% triuk�mo lygis didesnis, jei ma�ai, ma�esnis.  Taip sakant, paveldimas
% triuk�mo lygis.


% Dabar apie savaranki�k� darb�:
%   idealus variantas -- susirandam savo duomenis.
%   galima pra�yti Raud�io.  galima ie�koti Duin Delfto web puslapyje
%   galima pra�yti Giedriaus.
%   "pasikniskit", �ia k�rybinis darbas.  U� naujum�/originalum� extra balai.
%
%   darb� galima daryti po du ar net po tris.  ta prasme �vadas bendras etc.,
%   bet ai�kiai parodyta, kas kuri� dal� dar�.

\section{Neuronini� tinkl� kooperavimas} % 22

Labai svarbus klausimas.  Kiekvienais metais vyksta konferencijos �ia tema.

Kuo sud�tingesnis tinklas, tuo lengviau jis pakli�na � lokalin� minimum� ir
tuo ilgiau mokosi, tuo daugiau resurs� reikalauja.  Id�ja: paimti kelet�
neuronini� tinkl� ir paskui ka�kaip apjungti j� atsakymus.

% Situacija pana�i � �moni� grup�s bendr� sprendim�.

Vienas, bet labai ne�domus variantas: paimti vieno tinklo atsakym�.

Kitas: imti vidurk�.  Arba svorin� vidurk�.  Arba balsuoti.  Arba gali b�ti
pasvertas balsavimas.
% balsavimas == majority voting

Galima skirstyti u�davinius � grupes ir apmokyti skirtingus tinklus kiekvienai
grupei.

Ir taip toliau.  Galima daug toki� b�d� prigalvoti.

% �ia buvo �vadas.

Arba galima t� tinkl� atsakymus paduoti kaip ��jimus naujam tinklui.

Tokios sistemos skirtumas nuo daugiasluoksnio perceptrono yra tas, kad
visi tie perceptronai apmokomi atskirai.  Be to galima naudoti skirtingo
tipo tinklus -- pvz. radial-ir-taip-toliau, sprendim� med� etc.

Pasl�ptas akmuo: neuroniniai tinklai prisiderina prie mokymo duomen� ir
�giriasi�, kad daro ma�esn� klaid�, nei i� ties�.  Reikia tai �vertinti.  Kuo
sud�tingesnis tinklelis, tuo jis labiau giriasi.

Reikia duomenis skirstyti ne tik � mokymo ir testinius, bet ir � daugiau
dali� ir nemokyti �boso� su tais duomenimis, su kuriais apmokyti �pavaldiniai�.

"Boso taisykl�".  Sud�tingas klausimas.  Nei�spr�stas.

% Alegorijos su bosu ir pavaldiniais.

Angl. toks tinkl� sujungimas yra "fusion" arba "gating rule", "combiner".
Daug t� termin� yra.

Behaviour knowledge space (BKS) metodas -- bandom visas neuronini� tinkl�
kombinacijas ir �i�rim, kokie atsakymai gaunasi.

% Skystoka, bet negaliu dabar ai�kiau suformuluoti

% Real life: sovietai, daug skirting� radar�.  Reikia apjungti � vien�
% sprendim�: ar reikia kelti aliarm�, ar ne.

% OT: Radarai l�ktuvuose matydavo nuo Maskvos iki Olandijos.

\section{Geriausio varianto parinkimo tikslumas} % 23

% Yra daug modeli�.  Kur� parinkti?

Neuroniniai tinklai dar taikomi ir optimizavimo u�daviniams.

% Re pradiniai svoriai: vienasluoksniam ypa� jei jie pastumti/pasukti, nuliai
% tinka.  Daugiasluoksniams NEGALIMA naudoti vienod� nulini� svori�, nes tada
% visi pasl�pti neuronai tada bus vienodi.  Dar papildomas reikalavimas, kad
% b�t� ortogonal�s pasl�pt� neuron� svori� vektoriai.  Svori� parinkimas --
% atskira problema.

Variant� yra daug.  Kartais nuo pradini� mokymo s�lyg� priklauso klaid�
skai�ius -- 7 ar 17\%.

Vienas i� sprendim� -- bandyti kelis variantus su tais pa�iais duomenimis ir
parinkti geriausi�.

Pvz.: apmokom 6 tinklus su mokymo duomenimis.  Tikrinam testinius duomenis,
gaunam skirtingas klaidas.  Nat�ralu i�sirinkti variant� su ma�iausia klaida.

Bet ta klaida yra testiniams duomenims.  Realiai klaida yra kitokia ir galb�t
j� �inodami pasirinktum�me kit�.

Tada imam dar daugiau testini� duomen�: mokymo duomenimis apmokome,
tik\-ri\-ni\-mo duomenimis paimame geriausi�, testiniais duomenimis u�sakovas
tikrina.

�sivaizduojama klaida -- ma�iausia klaida su testiniais duomenimis.  Ideali
klaida -- ma�iausia tikroji klaida (bet jos niekas ne�ino).  Faktin� klaida --
m�s� pasirinkto varianto (to, kurio testin� klaida ma�iausia) tikroji klaida
(kurios irgi niekas ne�ino).

Kuo daugiau variant�, tuo ma��ja �sivaizduojama klaida.  Faktin� klaida i�
prad�i� ma��ja, o paskui pradeda augti.  Kuo daugiau variant� nagrin�ji, tuo
labiau apsirinki.

% Ta pati tema -- laiku sustoti.  (Jei tavo kriterijus netikslus).

Praktinis pasi�lymas: padalinti testinius duomenis � dvi dalis, vien� naudoti
pa\-rin\-ki\-mui, kit� naudoti faktin�s klaidos paskai�iavimams, pasipai�yti
dvi kreives (�si\-vaiz\-duo\-ja\-mos ir faktin�s klaidos bandymams).  Paskui
sukeisti tas dvi dalis pasipai�yti dar dvi kreives.  Ir paskui pagal tai
�i�r�ti, kiek variant� apsimoka imti.

Tradicinis apgavyst�s b�das: nerodyti blog� variant� -- u�sakovui pateikti tik
vien�, geriausi� variant�.

�iaip moralas: netur�damas informacijos, nieko gero nepadarysi.  Jei duomen�
ma�ai, nieko nepadarysi.

% Viskas, paskutin� paskaita.

% U� nepiln� dviej� savai�i� paliekam pas Di�i�n� (arba i� b�dos pas Mita�i�n�)
% tre�i�j� u�duot�.  Ketvirt� atne�am � konsultacij�.

% Konsulacija bir�elio 2 d., egzas 4 d.

\appendix
\newpage

\section{Egzamino klausimai}

\begin{enumerate}
\item Dirbtiniai neuroniniai tinklai (DKT) klasifikavimo ir prognozavimo u�daviniuose.
\item Vienasluoksnis perceptronas (SLP) ir jo mokymo principai.
\item Tiesin� klasifikavimo taisykl�. Jos gavimas SLP pagalba. SLP mokymo algoritmas.
\item Tiesin� ir kvadratin� diskriminantin�s funkcijos.
\item SLP evoliucija mokymo metu.
\item Tiesinis prognozavimas statistiniu metodu ir su SLP.
\item Robastiniai algoritmai klasifikavimo ir prognozavimo u�daviniuose.
\item Minimalios klasifikavimo klaidos ir atramini� vektori� (SVM) klasifikatoriai.
\item Klasifikavimo ir prognozavimo klaid� r��ys, tikslumo rodikliai.
\item Klasifikavimo ir prognozavimo klaid� �vertinimas.
\item Algoritmo sud�tingumo, mokymo duomen� kiekio ir gauto tikslumo ry�ys.
\item Daugiasluoksnis perceptronas (DSP) ir jo mokymas.
\item DSP mokymo ypatyb�s.
\item Pagrindini� komponen�i� ir kiti metodai duomenims vizualizuoti ir jiems transformuoti.
\item Duomen� nuosavos reik�m�s ir mokymo �ingsnis. Duomen� transformavimas mokymui pagreitinti.
\item Po�ymi� atrinkimo algoritmai.
\item Daugiasluoksnio perceptrono panaudojimas informatyvi� po�ymi� i�skyrimui.
\item Duomen� klasterizacija ir jos panaudojimai.
\item Radialini� bazini� funkcij� (RBF) ir mokymo vektoriaus kvantavimo (LVQ) DNT.
\item Sprendimo med�iai klasifikavimo ir prognozavimo (regresijos) u�daviniuose.
\item Genetiniai mokymo algoritmai.
\item Neuronini� tinklu kooperavimas.
\item Geriausio varianto parinkimo tikslumas.
\end{enumerate}

% Konsultacija

%   Ideali prognozavimo paklaida kvadratu: sigma_0^2 = avg(y - (um w_i x_i + w_0))^2
%   sigma_n^2 -- kur gaunam su testiniais duomenimis
%   avg sigma_n^2 = sigma_0^2 (1 - p/N-p)).

% I�mesti klausimai: 6, 15; 14 ir taip neduos.

% Egzas 9:30 fakultete

\end{document}
