CS 4803 7643 Deep Learning Topics Finish Automatic

  • Slides: 58
Download presentation
CS 4803 / 7643: Deep Learning Topics: – (Finish) Automatic Differentiation – Patterns in

CS 4803 / 7643: Deep Learning Topics: – (Finish) Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re. LU NNs Dhruv Batra Georgia Tech

Administrativia • HW 2 out – Due: 09/23 11: 59 pm – Theory: Gradient

Administrativia • HW 2 out – Due: 09/23 11: 59 pm – Theory: Gradient descent, Hessians, Auto-diff, Convolutions • https: //www. overleaf. com/project/5 f 4 c 143 e 06061 d 00013 dd 4 f 0 – Implementation: Conv. Nets in Python and Py. Torch – Bonus: Challenge on Eval. AI • https: //evalai. cloudcv. org/web/challenges/challenge-page/684/overview (C) Dhruv Batra 2

Project • Goal – Chance to take on something open-ended – Encouraged to apply

Project • Goal – Chance to take on something open-ended – Encouraged to apply to your research (computer vision, NLP, robotics, …) • Main categories – Reproducibility • Pick a paper from a recent conference. Attempt to reproduce the method and validate claims. – Application/Survey • Compare a collection of existing algorithms on a new application domain of your interest – Formulation/Development • Formulate a new model or algorithm for a new or old problem – Theory • Theoretically analyze an existing algorithm (C) Dhruv Batra 3

Project • Rules – Combine with other classes / research / credits / anything

Project • Rules – Combine with other classes / research / credits / anything • You have our blanket permission • Get permission from other instructors; delineate different parts – Must be done this semester. – Groups of 3 -4 • Expectations – 20% of final grade = individual effort equivalent to 1 HW – Expectation scales with team size – Most work will be done in Nov but please plan early. (C) Dhruv Batra 4

Project Ideas • ML Reproducibility Challenge 2020 – https: //paperswithcode. com/rc 2020 (C) Dhruv

Project Ideas • ML Reproducibility Challenge 2020 – https: //paperswithcode. com/rc 2020 (C) Dhruv Batra 5

TAs (C) Dhruv Batra 6

TAs (C) Dhruv Batra 6

Computing • Major bottleneck – GPUs • Options – Your own / group /

Computing • Major bottleneck – GPUs • Options – Your own / group / advisor’s resources – Google Cloud Credits • $50 credits to every registered student courtesy Google – Google Colab • jupyter-notebook + free GPU instance (C) Dhruv Batra 7

Administrativia • Project Teams – https: //gtvaultmy. sharepoint. com/: x: /g/personal/dbatra 8_gatech_edu/EY 4_ 65

Administrativia • Project Teams – https: //gtvaultmy. sharepoint. com/: x: /g/personal/dbatra 8_gatech_edu/EY 4_ 65 XOz. Wt. Ok. XSSz 2 Wgpo. UBY 8 ux 2 g. Y 9 Ps. Rz. R 6 Kngl. IFEQ? e= 4 tn. KWI – Project Title – 1 -3 sentence project summary TL; DR – Team member names (C) Dhruv Batra 8

Recap from last time (C) Dhruv Batra 9

Recap from last time (C) Dhruv Batra 9

Deep Learning = Differentiable Programming • Computation = Graph – Input = Data +

Deep Learning = Differentiable Programming • Computation = Graph – Input = Data + Parameters – Output = Loss – Scheduling = Topological ordering • Auto-Diff – A family of algorithms for implementing chain-rule on computation graphs (C) Dhruv Batra 10

Forward mode AD g 11

Forward mode AD g 11

Reverse mode AD g 12

Reverse mode AD g 12

Example: Forward mode AD + sin( ) x 1 (C) Dhruv Batra * x

Example: Forward mode AD + sin( ) x 1 (C) Dhruv Batra * x 2 13

Example: Forward mode AD + sin( ) x 1 (C) Dhruv Batra * x

Example: Forward mode AD + sin( ) x 1 (C) Dhruv Batra * x 2 14

Example: Reverse mode AD + sin( ) x 1 (C) Dhruv Batra * x

Example: Reverse mode AD + sin( ) x 1 (C) Dhruv Batra * x 2 15

Forward mode vs Reverse Mode • x Graph L • Intuition of Jacobian (C)

Forward mode vs Reverse Mode • x Graph L • Intuition of Jacobian (C) Dhruv Batra 16

Forward mode vs Reverse Mode • What are the differences? • Which one is

Forward mode vs Reverse Mode • What are the differences? • Which one is faster to compute? – Forward or backward? • Which one is more memory efficient (less storage)? – Forward or backward? (C) Dhruv Batra 17

Neural Network Computation Graph (C) Dhruv Batra Figure Credit: Andrea Vedaldi 18

Neural Network Computation Graph (C) Dhruv Batra Figure Credit: Andrea Vedaldi 18

Backprop (C) Dhruv Batra Figure Credit: Andrea Vedaldi 19

Backprop (C) Dhruv Batra Figure Credit: Andrea Vedaldi 19

