Some deep learning algorithms from scratch. Implemented algorithms include: Self Organising Map (SOM): SOM Variational AutoEncoder (VAE): : MNIST-VAE Generative Adversarial Network (GAN): MNIST-GAN Music generation using LSTM network. Causal Analysis of surface ozone using TCDF: Analysis