Course web site: https://bios691-deep-learning-r.netlify.app/
You will get the most out of this class if you
Student Course evaluation, or Guest Course evaluation - please evaluate the course Friday afternoon, June 12, 2020. All evaluations are anonymous
Course web site: https://bios691-deep-learning-r.netlify.app/
Book: "Deep Learning with R" introduces the world of deep learning using the powerful Keras library and its R language interface
The book builds your understanding of deep learning through intuitive explanations and practical examples
https://www.manning.com/books/deep-learning-with-r
Authors: François Chollet (the creator of Keras) with J. J. Allaire (the founder of RStudio and the author of the R interfaces to Keras and TensorFlow)
https://github.com/jjallaire/deep-learning-with-r-notebooks
The Deep Learning textbook by Ian Goodfellow, Yoshua Bengio and Aaron Courville
Deep Learning with Keras and TensorFlow in R Workflow - RStudio Conference 2020 workshop by Brad Boehmke
MIT Introduction to Deep Learning | 6.S191 - MIT video course by Alexander Amini, Ava Soleimani, and guests. Dense and informative ~45min lectures covering various topics of deep learning. introtodeeplearning.com - course web site with slides, video, and other material
Machine learning and deep learning resources - a collection of references for further studies
The objectives of this class include
To help you with this, you will solve one of the Kaggle competitions based on topics/code learned in-class. See Final project for more details
https://www.kaggle.com/competitions
https://www.nibib.nih.gov/science-education/science-topics/artificial-intelligence-ai
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/chapter1.html
https://www.analyticsvidhya.com/blog/2020/02/cnn-vs-rnn-vs-mlp-analyzing-3-types-of-neural-networks-in-deep-learning/
https://towardsdatascience.com/review-senet-squeeze-and-excitation-network-winner-of-ilsvrc-2017-image-classification-a887b98b2883
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/chapter1.html
Computer vision, image classification, image captioning
Speech recognition, translation
Text, natural-language processing, sentiment analysis
Timeseries forecasting
Image, text, speech/music generation, music-to-notes translation
Self-driving cars
http://detexify.kirelabs.org/classify.html
Probability and Statistics
Linear Algebra and Calculus
Key Machine Learning Concepts
Hardware (GPU preferred)
Software (Keras preferred)
Programming (Linux-based OS preferred, Python preferred)
https://www.analyticsvidhya.com/blog/2020/03/deep-learning-5-things-to-know/
Descriptive Statistics - Standard Deviation, Variance, Normal distribution, Central Limit Theorem
Probability - random variables, binomial distribution, Z-scores, significance level
Linear models - easily interpretable machine learning
Scalars and vectors
Matrices and Matrix Operations
Tensors are a generalization of vectors and matrices to an arbitrary number of dimensions
A tensor that contains only one number is called a scalar (or scalar-tensor, or zero-dimensional tensor, or 0D tensor)
A one-dimensional array of numbers is called a vector, or 1D tensor
A two-dimensional array of numbers is a matrix, or 2D tensor
An array of matrices makes a three-dimensional array of numbers, or 3D tensor
A tensor is defined by three key attributes:
Number of axes (rank) - For instance, a 3D tensor has three axes, and a matrix has two axes
Shape - This is an integer vector that describes how many dimensions the tensor has along each axis. A vector has a shape with a single element, such as (5). Think dim()
function.
Data type - This is the type of the data contained in the tensor; integer or double
Vector data - 2D tensors of shape (samples, features)
Timeseries data or sequence data - 3D tensors of shape (samples, timesteps, features)
Images - 4D tensors of shape (samples, height, width, channels)
Video - 5D tensors of shape (samples, frames, height, width, channels)
review Section "2.3.3 Tensor dot", p. 36
https://d2l.ai/chapter_preliminaries/calculus.html
Supervised Learning - using training data (input variables) with the known target variable, find rules that give the relationship between the input and the target variables. These rules can then be applied to the unseen (test) data to predict the expected target variables for it. Examples: kNN, SVM, Linear Regression, etc.
Applications - Text categorization, Face Detection, Signature recognition, Customer recommendation system, Spam detection, Weather forecasting, Predicting housing prices based on the prevailing market price, Stock price predictions, among others
https://www.analyticsvidhya.com/blog/2020/04/supervised-learning-unsupervised-learning/
Unsupervised Learning - the target variable is unknown, so the goal is to cluster the data into groups, and we can identify the groups after we have clustered the data. Examples of unsupervised learning include k-means clustering, dimensionality reduction techniques, etc.
Applications - Fraud detection, Malware detection, Identification of human errors during data entry, Conducting accurate basket analysis, etc.
https://www.analyticsvidhya.com/blog/2020/04/supervised-learning-unsupervised-learning/
Learning guided by the data itself
Labels generated from the input data
Autoencoders - learns data properties (labels) to reconstruct input data
The distinction from other learning types is not well-defined
https://www.wired.com/2015/02/google-ai-plays-atari-like-pros/
https://www.wired.com/2017/05/googles-alphago-trounces-humans-also-gives-boost/
https://github.com/p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorch
https://simons.berkeley.edu/sites/default/files/docs/6453/201703xxsimons-representations-deep-rl.pdf
Vectorization - sample-specific data should be represented as a vector. The vector representation scheme should be consistent from sample to sample
Normalization - Make values small, typically within the 0-1 range. Make them homogeneous, relatively uniformly distributed throughout the range
Angermueller et al., “Deep Learning for Computational Biology.”
Cross-validation - A common machine learning strategy wherein the dataset is split multiple times into training and validation sets. The average validation performance across the multiple splits is used to select the final model
k-fold cross-validation, leave-one-out cross-validation, bootstrapping
https://bradleyboehmke.github.io/HOML/process.html
http://scott.fortmann-roe.com/docs/BiasVariance.html
http://scott.fortmann-roe.com/docs/BiasVariance.html
https://medium.com/greyatom/what-is-underfitting-and-overfitting-in-machine-learning-and-how-to-deal-with-it-6803a989c76
https://www.analyticsvidhya.com/blog/2020/02/cnn-vs-rnn-vs-mlp-analyzing-3-types-of-neural-networks-in-deep-learning/
GPU, Graphics Processing Unit - highly parallel computations, speeds up network training
TPU, Tensor Processing Unit - designed for parallel tensor computations, faster and cheaper than GPUs
https://towardsdatascience.com/maximize-your-gpu-dollars-a9133f4e546a
TensorFlow - the most popular framework, developed by Google. Has an R interface
Keras - the front-end API to the most popular frameworks (Tensorflow, Theano, others). Much less and simpler code. Starting point for beginners
PyTorch - the distinct framework, highly customizable, gaining popularity
FastAI - founded by Jeremy Howard, the former President and Chief Scientist at Kaggle. PyTorch-based well-tuned components for best performance. Free online courses
https://tensorflow.rstudio.com/, https://keras.rstudio.com/
https://tensorflow.rstudio.com/installation/gpu/local_gpu/
https://www.analyticsvidhya.com/blog/2020/03/tensorflow-2-tutorial-deep-learning/
Google Colab - free Jupyter notebooks, integrated with GitHub and Google Drive, provides free entry-level GPU and TPU
Google Cloud - powerful cloud computing, paid, easy to navigate interface and price plans. Preemptible (short-lived but affordable) virtual machines
AWS EC2 - popular cloud computing platform, requires understanding of pricing options. $300 credit for starters
Kaggle - free Jupyter notebooks, with GPUs. Lots of community code
Other options: Paperspace, vast.ai, Microsoft Azure
https://www.analyticsvidhya.com/blog/2020/03/google-colab-machine-learning-deep-learning/
https://towardsdatascience.com/maximize-your-gpu-dollars-a9133f4e546a
The most surprising thing about deep learning is how simple it is
All you need is sufficiently large parametric models trained with gradient descent on sufficiently many examples
Each layer in a deep-learning model operates one simple geometric transformation on the data that goes through it
A key characteristic of this geometric transformation is that it must be differentiable, which is required in order for us to be able to learn its parameters via gradient descent. Intuitively, this means the geometric morphing from inputs to outputs must be smooth and continuous
As Richard Feynman once said about the universe, "It’s not complicated, it’s just a lot of it"
Chapter 9.1.3
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/deep_learning.html
Course web site: https://bios691-deep-learning-r.netlify.app/
You will get the most out of this class if you
Student Course evaluation, or Guest Course evaluation - please evaluate the course Friday afternoon, June 12, 2020. All evaluations are anonymous
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |