MG, NARMA TE

Prvé runny použitia ESNtoolbox na analýzu ESN trénovanej na úlohu predikcie t+1 Mackey – Glass a NARMA.

Parametre siete

 StandartNormalizedNormalized & Orto
Veľkosť rezervoiru101010
Train Length100010001000
Test length100010001000
Runs101010
WUnif[0,1]N(0,1)N(0,1)
WinUnif[0,1]Unif[-0.1,0.1]Unif[-0.1,0.1]
Spectral radiusunscaled0.90.9
OrtonormalnullnullQR
Wout trainingpseudoinversepseudoinversepseudoinverse
Biasfalsefalsefalse
Leaking rate111

Parametre estimátorov

 k_historyk_taul_historyl_tauuk
TE111114
AIS11nullnullnull4

NRMSE

 StandartNormalizedNormalized & Orto
Mackey - Glass0.0350.2170.111
NARMA0.8780.8980.966


TE

 

 

 

Mean reservoir

 StandartNormalizedNormalized & Orto
Mackey - Glass0.0060.5900.322
NARMA-0.0100.1580.145

InputOutput TE

 StandartNormalizedNormalized & Orto
Mackey - Glass0.138-0.0030.321
NARMA1.8110.867
0.266

 

AIS

 

Mean-reservoir AIS

 StandartNormalizedNormalized & Orto
Mackey - Glass2.2772.2301.687
NARMA0.3920.3540.110

Zdrojaky:

MGTE.py

MGTEnormalized.py

MGTEnormalizedORTO.py

NARMATE.py

NARMATEnormalized.py

NARMATEnormalizedORTO.py

PS

Markov models from data by simple nonlinear time series predictors in delay embedding spaces

 

 

ESN Toolbox

Dal som dokopy knižnicu, ktorá zatiaľ implementuje:
KSG Transfer entropy estimator – TE (source, target, kHistory, kTau, lHistory, lTau, u, k)
KSG Active information storage estimator – AIS (target, kHistory, kTau, k)
ESN reservoir Memory capacity – MC(Win, W)

Zdrojaky:
ESNtoolbox.py

 

 

KSG TE continued

Rozšíril som KSG estimator TE na ľubovoľné nastavenia parametrov.

\mathbf{T}_{Y\rightarrow X}^{(k,l)}(t)=\mathbf{I}(X_{t}:\mathbf{Y}_{t-u}^{l}\mid\mathbf{X}_{t-1}^{k})

kde

\mathbf{X}_{t-1}^{k}=({X}_{t-1},{X}_{t-1-\tau_{k}},{X}_{t-1-2\tau_{k}},...,,{X}_{t-1-(k-1)\tau_{k}})

\mathbf{Y}_{t-u}^{l}=({Y}_{t-u},{Y}_{t-u-\tau_{l}},{Y}_{t-u-2\tau_{l}},...,,{Y}_{t-u-(l-1)\tau_{l}})

Testovanie môjho estimatora či robí to čo má a či mi to sedi s JIDT

Rendered by QuickLaTeX.com

Pozorovanie:
Je to strašne pomale (pri k=2, \tau_{k}=1, l=2, \tau_{l}=1, sample size N=645, 155 s). Pozeral som sa na dátovú štruktúru k-d tree, ale vraj pri vysoko rozmerných dátach nie je o mnoho rýchlejší ako brute force. Tak neviem či to má vôbec zmysel implementovať.

Použité dáta:
SFI-heartRate_breathVol_bloodOx3.txt

Zdrojaky:
TE.py

 

 

KSG estimator

Prvý nástrel KSG estimatora Transfer Entropy.

Parametre:

Target history embedding length=1
Target history embedding delay=1
Source history embedding length=1
Source history embedding delay=1
Delay from source to target=1
k-nearest neighbours=4

Pozorovania:
Porovnával som hodnoty TE môjho KSG algoritmu a JIDT Liziera na rovnakom datasete. Výsledky: môj=0.073745641982090104; JIDT=0.0737. Vyzerá, že celkom sedí.

Je to pomalé. Časová zložitosť je >\mathrm{O}(N^{2})

To Do:

Zovšeobecnit estimator na ľubovoľné hodnoty parametrov.
Pozrieť sa na optimalnejšie riešenia. (KDTree?)

Použité dáta:
SFI-heartRate_breathVol_bloodOx3.txt

Zdrojáky:
TE.py

 

 

Transfer entropy

Po dlhom čase update.

Odložím si sem len referencie na literatúru, ktorú som štúdoval do teraz. Chcel som sa dostať do teórie informácie a kódovania, aby som lepšie porozumel Shannonovému chápaniu informácie a entropie. Ku tomu mi pomohla táto kniha (lepšie povedané MacKayové prednášky na základe tejto knihy):
David J. C. MacKay – Information Theory, Inference and Learning Algorithms, Cambridge University Press; Sixth Printing 2007 edition (25 Sept. 2003).

Ďalej na teóriu ohľadom Transfer Entropy a rátanie/odhadovanie tieto dve knihy:
Bossomaier, T., Barnett, L., Harré, M., Lizier, J.T. – An Introduction to Transfer Entropy, Springer International Publishing, 2016.
Michael WibralRaul VicenteJoseph T. Lizier – Directed Information Measures in Neuroscience, Springer-Verlag Berlin Heidelberg, 2014.

Na Transfer entropy pri našej úlohe sa zdá najlepšie použiť Kraskov, Stogbauer a Grassberger algoritmus (KSG). Do konca týždňa by som chcel mať napísanú prvú verziu KSG estimatora TE.

 

 

NRMSE a rezervoir size

Pozeral som sa na vplyv veľkosti rezervoiru na NRMSE pri predikciach Mackey-Glass a NARMA pre 3 rôzne počty iterácií OG a ON rezervoirovej matice  (0, 50, 100).

Nastavenia siete:
Počet runov = 10
Leaking rate = 1
reg=0
Počiatočný spektrálny polomer = 0.9
initLen = 100
trainLen = 2000
errorLen = 1000
Win ~ R(-0.01,0.01)
W~ N(0,1)

Ortonormalizácia

Pozn. v obrázku pre Mackey – Glass sú zle označené osi x= rezervoir size a y=NRMSE

hmm tak OG rezervoirovej matice je časovo náročná. Už pri veľkosti rezervoiru 300 to trva cca 10 min. Možno to nechám rátať cez noc.

Ortogonalizácia

Zdrojaky:

ESBrezervoirSIZE.py

 

 

Bias ESN, OG a ON

Pozeral som sa na vplyv konštatnej jednotky na vstupe do ESN na NRMSE pri predikciach Mackey-Glass a NARMA.
Ďalej som ešte zrušil priame input-output spojenie a pozeral sa na chybu pri tých istých nastaveniach.

Nastavenia siete:
Počet orto iterácií = 100
Počet runov = 10
Veľkosť reservoiru = 100
Leaking rate = 1
reg=0
Počiatočný spektrálny polomer = 0.9
initLen = 100
trainLen = 2000
errorLen = 1000
Win ~ R(-0.01,0.01)
W~ N(0,1)

Ortogonalizácia

   
  

Ortonormalizácia

  
 

Pozn. priemerna chyba pri 100-tej iterácii Mackey – Glass pri ON I/O off bola 0.00052882

Zdrojaky:

ESNbiasOFF.py
ESNogDIRECToff.py