Podarilo sa urýchliť výpočet TE. k-d Tree je odpoveď.
Pri k=2, , l=2, , sample size N=645, 0.0115s vs. 155s predchádzajúca verzia.
Použité dáta:
SFI-heartRate_breathVol_bloodOx3.txt
Zdrojaky:
TE.py
Podarilo sa urýchliť výpočet TE. k-d Tree je odpoveď.
Pri k=2, , l=2, , sample size N=645, 0.0115s vs. 155s predchádzajúca verzia.
Použité dáta:
SFI-heartRate_breathVol_bloodOx3.txt
Zdrojaky:
TE.py
Rozšíril som KSG estimator TE na ľubovoľné nastavenia parametrov.
kde
Testovanie môjho estimatora či robí to čo má a či mi to sedi s JIDT
Pozorovanie:
Je to strašne pomale (pri k=2, , l=2, , 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
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
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
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.
Toto je skôr poznámka aby som prehľadal články kde sa odhaduje NARMA a Mackey – Glass a pozrel sa okolo akých hodôt sa hýbe NRMSE.
Boedecker- Information processing in echo state networks at the edge of chaos používam NARMU akú má Boedecker v článku a jemu sa pohybuje NRMSE okolo 0.8 čo je konzistentné s našimi pozorovaniami.
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:
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
Pozeral som sa na to prečo je taký veľký rozptyl chýb pri nastavení parametra ridge regresie na 0. Pri rátaní Wout sa ráta inverzia matice (X*X.T + reg*I) ,ktorá je síce regulárna ,ale zle podmienená. Číslo podmienenosti matice som rátal pomocou numpy.linalg.cond(). Nastavenia parametrov boli ako v #5.
Ortogonalizácia
pozn. pri reg=0 je rozsah zobrazených čísel podmienenosti matice <1e16 – 1e18>
Ortonormalizácia
pozn. pri reg=0 je rozsah zobrazených čísel podmienenosti matice <1e12 – 1e18>
Záver: Vysoká odchylka chýb pre reg=0 by mohla byť spôsobená veľkou podmienenosťou matice X*X.T.
Skúsil som teda pre reg=0 namiesto klasickej inverzie rátať p-inverziu. Dole sú výsledky chýb ako v #5.
Ortogonalizácia
Ortonormalizácia
Robil som prieskum správania sa chyby predikcií pre OG a ON metódu W pre 3 rôzne nastavenia regularizačného parametra pri ridge regresii.
Nastavenia parametrov ESN:
Počet orto iterácií = 100
Počet runov = 10
Veľkosť reservoiru = 100
Leaking rate = 1
Počiatočný spektrálny polomer = 0.9
Win ~ R(-0.01,0.01)
W~ N(0,1)
MackeyGlass OG
NARMA OG
MackeyGlass ON
NARMA ON
Pozrel som sa ešte na súvis NRMSE, leaking rate a regularizačného parametera pri ridge regresii spolu. Dáta boli MackeyGlass a dve rezervoirové matice W. Jedna pred ON a druhá po 60 iteráciach ON.
leaking rate: 0-1 s krokom 0.1
ridge regularization: 0-1e-2 s krokom 1e-5
leaking rate: 0-1 s krokom 0.1
ridge regularization: 0-1e-4 s krokom 1e-7
leaking rate: 0-1 s krokom 0.1
ridge regularization: 0-1e-6 s krokom 1e-9
Záver: Vyzerá to tak, že najmenšie chyby pre odhady NARMA a Mackey-Glass dostávame pre a=1 a reg=0. Tiež sa zdá ,že chyba monotónne klesá smerom ku týmto hodnotám parametrov.
Zdrojaky:
errorSROGMC.py
errorSRONMC.py
ESNpar.py
Pri rovnako nastavených parametroch som odstránil konštantnú 1 zo vstupu a dôsledok bol o trochu zvýšené MC.
Lukoševičiusov článok o ESN kde má v definícii ESN konštantnú 1 na vstupe.
A Practical Guide to Applying Echo State Networks