Course Outline
Part 1 – Deep Learning and DNN Concepts
Introduction to AI, Machine Learning & Deep Learning
- The history, basic concepts, and typical applications of artificial intelligence, distinguishing reality from the fantasies often associated with the field
- Collective Intelligence: aggregating knowledge shared by numerous virtual agents
- Genetic algorithms: evolving a population of virtual agents through selection processes
- Definition of a standard Learning Machine
- Types of tasks: supervised learning, unsupervised learning, and reinforcement learning
- Types of actions: classification, regression, clustering, density estimation, and dimensionality reduction
- Examples of machine learning algorithms: Linear Regression, Naive Bayes, and Random Trees
- Machine Learning vs Deep Learning: identifying problems where traditional Machine Learning remains the state of the art (e.g., Random Forests & XGBoost)
Basic Concepts of a Neural Network (Application: Multi-layer Perceptron)
- A refresher on essential mathematical foundations
- Definition of a neural network: classical architecture, activation functions
- Weighting of previous activations and network depth
- Defining the learning process: cost functions, back-propagation, Stochastic Gradient Descent, and maximum likelihood
- Modelling a neural network: structuring input and output data according to the problem type (regression, classification, etc.), and addressing the curse of dimensionality
- Distinguishing between multi-feature data and signals, and selecting appropriate cost functions based on the data
- Approximating functions using neural networks: theory and examples
- Approximating distributions using neural networks: theory and examples
- Data Augmentation: strategies for balancing datasets
- Generalising the results of neural network models
- Initialisation and regularisation of neural networks: L1 / L2 regularisation and Batch Normalisation
- Optimisation and convergence algorithms
Standard ML / DL Tools
This section provides an overview of key tools, highlighting their advantages, disadvantages, position in the ecosystem, and typical use cases.
- Data management tools: Apache Spark and Apache Hadoop Tools
- Machine Learning libraries: NumPy, SciPy, and scikit-learn
- High-level Deep Learning frameworks: PyTorch, Keras, and Lasagne
- Low-level Deep Learning frameworks: Theano, Torch, Caffe, and TensorFlow
Convolutional Neural Networks (CNN)
- Introduction to CNNs: fundamental principles and key applications
- Core operations: convolutional layers and the use of kernels
- Padding and stride, feature map generation, pooling layers, and 1D, 2D, and 3D extensions
- Overview of CNN architectures that have defined the state of the art in classification
- Image models: LeNet, VGG Networks, Network in Network, Inception, and ResNet; an analysis of the innovations introduced by each and their broader applications (e.g., 1x1 Convolution and residual connections)
- Implementing attention models
- Application to standard classification tasks (text or image)
- CNNs for generation: super-resolution and pixel-to-pixel segmentation
- Primary strategies for enhancing feature maps for image generation
Recurrent Neural Networks (RNN)
- Introduction to RNNs: fundamental principles and applications
- Core operations: hidden activations, backpropagation through time, and the unfolded version
- Evolution towards Gated Recurrent Units (GRUs) and Long Short-Term Memory (LSTM) networks
- Overview of architectural states and the advancements brought by these models
- Addressing convergence and vanishing gradient issues
- Classical architectures: time series prediction and classification
- RNN Encoder-Decoder architectures and the use of attention models
- NLP applications: word/character encoding and machine translation
- Video applications: predicting the next frame in a video sequence
Generative Models: Variational Autoencoder (VAE) and Generative Adversarial Networks (GAN)
- Introduction to generative models and their relationship with CNNs
- Autoencoders: dimensionality reduction and limited generation capabilities
- Variational Autoencoders: generative modelling, distribution approximation, definition and use of latent space, the reparameterisation trick, and observed applications and limitations
- Generative Adversarial Networks: fundamentals
- Dual network architecture (Generator and Discriminator) with alternate learning strategies and available cost functions
- GAN convergence and common challenges
- Improved convergence techniques: Wasserstein GAN, Began, and Earth Mover's Distance
- Applications in image and photo generation, text generation, and super-resolution
Deep Reinforcement Learning
- Introduction to reinforcement learning: controlling an agent within a defined environment
- Managing states and possible actions
- Using neural networks to approximate state functions
- Deep Q Learning: experience replay and application to video game control
- Policy optimisation: on-policy vs off-policy methods, Actor-Critic architecture, and A3C
- Applications: controlling a single video game or digital system
Part 2 – Theano for Deep Learning
Theano Basics
- Introduction
- Installation and configuration
Theano Functions
- Inputs, outputs, updates, and givens
Training and Optimisation of a Neural Network using Theano
- Neural network modelling
- Logistic Regression
- Hidden Layers
- Network training processes
- Computation and classification
- Optimisation techniques
- Log Loss calculation
Testing the Model
Part 3 – DNN using TensorFlow
TensorFlow Basics
- Creating, initialising, saving, and restoring TensorFlow variables
- Feeding, reading, and preloading data in TensorFlow
- Utilising TensorFlow infrastructure to train models at scale
- Visualising and evaluating models with TensorBoard
TensorFlow Mechanics
- Data preparation
- Data downloading
- Inputs and Placeholders
-
Building the Graphs
- Inference
- Loss calculation
- Training operations
-
Training the Model
- Graph structure
- Session management
- Training loop implementation
-
Evaluating the Model
- Building the evaluation graph
- Obtaining evaluation outputs
The Perceptron
- Activation functions
- The perceptron learning algorithm
- Binary classification using the perceptron
- Document classification using the perceptron
- Limitations of the perceptron model
From the Perceptron to Support Vector Machines
- Kernels and the kernel trick
- Maximum margin classification and support vectors
Artificial Neural Networks
- Nonlinear decision boundaries
- Feedforward and feedback artificial neural networks
- Multilayer perceptrons
- Minimising the cost function
- Forward propagation
- Backpropagation
- Strategies to improve neural network learning
Convolutional Neural Networks
- Objectives and goals
- Model architecture design
- Core principles
- Code organisation
- Launching and training the model
- Evaluating model performance
Brief introductions to the following modules will be provided, dependent on time availability:
TensorFlow – Advanced Usage
- Threading and Queues
- Distributed TensorFlow
- Writing documentation and sharing models
- Customising data readers
- Manipulating TensorFlow model files
TensorFlow Serving
- Introduction
- Basic Serving Tutorial
- Advanced Serving Tutorial
- Serving the Inception Model Tutorial
Requirements
A background in physics, mathematics, and programming is required, along with prior involvement in image processing activities.
Delegates should possess a prior understanding of machine learning concepts and have hands-on experience with Python programming and its associated libraries.
Testimonials (2)
Getting people that never used AI some repetition in prompting and people that do use AI to consider different methods to using it.
Matthew Gay - Tarsus Pharmaceuticals
Course - Artificial Intelligence (AI) Overview
The training was organized and well-planned out, and I come out of it with systematized knowledge and a good look at topics we looked at