Course Outline
Part 1 – Deep Learning and DNN Concepts
Introduction to AI, Machine Learning & Deep Learning
- A historical overview, core concepts, and common applications of artificial intelligence, distinguishing practical uses from fictional portrayals
- Collective Intelligence: aggregating knowledge shared among numerous virtual agents
- Genetic algorithms: evolving populations of virtual agents through selection processes
- Definition of a standard learning machine
- Task types: supervised learning, unsupervised learning, and reinforcement learning
- Machine Learning algorithms examples: Linear regression, Naive Bayes, Random Tree
- Machine learning vs. Deep Learning: identifying problems where 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 mathematical foundations.
- Definition of a neural network: classical architecture, activation functions, and
- Weighting of previous activations and network depth
- Defining network learning: cost functions, back-propagation, stochastic gradient descent, and maximum likelihood
- Modeling neural networks: configuring input and output data based on the problem type (regression, classification, etc.). 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 examples
- Distribution approximation by neural networks: theory and examples
- Data Augmentation: strategies for balancing datasets
- Generalization of neural network results.
- Initialization and regularization of neural networks: L1 / L2 regularization, and Batch Normalization
- Optimization and convergence algorithms
Standard ML / DL Tools
A concise overview of key tools, covering their advantages, limitations, position within the ecosystem, and typical use cases.
- Data management tools: Apache Spark, Apache Hadoop Tools
- Machine Learning: Numpy, Scipy, Sci-kit
- High-level DL frameworks: PyTorch, Keras, Lasagne
- Low-level DL frameworks: Theano, Torch, Caffe, TensorFlow
Convolutional Neural Networks (CNN).
- Introduction to CNNs: fundamental principles and applications
- Core CNN operations: convolutional layers, kernel usage,
- Padding & stride, feature map generation, and pooling layers. Extensions to 1D, 2D, and 3D.
- Overview of prominent CNN architectures that have advanced the state-of-the-art in classification
- Key image architectures: LeNet, VGG Networks, Network in Network, Inception, ResNet. Discussion of innovations introduced by each and their broader applications (e.g., 1x1 convolutions or residual connections)
- Implementation of attention models.
- Application to common classification tasks (text or image)
- CNNs for generation: super-resolution and pixel-to-pixel segmentation. Overview of
- Primary strategies for enhancing feature maps in image generation.
Recurrent Neural Networks (RNN).
- Introduction to RNNs: fundamental principles and applications.
- Core RNN operations: hidden activations, back propagation through time, and the unfolded representation.
- Evolution towards Gated Recurrent Units (GRUs) and Long Short-Term Memory (LSTM).
- Overview of different states and architectural evolutions
- Challenges related to convergence and vanishing gradients
- Classical architectures: time series prediction, classification ...
- NLP applications: word / character encoding and translation.
- Video Applications: predicting the next generated frame in a video sequence.
Generational models: Variational AutoEncoder (VAE) and Generative Adversarial Networks (GAN).
- Overview of generational models and their relationship with CNNs
- Auto-encoders: dimensionality reduction and constrained generation
- Variational Auto-encoders: generative models approximating data distributions. Definition and use of latent space. The reparameterization trick. Applications and observed limitations
- Generative Adversarial Networks: Core fundamentals.
- Dual Network Architecture (Generator and discriminator) with alternating learning processes and available cost functions.
- GAN convergence and common difficulties.
- Applications in image/photograph generation, text generation, and super-resolution.
Deep Reinforcement Learning.
- Introduction to reinforcement learning: controlling an agent within a defined environment
- Using neural networks to approximate state functions
- Deep Q Learning: experience replay and application to video game control.
- Applications: control of single video games or digital systems.
Part 2 – Theano for Deep Learning
Theano Basics
- Introduction
- Installation and Configuration
TheanoFunctions
- Inputs, outputs, updates, and givens
Training and Optimization of a neural network using Theano
- Neural Network Modeling
- Logistic Regression
- Hidden Layers
- Training a network
- Computing and Classification
- Optimization
- Log Loss
Testing the model
Part 3 – DNN using Tensorflow
TensorFlow Basics
- Creating, initializing, saving, and restoring TensorFlow variables
- Feeding, reading, and preloading TensorFlow data
- Visualizing and evaluating models with TensorBoard
TensorFlow Mechanics
- Data Preparation
- Data Download
- Inputs and Placeholders
-
Building the Graphs
- Inference
- Loss
- Training
-
Model Training
- The Graph
- The Session
- Training Loop
-
Model Evaluation
- 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 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
- Minimizing the cost function
- Forward propagation
- Back propagation
- Enhancing neural network learning processes
Convolutional Neural Networks
- Objectives
- Model Architecture
- Principles
- Code Organization
- Launching and Training the Model
- Evaluating a Model
Basic Introductions to the following modules (Brief overview provided depending on time availability):
TensorFlow - Advanced Usage
- Threading and Queues
- Distributed TensorFlow
- Writing Documentation and Sharing Models
- Customizing 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. Prior involvement in image processing activities is also expected.
Participants should possess a pre-existing understanding of machine learning concepts and have practical 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