Key Computation: Forward-Prop (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun 20

Key Computation: Forward-Prop (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun 20

Key Computation: Back-Prop (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun 21

Key Computation: Back-Prop (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun 21

Neural Network Training • Step 1: Compute Loss on mini-batch (C) Dhruv Batra Slide

Neural Network Training • Step 1: Compute Loss on mini-batch (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun [F-Pass] 22

Neural Network Training • Step 1: Compute Loss on mini-batch (C) Dhruv Batra Slide

Neural Network Training • Step 1: Compute Loss on mini-batch (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun [F-Pass] 23

Neural Network Training • Step 1: Compute Loss on mini-batch (C) Dhruv Batra Slide

Neural Network Training • Step 1: Compute Loss on mini-batch (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun [F-Pass] 24

Neural Network Training • Step 1: Compute Loss on mini-batch • Step 2: Compute

Neural Network Training • Step 1: Compute Loss on mini-batch • Step 2: Compute gradients wrt parameters (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun [F-Pass] [B-Pass] 25

Neural Network Training • Step 1: Compute Loss on mini-batch • Step 2: Compute

Neural Network Training • Step 1: Compute Loss on mini-batch • Step 2: Compute gradients wrt parameters (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun [F-Pass] [B-Pass] 26

Neural Network Training • Step 1: Compute Loss on mini-batch • Step 2: Compute

Neural Network Training • Step 1: Compute Loss on mini-batch • Step 2: Compute gradients wrt parameters (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun [F-Pass] [B-Pass] 27

Neural Network Training • Step 1: Compute Loss on mini-batch [F-Pass] • Step 2:

Neural Network Training • Step 1: Compute Loss on mini-batch [F-Pass] • Step 2: Compute gradients wrt parameters [B-Pass] • Step 3: Use gradient to update parameters (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato, Yann Le. Cun 28

Computational Graph Any DAG of differentiable modules is allowed! (C) Dhruv Batra Slide Credit:

Computational Graph Any DAG of differentiable modules is allowed! (C) Dhruv Batra Slide Credit: Marc'Aurelio Ranzato 29

Plan for Today • Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re.

Plan for Today • Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re. LU NNs (C) Dhruv Batra 30

Modularized implementation: forward / backward API Graph (or Net) object (rough psuedo code) 31

Modularized implementation: forward / backward API Graph (or Net) object (rough psuedo code) 31 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Modularized implementation: forward / backward API x * z y (x, y, z are

Modularized implementation: forward / backward API x * z y (x, y, z are scalars) 32 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Modularized implementation: forward / backward API x * z y (x, y, z are

Modularized implementation: forward / backward API x * z y (x, y, z are scalars) 33 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Example: Caffe layers Caffe is licensed under BSD 2 -Clause 34 Slide Credit: Fei-Fei

Example: Caffe layers Caffe is licensed under BSD 2 -Clause 34 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Caffe Sigmoid Layer * top_diff (chain rule) Caffe is licensed under BSD 2 -Clause

Caffe Sigmoid Layer * top_diff (chain rule) Caffe is licensed under BSD 2 -Clause 35 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Plan for Today • Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re.

Plan for Today • Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re. LU NNs (C) Dhruv Batra 36

Backpropagation: a simple example Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231

Backpropagation: a simple example Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Forward pass Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Forward pass Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop Q: What is an add gate? Slide Credit: Fei-Fei Li, Justin

Patterns in backprop Q: What is an add gate? Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop add gate: gradient distributor Slide Credit: Fei-Fei Li, Justin Johnson, Serena

Patterns in backprop add gate: gradient distributor Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop add gate: gradient distributor Q: What is a max gate? Slide

Patterns in backprop add gate: gradient distributor Q: What is a max gate? Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop add gate: gradient distributor max gate: gradient router Slide Credit: Fei-Fei

Patterns in backprop add gate: gradient distributor max gate: gradient router Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop add gate: gradient distributor max gate: gradient router Q: What is

Patterns in backprop add gate: gradient distributor max gate: gradient router Q: What is a mul gate? Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Patterns in backprop add gate: gradient distributor max gate: gradient router mul gate: gradient

Patterns in backprop add gate: gradient distributor max gate: gradient router mul gate: gradient switcher Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Gradients add at branches + Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS

Gradients add at branches + Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Duality in Fprop and Bprop COPY SUM FPROP (C) Dhruv Batra BPROP + +

Duality in Fprop and Bprop COPY SUM FPROP (C) Dhruv Batra BPROP + + 47

Plan for Today • Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re.

Plan for Today • Automatic Differentiation – Patterns in backprop – Jacobians in FC+Re. LU NNs (C) Dhruv Batra 48

Backprop (C) Dhruv Batra Figure Credit: Andrea Vedaldi 49

Backprop (C) Dhruv Batra Figure Credit: Andrea Vedaldi 49

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) 4096

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) 4096 -d output vector Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) 4096

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) 4096 -d output vector Q 1: what is the size of the Jacobian matrix? 51 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) 4096

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) 4096 -d output vector Q 1: what is the size of the Jacobian matrix? [4096 x 4096!] 52 Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) Q

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) Q 1: what is the size of the Jacobian matrix? [4096 x 4096!] 4096 -d output vector in practice we process an entire minibatch (e. g. 100) of examples at one time: i. e. Jacobian would technically be a [409, 600 x 409, 600] matrix : Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) Q

Jacobian of Re. LU 4096 -d input vector g(x) = max(0, x) (elementwise) Q 1: what is the size of the Jacobian matrix? [4096 x 4096!] 4096 -d output vector Q 2: what does it look like? Slide Credit: Fei-Fei Li, Justin Johnson, Serena Yeung, CS 231 n

Jacobians of FC-Layer (C) Dhruv Batra 55

Jacobians of FC-Layer (C) Dhruv Batra 55

Jacobians of FC-Layer (C) Dhruv Batra 56

Jacobians of FC-Layer (C) Dhruv Batra 56

Jacobians of FC-Layer (C) Dhruv Batra 57

Jacobians of FC-Layer (C) Dhruv Batra 57

Jacobians of FC-Layer (C) Dhruv Batra 58

Jacobians of FC-Layer (C) Dhruv Batra 58