Syllabus for MME 596
Seminar on Deep Learning
Summer 2019
- Course description
- General information
- Textbooks
- Schedule
- Assignments
- Homework, quiz, & exam policies
Course description
A reading seminar on deep learning with the central text Introduction to Deep Learning by Eugene Charniak. Chapter exercise solutions and some supplemental reading will be required. Programming in Python with Tensorflow will be required, but experience with any programming language is sufficient.
General information
- Instructor
- Rico AR Picone, PhD
- Actual office hours (CH 103C)
- M 4–5, T 3–5, Th 3–5
- Virtual office hours (zoom, make appointment!)
- By appointment
- Office hours appointments
- make appointment
- Office location
- CH 103C
- Moodle
- moodle.stmartin.edu
secretssssssssss
Textbooks
Eugene Charniak. Introduction to Deep Learning. MIT Press, 2018. (Required.)
Schedule
The following schedule is tentative. All assignments will be set one week before the due date.
week | topics introduced | reading | due |
---|---|---|---|
perceptrons, neural nets, feed-forward neural nets, Python | EC Ch 1 | get started on Assignment 1 | |
feed-forward neural nets | continue Assignment 1 | ||
Tensorflow | EC Ch 2 | Assignment 1, Assignment 2 Exercises | |
convolutional neural nets | EC Ch 3 | Assignment 2, Assignment 3 | |
word embeddings and recurrent neural nets | EC Ch 4 | Assignment 4 | |
sequence-to-sequence learning | EC Ch 5 | Assignment 5 |
|
deep reinforcement learning | EC Ch 6 | Assignment 6 | |
unsupervised neural-network models | EC Ch 7 | Assignment 7 |
Assignments
Assignment 1
- Do the assigned reading.
- Install the latest Python 3 at www.python.org. This site has good documentation for installation on all platforms.
- Open a terminal window (Windows:
cmd.exe
, MacOS:terminal.app
) and verify your Python installation by typingpython --version
. It should return your version, e.g.Python 3.7.3
. - In a terminal window, install the
scipy
,numpy
, andmnist
modules using the syntaxpip install <module name>
. The documentation for themnist
module will help you use this dataset in your program. For more info in themnist
module, see this repo. - In Python, write the feed-forward stochastic gradient descent program described and verify it can perform to 91-92% accuracy on the Mnist development data. I recommend using the linear algebra-based algorithm, which is more performant and easier to write. I also recommend seeding the random number generator for easier debugging. Submit this as a class definition
.py
file and an execution script.py
file on Moodle. - Read and consider each of the Written Exercises. Be ready to discuss Exercise 1.4 at the weekly meeting.
Assignment 2
- Do the assigned reading.
- Complete the Written Exercises 2.1, 2.2, 2.3, 2.4, 2.5, and 2.6.
- In Python, write the feed-forward stochastic gradient descent program from Assignment 1, but use TensorFlow. Submit this as a class definition
.py
file and an execution script.py
file on Moodle.
Assignment 3
- Do the assigned reading.
- In TensorFlow, write a two-layer convolution neural network for Mnist image recognition. Submit this as a class definition
.py
file and an execution script.py
file on Moodle.
Assignment 4
- Do the assigned reading.
- In TensorFlow, write a bigram or trigram word embedding feedforward neural network and train and test it on the Penn Treebank Corpus. Submit this as a class definition
.py
file and an execution script.py
file on Moodle. Here’s a code snippet that will get you started working with the data.
from nltk.corpus import treebank as tb # PTB
from nltk import FreqDist # to determine word frequency
import numpy as np # for numpy arrays, etc.
frequency_list = FreqDist(i.lower() for i in words)
my_dictionary = frequency_list.most_common()[:10000] # most common 10k
my_dictionary = np.array(my_dictionary) # convert to np array
my_dictionary = my_dictionary[:,0] # select words, ignore frequency
print(my_dictionary[:10]) # print the ten most frequent words
Homework, quiz, & exam policies
Homework & homework quiz policies
Weekly homework will be due on Fridays.
Working in groups on homework is strongly encouraged.
Grading policies
Total grades in the course may be curved, but individual assignments will not be. They will be available on moodle throughout the semester.
- Assignments
- 80%
- Engagement
- 20%
secrets
Academic integrity policy
Cheating or plagiarism of any kind is not tolerated and will result in a failing grade (“F”) in the course. I take this very seriously. Engineering is an academic and professional discipline that requires integrity. I expect students to consider their integrity of conduct to be their highest consideration with regard to the course material.