Course Outline
Part 1 – Deep Learning and DNN Concepts
Introduction to AI, Machine Learning & Deep Learning
- An overview of the history, fundamental concepts, and common applications of artificial intelligence, distinguishing reality from fiction
- Collective Intelligence: aggregating knowledge shared across multiple virtual agents
- Genetic algorithms: evolving populations of virtual agents through selection processes
- Machine Learning basics: definitions 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, including linear regression, Naive Bayes, and Random Trees
- Machine Learning vs. Deep Learning: identifying problems where traditional ML (e.g., Random Forests & XGBoost) remains the state of the art
Neural Network Fundamentals (Application: Multi-layer Perceptron)
- Review of essential mathematical foundations
- Defining neural networks: classical architecture, activation functions
- Weighting of previous activations and network depth
- Learning in neural networks: cost functions, back-propagation, stochastic gradient descent, and maximum likelihood
- Modelling neural networks: adapting input and output data to problem types (regression, classification, etc.) and addressing the curse of dimensionality
- Distinguishing between multi-feature data and signals; selecting appropriate cost functions based on data characteristics
- Function approximation by neural networks: theory and practical examples
- Distribution approximation by neural networks: theory and practical examples
- Data Augmentation: techniques for balancing datasets
- Generalising neural network results
- Initialisation and regularisation of neural networks, including L1/L2 regularisation and Batch Normalisation
- Optimisation and convergence algorithms
Standard ML/DL Tools
A brief overview covering the advantages, disadvantages, ecosystem positioning, and usage of key tools.
- Data management tools: Apache Spark and Apache Hadoop
- Machine Learning libraries: Numpy, Scipy, and Sci-kit
- High-level Deep Learning frameworks: PyTorch, Keras, and Lasagne
- Low-level Deep Learning frameworks: Theano, Torch, Caffe, and TensorFlow
Convolutional Neural Networks (CNNs)
- Overview of CNNs: core principles and applications
- Basic CNN operations: convolutional layers and kernel usage
- Padding, stride, feature map generation, pooling layers, and 1D/2D/3D extensions
- Presentation of prominent CNN architectures that have defined state-of-the-art classification performance
- Key image architectures: LeNet, VGG Networks, Network in Network, Inception, and ResNet, including their innovations and broader applications (e.g., 1x1 convolution or residual connections)
- Implementing attention models
- Applying CNNs to standard classification tasks (text or image)
- CNNs for generation: super-resolution and pixel-to-pixel segmentation
- Strategies for enhancing feature maps in image generation
Recurrent Neural Networks (RNNs)
- Overview of RNNs: core principles and applications
- Basic RNN operations: hidden activations, back-propagation through time, and unfolded versions
- Evolution towards Gated Recurrent Units (GRUs) and Long Short-Term Memory (LSTM) networks
- Presentation of different states and improvements brought by these architectures
- Addressing convergence and vanishing gradient problems
- Classic architectures: time series prediction, classification, and more
- 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 Autoencoders (VAE) and Generative Adversarial Networks (GANs)
- Introduction to generative models and their relationship with CNNs
- Autoencoders: dimensionality reduction and limited generation capabilities
- Variational Autoencoders: generative modelling, distribution approximation, latent space definition, reparameterisation trick, applications, and limitations
- Generative Adversarial Networks: foundational concepts
- Dual network architecture (Generator and Discriminator), alternating learning strategies, and available cost functions
- GAN convergence and associated challenges
- Improved convergence techniques: Wasserstein GAN, Began, and Earth Moving Distance
- Applications in image/photograph generation, text generation, and super-resolution
Deep Reinforcement Learning
- Introduction to reinforcement learning: controlling agents within defined environments
- Understanding states and possible actions
- Using neural networks to approximate state functions
- Deep Q Learning: experience replay and applications in video game control
- Policy optimisation: on-policy vs. off-policy approaches, Actor-Critic architecture, and A3C
- Applications: controlling single video games or digital systems
Part 2 – Theano for Deep Learning
Theano Fundamentals
- Introduction
- Installation and Configuration
Theano Functions
- Inputs, outputs, updates, and givens
Training and Optimising Neural Networks with Theano
- Neural Network Modelling
- Logistic Regression
- Hidden Layers
- Training the Network
- Computing and Classification
- Optimisation
- Log Loss
Model Testing
Part 3 – DNNs using TensorFlow
TensorFlow Fundamentals
- Creating, initialising, saving, and restoring TensorFlow variables
- Feeding, reading, and preloading TensorFlow data
- Leveraging TensorFlow infrastructure to train models at scale
- Visualising and evaluating models using TensorBoard
TensorFlow Mechanics
- Data Preparation
- Downloading
- Inputs and Placeholders
-
Building 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 using the perceptron
- Document classification using the perceptron
- Limitations of the perceptron
From Perceptrons 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
- Techniques for improving neural network learning
Convolutional Neural Networks
- Objectives
- Model Architecture
- Principles
- Code Organisation
- Launching and Training the Model
- Evaluating a Model
Brief introductions to the following modules will be provided, depending 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
A background in physics, mathematics, and programming is required. Previous experience with image processing activities is also beneficial.
Participants should possess a solid understanding of machine learning concepts and have prior 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