Deep Learning using Python
Duration: 5 Days
Course Overview, Intended Audience and Pre-requisites
This course is aimed at those who need an intensive introduction to the implementation of machine learning applications based on the "Deep Learning" paradigm. Attendees are expected to be reasonably proficient in Python programming and to have a basic conceptual understanding of Neural Networks. The course will provide- A practical deep immersion into deep learning algorithms
- Introduce the practical use of the deep learning Theano, Caffe, Keras, and TensorFlow.
- Provide an intensive introduction to the use and implementation of Auto-Encoders and Restricted Boltzmann Machines
- Provide practical teaching in the theory, training and use of Deep Belief Nets and Deep Neural Networks
- Introduce Dropout and Convolutional Neural Networks
- Overview current successes and discuss how to best apply Get deep learning algorithms and libraries in the real world
Course Contents
- What is Deep Learning?
- Artificial Intelligence and Machine Learning
- The "Deep" in Deep Learning - what is it ?
- Hardware and Software aspects of the "Deep Learning Revolution"
- Mathematical Foundations of Neural Networks
- Intensive overview of Scipy and Numpy
- Data representation - Scalars, Vectors and Matrices
- 3D tensors and higher-dimensional tensors
- Real world data examples
- Timeseries data or sequence data
- Image data
- Video data
- Geometric interpretation of tensor operations
- A geometric interpretation of deep learning
- Gradient-based optimization
- Stochastic gradient descent
- Chaining derivatives - the backpropagation algorithm
- Training neural networks using gradient descent
- Anatomy and Physiology of Neural Networks
- Layers: the Lego bricks of deep learning
- Networks of layers
- Loss functions and optimizers - the keys to configuring the learning process
- Python Neural Network Machine Learning Frameworks - An overview ofKeras, TensorFlow, Theano, and CNTK
- Practical deep learning issues
- Setting up a deep learning workstation
- Jupyter notebooks and Keras
- Running deep learning jobs in the cloud: pros and cons
- Selecting GPUs for deep learning?
- Deep Learning Workflows
- Preparing the data
- Building the network
- Validating the approach
- Using the trained network to generate predictions on new data
- Regularising the model and tuning its hyperparameters
- Foundations of machine learning
- Supervised learning.
- Unsupervised learning.
- Self-supervised learning.
- Reinforcement learning.
- Classification and regression
- Training, validation, and test sets
- Simple hold-out validation
- K-fold validation
- Iterated K-fold validation with shuffling
- Data preprocessing, feature engineering and feature learning
- Overfitting and underfitting
- Fighting overfitting
- Deep learning for computer vision
- Introduction to convnets (Convolutional Neural Networks)
- The convolution operation
- The max pooling operation
- Training a convnet from scratch on a small dataset
- The relevance of deep learning for small-data problems
- Data preprocessing
- Using data augmentation
- Using a pre-trained convnet
- Feature extraction
- Visualizing what convnets learn
- Visualizing intermediate activations
- Visualizing convnet filters
- Visualizing heatmaps of class activation
- Deep learning for text and sequences
- Working with text data
- One-shot encoding of words or characters
- Using word embeddings
- From raw text to word embeddings
- Recurrent neural networks (RNNs)
- LSTMs - Long Short Term Memory networks
- GRUs - Gated Recurrent Units
- Stacking recurrent layers
- Using bidirectional RNNs
- Convnets as an alternative to RNNs for sequence processing
- Using 1D convolution for sequence data
- Pooling for sequence data
- Combining CNNs and RNNs to process long sequences
- Advanced deep learning
- Multi-input models
- Multi-output models
- Directed acyclic graphs of layers
- Layer weight sharing
- Models as layers
- Generative deep learning
- GANs - Generative adversarial networks
- DCGANs - Deep Convolutional Generative Adversarial Networks
Call us:
Technical enqiries: 020 8669 0769
Sales enquiries: 020 8647 1939, 020 77681 40786