'Personal machine/deep learning implementation inspired by sklearn and keras'
Project description
handmadeML
This package is created to merge to sub-projects : handmade-neural-network and handmade-machine-learning The components and logics from both projects should converge
Objective
This is a personal challenge : re-code all the components of machine learning and deep learning algos
The code is inspired by the logic of sklaern and keras, but is much simpler:
- common terminology and workflow (model instanciation, model.fit, model.predict etc..) but simplified (no .compile method for instance)
- less features implemented
- less checks, exceptions, tricky cases allowed, etc.
- probably much less computionaly efficient
Implemented so far:
linear classifier :
- loss options : hinge, squared_hinge (for SVC) and logit (for Logistic regression)
- penalty options : l1,l2
- kernel : only linear
decision trees
- decion tree classifier
neuralnets
-
dense networks only
-
5 activation functions:
- relu, tanh (mostly for hidden layers)
- linear (for regression output)
- sigmoid, softmax (for classifiction outputs)
-
4 loss functions:
- mse, mae (for regression tasks)
- binary crossentropy (for binary classification tasks)
- multiclass crossentropy (for multiclassification)
-
gradient descent with back-propagation
-
simple GrandientDescent optimizer only
- stochastic or mini-batch
- adjustable learning rate
- without momentum
-
metric computation at the end of each batch/epoch for monitoring during training
- only loss functions
-
weights and bias initializers : zeros, ones and glorot_uniform only
-
a pedagogical notebook in the notebooks folder contains a guided implementation, step by step, of a simple neural network, equivalent to the Tensorflow Playgroung
To be coded later :
linear classifier :
- kernel trick with simple kernels : polynomials, rbf
- create a pedagogical tutorial notebook about linear SVC
decision trees :
- regression trees
ensemble methods and other optmization methods :
- bagging
- boosting
- cross validation
- grid search
- randomized search
neuralnets :
-
regularization:
- l1, l2, elasticnet
- on kernels (weights)
-
early stopping on validation data
-
training history tracking
-
momentum for SGD optimizer
-
other metrics (accuracy, roc_auc, etc.)
-
other optimizers
- adam
To be coded much later :
linear models :
- more for svm :
- Linear SV regressors
- more hinge options
- more kernels
- regressors with ridge/lasso/elasticnet
neuralnets :
- dropout
- regularization on biais and activity of the neurons
- other optimizers
- rmsprop
usupervised models :
- k-mean
- pca
To be probably never coded :
neuralnets :
- padding
- CNN specifics:
- conv2D layers
- kernels
- max pooling layers
- flatting layer
- RNN specifics:
- simple RNN layer
- masking layer
- LSTM layer
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file handmadeML-1.1.tar.gz.
File metadata
- Download URL: handmadeML-1.1.tar.gz
- Upload date:
- Size: 871.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4156644dec422c0caeb8b3dd8a3d9d7e24467cfbe9eee3bdfe6dfdc74787bcc9
|
|
| MD5 |
5d6faa15286ec9f1111cbc195727fdc2
|
|
| BLAKE2b-256 |
b4f1240549d58ca583505a72cee1d431e1dc9efe897e189281d476431b9f917c
|
File details
Details for the file handmadeML-1.1-py3-none-any.whl.
File metadata
- Download URL: handmadeML-1.1-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a528b05bd11a1d6190f1e939d61b240a424501e2ac647d1043e22f12cb21c68
|
|
| MD5 |
4d0367e5ef592eef2ba6cd82a0de3e95
|
|
| BLAKE2b-256 |
f39567a2237301744919b0804988e665ffb97d8d138611c0c96cda79b0886405
|