Course Outline
Part 1 – Deep Learning and DNN Concepts
Introduction to AI, Machine Learning & Deep Learning
- History, basic concepts, and common applications of artificial intelligence, moving beyond the field's common misconceptions
- Collective Intelligence: aggregating knowledge shared by multiple virtual agents
- Genetic algorithms: evolving a population of virtual agents through selection processes
- Standard Learning Machines: definition and core principles
- Task types: supervised learning, unsupervised learning, and reinforcement learning
- Action types: classification, regression, clustering, density estimation, and dimensionality reduction
- Examples of Machine Learning algorithms: Linear regression, Naive Bayes, and Random Forests
- Machine Learning vs. Deep Learning: identifying problems where traditional Machine Learning (e.g., Random Forests & XGBoost) remains the state of the art
Basic Concepts of a Neural Network (Application: Multi-layer Perceptron)
- Review of mathematical foundations
- Definition of a neuron network: classical architecture, activation functions
- Weighting of previous activations and network depth
- Learning in neuron networks: cost functions, back-propagation, Stochastic Gradient Descent, and maximum likelihood
- Modelling neuron networks: input and output data modelling based on problem type (regression, classification, etc.) and the curse of dimensionality
- Distinguishing between multi-feature data and signals; selecting an appropriate cost function based on data characteristics
- Function approximation by neuron networks: overview and examples
- Distribution approximation by neuron networks: overview and examples
- Data Augmentation: techniques for balancing datasets
- Generalisation of neuron network results
- Initialisation and regularisation of neuron networks: L1/L2 regularisation and Batch Normalisation
- Optimisation and convergence algorithms
Standard ML/DL Tools
A brief overview covering advantages, disadvantages, ecosystem positioning, and usage of key tools is included.
- Data management tools: Apache Spark, Apache Hadoop
- Machine Learning libraries: NumPy, SciPy, Sci-kit
- High-level DL frameworks: PyTorch, Keras, Lasagne
- Low-level DL frameworks: Theano, Torch, Caffe, TensorFlow
Convolutional Neural Networks (CNN)
- Overview of CNNs: fundamental principles and applications
- Basic CNN operations: convolutional layers and kernel usage
- Padding & stride, feature map generation, pooling layers, and 1D, 2D, and 3D extensions
- Presentation of CNN architectures that have advanced the state of the art in classification
- Image models: LeNet, VGG Networks, Network in Network, Inception, and ResNet. Discussion of innovations introduced by each architecture and their broader applications (e.g., 1x1 convolutions and residual connections)
- Utilisation of attention models
- Application to common classification cases (text or image)
- CNNs for generation: super-resolution and pixel-to-pixel segmentation overview
- Key strategies for enhancing feature maps in image generation
Recurrent Neural Networks (RNN)
- Overview of RNNs: fundamental principles and applications
- Basic RNN operations: hidden activation, back-propagation through time, and unfolded versions
- Evolution towards Gated Recurrent Units (GRUs) and Long Short-Term Memory (LSTM)
- Analysis of various states and advancements brought by these architectures
- Convergence and vanishing gradient issues
- Classical architectures: time-series prediction, classification, and more
- RNN Encoder-Decoder architectures and the use of attention models
- NLP applications: word/character encoding and translation
- Video applications: predicting the next image in a video sequence
Generative Models: Variational Auto-Encoders (VAE) and Generative Adversarial Networks (GAN)
- Overview of generative models and their relationship with CNNs
- Auto-encoders: dimensionality reduction and limited generation capabilities
- Variational Auto-encoders: generative modelling and distribution approximation. Definition and use of latent space, reparameterisation trick, applications, and observed limitations
- Generative Adversarial Networks: fundamentals
- Dual Network Architecture (Generator and Discriminator) with alternating learning and available cost functions
- GAN convergence and common challenges
- Improved convergence techniques: Wasserstein GAN, BigGAN, and Earth Mover’s Distance
- Applications: image/photograph generation, text generation, and super-resolution
Deep Reinforcement Learning
- Overview of reinforcement learning: controlling an agent within a defined environment
- Managing states and possible actions
- Using neuron networks to approximate state functions
- Deep Q-Learning: experience replay and application to video game control
- Policy optimisation: on-policy and off-policy methods, Actor-Critic architecture, and A3C
- Applications: control of single video games or digital systems
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
- Training a network
- Computation and Classification
- Optimisation
- Log Loss
Testing the Model
Part 3 – DNN using TensorFlow
TensorFlow Basics
- Creating, initialising, saving, and restoring TensorFlow variables
- Feeding, reading, and preloading TensorFlow data
- Utilising TensorFlow infrastructure to train models at scale
- Visualising and evaluating models with TensorBoard
TensorFlow Mechanics
- Preparing the Data
- Downloading
- Inputs and Placeholders
-
Building the Graphs
- Inference
- Loss
- Training
-
Training the Model
- The Graph
- The Session
- Training Loop
-
Evaluating the Model
- Building the Evaluation Graph
- Evaluation Output
The Perceptron
- Activation functions
- The perceptron learning algorithm
- Binary classification with the perceptron
- Document classification with the perceptron
- Limitations of the perceptron
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
- Back propagation
- Enhancing the way neural networks learn
Convolutional Neural Networks
- Objectives
- Model Architecture
- Principles
- Code Organisation
- Launching and Training the Model
- Evaluating a Model
Basic introductions to be provided for the following modules (brief overview based on time availability):
TensorFlow – Advanced Usage
- Threading and Queues
- Distributed TensorFlow
- Writing documentation and sharing your model
- Customising Data Readers
- Manipulating TensorFlow Model Files
TensorFlow Serving
- Introduction
- Basic Serving Tutorial
- Advanced Serving Tutorial
- Serving Inception Model Tutorial
Requirements
Participants should possess a background in physics, mathematics, and programming. Experience with image processing activities is also required.
Delegates must have a prior understanding of machine learning concepts and experience working 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