o
odinpkg.dev
packages / library / ELM__Extreme_Learning_Machine_in_Odin

ELM__Extreme_Learning_Machine_in_Odin

06a30eclibrary

A simple port of a lib of ELM from Python to Odin.

No license · updated 1 year ago

ELM - Extreme Learning Machine in Odin

A simple port of a lib of ELM from Python to Odin.

Description

ELM is a Machine Learning algorithm for single hidden layer feed forward neural networks, that is very fast to train, because it doesn't use the back propagation algorithm. It uses the Moore-Penrose pseudo-inverse to compute the weights of the hidden layer, and the the output by solving directly linear algebra matrix equations. The paper for ELM come out in 2006. This is a simple port, from Python to Odin, of the a implementation of ELM - Extreme Learning Machine in Python.
The original implementation is available at Github - Li Xudong
https://github.com/5663015/elm
The original implementation had two modes one that used the Moore-Penrose pseudo-inverse ( more exact ) and another that used a simplified Linear Algebra solution. See the original implementation for more details, in there you can find all the matrix equation for both cases and for each phase is well explained. In the case of Odin, there isn't currently a matrix library with linear algebra Pseudo inverse, or with SVD - Singular Value Decomposition, so there is no lib to calculate it that is numerically stable, so the implementation in this repository is done only for the second simpler case. But it works, and it is fast, even if you don't use the Moore-Penrose pseudo-inverse in a high performance optimized library.

License

MIT Open Source License

Have fun

Best regards,
Joao Carvalho