EECS 395, 495

DEEP LEARNING FOUNDATIONS FROM SCRATCH

Jeremy Watt with Reza Borhani

About us

   - Adjunct Professors in EECS department

   - where we both earned our PhDs

   - Authors of Machine Learning Refined (Cambridge University Press) - www.mlrefined.com

   - Used in EECS 396, 496: Machine Learning: Foundations, Applications, and Algorithms

   - Notes from this class based on *new* material for 2nd edition!

   - Owners of local deep learning consultancy Degree Six - www.dgsix.com

   - We help everyone from startups to established businesses develop AI-fueled products and build machine learning / deep learning teams

About the course

What is deep learning all about?

  • A natural compositional way of encoding general nonlinearity for machine learning tasks
- e.g., for supervised learning needed because standard linear classifier is limited

What is deep learning all about?

  • A natural compositional way of encoding general nonlinearity for machine learning tasks

    • e.g., for supervised learning, standard linear classifier is limited
- e.g., for general reinforcement tasks (like game AI)

What is deep learning all about?

  • A natural compositional way of encoding general nonlinearity for machine learning tasks

    • e.g., for supervised learning, standard linear classifier is limited

    • e.g., for general reinforcement tasks (like game AI)

  • natural way to leverage certain types of structured data

What is deep learning all about?

  • A natural compositional way of encoding general nonlinearity for machine learning tasks

    • e.g., for supervised learning, standard linear classifier is limited

    • e.g., for general reinforcement tasks (like game AI)

  • natural way to leverage certain types of structured data

  • because of this, provides cutting edge results for a range of applications including

Computer vision applications like object detection

Speech recognition

Reinforcement

Course topics

Course topics

1) First order optimization techniques

- normalized / unnormalized gradient descent, stochastic descent

2) Linear supervised learning

- linear regression, linear two-class classification (logistic regression), multiclass softmax regression

3) Nonlinear supervised learning

- General nonlinear comparison / intro to function approximation
- Basics of kernels (why they fail) and feedforward nets
- Tricks for feedforward nets: momentum, regularization for convexity, etc.,
- Basic concept of automatic differentiation / backprop
- Cross-validation basics

4) Reinforcement Learning

- Basic Q-Learning, with function approximators ('Deep Q-Learning')
- Policy gradient method

5) Recurrent networks

- Recurrent sequences, recursive functions, lazy feedforward network approach
- Simple recurrent networks, LSTM / GRUs
- Applications in e.g., natural language processing

6) convolutional networks

- Convolutions, edge detection, histogram features and pooling
- From fixed feature extractors to convolutional network
- Modern architectures
- Applications in e.g., computer vision, reinforcement

Logistics

Logistics

  • We may use a Piazza page for class forum discussion
  • Office hours: 12 - 1pm Mon/Wed in Annenberg Hall room G21 (starting second week of class)
  • Assignments: 5 homeworks (75% of final grade), 1 individual project (25% of final grade)
    • All assignments must be completed using Python 3 Jupyter notebooks, turned in on canvas (no hard copy)
    • Late homework = 1% off every hour late starting at end of due class

From scratch

  • Main coding for exercises (approx 70%) will be done 'by hand' using only an automatic differentiator
  • We will use keras (a deep learning library) mainly for more complicated architectures (e.g., complex conv nets)
  • We will also use it as a point of comparison - e.g., you will write program and compare it to standard library functionality
  • no more black box - you will see that in fact you can code-up a good chunk of deep learning algorithms yourself!

Prerequisites

Prerequisites

  • Expert Google-ing skills
    • You understand how to / the value of Google and Stack overflow
  • Basic familiarity with Linear Algebra and Calculus
    • We will not review (see blog posts if needed)
  • Basic familiarity with fundamental machine learning concepts
    • We will review as we go along, so OK if rusty
  • Strong familiarity with the Python programming language
    • functions / classes (i.e,. basic familiarity with object oriented programming)
    • We will not review, play catch-up: e.g., https://www.codecademy.com/