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)
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
Magdalena - Samsung Electronics Polska Sp. z o.o.
Course - Deep Learning with TensorFlow 2
I really liked the end where we took the time to play around with CHAT GPT. The room was not set up the best for this- instead of one large table a couple of small ones so we could get into small groups and brainstorm would have helped