Course Outline
Part 1 – Deep Learning and DNN Fundamentals
Introduction to AI, Machine Learning & Deep Learning
- Overview of the history, core concepts, and standard applications of artificial intelligence, distinguishing reality from the domain’s often-held fantasies.
- Collective Intelligence: The aggregation of knowledge shared across multiple virtual agents.
- Genetic Algorithms: Evolving a population of virtual agents through selection mechanisms.
- Definition of standard Learning Machines.
- Categories 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)
- Review of essential mathematical foundations.
- Defining a neuron network: Classical architectures, activation functions, and weighting of prior activations.
- Understanding network depth.
- Defining network learning: Cost functions, back-propagation, Stochastic Gradient Descent, and maximum likelihood.
- Modelling neural networks: Configuring input and output data based on problem types (regression, classification, etc.) and addressing the curse of dimensionality.
- Differentiating between multi-feature data and signals, and selecting appropriate cost functions accordingly.
- Function approximation by neural networks: Theory and practical examples.
- Distribution approximation by neural networks: Theory and practical examples.
- Data Augmentation: Strategies for balancing datasets.
- Generalizing the results of neural networks.
- Initialisation and regularisation of neural networks: L1/L2 regularisation and Batch Normalisation.
- Optimization and convergence algorithms.
Standard ML/DL Tools
A concise overview of these tools, highlighting their advantages, limitations, ecosystem positioning, and practical use cases.
- Data management tools: Apache Spark and Apache Hadoop.
- 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: Core principles and applications.
- Fundamental operations of a CNN: Convolutional layers, kernel usage, padding, stride, feature map generation, and pooling layers.
- Extensions across 1D, 2D, and 3D dimensions.
- Overview of prominent CNN architectures that set new standards in classification.
- Image processing examples: LeNet, VGG Networks, Network in Network, Inception, and ResNet, including the innovations introduced by each and their broader applications (e.g., 1x1 convolutions or residual connections).
- Utilising attention models.
- Application to common classification tasks (text or image).
- CNNs for generation: Super-resolution and pixel-to-pixel segmentation.
- Key strategies for enhancing feature maps in image generation.
Recurrent Neural Networks (RNN).
- Introduction to 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.
- Understanding the distinct states and advancements brought by these architectures.
- Addressing convergence and vanishing gradient issues.
- Classical architectures: Time-series prediction and classification.
- RNN Encoder-Decoder architectures and the integration of attention models.
- NLP applications: Word/character encoding and 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.
- Auto-encoders: Dimensionality reduction and limited generation capabilities.
- Variational Auto-encoders: Generative modelling, distribution approximation, definition and use of latent space, reparameterisation trick, along with observed applications and limitations.
- Generative Adversarial Networks: Core fundamentals.
- Dual network architecture (Generator and Discriminator) involving alternating learning and available cost functions.
- GAN convergence and common challenges.
- Improved convergence techniques: Wasserstein GAN, Began, and Earth Moving Distance.
- Applications in image/photo generation, text generation, and super-resolution.
Deep Reinforcement Learning.
- Introduction to reinforcement learning: Controlling an agent within a defined environment.
- Understanding states and possible actions.
- Using neural networks to approximate state functions.
- Deep Q Learning: Experience replay and its application to video game control.
- Policy optimization: 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
- Managing inputs, outputs, updates, and givens.
Training and Optimising Neural Networks with Theano
- Modelling Neural Networks.
- Logistic Regression.
- Implementing Hidden Layers.
- Training the network.
- Computing and Classification.
- Optimization.
- Log Loss.
Model Testing
Part 3 – DNN using TensorFlow
TensorFlow Fundamentals
- Creating, initialising, saving, and restoring TensorFlow variables.
- Feeding, reading, and preloading data in TensorFlow.
- Leveraging TensorFlow infrastructure for large-scale model training.
- Visualising and evaluating models using TensorBoard.
TensorFlow Mechanics
- Data preparation.
- Downloading datasets.
- Defining inputs and placeholders.
-
Constructing Graphs:
- Inference.
- Loss.
- Training.
-
Training the Model:
- The Graph.
- The Session.
- Training Loop.
-
Evaluating the Model:
- Building the Eval Graph.
- Eval 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
- Non-linear decision boundaries.
- Feedforward and feedback artificial neural networks.
- Multilayer perceptrons.
- Minimising the cost function.
- Forward propagation.
- Back-propagation.
- Enhancing neural network learning methods.
Convolutional Neural Networks
- Objectives.
- Model architecture.
- Underlying principles.
- Code organisation.
- Launching and training the model.
- Model evaluation.
Brief introductions to the following modules (provided based 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 Inception model tutorial.
Requirements
Participants should possess a background in physics, mathematics, and programming. Prior experience with image processing activities is beneficial.
Learners are expected to have a preliminary understanding of machine learning concepts, along with hands-on experience in Python programming and relevant 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