This document provides an agenda and introduction for a deep learning workshop. It includes an introduction to the instructor, ground rules for the workshop, and a tentative agenda that will cover topics like neural networks, convolutional neural networks, and RNNs. Hands-on exercises are planned for each section. The workshop will be held in a Jupyter notebook environment on Google Colab, allowing participants to run Python code directly in their browser.
2. Polyglot Ninja
Memphis, TN area
Co-Directory of MemPy
Data Science, Machine Learning, Mobile Apps
Wannabe Game Designer
Pluralsight Author
@poweredbyaltnet
Douglas Starnes
@poweredbyaltnet
3. Ground Rules
• I’m going to throw a lot of information at you
• We have 4 hours together (that’s 240 minutes)
• There are 3 breaks for a total of 30 minutes
• There are 89 slides (~ 45 min)
• There are 10 exercises (~17 minutes each)
• There will be questions
• There will be problems logging in
• Google could go on vacation
• But the wifi will rock!
• The agenda is a guide.
• I’m here to focus on what you are interested in.
• If I ask a question, it’s OK to answer.
• Like .. out loud
• I honestly welcome your feedback.
• I’ve made changes to this workshop based on comments (both good and bad) from
my last workshop two weeks ago. @poweredbyaltnet
4. “AGENDA”
(verrrrrrrry tentative, take with a grain of salt, or 10-20 grains)
• Intro (5 mins) – SLIDES
• Jupyter notebook / Google Colab (10 mins) – SLIDES
• Python primer (20 mins) – Hands on
• PyData (10 mins) – hands on
• Break (10 mins)
• Neural Network Concepts (30 mins) – slides
• Neural Network Classification (15 mins) – hands on
• Neural Network Regression (15 mins) – hands on
• Break (10 mins)
• Convolutional Neural Network Concepts (20 mins) - slides
• Convolutional Neural Network MNIST (20 mins) – hands on
• Convolutional Neural Network CIFAR-10 (15 mins) – hands on
• Break (10 mins)
• RNN Concepts (10 mins) – slides
• RNN IMDB (10 mins) – hands on
• Tensorboard – and other cool stuff? (25 mins) – hands on
@poweredbyaltnet
22. Classification
• Cats
• have 4 legs
• have fur
• have long tails
• have short noses
• have small upright ears
• Dogs
• have 4 legs
• have fur
• have long tails
• have long noses
• have large floppy ears
• Pigs
• have 4 legs
• have no/little fur
• have short tails
• have short noses
• have large upright ears
@poweredbyaltnet
28. @poweredbyaltnet
Neural networks are loosely inspired by how neuroscientists today think the brain might possibly work.
(assuming they are on the right track)
31. @poweredbyaltnet
Sepal Length Sepal Width Petal Length Petal Width Species
5.1 3.5 1.4 0.2 setosa
… … … … …
7.0 3.2 4.7 1.4 versicolor
… … … … …
5.7 2.8 4.1 1.3 virginica
rows -> observations
columns -> features
feature vector / independent variables -> observed values
target / dependent variable(s) -> what we want to predict
feature vector target
train a model that, given a feature vector, will (hopefully accurately) assign a target
train a model that, given values for Sepal Length, Sepal Width, Petal Length, Petal Width, will
assign one value from the set of setosa, versicolor, or virginica
35. @poweredbyaltnet
During training, we are not
concerned with making a correct
prediction, but rather making a
prediction that is as close to
correct as possible.
41. @poweredbyaltnet
learning rate
If the learning rate is too large, we will skip over the minimum.
If the learning rate is too small, we will waste time.
49. @poweredbyaltnet
Meet MNIST
Scans of handwritten digits (0-9)
Each image is 28x28 pixels
Feature vector is the entire
image (784 pixels)
The target is the digit
represented (0-9)
Each pixel value is 0 (black)
to 255 (white)
Interesting variations
(ie. fashion MNIST)
Each pixel (for now) is a
feature
51. Why Activation Layers
• Without activation layers, we can only approximate linear functions
(e.g. linear regression)
• Neural networks are universal function approximators
• Activation layers introduce non-linearity
• Non-linear functions are more complex
• The real world is often very complex
64. @poweredbyaltnet
Goal: consider fewer, more relevant, features
How to determine which features are relevant?
Let the network decide!
Convolutional Neural Network (CNN)
Three new layers
Convolutional layers – detect features
Pooling layers – summarize features
Features are then used in dense layers
Dropout – prevent overfitting
87. Embedding Layers
• Map words into vectors
• Used as input to the RNN
• model = Sequential()
model.add(Embedding(2000, 16, input_length=200))
model.add(SimpleRNN(50))
model.add(Dense(1, activation=‘sigmoid’))
model.compile(loss=‘binary_crossentropy’, ...)
@poweredbyaltnet