Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

99 Commits

Repository files navigation

MathematicalEngineeringDeepLearning

Material for The Mathematical Engineering of Deep Learning. See the actual book content on deeplearningmath.org or (when it is out) purchase the book from CRC press.

This repository contains general supporting material for the book.

Below is a detailed list of the source code used for creating figures and tables in the book. We use Julia, Python, or R and the code is sometimes in stand alone files, sometimes in Jupyter notebooks, sometimes as R Markdown, and sometimes in Google Colab. Many of our static illustrations were created using TikZ by Ajay Hemanth and Vishnu Prasath with the source of their illustrations also available so you can adapt it for purposes.

Chapter 1

FigureTopicSource Code
1.1Fast.ai examplePython Google Colab
1.3ArchitecturesTikZ(a), TikZ(b), TikZ(c), TikZ(d), TikZ(e), TikZ(f), TikZ(g), TikZ(h)
1.4NeuronsTikZ(b), TikZ(d)
1.5Data on earthJulia

Chapter 2

FigureTopicSource Code
2.1Supervised LearningTikZ
2.2Unsupervised LearningTikZ
2.3Simple regressionR
2.4Breast Cancer ROC curvesR
2.5Least SquaresTikZ
2.6Loss functionsJulia
Table 2.1Linear MNIST classificationJulia
2.7Gradient Descent Learning RatePython
2.8Loss LandscapeR
2.9Generalization and TrainingTikZ or Julia
2.10Polynomial fitR
2.11K-fold cross validationTikZ
2.12K-means clusteringR
2.13K-means image segmentationR
2.14Breast Cancer PCAR
2.15SVD CompressionJulia

Chapter 3

FigureTopicSource Code
3.1 and 3.2Logistic regression model curves and boundaryR
3.3Components of an artificial neuronTikZ
3.4Loss landscape of MSE vs. CE on logistic regressionPython
3.5Evolution of gradient descent learning in logistic regressionR(a,b) First file, R(a,b) Second file
3.6Shallow multi-output neural network with softmaxTikZ
3.7Multinomial regression for classificationR
Table 3.1Different approaches for creating an MNIST digit classifier.Julia
3.8Feature engineering in simple logistic regressionR
3.9Non-linear classification decision boundaries with feature engineering in logistic regressionR
3.10Non-linear classification decision boundaries with feature engineering in multinomial regressionR same as 3.7
3.11Single hidden layer autoencoderTikZ
3.12Autoencoder projections of MNIST including using PCARTikZ
3.13Manifolds and autoencodersRTikZ
3.14MNIST using autoencodersR same as 3.12
3.15Denoising autoencoderTikZ
3.16Interpolations with autoencodersR same as 3.12, Julia

Chapter 4

FigureTopicSource Code
4.1Convexity and local/global extremaPython
4.2Gradient descent with fixed or time dependent learning ratePython
4.3Stochastic gradient descentPython
4.4Early stopping in deep learningJulia
4.5Non-convex loss landscapesPython
4.6Momentum enhancing gradient descentPython
4.7The computational graph for automatic differentiationTikZ
4.8Line search conceptsPython
4.9The zig-zagging property of line searchPython
4.10Newton's method in one dimensionPython

Chapter 5

FigureTopicSource Code
5.1Fully Connected Feedforward Neural NetworksTikZ(a), TikZ(b)
5.2Arbitrary function approximation with neural netsTikZ(a), Julia(b,c)
5.3Binary classification with increasing depthR
5.4A continuous multiplication gate with 4 hidden unitsTikZ
5.5A deep model with 10 layersTikZ
5.6Several common scalar activation functionsJulia(a,b)
5.7Flow of information in general back propagationTikZ
5.8Simple neural network hypothetical exampleTikZ
5.9Flow of information in standard neural network back propagationTikZ
5.10Computational graph for batch normalizationTikZ
5.11The effect of dropoutTikZ

Chapter 6

FigureTopicSource Code
6.2VGG19 architectureTikZ
6.3ConvolutionsTikZ(a), TikZ(b)
6.6Convolution paddingTikZ
6.7Convolution strideTikZ
6.8Convolution dilationTikZ
6.9Convolution input channelsTikZ
6.10Convolution output channelsTikZ
6.11PoolingTikZ(a), TikZ(b)
6.13Inception moduleTikZ
6.14ResnetsTikZ
6.17Siamese networkTikZ

Chapter 7

FigureTopicSource Code
7.1Sequence RNN tasksTikZ(a), TikZ(b), TikZ(c), TikZ(d)
7.2Sequence RNN input output paradigmsTikZ(a), TikZ(b), TikZ(c), TikZ(d)
7.3RNN recursive graph and unfolded graphTikZ
7.4RNN unitTikZ
7.5RNN language prediction trainingTikZ
7.6Backpropagation through timeTikZ
7.7Alternative RNN configurationsTikZ(a), TikZ(b)
7.8LSTM and GRUTikZ(a), TikZ(b)
7.9Encoder decoder architecturesTikZ(a), TikZ(b)
7.10Encoder decoder with attentionTikZ
7.11Attention weightsTikZ
7.12Flow of information with self attentionTikZ
7.13Multi-head self attentionTikZ
7.14Positional embeddingJulia(a,b)
7.15Transformer blocksTikZ(a), TikZ(b)
7.16Transformer encoder decoder architectureTikZ
7.17Transfomer auto-regressive applicationTikZ

Chapter 8

FigureTopicSource Code
8.1Generative modellingTikZ
8.2Variational autoencoderTikZ
8.4Diffusion encoder and decoderTikZ
8.6GAN architecturesTikZ
8.7Separation of GAN distributionsTikZ
8.8Wasserstein distanceTikZ
8.9Reinforcement learningTikZ
Equation (8.72)An MDP optimal policyJulia
8.10Applications of GNNTikZ(a), TikZ(b), TikZ(c)
8.11Directed and undirected graphsTikZ(a), TikZ(b)
8.12Transductive inductive learningTikZ(a), TikZ(b)
8.13Types of GNN tasksTikZ(a), TikZ(b), TikZ(c)
8.14Aggregation in message passingTikZ(a), TikZ(b)

About

Material for The Mathematical Engineering of Deep Learning. See https://deeplearningmath.org

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages