Skip to content

A collection of artificial intelligence and machine learning tutorials

License

Notifications You must be signed in to change notification settings

stratzilla/AI-ML-tutorials

Repository files navigation

Tutorials

This is a collection of machine learning and artificial intelligence tutorials I've written using Jupyter Notebook. They may not be up to snuff with some other tutorials, and in many cases, I've written them after only one or two implementations. I'm keeping these here for posterity for myself and for those who might also be interested. I had a hard time finding tutorials online for some of these subjects, so I thought I'd make my own for those who find themselves in a similar position to what I was.

I try my best to only use Python standard libraries, although I do quite like numpy, pandas, and matplotlib. Some gnuplot is involved as well but only for illustrative purposes. All of these implementations are from scratch insofar I don't rely on external libraries to do any of the heavy work. External libraries might be used for things like IO or as visual tools instead.

Feel free to distribute, copy, edit, make changes to, etc. these tutorials to your hearts content. All I ask is if you publish any of them elsewhere, please let me know and link back.

A step-by-step implementation of a genetic algorithm to optimize the Styblinski-Tang function, generalized to any dimensionality. Includes one-point crossover and uniform mutation operators, tournament and elite selection strategies.

A step-by-step implementation of a particle swarm algorithm to optimize the Schwefel function, generalized to any dimensionality.

A step-by-step implementation of a K-Means clustering algorithm using K-Means++ initialization strategy. Includes Dunn Index calculation to determine merit in cluster count optimization.

A step-by-step implementation of a vanilla feedforward neural network trained via backpropagation to model a classifier for the Iris data set. Includes learning rate and momentum hyperparameters.

A step-by-step implementation of a feedforward neural network, but instead trained using a genetic algorithm to optimize network weights to model a classifier for the Wheat Seeds data set. It helps to have read the Neural Network using Backpropagation Training and Genetic Algorithms tutorials beforehand.

A step-by-step implementation of a feedforward neural network, but instead using a particle swarm algorithm to optimize neural weights to model a classifier for the Wine data set. It helps to have read the Neural Network using Backpropagation Training and Particle Swarm Optimization tutorials beforehand.

Stuff I'm Working On

Eventually I hope to add these tutorials at some point (in no particular order):

  • color organization using Self Organizing Maps (SOMs)
  • simulated annealing metaheuristic
  • differential evolution metaheuristic
  • training a neural network using differential evolution
  • bat algorithm metaheuristic
  • training a neural network using bat algorithm