mlp.py obsahuje naprogramovaný multi layer perceptron

funkcie su robene cez triedy
pre priadnie dalsej funkcie je potrebne ju zadefinovat
a potom vytvorit jej triedu ktoru pri modelingu pouzijete 

#Modeling
riadky :
1) nastavenie nazvu inputu
2) pole obsahujuce pocet neuronov pre kazdu skrytu vrstvu, pridanie dalsej
vrstvy = pridanie cisla
3) funkcia na skrytej vrstve, v poli musi byt funkcia pre kazdu 
skrytu vrstvu + 1 na konci ktora je pre vystupnu vrstvu
4) dimenzia vstupu
5) dimenzia vystupu 

aktualny model je nastaveny na 30 | 20 | 10 kde na kazdej skrytej vrstve je 
funkcia tahn, na vystupnej linearna a alpha=0.023

ulozena W je natrenovana na 2300 epochach 

Snazil som sa najst model ktory ma co najmensiu chybu na validacnych datach ale
zohladnoval som aj rozdiel na priemernej chybe medzi E_test a E_train

Z mojho pozorovania som zistil ze privela neuronov robi velke medzery medzi 
E_test a E_train 
Prilis malo neuronov je zase pomalsich 

pri vela neuronov, tym je lepsie mat mensiu aplha, ktora trosku spomali 
zase pri mensom pocte je treva aplha vacsie aby siet nemusela robit tolko 
epoch na dosiahnutie to co vacsia  

taktiez som si prave vsimol ze vysledny err na 1k epochach dost zavisi od 
prvotnych vah 

postupne hladanie modelu 
https://docs.google.com/spreadsheets/d/1U3vqPEQQiLTse0vjwhRk3h6RWRDPQvt2vtCNKnNlqK0/edit?usp=sharing
