This is an implementation of Extreme Learning Machine as defined in Extreme Learning Machine: A New LearningScheme of Feedforward Neural Networks paper by Guang-Bin Huang, Qin-Yu Zhu, and Chee-Kheong Siew
Please always check requirements.txt for current dependencies
- Python 3.7
- Numpy 1.17
- Keras 2.3
Keras are not used to design model. It's just a great source of datasets :P Feel free remove it and use your own dataset.
Currently tests are run on MNIST dataset (it's a hand-written digits dataset). You can change that inside test.py file.
python test.pyIf you want, you can load weights into model by passing them as arguments:
beta_initw_initbias_init
You can also change activation and loss function just pass:
activation-sigmoid,fourier,hardlimitloss-mse(mean square error),mae(mean absolute error)
Watch out for computation complexity. Each time you try to fit the model it has to do expensive matrix inversion Moore–Penrose inverse. MNIST dataset has 60k images (H matrix has size of 60000x1024) and takes around 8.5s to inverse on i7-7820X CPU. Remember about it when changing dataset or number of hidden layers
- Implement saving/loading model (
h5py) - Implement tests
- Implement performance metric
