Andrew Beam, PhD
Instructor
Department of Biomedical Informatics
Harvard Medical School
BMI 703 - October 12th, 2017
twitter: @AndrewLBeam
We are offering BMI 707 in the spring second session. In this class you will:
If you like today's deep learning tapas, sign up for our course and have the full meal
Has the potential to change many medical specialities
Has the potential to change many medical specialities
What does this patient have?
A six-year old boy has a high fever that has lasted for three days. He has extremely red eyes and a rash on the main part of his body in addition to a swollen and red strawberry tongue. Remaining symptoms include swollen lymph nodes in the neck and Irritability
What does this patient have?
A six-year old boy has a high fever that has lasted for three days. He has extremely red eyes and a rash on the main part of his body in addition to a swollen and red strawberry tongue. Remaining symptoms include swollen lymph nodes in the neck and Irritability
Image credit: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
What does this patient have?
A six-year old boy has a high fever that has lasted for three days. He has extremely red eyes and a rash on the main part of his body in addition to a swollen and red strawberry tongue. Remaining symptoms include swollen lymph nodes in the neck and irritability
Not just medicine, but genomics too
More here: https://github.com/gokceneraslan/awesome-deepbio
Image credit: http://cs231n.github.io
One of the very first ideas in machine learning and artificial intelligence
Are today's neural nets any different than their predecessors?
"[The perceptron is] the embryo of an electronic computer that [the Navy] expects will be able to walk, talk, see, write, reproduce itself and be conscious of its existence." - Frank Rosenblatt, 1958
Rosenblatt's Perceptron, 1957
Minsky and Papert show that the perceptron can't even solve the XOR problem
Kills research on neural nets for the next 15-20 years
Rumelhart, Hinton, and Willams show us how to train multilayered neural networks
Pretend we just have two variables:
... and a class label:
Pretend we just have two variables:
... and a class label:
... we construct a function to predict y from x:
Pretend we just have two variables:
... and a class label:
... we construct a function to predict y from x:
... and turn this into a probability using the logistic function:
Pretend we just have two variables:
... and a class label:
... we construct a function to predict y from x:
... and turn this into a probability using the logistic function:
... and use Bernoulli negative log-likelihood as loss:
Pretend we just have two variables:
... and a class label:
... we construct a function to predict y from x:
... and turn this into a probability using the logistic function:
This is good old-fashioned logistic regression
... and use Bernoulli negative log-likelihood as loss:
How do we learn the "best" values for ?
How do we learn the "best" values for ?
Gradient Decscent
How do we learn the "best" values for ?
Backprop is how we compute the gradients for our model's parameters. Later we will see why this is important
Gradient Decscent
EXERCISE
With a small change, we can turn our logistic regression model into a neural net
MLPs learn a set of nonlinear features directly from data
"Feature learning" is the hallmark of deep learning approachs
Increase the depth to increase network capacity
Essentially all neural nets can be described in terms of a series of matrix multiplications
Input to hidden layer, with 100 hidden units:
where:
- is a matrix of weights
- is matrix containing the activations for all 100 units for each sample and
- is an element-wise activation function
Essentially all neural nets can be described in terms of a series of matrix multiplications
Input to hidden layer, with 100 hidden units:
Hidden to hidden layer:
Several key advancements have enabled the modern deep learning revolution
Advent of massively parallel computing by GPUs. Enabled training of huge neural nets on extremely large datasets
Several key advancements have enabled the modern deep learning revolution
Advent of massively parallel computing by GPUs. Enabled training of huge neural nets on extremely large datasets
Several key advancements have enabled the modern deep learning revolution
Methodological advancements have made deeper networks easier to train
Architecture
Optimizers
Activation Functions
Several key advancements have enabled the modern deep learning revolution
Robust frameworks and abstractions make iteration faster and less error prone
Automatic differentiation allows easy prototyping
+
Dates back to the late 1980s
Imagenet Database
Large Scale Visual
Recognition Challenge (ILSVRC)
Pivotal event occurred in an image recognition contest which brought together 3 critical ingredients for the first time:
In 2011, a misclassification rate of 25% was near state of the art on ILSVRC
In 2012, Geoff Hinton and two graduate students, Alex Krizhevsky and Ilya Sutskever, entered ILSVRC with one of the first deep neural networks trained on GPUs, now known as "Alexnet"
Result: An error rate of 16%, nearly half what the second place entry was able to achieve.
The computer vision world immediately took notice
Alexnet paper has ~ 16,000 citations since being published in 2012!
Q: What was the major flaw with our MLP dog vs. cat classifier?
Q: What was the major flaw with our MLP dog vs. cat classifier?
What is this a picture of?
Q: What was the major flaw with our MLP dog vs. cat classifier?
What is this a picture of?
Q: What was the major flaw with our MLP dog vs. cat classifier?
What is this a picture of?
MLPs throw away too much information!
Images are just 2D arrays of numbers
Goal is to build f(image) = 1
CNNs look at small connected groups of pixels using "filters"
Image credit: http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution
Images have a local correlation structure
Near by pixels are likely to be more similar than pixels that are far away
CNNs exploit this through convolutions of small image patches
Example convolution
Convolution + pooling + activation = CNN
Image credit: http://cs231n.github.io/convolutional-networks/
Pooling provides spatial invariance
Image credit: http://cs231n.github.io/convolutional-networks/
CNN formula is relatively simple
Image credit: http://cs231n.github.io/convolutional-networks/
Data augmentation mimics the image generative process
Image credit: http://slideplayer.com/slide/8370683/
CNNs exploit strong prior information about images
CNNs can be tricked in strange ways
by "adversarial" examples
Image credit: https://openai.com/blog/adversarial-example-research/
Works on "real" photos too
Image credit: https://openai.com/blog/adversarial-example-research/
Barrier to entry for deep learning is actually low
... but a few things might stand in your way:
Barrier to entry for deep learning is actually low
... but a few things might stand in your way:
The field moves fast, staying up to date can be challenging
http://beamandrew.github.io/deeplearning/2017/02/23/deep_learning_101_part1.html
SEE YOU IN THE SPRING!