Machine Learning module for the Pandemonium Engine.
Go to file
Relintai 1e18869a59 Fix helper script. 2024-01-27 10:22:39 +01:00
activation Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
ann Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
auto_encoder Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
bernoulli_nb Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
c_log_log_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
convolutions Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
cost Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
data Added compatibility macros. Also make FIleAccess work with sfw. 2024-01-25 13:56:30 +01:00
doc_classes Matrix api tweaks. 2023-04-29 15:07:30 +02:00
dual_svc Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
exp_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
gan Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
gauss_markov_checker Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
gaussian_nb Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
hidden_layer Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
hypothesis_testing Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
kmeans Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
knn Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
lin_alg Added Image from sfw. Also fixed build. 2024-01-25 14:50:51 +01:00
lin_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
log_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
mann Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
misc Fix helper script. 2024-01-27 10:22:39 +01:00
mlp Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
multi_output_layer Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
multinomial_nb Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
numerical_analysis Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
outlier_finder Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
output_layer Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
pca Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
platform More simplifications to the build. 2024-01-25 17:17:43 +01:00
probit_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
regularization Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
softmax_net Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
softmax_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
src Format all files. 2023-12-30 00:43:39 +01:00
stat Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
svc Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
tanh_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
test Make the test dataset locations customizable in a very temporary way. 2024-01-25 16:54:17 +01:00
transforms Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
uni_lin_reg Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
utilities Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
wgan Include sfw if it's an sfw build. 2024-01-25 13:42:45 +01:00
.clang-format Added clang format files. 2024-01-25 13:55:51 +01:00
.clang-tidy Added clang format files. 2024-01-25 13:55:51 +01:00
.editorconfig Added clang format files. 2024-01-25 13:55:51 +01:00
.gitignore More sfw build fixes. 2024-01-25 16:33:10 +01:00
COPYRIGHT.txt
LICENSE
README.md Small tweak to the readme. 2023-12-30 00:55:57 +01:00
SConstruct The main SCsub's path now can be customized. 2024-01-27 09:54:03 +01:00
SConstructGDNative Moved classes out from the mlpp folder. 2024-01-25 09:11:13 +01:00
SCsub Moved classes out from the mlpp folder. 2024-01-25 09:11:13 +01:00
compat.py Added platform detection code from pandemonium. 2024-01-25 12:36:40 +01:00
config.py Now build old classes and build tests are command line settings. 2023-04-27 19:38:50 +02:00
gdlibrary.cpp Format all files. 2023-12-30 00:43:39 +01:00
methods.py Simplify the build. 2024-01-25 17:08:05 +01:00
platform_methods.py Added platform detection code from pandemonium. 2024-01-25 12:36:40 +01:00
register_types.cpp Moved classes out from the mlpp folder. 2024-01-25 09:11:13 +01:00
register_types.h Small tweaks. 2023-12-30 00:44:43 +01:00

README.md

PMLPP

A Machine Learning module for the Pandemonium Engine. Based on: https://github.com/novak-99/MLPP

Contents of the Library

  1. Math Classes
    1. Vector
    2. Matrix
    3. Tensor3
  2. Regression
    1. Linear Regression
    2. Logistic Regression
    3. Softmax Regression
    4. Exponential Regression
    5. Probit Regression
    6. CLogLog Regression
    7. Tanh Regression
  3. Deep, Dynamically Sized Neural Networks
    1. Possible Activation Functions
      • Linear
      • Sigmoid
      • Softmax
      • Swish
      • Mish
      • SinC
      • Softplus
      • Softsign
      • CLogLog
      • Logit
      • Gaussian CDF
      • RELU
      • GELU
      • Sign
      • Unit Step
      • Sinh
      • Cosh
      • Tanh
      • Csch
      • Sech
      • Coth
      • Arsinh
      • Arcosh
      • Artanh
      • Arcsch
      • Arsech
      • Arcoth
    2. Possible Optimization Algorithms
      • Batch Gradient Descent
      • Mini-Batch Gradient Descent
      • Stochastic Gradient Descent
      • Gradient Descent with Momentum
      • Nesterov Accelerated Gradient
      • Adagrad Optimizer
      • Adadelta Optimizer
      • Adam Optimizer
      • Adamax Optimizer
      • Nadam Optimizer
      • AMSGrad Optimizer
      • 2nd Order Newton-Raphson Optimizer*
      • Normal Equation*

      *Only available for linear regression
    3. Possible Loss Functions
      • MSE
      • RMSE
      • MAE
      • MBE
      • Log Loss
      • Cross Entropy
      • Hinge Loss
      • Wasserstein Loss
    4. Possible Regularization Methods
      • Lasso
      • Ridge
      • ElasticNet
      • Weight Clipping
    5. Possible Weight Initialization Methods
      • Uniform
      • Xavier Normal
      • Xavier Uniform
      • He Normal
      • He Uniform
      • LeCun Normal
      • LeCun Uniform
    6. Possible Learning Rate Schedulers
      • Time Based
      • Epoch Based
      • Step Based
      • Exponential
  4. Prebuilt Neural Networks
    1. Multilayer Peceptron
    2. Autoencoder
    3. Softmax Network
  5. Generative Modeling
    1. Tabular Generative Adversarial Networks
    2. Tabular Wasserstein Generative Adversarial Networks
  6. Natural Language Processing
    1. Word2Vec (Continous Bag of Words, Skip-Gram)
    2. Stemming
    3. Bag of Words
    4. TFIDF
    5. Tokenization
    6. Auxiliary Text Processing Functions
  7. Computer Vision
    1. The Convolution Operation
    2. Max, Min, Average Pooling
    3. Global Max, Min, Average Pooling
    4. Prebuilt Feature Detectors
      • Horizontal/Vertical Prewitt Filter
      • Horizontal/Vertical Sobel Filter
      • Horizontal/Vertical Scharr Filter
      • Horizontal/Vertical Roberts Filter
      • Gaussian Filter
      • Harris Corner Detector
  8. Principal Component Analysis
  9. Naive Bayes Classifiers
    1. Multinomial Naive Bayes
    2. Bernoulli Naive Bayes
    3. Gaussian Naive Bayes
  10. Support Vector Classification
    1. Primal Formulation (Hinge Loss Objective)
    2. Dual Formulation (Via Lagrangian Multipliers)
  11. K-Means
  12. k-Nearest Neighbors
  13. Outlier Finder (Using z-scores)
  14. Matrix Decompositions
    1. SVD Decomposition
    2. Cholesky Decomposition
      • Positive Definiteness Checker
    3. QR Decomposition
  15. Numerical Analysis
    1. Numerical Diffrentiation
      • Univariate Functions
      • Multivariate Functions
    2. Jacobian Vector Calculator
    3. Hessian Matrix Calculator
    4. Function approximator
      • Constant Approximation
      • Linear Approximation
      • Quadratic Approximation
      • Cubic Approximation
    5. Diffrential Equations Solvers
      • Euler's Method
      • Growth Method
  16. Mathematical Transforms
    1. Discrete Cosine Transform
  17. Linear Algebra Module
  18. Statistics Module
  19. Data Processing Module
    1. Setting and Printing Datasets
    2. Available Datasets
      1. Wisconsin Breast Cancer Dataset
        • Binary
        • SVM
      2. MNIST Dataset
        • Train
        • Test
      3. Iris Flower Dataset
      4. Wine Dataset
      5. California Housing Dataset
      6. Fires and Crime Dataset (Chicago)
    3. Feature Scaling
    4. Mean Normalization
    5. One Hot Representation
    6. Reverse One Hot Representation
    7. Supported Color Space Conversions
      • RGB to Grayscale
      • RGB to HSV
      • RGB to YCbCr
      • RGB to XYZ
      • XYZ to RGB
  20. Utilities
    1. TP, FP, TN, FN function
    2. Precision
    3. Recall
    4. Accuracy
    5. F1 score

Todos

Saves

Reimplement saving.

Bind remaining methods

Go through and bind all methods. Also add properties as needed.

Add initialization api to all classes that need it

The original library used contructors to initialize everything, but with the engine scripts can't rely on this, make sure all classes have initializations apis, and they bail out when they are in an uninitialized state.

Rework remaining apis.

Rework and bind the remaining apis, so they can be used from scripts.

Error handling

Make error macros usage consistent. Also a command line option should be available that disables them for math operations.

Crashes

There are still likely lots of crashes, find, and fix them.

Unit tests

  • Add more unit tests
  • Also use the engine's own unit test module. It still needs to be fininshed, would be a good idea doing it alongside this modules's tests.
  • They should only be built when you want them. Command line option: mlpp_tests=yes

std::random

Replace remaining std::random usage with engine internals.

Tensor

Add an N-dimensional tensor class.

More algos

Add more machine learning algorithms.

Citations

Originally created by Marc Melikyan: https://github.com/novak-99/MLPP