Course Outline
Part 1 – Deep Learning and DNN Concepts
Introduction AI, Machine Learning & Deep Learning
- The history, basic concepts, and common applications of artificial intelligence, distinguishing reality from fantasy
- Collective Intelligence: aggregating knowledge shared by multiple virtual agents
- Genetic algorithms: evolving a population of virtual agents through selection
- Definition of a standard Learning Machine
- 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 Forest
- 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
- Weighting of previous activations and network depth
- Defining the learning process: cost functions, back-propagation, Stochastic gradient descent, and maximum likelihood
- Modeling a neural network: adapting input and output data 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
- Approximating functions using neural networks: theory and examples
- Approximating distributions using neural networks: theory and examples
- Data Augmentation: strategies for balancing a dataset
- Generalization of neural network results
- Initialization and regularization: L1/L2 regularization and Batch Normalization
- Optimization and convergence algorithms
Standard ML/DL Tools
This section provides an overview of key tools, highlighting their advantages, disadvantages, ecosystem position, and usage.
- 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)
- Introduction to CNNs: fundamental principles and applications
- Core operations: convolutional layers, kernel usage
- Padding, stride, feature map generation, and pooling layers; extensions to 1D, 2D, and 3D
- Overview of CNN architectures that have set the state of the art in classification
- Key architectures: LeNet, VGG, Network in Network, Inception, ResNet; analyzing innovations and broader applications (e.g., 1x1 convolutions or residual connections)
- Utilizing attention models
- Applying CNNs to common classification tasks (text or image)
- CNNs for generation: super-resolution and pixel-to-pixel segmentation
- Primary strategies for enhancing feature maps in image generation
Recurrent Neural Networks (RNN)
- Introduction to RNNs: fundamental principles and applications
- Core operations: hidden activation, back propagation through time, and the unfolded version
- Evolution towards Gated Recurrent Units (GRUs) and LSTM (Long Short Term Memory)
- Analysis of different states and architectural evolutions
- Addressing convergence and vanishing gradient issues
- Classic architectures: temporal series prediction and classification
- RNN Encoder-Decoder architectures and the use 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)
- Overview of generative models and their relationship with CNNs
- Auto-encoders: dimensionality reduction and limited generation
- Variational Auto-encoders: generative modeling, distribution approximation, latent space definition, reparameterization trick, and observed applications/limits
- Generative Adversarial Networks: fundamentals
- Dual Network Architecture (Generator and Discriminator) with alternating learning and available cost functions
- GAN convergence and common difficulties
- Improved convergence techniques: Wasserstein GAN, Began, and Earth Moving Distance
- Applications: image/photograph generation, text generation, and super-resolution
Deep Reinforcement Learning
- Introduction to reinforcement learning: controlling an agent in a defined environment
- Understanding states and possible actions
- Using neural networks to approximate state functions
- Deep Q Learning: experience replay and application to video game control
- Policy optimization: on-policy and off-policy methods, Actor-critic architecture, and A3C
- Applications: controlling 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 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
- Leveraging TensorFlow infrastructure to train models at scale
- Visualizing and evaluating models with TensorBoard
TensorFlow Mechanics
- Preparing the Data
- Data Download
- Inputs and Placeholders
-
Building the Graph
- 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 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
- Minimizing the cost function
- Forward propagation
- Back propagation
- Improving neural network learning methods
Convolutional Neural Networks
- Goals
- Model Architecture
- Principles
- Code Organization
- Launching and Training the Model
- Evaluating a Model
Basic introductions to the following modules (brief overviews provided based 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
Participants should have a background in physics, mathematics, and programming, along with involvement in image processing activities.
Learners are expected to possess a prior understanding of machine learning concepts and experience working with Python programming and its 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